-
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
APIs for creating, editing, and deleting plugins #59
Comments
alexanderson1993
added a commit
that referenced
this issue
Oct 23, 2021
This makes it possible to have clients request any data using parameters. It's basically a glorified real-time live data REST API over websockets, really. The cool thing about it is that it's implemented with React Suspense so to the developer, it behaves as if you were just calling a function. Closes #59
Merged
11 tasks
alexanderson1993
added a commit
that referenced
this issue
Oct 30, 2021
* Add the ability for Thorium Nova to host plugin assets. Closes #64 * Starting on the plugin editing UI * Initial UI for the plugin configuration page. * Basic plugin definition. Closes #58 * Implement the NetRequest system This makes it possible to have clients request any data using parameters. It's basically a glorified real-time live data REST API over websockets, really. The cool thing about it is that it's implemented with React Suspense so to the developer, it behaves as if you were just calling a function. Closes #59
alexanderson1993
added a commit
that referenced
this issue
Nov 2, 2021
* Add the ability for Thorium Nova to host plugin assets. Closes #64 * Starting on the plugin editing UI * Initial UI for the plugin configuration page. * Basic plugin definition. Closes #58 * Implement the NetRequest system This makes it possible to have clients request any data using parameters. It's basically a glorified real-time live data REST API over websockets, really. The cool thing about it is that it's implemented with React Suspense so to the developer, it behaves as if you were just calling a function. Closes #59 * UPdate the properties of plugins. Closes #60 * Starting on asset upload. Replaced the WebSocket netsend API with HTTP, since it makes it easier to include the uploaded files inline. Todo: Create a utility function for moving files wherever you want, most likely placing them inside the assets folder. The good news is that the input function is able to decide whatever they want to do with the file, which is nice. * Fix an issue * Add support for uploading a cover image to a plugin.
alexanderson1993
added a commit
that referenced
this issue
Nov 2, 2021
* Add the ability for Thorium Nova to host plugin assets. Closes #64 * Starting on the plugin editing UI * Initial UI for the plugin configuration page. * Basic plugin definition. Closes #58 * Implement the NetRequest system This makes it possible to have clients request any data using parameters. It's basically a glorified real-time live data REST API over websockets, really. The cool thing about it is that it's implemented with React Suspense so to the developer, it behaves as if you were just calling a function. Closes #59 * UPdate the properties of plugins. Closes #60 * Starting on asset upload. Replaced the WebSocket netsend API with HTTP, since it makes it easier to include the uploaded files inline. Todo: Create a utility function for moving files wherever you want, most likely placing them inside the assets folder. The good news is that the input function is able to decide whatever they want to do with the file, which is nice. * Fix an issue * Add support for uploading a cover image to a plugin. * Clean up the UI code for plugin config. * Lots of changes to plugins. Begin storing data as YAML, to make it easier to edit by hand. Refactor the db-fs package to use class inheritance rather than wrapping objects. This provides a neater experience, with fewer hacks for the end user, although the implementation itself is full of hacks ;) Created a function that can check existing names to make sure names aren't being duplicated. This makes it possible to use names as IDs while still keeping them unique. Add a Snapshot button to the development version of the app. This serves as the save button, which makes it so you can restart the server to get it back to an expected state, but click the button to save the state again. Started writing plugins to the file system. Yay!
alexanderson1993
added a commit
that referenced
this issue
Nov 4, 2021
* Add the ability for Thorium Nova to host plugin assets. Closes #64 * Starting on the plugin editing UI * Initial UI for the plugin configuration page. * Basic plugin definition. Closes #58 * Implement the NetRequest system This makes it possible to have clients request any data using parameters. It's basically a glorified real-time live data REST API over websockets, really. The cool thing about it is that it's implemented with React Suspense so to the developer, it behaves as if you were just calling a function. Closes #59 * UPdate the properties of plugins. Closes #60 * Starting on asset upload. Replaced the WebSocket netsend API with HTTP, since it makes it easier to include the uploaded files inline. Todo: Create a utility function for moving files wherever you want, most likely placing them inside the assets folder. The good news is that the input function is able to decide whatever they want to do with the file, which is nice. * Fix an issue * Add support for uploading a cover image to a plugin. * Clean up the UI code for plugin config. * Lots of changes to plugins. Begin storing data as YAML, to make it easier to edit by hand. Refactor the db-fs package to use class inheritance rather than wrapping objects. This provides a neater experience, with fewer hacks for the end user, although the implementation itself is full of hacks ;) Created a function that can check existing names to make sure names aren't being duplicated. This makes it possible to use names as IDs while still keeping them unique. Add a Snapshot button to the development version of the app. This serves as the save button, which makes it so you can restart the server to get it back to an expected state, but click the button to save the state again. Started writing plugins to the file system. Yay! * Working on creating the first plugin aspect: Ships * feat(Plugins): Add support for configuring ship templates in plugins. * Cleanup. * Fix type error. * Fix issues with image uploading.
github-actions bot
pushed a commit
that referenced
this issue
Dec 17, 2021
# 1.0.0-alpha.1 (2021-12-17) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 17, 2021
# 1.0.0-alpha.1 (2021-12-17) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 17, 2021
# 1.0.0-alpha.1 (2021-12-17) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 21, 2021
# 1.0.0-alpha.1 (2021-12-21) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 21, 2021
# 1.0.0-alpha.1 (2021-12-21) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 21, 2021
# 1.0.0-alpha.1 (2021-12-21) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 21, 2021
# 1.0.0-alpha.1 (2021-12-21) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 22, 2021
# 1.0.0-alpha.1 (2021-12-22) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 23, 2021
# 1.0.0-alpha.1 (2021-12-23) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Dec 23, 2021
# 1.0.0-alpha.1 (2021-12-23) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
github-actions bot
pushed a commit
that referenced
this issue
Apr 21, 2022
# 1.0.0-alpha.1 (2022-04-21) ### Bug Fixes * **Connection:** Fix an issue where initial data was missing important pieces. ([38511c7](38511c7)) * **HTTPS:** Fixes an issue with connecting using HTTPS. Closes [#206](#206) ([f721b2a](f721b2a)) * **Issue Tracker:** Fixes an issue where the issue tracker doesn't submit properly. Closes [#200](#200) ([a77aef5](a77aef5)) * **NetRequest:** Improves the subscription process for net requests. Closes [#151](#151) ([#152](#152)) ([19ee470](19ee470)) * **Networking:** Fixes an issue where reconnecting doesn't restart netRequests. Closes [#79](#79) ([ed42a80](ed42a80)) ### Features * **Client:** Make it possible to assign a client to a station. ([#118](#118)) ([0e1119b](0e1119b)), closes [#92](#92) * **Docs:** Add a built-in search ([#55](#55)) ([0b178db](0b178db)) * **Docs:** Added more docs for NetRequests and writing plugins. ([4f7eaa9](4f7eaa9)) * **Flight:** Add the UI for configuring the crew for a flight. Closes [#100](#100) ([c8c2198](c8c2198)) * **Issue Tracker:** Add the issue tracker component ([#142](#142)) ([ac16ff7](ac16ff7)), closes [#83](#83) * **Plugins:** Add support for configuring ship templates in plugins. ([1640856](1640856)), closes [#64](#64) [#58](#58) [#59](#59) [#60](#60) * **Plugins:** Asset uploading ([f082d47](f082d47)) * **Ship Map:** Add deck creation and image upload. Closes [#166](#166). Closes [#171](#171). ([55970ab](55970ab)) * **Ship Map:** Add the backend for adding and removing nodes and edges from the ship map. ([49fa053](49fa053)) * **Ship Map:** Add the backend for creating decks on a ship and uploading background images. ([0bfd79d](0bfd79d)) * **Ship Map:** Adds the ability to configure the node and edge graph for ship maps. ([5ecb1ac](5ecb1ac)) * **Ship Systems:** Add the backend structures for defining ship systems. ([d13c17c](d13c17c)) * **Star Map:** Add an editor palette for updating properties of solar systems. ([877156c](877156c)) * **Star Map:** Add auto-generated nebula background to the interstellar and system maps. ([18be783](18be783)) * **Star Map:** Add backend and API for adding, updating, and deleting stars from solar systems. Closes [#174](#174) ([10c71a3](10c71a3)) * **Star Map:** Add backend and API for adding, updating, and deleting stars from solar systems. Closes [#174](#174) ([681e97a](681e97a)) * **Star Map:** Add the APIs for adding, removing, and updating solar system plugins. Refs [#173](#173) ([f469d69](f469d69)) * **Star Map:** Add the backend data structure for storing Solar Systems in plugins. Refs [#173](#173) ([febab2c](febab2c)) * **Star Map:** Add the backend structures for stars, planets, and moons. ([8230488](8230488)) * **Star Map:** Clean up the 3D view and create a top-down 2D view. Closes [#179](#179). Closes [#178](#178). ([a0675b4](a0675b4)) * **Star Map:** Enables configuring solar systems, including stars and planets. ([96ed284](96ed284)) * **Star Map:** Major improvements to the camera controls for the interstellar star map. ([0141d6d](0141d6d)) * **Station:** Add the ability to escape from cards ([#153](#153)) ([86bba7a](86bba7a)), closes [#146](#146) [#151](#151) * **Stations:** Create the necessary scaffolding for a station complement plugin aspect. ([3b02377](3b02377)), closes [#87](#87) * **Station:** Station Layout ([#139](#139)) ([13d0e9b](13d0e9b)) * **Themes:** Add the ability to assign a theme to a ship. Closes [#133](#133) ([#145](#145)) ([fb5eb5c](fb5eb5c)) * **Thorium Account:** Add support for signing into the Thorium Account within Thorium Nova. ([#106](#106)) ([8b5b58a](8b5b58a))
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A bit of explanation. Skip ahead to the "Net Request" section if you just want to know what this issue is about.
Okay, there is currently one way of getting data from the client to the server: Inputs. Inputs are given parameters, make changes to the database, and trigger publishes. Pretty simple.
There are currently two ways of getting data from the server to the client: Data Streams and Card Subscriptions.
Data Streams are pretty simple. Some data needs to be sent at high frequency. To keep bandwidth low, we only send the kind of data that would change frequently - XYZ position and rotation. Cards can subscribe to a data stream by exporting a function that filters the list of all entities so the card only gets the data for those entities.
Card Subscriptions are also defined by cards and cause the server to automatically send data to clients, without them even needing to ask for it. The card exports a
fetch
function which is called when the card is first loaded and whenever there is change to the data (signaled by apubsub.publish
call). That function collects the data the card needs and sends it down. Optionally, card subscriptions can define afilter
function, which will only make thefetch
function call if thefilter
function returns true.Since the server automatically sends the card subscription data, it's not possible to pass parameters to those functions. The only "parameter" the
fetch
andfilter
functions get is the ID of the client making the request, which they can use to find out what ship and station are assigned to that client and derive even more context from that.Net Request
In some cases, though, we need to pass parameters to get data. This came up as I was working on the plugins, where I wanted to just subscribe to changes to a single plugin, but the current data fetching mechanisms don't provide that.
So, here's how Net Requests work. The client sends a web socket message that looks like
{type: "netRequest", data:{requestName:string, params:any}, requestId:string}
to the server. The server IDs the subscription to keep track of it, calls a function matching therequestName
with theparams
that were sent, and starts sending{type:"netRequestData", data:any}
messages back to the client. Those messages are triggered bypubsub.publish
calls, just like card subscriptions, and call the function for each subscribed client.Net Requests can choose to not send a message to a client, based on the client context or the parameters passed in, by
throw
-ingnull
.Net Requests are defined in the
/server/src/netRequests
folder, and look an awful lot likenetSends
- just with subscription handling.Net Requests can be ended either by the client disconnecting or the client sending a web socket message that says
{"type": "netRequestEnd", requestId:string}
. Changing parameters for the request requires unsubscribing and resubscribing.On the client, requests can be made using a new hook called
useNetRequest
. The hook takes two parameters - the name of the request and the params for the request, and it returns the data, automatically updating when new data comes in. Behind the scenes, the hook takes care of sending the appropriate WebSocket messages, caching the data, and providing it to the component.The text was updated successfully, but these errors were encountered: