Status: proposed Date: 2026-02-10
config.json is referenced in ADRs 0003 (doc generation from schema), 0004 (project manifest), 0006 (env() syntax, environments block, branch mapping), and PLAN.md shows a @supabase/config package. No ADR captures the schema design decisions.
- Schema format: JSON Schema-based (per PLAN.md), but what generates the schema? Zod? TypeBox? Hand-written?
env()syntax: How it works, how it's parsed, error handling for missing vars- Schema versioning: How to handle schema evolution, what happens when a user's config is from an older schema version
- Validation: When does it run (on load? on push?), error messages, partial validation
- Platform variables vs user variables: Implicit binding from config paths (ADR 0006 Section 6) vs explicit
env() - Default config generation: What
supabase initproduces - Migration: From old
supabase/config.tomlto newsupabase/config.json @supabase/configpackage architecture: How it exports schema, types, and template (from PLAN.md)