Skip to main content
The control-plane package adds a durable SQLite store for multi-tenant objects: orgs, projects, teams, billing records, usage, secret references, and audit events. Import it alongside the Gateway for these boundaries.

ControlPlaneStore API

Import the store from the public facade:
Or from the scoped package:
The store creates SQLite tables for:
  • organizations
  • teams and team membership
  • projects and project team grants
  • billing account records
  • identity-provider records for SAML/OIDC configuration
  • usage events, summaries, and quota checks
  • secret manager references, not secret values
  • audit events and org audit export
Constructing new ControlPlaneStore(sqlite) calls ensureControlPlaneTables(sqlite). Call ensureControlPlaneTables(sqlite) directly when you only need to bootstrap the schema.

Store Methods

Deleting an org cascades to all child rows: projects, teams, identity providers, billing account, usage rows, usage limits, secret references, and audit rows. There’s no soft-delete; use a status flag in your application layer for recoverable deletion.

Hosted Boundary

A hosted Smithers service should layer these primitives behind:
  • SSO/SAML or OIDC authentication
  • billing provider checkout and invoices
  • cloud object storage for large artifacts
  • managed secret provider reads at worker runtime
  • audit export delivery and retention policy
  • SLAs, support, compliance controls, and incident response
The open-source package owns the durable data contract; the hosted service owns identity, payment collection, tenant isolation, compliance operations, and infrastructure support.