Reference mockup — use this screen map when building portal/frontend
Getting started checklist
Per-company isolation: Each customer gets its own GCP project (apps, billing, secrets).
Deployments use a FIFO queue with bundle_id so
com-a backend + frontend never mismatch with com-b.
Backend deploys first; frontend build receives the live backend URL.
GCP projects (all companies)
GET /api/admin/gcp-projects
Quick actions
GET /api/apps · deploy queue
Needs attention
Deploy queue (active)
Deploy queue · bundle_id pairing
GET /api/admin/deploy-queue · queue_id, bundle_id, company_id, app_id, phase
Recent activity
Customer tenants. Each company typically has one dedicated GCP project for apps, billing, and secrets.
Company
ID
GCP projects
Apps
GET /api/admin/companies · POST · PATCH · DELETE (409 if apps exist)
FIFO queue with bundle_id pairing. Backend job completes before frontend unlocks.
Max parallel builds configurable in Portal settings.
Position in queue shown per job
GET /api/admin/deploy-queue · Cloud Tasks / Firestore worker
One GCP project per company. Create from the portal or link manually if the customer
already created a project in GCP Console — register by project ID.