test(cli): codify local stack config parity - #6079
Conversation
Supabase CLI previewnpx --yes https://pkg.pr.new/supabase/cli/supabase@de9db547680f15c187ba58f1600ea9e4b8dcf45aPreview package for commit |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc38a1202e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3e70eb6033
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 73392f3c0b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e6d8e8b202
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1fab5d22bf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4d3f3884d7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 94698466f7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf2289a528
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 70d97dadd6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: de9db54768
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } satisfies Record<keyof ProjectConfig["auth"]["hook"]["send_email"], Node>; | ||
|
|
||
| const authRateLimitParity = { | ||
| email_sent: legacyIgnoredLocalRuntimeField, |
There was a problem hiding this comment.
Treat SMTP email rate limits as runtime config
When auth.email.smtp.enabled = true, auth.rate_limit.email_sent is not ignored: the legacy start path appends GOTRUE_RATE_LIMIT_EMAIL_SENT from that config value (apps/cli-go/internal/start/start.go:642-645), and the TS legacy port mirrors it in gotrue.service.ts. Classifying this leaf as not-applicable means the parity ledger will teach the launch resolver to drop a real SMTP rate-limit override instead of blocking or mapping it; the fresh evidence is the SMTP-enabled branch that overrides the later hardcoded default.
AGENTS.md reference: apps/cli/AGENTS.md:L483-L485
Useful? React with 👍 / 👎.
| decision: unsupportedRuntimeField, | ||
| children: { | ||
| enabled: unsupportedRuntimeField, | ||
| subject: unsupportedRuntimeField, | ||
| content_path: unsupportedRuntimeField, |
There was a problem hiding this comment.
Gate disabled email notifications on enablement
When an [auth.email.notification.<name>] table has enabled = false, legacy start skips that notification before mounting templates or emitting GOTRUE_MAILER_NOTIFICATIONS_*/subject/template env (apps/cli-go/internal/start/start.go:689-693, mirrored by the TS port's enabled filter). Marking the wildcard branch and all children as raw-document will make a future parity resolver block an explicit disabled notification stub even though it cannot affect local Auth; this subtree should use enabled-subtree semantics so only enabled notifications block.
AGENTS.md reference: apps/cli/AGENTS.md:L483-L485
Useful? React with 👍 / 👎.
| service_role_key: unsupportedGlobalSecretRuntimeField, | ||
| rate_limit: authRateLimitParity, | ||
| captcha: { | ||
| enabled: unsupportedRuntimeField, |
There was a problem hiding this comment.
Gate disabled CAPTCHA settings on enablement
For a present [auth.captcha] table with enabled = false, legacy validation does not require provider/secret and local start only emits GOTRUE_SECURITY_CAPTCHA_ENABLED=false (the provider and secret cannot be used while CAPTCHA is disabled). Treating the enabled leaf as raw-document means an explicit disabled CAPTCHA stub is reported as an unsupported runtime override even though it is behaviorally equivalent to no CAPTCHA config; gate this subtree on CAPTCHA actually being enabled.
AGENTS.md reference: apps/cli/AGENTS.md:L483-L485
Useful? React with 👍 / 👎.
Summary
Adds a typed local-stack configuration parity ledger that classifies every schema-backed project configuration field by current support and required handling. Nested
keyofrecords make schema additions require an explicit parity decision, including fixed shapes inside dynamic function, bucket, and email-template maps.Records when raw source presence is required so the upcoming launch Adapter can distinguish omitted defaults from explicit user intent. The ledger deliberately marks only behavior already consumed by the next local-runtime flows as mapped.