Single-Tenant & On-Prem Plan
Status as of April 17, 2026: Control Plane Migrated (Rust Native).
Goal
ButtrBase should support four deployment topologies behind one product contract:
- multi-tenant SaaS
- single-tenant managed cloud
- single-tenant BYOC
- on-prem / air-gapped
- dedicated compute and data isolation
- private networking
- customer-owned cloud accounts
- stricter residency controls
- offline or tightly firewalled deployments
- same customer-facing API contract
- same RBAC and entitlement model
- same audit-event schema
- same app, org, team, and identity object model
- control plane
- runtime plane
- dedicated Postgres instance or database
- dedicated object storage namespace
- dedicated secret namespace
- dedicated queue or worker namespace
- dedicated provider credentials
- ButtrBase-managed provider accounts
- customer-managed provider accounts
- manual invoice mode
- shared warehouse for SaaS
- isolated dataset or warehouse for single-tenant
- local export or customer-owned telemetry stack for on-prem
/docs/enterprise/enterprise-readiness/docs/enterprise/rust-production-architecture/docs/enterprise/staging-smoke-tests
The API, admin UX, entitlements, audit model, and billing decision contract should stay as consistent as possible across all four.
Why This Matters
Larger customers often need one or more of:
If deployment topology is real product scope, it has to be modeled deliberately instead of handled as a custom services exception.
Target Modes
Multi-Tenant SaaS
Shared runtime with tenant isolation at the data and authorization layers.
Single-Tenant Managed Cloud
ButtrBase runs a dedicated application stack, database, storage namespace, and secrets boundary for one customer.
Single-Tenant BYOC
ButtrBase deploys into customer-owned cloud infrastructure with customer networking and secrets controls.
On-Prem / Air-Gapped
ButtrBase ships as a packaged deployment inside customer infrastructure with minimal or no dependency on hosted ButtrBase services.
Product Invariants
These should stay stable across deployment modes:
If a mode needs a capability difference, that difference should be explicit and documented.
Architecture Direction
Control Plane vs Runtime Plane
Split the platform logically into:
For SaaS they may share infrastructure. For single-tenant and on-prem they should be deployable separately.
Minimum Isolation For Single-Tenant
Schema-only isolation is not enough for the single-tenant SKU.
Billing Implications
On-prem should not assume a shared ButtrBase-managed Stripe or PayPal account.
Plan for three billing execution modes:
The pricing decision APIs should stay stable even if provider execution differs.
Analytics Implications
Keep the analytics contract stable, but vary the sink by topology:
Recommended Build Order
1. add a first-class deployment_mode
2. make provider and storage configuration topology-aware
3. define the first managed single-tenant reference architecture
4. define the on-prem packaging, upgrade, and diagnostics story
5. document supported and unsupported capabilities per mode