Browse documentation

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

RoutePageNotes
/ProjectsProject list for the active org
/newCreate projectName, domains, CORS, image, cert resolver, resource limits
/teamTeamRequires the users.manage capability (owner)
/usageUsagePer-project CPU/memory against quota
/logsPlatform logsThe Console's own log buffer
/billingBillingOnly when CONSOLE_BILLING_ENABLED=true
/settingsOrg settingsConsole 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/:userId

OrgLayout 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-sessions

Your own Console sessions, revocable individually or all-but-current.

Project overview and connect

features/projects/api:

CallEndpoint
Connection infoGET /admin/connect-info
Database connectionGET /admin/database/connection
API keysGET / POST /admin/api-keys, DELETE /admin/api-keys/:id
HealthGET /health-check
StatsGET /admin/stats
Recent logsGET /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:

PanelHolds
GeneralAppearance, operator, project identity, and the danger zone
API keysPublishable and secret project keys, and api.keys (enforcement)
JWT keysThe keys access tokens are signed with
Database accessNetwork restrictions and SSL enforcement
Log drainsExternal destinations for the log stream
Backend controlRestart and rebuild, the project shell, DNS checks
Backups / restorebackup.schedule and restores
Securityserver.cors, security.rateLimit, security.rateLimitRules
Data · Retentiondata.retention
Push notificationspush.fcm, push.apns and a test push
Custom domainsThe 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' }
Warning

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.