aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
225 lines (195 loc) • 7.87 kB
YAML
tool:
schema_version: 1.0
id: supabase-cli
type: cli
name: Supabase CLI
version: 1.0.0
description: Official Supabase command-line interface for local development, database migrations, Edge Functions, and project management
knowledge_strategy: declarative
capabilities:
- Local Supabase stack (PostgreSQL, Auth, Storage, Realtime)
- Database migrations and version control
- Edge Functions development and deployment
- Database diff and schema comparison
- Type generation for TypeScript
- Project linking and management
- Self-hosting setup
use_cases:
- local_development: "Run full Supabase stack locally with Docker"
- migration_management: "Create and apply database migrations"
- edge_functions: "Develop and deploy serverless functions"
- type_safety: "Generate TypeScript types from database schema"
- schema_diffing: "Compare local and remote database schemas"
- project_setup: "Initialize and configure Supabase projects"
installation:
npm: "npm install -g supabase"
homebrew: "brew install supabase/tap/supabase"
scoop: "scoop bucket add supabase https://github.com/supabase/scoop-bucket.git && scoop install supabase"
cli_specific:
executable: "supabase"
configuration:
config_file: "supabase/config.toml"
migrations_dir: "supabase/migrations"
functions_dir: "supabase/functions"
seed_file: "supabase/seed.sql"
command_groups:
initialization:
- command: "supabase init"
description: "Initialize a new Supabase project"
creates:
- "supabase/config.toml"
- "supabase/.gitignore"
- command: "supabase link"
description: "Link to a remote Supabase project"
common_flags:
- "--project-ref"
notes:
- "Requires Supabase access token"
- "Creates .env with SUPABASE_ACCESS_TOKEN"
local_development:
- command: "supabase start"
description: "Start local Supabase stack"
requirements:
- "Docker Desktop running"
provides:
- "PostgreSQL on localhost:54322"
- "Studio UI on http://localhost:54323"
- "Kong API Gateway on localhost:54321"
- "Inbucket email testing on localhost:54324"
- command: "supabase stop"
description: "Stop local Supabase stack"
common_flags:
- "--no-backup (skip backup before stopping)"
- command: "supabase status"
description: "Show status of local services"
output:
- "Service URLs and credentials"
- "API keys (anon, service_role)"
database_migrations:
- command: "supabase db diff"
description: "Generate migration from schema changes"
common_flags:
- "--file MIGRATION_NAME"
- "--schema public"
workflow:
- "Make schema changes in local database"
- "Run db diff to generate migration SQL"
- "Review and commit migration file"
- command: "supabase migration new"
description: "Create a new empty migration file"
usage: "supabase migration new MIGRATION_NAME"
generates: "supabase/migrations/YYYYMMDDHHMMSS_migration_name.sql"
- command: "supabase db push"
description: "Push local migrations to remote database"
common_flags:
- "--dry-run (preview without applying)"
notes:
- "Applies all pending migrations"
- "Requires linked project"
- command: "supabase db reset"
description: "Reset local database and reapply migrations"
common_flags:
- "--db-url (specify database URL)"
warning: "Destructive - drops all data"
edge_functions:
- command: "supabase functions new"
description: "Create a new Edge Function"
usage: "supabase functions new FUNCTION_NAME"
creates: "supabase/functions/FUNCTION_NAME/index.ts"
- command: "supabase functions serve"
description: "Serve Edge Functions locally"
common_flags:
- "--env-file (load environment variables)"
- "--no-verify-jwt (disable JWT verification)"
runs_on: "http://localhost:54321/functions/v1/FUNCTION_NAME"
- command: "supabase functions deploy"
description: "Deploy Edge Functions to remote project"
usage: "supabase functions deploy FUNCTION_NAME"
common_flags:
- "--no-verify-jwt"
type_generation:
- command: "supabase gen types typescript"
description: "Generate TypeScript types from database schema"
common_flags:
- "--local (use local database)"
- "--project-id PROJECT_REF (use remote project)"
- "--schema public"
output: "TypeScript definitions for database tables and views"
usage_example: "supabase gen types typescript --local > database.types.ts"
testing:
- command: "supabase db test"
description: "Run pgTAP tests"
requirements:
- "pgTAP extension enabled"
- "Test files in supabase/tests/"
secrets:
- command: "supabase secrets set"
description: "Set secrets for Edge Functions"
usage: "supabase secrets set KEY=VALUE"
notes:
- "Secrets available in Edge Functions via Deno.env"
- command: "supabase secrets list"
description: "List all secrets"
workflow_patterns:
feature_development:
- step: 1
action: "supabase start"
purpose: "Start local stack"
- step: 2
action: "Make schema changes in Studio or SQL"
purpose: "Develop feature"
- step: 3
action: "supabase db diff --file feature_name"
purpose: "Generate migration"
- step: 4
action: "supabase db reset"
purpose: "Test migration"
- step: 5
action: "supabase db push"
purpose: "Deploy to remote"
edge_function_development:
- step: 1
action: "supabase functions new my_function"
purpose: "Create function"
- step: 2
action: "Edit supabase/functions/my_function/index.ts"
purpose: "Implement logic"
- step: 3
action: "supabase functions serve"
purpose: "Test locally"
- step: 4
action: "supabase functions deploy my_function"
purpose: "Deploy to remote"
best_practices:
- "Always version control supabase/migrations directory"
- "Use db diff instead of manual migration writing"
- "Test migrations with db reset before pushing"
- "Keep migrations small and atomic"
- "Use descriptive migration names"
- "Generate types after schema changes"
- "Store secrets in proper environment, not in code"
- "Use --dry-run flag before db push"
authentication:
access_token:
purpose: "Required for linking and remote operations"
obtain: "From Supabase Dashboard > Account > Access Tokens"
env_var: "SUPABASE_ACCESS_TOKEN"
scope: "Project-level access"
common_issues:
docker_not_running:
error: "Cannot connect to Docker daemon"
solution: "Start Docker Desktop before running supabase start"
port_conflicts:
error: "Port already in use"
solution: "Stop conflicting services or change ports in config.toml"
migration_conflicts:
error: "Migration conflict detected"
solution: "Resolve conflicts in migration files, ensure proper ordering"
outdated_cli:
error: "CLI version too old"
solution: "Update CLI: npm update -g supabase or brew upgrade supabase"
limitations:
- "Requires Docker for local development"
- "Some features may differ between local and remote"
- "Edge Functions use Deno runtime (not Node.js)"
- "Migration rollback requires manual SQL"