Tracking issue for the growth roadmap: make the first project easy to start, then provide an operator-native dashboard for managing projects.
Motivation
A SupabaseProject needs PostgreSQL and S3-compatible storage. Keeping those services external to the operator is the right lifecycle boundary, but users still need a short and proven path to a working Studio.
The original Phase A proposed managed PostgreSQL and MinIO inside the operator. We decided not to implement that direction. Database and storage provisioning, upgrades, credentials, recovery, and data lifecycle would make the operator much larger and harder to maintain.
Phase A now provides a verified quickstart using existing operators and charts. Phase B adds our own dashboard on top of SupabaseProject resources.
Phase A: verified first project
Goal: a user on a fresh cluster follows one short guide and reaches a working Studio in under 5 minutes.
Direction
- Do not add managed database or managed storage fields to SupabaseProject.
- Keep PostgreSQL and S3-compatible storage external to Supabase Operator.
- Install PostgreSQL with CloudNativePG using the
supabase/postgres image, postgresUID: 101, postgresGID: 102, and superuser access.
- Install object storage with the official MinIO chart in standalone mode.
- Keep ready-to-apply manifests in the repository.
- Use the same existing Secret contracts and database initialization path.
The decision and tradeoffs are recorded in ADR 0001.
Tasks
Implementation and validation landed in PR #19.
Phase B: operator dashboard
Goal: installing the Helm chart always provides our dashboard. Users can open it and manage SupabaseProject resources without installing or enabling another feature.
Product behavior
- Dashboard is installed by default with Supabase Operator.
- There is no
console.enabled or similar feature flag.
- The default Service is ClusterIP. Initial access uses
kubectl port-forward.
- No public Ingress is created by default.
- SupabaseProject resources and Kubernetes Secrets remain the source of truth.
- Dashboard has no database of its own.
Architecture
- Backend: REST API over the Kubernetes API.
- Frontend: static SPA served as part of the dashboard.
- Packaging: always included in the existing Helm chart.
- Initial access control: users need Kubernetes access to reach the ClusterIP service through port-forward. Public access and multi-user authentication are separate future work.
Pages and workflows
- Project list: namespace, name, phase, and component health.
- Project detail: conditions, component status, endpoints, and API keys with reveal action.
- Create wizard: create a SupabaseProject from existing database and storage Secrets.
- Delete project: remove a SupabaseProject with explicit confirmation.
The dashboard does not provision PostgreSQL or MinIO. The create wizard points users to the Phase A quickstart when dependency Secrets are not ready.
Tasks
Non-goals for the first dashboard MVP
- Managed PostgreSQL or MinIO.
- Multi-user management or organizations.
- Metrics dashboards.
- Public Ingress or a separate authentication system.
Success metrics
- Phase A: a new user reaches a working Studio in under 5 minutes from a fresh cluster.
- Phase B: after Helm install, port-forwarding the dashboard Service shows the current SupabaseProject list and health.
Tracking issue for the growth roadmap: make the first project easy to start, then provide an operator-native dashboard for managing projects.
Motivation
A SupabaseProject needs PostgreSQL and S3-compatible storage. Keeping those services external to the operator is the right lifecycle boundary, but users still need a short and proven path to a working Studio.
The original Phase A proposed managed PostgreSQL and MinIO inside the operator. We decided not to implement that direction. Database and storage provisioning, upgrades, credentials, recovery, and data lifecycle would make the operator much larger and harder to maintain.
Phase A now provides a verified quickstart using existing operators and charts. Phase B adds our own dashboard on top of SupabaseProject resources.
Phase A: verified first project
Goal: a user on a fresh cluster follows one short guide and reaches a working Studio in under 5 minutes.
Direction
supabase/postgresimage,postgresUID: 101,postgresGID: 102, and superuser access.The decision and tradeoffs are recorded in ADR 0001.
Tasks
docs/quickstart.mdusing the checked-in manifests.Implementation and validation landed in PR #19.
Phase B: operator dashboard
Goal: installing the Helm chart always provides our dashboard. Users can open it and manage SupabaseProject resources without installing or enabling another feature.
Product behavior
console.enabledor similar feature flag.kubectl port-forward.Architecture
Pages and workflows
The dashboard does not provision PostgreSQL or MinIO. The create wizard points users to the Phase A quickstart when dependency Secrets are not ready.
Tasks
Non-goals for the first dashboard MVP
Success metrics