Construct backend interfaces from a shared server - #1254
Open
floitsch wants to merge 3 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on #1253.
Why
The CLI should depend on the roles it needs, while transport, authentication,
scope, and connection lifetime can still be shared. A combined backend object
would preserve the coupling we are trying to remove and would make it harder
to assign different implementations to different roles later.
What
Serverconnection abstraction that owns transport,authentication, scope, and lifetime.
UpdateBrokerpublishes desired update state and handles provisioning.ArtifactStorestores firmware and application images.PodStorestores pod metadata, manifests, and parts.BrokerStateReaderandBrokerEventReader.FleetStore: the fleet is currently the localfilesystem/YAML model, and belongs behind a different future boundary.
Server; there is noCombinedBackendadapter.assigned to both Artemis and broker roles, construct the combined
UpdateBrokerimplementation that also registers the device with Artemis.Supabase update-broker implementations.
/functions/v1/bendpoint unchanged.This matches the intended configuration model: construct a server and assign
its implementations to selected roles. Later configurations can mix providers,
and the Supabase v1 edge functions can split by interface without changing the
CLI call sites again.
Verification
broker-test.toitwith standalone and combined HTTP brokers.pod-registry-test.toitwith standalone and combined HTTP brokers.the two-argument
new_provisionedRPC payload.