Multi-Tenancy Guide
MyCLI supports enterprise multi-tenancy with multiple isolation strategies.
Strategies
| Strategy | Isolation | Use Case | |----------|-----------|----------| | shared-db | Row-level (tenant_id column) | SaaS with many tenants, cost-effective | | schema-per-tenant | Schema-level isolation | Medium isolation, Postgres/MySQL | | db-per-tenant | Separate database per tenant | Maximum isolation, compliance-heavy |
Setup
my add tenancy --model multi-tenant-saas --mode shared-db
my add tenancy --model multi-tenant-saas --mode schema-per-tenant
my add tenancy --model multi-tenant-saas --mode db-per-tenant
Database Support
Provision hooks support:
- PostgreSQL — CREATE DATABASE / CREATE SCHEMA (full automation)
- MySQL/MariaDB — CREATE DATABASE / CREATE DATABASE (schema = database)
- MongoDB — Database per tenant via separate connections
- SQLite — File-per-tenant approach
CLI Commands
my tenancy provision <slug> # Provision a new tenant
my tenancy list # List all tenants
my tenancy resolve <slug> # Show tenant connection info
my tenancy migrate <slug> # Run migrations for a tenant
my tenancy seed <slug> # Seed tenant data
Generated Files
src/modules/tenancy/tenant.middleware.ts— Request-scoped tenant resolutionsrc/modules/tenancy/tenant.context.ts— AsyncLocalStorage tenant contextsrc/modules/tenancy/tenant.resolver.ts— Strategy-specific DB resolutionsrc/modules/tenancy/tenant.guard.ts— Tenant access guardsrc/modules/tenancy/tenant.routes.ts— Tenant CRUD APIsrc/modules/tenancy/repositories/— File + Prisma tenant repositoriessrc/modules/tenancy/database/— Connection manager + provisioning (db-per-tenant)src/modules/tenancy/schema/— Schema manager (schema-per-tenant)