Skip to content

Introduce Scope type at the BrokerCli boundary.#1239

Open
floitsch wants to merge 1 commit into
floitsch/build-artemis-service.s-new.030from
floitsch/build-artemis-service.s-new.040
Open

Introduce Scope type at the BrokerCli boundary.#1239
floitsch wants to merge 1 commit into
floitsch/build-artemis-service.s-new.030from
floitsch/build-artemis-service.s-new.040

Conversation

@floitsch
Copy link
Copy Markdown
Member

The CLI is moving toward an org-agnostic data plane where each service (broker, pod-store, fleet-store) is told 'which slice of resources to operate on' via an opaque, per-service Scope instead of a hard-coded organization-id.

This PR draws the line at the BrokerCli interface only:

  • Defines a new Scope type in src/cli/scope.toit. For now it just wraps a UUID; future PRs will let scopes carry richer (JSON-encodable) data for non-Supabase backends.
  • BrokerCli interface methods that took --organization-id/Uuid now take --scope/Scope. The HTTP impl unwraps to a UUID at the boundary; the Supabase impl inherits from HTTP and is unchanged.
  • The Broker wrapper class gains a scope getter (derived from its organization-id field for now) and uses it when calling BrokerCli internally.
  • Cache keys still take --organization-id directly; those are CLI-internal and will be migrated when scope becomes opaque.
  • Tests add a TEST-SCOPE constant in tests/utils.toit and use it at BrokerCli call sites.

Wire protocol unchanged (broker payloads still use 'organization_id' / '_organization_id' JSON fields). No behavior change.

The CLI is moving toward an org-agnostic data plane where each service
(broker, pod-store, fleet-store) is told 'which slice of resources to
operate on' via an opaque, per-service Scope instead of a hard-coded
organization-id.

This PR draws the line at the BrokerCli interface only:

- Defines a new Scope type in src/cli/scope.toit. For now it just wraps
  a UUID; future PRs will let scopes carry richer (JSON-encodable) data
  for non-Supabase backends.
- BrokerCli interface methods that took --organization-id/Uuid now take
  --scope/Scope. The HTTP impl unwraps to a UUID at the boundary; the
  Supabase impl inherits from HTTP and is unchanged.
- The Broker wrapper class gains a scope getter (derived from its
  organization-id field for now) and uses it when calling BrokerCli
  internally.
- Cache keys still take --organization-id directly; those are
  CLI-internal and will be migrated when scope becomes opaque.
- Tests add a TEST-SCOPE constant in tests/utils.toit and use it at
  BrokerCli call sites.

Wire protocol unchanged (broker payloads still use 'organization_id' /
'_organization_id' JSON fields). No behavior change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant