Solutions · Per-tenant AI

Ship per-customer AI without rebuilding the bundle.

Adding an agent feature to a B2B SaaS means giving every customer isolated compute, isolated data, scoped credentials, and a cost you can attribute. That’s a stack most teams build from scratch. Compose sys9 services with your application — create a Box and database per tenant, scope credentials, and track the resources each customer uses.

Separate tenant resourcesExplicit authorizationTrack compute and storage
the per-tenant bundle

Four things every customer needs.

Compose separate compute and data with scoped credentials and your own resource inventory. Your application owns tenant identity, authorization, and attribution.

run9

Isolated compute per tenant

Create a Box per customer from a template containing only shareable code and data. A Root Snap contains filesystem state; persistent Volumes and running processes are separate.

db9

Isolated data per tenant

Create a database per customer and restrict its credentials to that customer. Map application tenants to the right resources and authorize every request; database separation does not replace those checks.

drive9

Per-agent secrets

Use drive9 contexts and explicit vault grants to limit credential access. Your application selects the correct tenant context, permission, and lifetime for each agent.

run9

Track compute and storage

Track Host Compute, retained storage, and other service usage separately. Your application keeps the mapping from each resource to its tenant; idle capacity and retained data can still contribute to usage.

the shape

Separate resources with explicit tenant authorization.

A separate database and Box reduce shared execution and data surfaces. Your application still maps tenants to orgs, projects, databases, and credentials, and checks access on every operation.

resource creation is one step

Create resources, then grant access deliberately.

Before this example, install sys9, authenticate run9 in the intended project, and prepare app-template with only public seed data. Choose resource names unique to your customer. After creation, store the tenant-to-resource mapping and grant scoped credentials through your application. A Box name does not create a tenant access policy.

db per tenant sandbox per tenant per-agent secret grants application authorization
terminal
# app-template contains only shareable seed data
sys9 db branch create app-template --name tenant-acme
sys9 db db status tenant-acme
# Do not route tenant queries until ACTIVE; stop on CREATE_FAILED.

# Uses the authenticated run9 project
sys9 run box create tenant-acme --image public.ecr.aws/docker/library/alpine:3.20

# Next: record resource IDs in your tenant inventory.
# Issue scoped credentials and enforce access in your app.
# Names alone do not authorize tenant access.
cost that maps to customers

Account for retained data and reserved capacity.

Tenant attribution comes from your resource inventory. Measure compute and storage separately and confirm product-specific rates and quotas before setting your own prices.

Track compute and storage

Host capacity and retained storage have separate usage. Reclaim resources you no longer need; stopping an agent does not imply zero total usage.

Per-product usage

Keep tenant identifiers in your resource inventory and reconcile each service separately. Shared hosts and resources need an attribution policy in your application.

Prepare safe templates

Keep templates free of customer data and credentials. Validate provisioning, resource quotas, and deletion paths for each tenant.

on the roadmap

Identity is still part of your application.

Use each product’s current authentication and your own tenant authorization. auth9 is a planned product, not a dependency you can deploy today.

auth9 — one identity, any sys9. The planned direction is shared identity for sys9 services. Scope and availability remain subject to the product roadmap. Today, drive9 vault grants control secret access in drive9; they do not establish cross-service identity or replace your application’s authorization policy. auth9 · planned — follow along →
start with a tenant model

Give every customer their own isolated agent.

Tell us about the per-tenant AI you’re shipping. We can help map your identity model, resource boundaries, and expected usage to the current services.