These are the screens served at the Console root (/) plus the project-level entry points. Source: apps/studio/src/features/platform and features/projects.
Platform screens
| Route | Page | Notes |
|---|---|---|
/ | Projects | Project list for the active org |
/new | Create project | Name, domains, CORS, image, cert resolver, resource limits |
/team | Team | Requires the users.manage capability (owner) |
/usage | Usage | Per-project CPU/memory against quota |
/logs | Platform logs | The Console's own log buffer |
/billing | Billing | Only when CONSOLE_BILLING_ENABLED=true |
/settings | Org settings | Console settings and org management |
Billing is off by default on purpose: a self-hosted install has no metered vendor billing, so the tab would be a promise the product does not make. Operators reselling projects to clients turn it on.
Organizations
features/platform/api → the Console org API:
GET /platform/orgs
POST /platform/orgs { name }
PATCH /platform/orgs/:id { name }
DELETE /platform/orgs/:id
GET /platform/orgs/:id/members
POST /platform/orgs/:id/members { userId, role }
DELETE /platform/orgs/:id/members/:userIdOrgLayout provides the switcher; the active org scopes the project list. Model details: users and organizations.
Operator sessions
GET /auth/list-sessions
POST /auth/revoke-session { token }
POST /auth/revoke-other-sessionsYour own Console sessions, revocable individually or all-but-current.
Project overview and connect
features/projects/api:
| Call | Endpoint |
|---|---|
| Connection info | GET /admin/connect-info |
| Database connection | GET /admin/database/connection |
| API keys | GET / POST /admin/api-keys, DELETE /admin/api-keys/:id |
| Health | GET /health-check |
| Stats | GET /admin/stats |
| Recent logs | GET /admin/logs?limit=200 |
Connect (/p/:id/connect) renders the URLs and keys an app needs — the values
you pass to createClient(url, key) — with per-framework snippets and a
Generate types action.
It also carries a Database connection card, for the callers that do not go through the SDK: an ORM, a migration tool, psql, a BI client. Three modes (over an SSH tunnel, direct, and from another container on the project network), with the password masked behind a reveal. See Connecting directly.
Project Settings
/p/:id/settings holds what spans the whole project. A setting that belongs to one product is on that product's
page and only there, so no setting is editable in two places:
| Panel | Holds |
|---|---|
| General | Appearance, operator, project identity, and the danger zone |
| API keys | Publishable and secret project keys, and api.keys (enforcement) |
| JWT keys | The keys access tokens are signed with |
| Database access | Network restrictions and SSL enforcement |
| Log drains | External destinations for the log stream |
| Backend control | Restart and rebuild, the project shell, DNS checks |
| Backups / restore | backup.schedule and restores |
| Security | server.cors, security.rateLimit, security.rateLimitRules |
| Data · Retention | data.retention |
| Push notifications | push.fcm, push.apns and a test push |
| Custom domains | The API's own hostname |
Elsewhere: auth groups and their delivery transports (email.*, phone.sms) under Authentication; database.sqlEditor
under Database → Settings; storage.* under Storage → Settings; realtime.* under Realtime; logs.retention on
the Logs page; api.rest in the API explorer; ai.assistant in the assistant dock; git.github in the GitHub card, one component shown on both Migrations and Integrations.
A panel can be opened directly with its key as the hash, e.g. /p/:id/settings#security.
Project Settings → API keys manages the publishable and secret keys, and the enforcement toggle. A secret key is displayed exactly once, at creation; the panel says so and offers a copy button, because it is the only chance. See API Keys.
Overview (/p/:id/overview) combines health, stats and recent log lines.
Integrations
GET /admin/integrations
POST /admin/integrations/:key/connect { secrets, installFunctions }
DELETE /admin/integrations/:key?removeFunctions=<bool>Connecting stores secrets and optionally installs the integration's prebuilt edge functions; disconnecting can remove them again. Catalogue: Integrations.
Platform-level backup actions
platformApi also exposes backup operations used outside the database screens:
GET /admin/backups
POST /admin/backups
POST /admin/backups/export
POST /admin/backups/restore { file, confirm: 'RESTORE' }
POST /admin/backups/clone-staging { targetDatabaseUrl, confirm: 'CLONE' }clone-staging copies a project's database into the target DATABASE_URL you supply and requires confirm: 'CLONE'. Point it at a staging database — it overwrites the destination.
Supabase import
features/projects/supabase-conn.ts parses a Supabase connection string for the import flow. What the importer moves — public schema, table data, RLS policies, auth users — is covered in migrate from Supabase.
Related
- Console API — the endpoints behind these screens.
- Contributing · conventions — the feature-folder layout these screens follow.