mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 20:14:49 +00:00
fix: give StartOS UI interface a non-empty id
The iface object in StartOsUiComponent had id: '' (empty string).
Any plugin whose action calls sdk.serviceInterface.get() with
that id triggers an RPC to the host with an empty
serviceInterfaceId, which Rust's ServiceInterfaceId type rejects
via its ID regex (^[a-z0-9]+(-[a-z0-9]+)*$).
The container runtime appends the method name to every error
message as "${msg}@${method}", so the empty-string failure
surfaces in the UI as:
Action Failed: Deserialization Error: Invalid ID: @get-service-interface
Setting id: 'startos-ui' makes it a valid, stable identifier
that passes the regex and accurately names the interface.
StartOS Web
Angular + TypeScript workspace using the Taiga UI component library.
Applications
StartOS serves one of these UIs depending on the state of the system:
- ui — Primary admin interface for managing StartOS, served on hosts unique to the instance.
- setup-wizard — Initial setup UI, served on
start.local. - start-tunnel — VPN/tunnel management UI.
Libraries
- shared — Common code shared between all web UIs (API clients, components, i18n).
- marketplace — Library code for service discovery, shared between the StartOS UI and the marketplace.
Contributing
See CONTRIBUTING.md for environment setup, development server instructions, and translation guides.