Manage Vercel env vars and Supabase DB from the NowPage dashboard. No more context-switching to external tools.
Manage Vercel project env vars from the app dashboard. No more switching to vercel.com for key rotation.
API route /api/ops/vercel-env (GET) calls Vercel REST API to list env vars. Returns key name, target (production/preview/development), type, last updated. Secret values are never returned — only names and metadata. Admin-only.
Depends on: Credential Vault (resolveKey for VERCEL_TOKEN)
POST/PATCH/DELETE handlers on the same route. Create new env vars, update values, or remove them — all through the Vercel REST API. Every change gets logged to ops_audit_log with who, what, when.
"Push to Vercel" button next to vault keys that also exist as Vercel env vars. One-click sync. "Pull from Vercel" imports a Vercel env var into the vault (encrypted). Visual badges show sync status: in-sync, out-of-sync, vault-only, vercel-only.
Run SQL queries and apply migrations from the app dashboard. No more switching to Supabase Studio.
Textarea with execute button and results table. Read-only mode toggle wraps queries in a read-only transaction. Query history saved in localStorage (last 20). Duration display. 30-second timeout, max 1000 rows. Admin-only.
Lists pending migration files from supabase/migrations/. Shows which have been applied (tracked in _migrations_applied table). One-click "Apply" button runs the migration SQL and marks it as applied. Shows full error output on failure.
List all tables with row counts. Click to expand: columns with types, nullable, defaults. Shows indexes, foreign keys, and RLS policies per table. Read-only — no schema modifications from this view.
New "Ops" section in the dashboard, visible only to admin. Sub-tabs: Vercel Env Vars | SQL Editor | Migrations | Schema. Each sub-tab renders the corresponding component. Collapsible like existing sidebar panels.
| File | Role |
|---|---|
| app/api/ops/vercel-env/route.ts | Vercel env var CRUD |
| app/api/ops/sql/route.ts | SQL query execution |
| app/api/ops/migrations/route.ts | Migration list + apply |
| app/api/ops/schema/route.ts | Schema browser data |
| app/api/ops/vercel-sync/route.ts | Vault ↔ Vercel sync |
| components/OpsPanel.tsx | Container with sub-tabs |
| components/VercelEnvManager.tsx | Env var table + CRUD UI |
| components/SqlEditor.tsx | Query editor + results |
| components/MigrationRunner.tsx | Migration list + apply UI |
| components/SchemaBrowser.tsx | Table/column/RLS browser |