@smta/cli
v0.4.0
Published
SMTA deployment CLI — combines and outputs a versioned SQL deployment script
Readme
@smta/cli
The deployment CLI for SMTA (SaaS Multi-Tenant Architecture). Combines the SQL files from @smta/core and your chosen adapter into a single deployment script, versioned and ready to apply to your PostgreSQL database.
Usage
No installation required — run directly with npx:
# Supabase deployment (59 SQL files)
npx @smta/cli --adapter supabase
# → SMTA-supabase-<timestamp>.sql
# Payload CMS deployment (57 SQL files)
npx @smta/cli --adapter payload
# → SMTA-payload-<timestamp>.sqlThe generated file is written to your current directory. Apply it to your database:
# Via psql
psql "$DATABASE_URL" -f SMTA-supabase-<timestamp>.sql
# Via Supabase SQL Editor
# Paste the file contents and runSee the Installation guide and adapter-specific quick starts at smta.dev for the full setup walkthrough.
Options
| Flag | Default | Description |
|------|---------|-------------|
| --adapter | supabase | Adapter to use: supabase or payload |
How it works
The CLI resolves @smta/core and the chosen adapter package using require.resolve, reads the sql-scripts.json manifest from each to determine execution order, concatenates the SQL files with separator comments, and writes the combined output to process.cwd(). The result is a single idempotent script — re-applying it to an existing deployment is safe.
Version compatibility
All @smta/* packages are released together at the same version. The TypeScript companion packages installed in your application should match the version used to deploy:
# Deploy database
npx @smta/[email protected] --adapter supabase
# Install matching TypeScript packages
npm install @smta/[email protected] @smta/[email protected]Part of the SMTA package family
| Package | Purpose |
|---------|---------|
| @smta/core | Adapter-agnostic SQL schema |
| @smta/supabase | Supabase adapter SQL |
| @smta/payload | Payload CMS adapter SQL + middleware |
| @smta/billing | BillingProvider interface (Stripe, Lemon Squeezy) |
| @smta/schemas | Zod v4 schemas for all public.* RPC contracts |
| @smta/cli | This package — Deployment CLI |
License
MIT
