Skip to content

feat(cli)!: remove deprecated config keys, env vars and per-function import maps (CLI-2597) - #7176

Merged
Coly010 merged 3 commits into
nextfrom
columferry/cli-2597-bc-remove-deprecated-config-keys-env-vars-and-file
Oct 15, 2026
Merged

Coly010 merged 3 commits into
nextfrom
columferry/cli-2597-bc-remove-deprecated-config-keys-env-vars-and-file

Conversation

@Coly010

@Coly010 Coly010 commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This removes the deprecated config keys, env var and file conventions from CLI-2597 on next. Each one now fails with an error that names its replacement, instead of being rewritten, warned about or ignored.

Removed Error Replacement
[inbucket], [remotes.<name>.inbucket] [inbucket] in supabase/config.toml is no longer supported. Use [local_smtp] instead. [local_smtp]
[experimental] orioledb_version (non-empty) experimental.orioledb_version in supabase/config.toml is no longer supported. Use db.orioledb_version instead. [db] orioledb_version
[auth.external.linkedin], [auth.external.slack] [auth.external.slack] in supabase/config.toml is no longer supported. Use [auth.external.slack_oidc] instead. linkedin_oidc, slack_oidc
SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION (set in the shell environment) is no longer supported. Use SUPABASE_DB_ORIOLEDB_VERSION instead. SUPABASE_DB_ORIOLEDB_VERSION
INBUCKET_URL in status / stack status, --override-name inbucket.url --override-name entry "inbucket.url=X" refers to inbucket.url, which was removed; use mailpit.url instead. MAILPIT_URL, mailpit.url
import_map.json in a function directory import_map.json in a function directory is no longer supported: <slugs> deno.json, or an explicit functions.<slug>.import_map
  • Why this is needed: bfe734e dropped fix(cli): warn that deprecated config, env vars and import maps are removed in v3 #7154's warnings from next because these were thought to be gone already. They weren't, so right now next still accepts all six (mostly behind the older deprecation warnings) and silently ignores SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION.
  • Config keys: a detector in @supabase/config checks the top level and every [remotes.<name>], including remotes that aren't selected. It reports every removed key in one CliConfigRemovedKeyError, which lists one per line when there's more than one. The decoder ignores unknown keys, so without it these would just be dropped. The old normalisers and the onWarning plumbing are deleted.
    • An empty orioledb_version = "" under [experimental] is still accepted, since older supabase init templates wrote it into most projects. Only a non-empty value errors, and the published JSON Schema matches that.
    • linkedin / slack error even with enabled = false, as the schema already rejects unknown provider ids.
    • saveCliConfig reads the existing $schema ref from the raw file, so saving over a file that still has removed keys works.
  • Env var: a non-empty value in the shell or project .env fails config resolution with CliConfigRemovedEnvError, and the message says where it was set.
  • import_map.json: functions deploy, functions serve and start all fail on it, so deploy and serve agree. Disabled functions are skipped, and the shared fallback supabase/functions/import_map.json works as before.
    • The experimental stack backend never read a per-function import_map.json, so nothing changes there. Its SIDE_EFFECTS now say so.
    • start now resolves function binds before pulling images, so it fails before touching Docker.
    • I've kept this strict for Studio-only starts too, since Studio mounts the functions. Happy to relax that if folk disagree.
  • @supabase/config: this touches packages/config in a ! commit, so I think it cuts a major config release once next lands on develop.
  • Stable side: the warnings that say these go away in v3 are in fix(cli): warn that deprecated config, env vars and import maps are removed in v3 #7154 (develop).

Linked issue

Closes CLI-2597

Checklist

  • The PR title follows Conventional Commits.
  • Tests added or updated.
  • pnpm check:all passes. The apps/cli unit and integration suites and the packages/config tests pass.

🤖 Generated with Claude Code

BREAKING CHANGE: [inbucket] and [remotes.<name>.inbucket] are removed; use [local_smtp]. A non-empty [experimental] orioledb_version is removed; use [db] orioledb_version. SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION is removed; use SUPABASE_DB_ORIOLEDB_VERSION. The linkedin and slack auth providers are removed; use linkedin_oidc and slack_oidc. INBUCKET_URL is removed from status and stack status output and --override-name inbucket.url is rejected; use MAILPIT_URL and mailpit.url. An import_map.json inside a function directory is no longer picked up by functions deploy, functions serve or start; rename it to deno.json or set functions.<slug>.import_map.

…import maps (CLI-2597)

Each removed surface now fails with an error that names its replacement
instead of being rewritten, warned about or silently ignored.

BREAKING CHANGE: `[inbucket]` and `[remotes.<name>.inbucket]` are removed; use `[local_smtp]`.
A non-empty `[experimental] orioledb_version` is removed; use `[db] orioledb_version`.
`SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION` is removed; use `SUPABASE_DB_ORIOLEDB_VERSION`.
The `linkedin` and `slack` auth providers are removed; use `linkedin_oidc` and `slack_oidc`.
`INBUCKET_URL` is removed from `status` and `stack status` output and
`--override-name inbucket.url` is rejected; use `MAILPIT_URL` and `mailpit.url`.
An `import_map.json` inside a function directory is no longer picked up by `functions deploy`,
`functions serve` or `start`; rename it to `deno.json` or set `functions.<slug>.import_map`.
@Coly010
Coly010 requested a review from a team as a code owner October 15, 2026 10:11

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI Review

Both independent reviews were available. Verified and confirmed Claude’s single finding as a cosmetic nit. No additional concrete defects were found during adjudication.

Findings

Severity Location Category Sources Claim
⚪ NIT apps/cli/src/shared/functions/deploy.ts:2220 error-messages claude For entrypoints outside supabase/, the migration suggestion includes a redundant './' prefix, producing paths such as './../src/fn/import_map.json'. The path works but is unnecessarily awkward.

Stats

Claude findings: 1 · Codex findings: 0 · Confirmed: 1 · Refuted: 0 · Uncertain: 0


Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: auto · Workflow run

This review runs once per PR. A maintainer can request another with a /ai-review comment.

Comment thread apps/cli/src/shared/functions/deploy.ts Outdated
@Coly010 Coly010 self-assigned this Oct 15, 2026
Comment thread apps/cli/src/commands/start/start.handler.ts
Comment thread packages/config/src/removed-config-keys.ts
Comment thread packages/config/src/experimental.ts
…shed schema

Also documents that stack mode never reads a per-function import_map.json
and drops the [inbucket] example from ADR 0032.
@Coly010
Coly010 added this pull request to the merge queue Oct 15, 2026
Merged via the queue into next with commit 2f60e0b Oct 15, 2026
59 of 60 checks passed
@Coly010
Coly010 deleted the columferry/cli-2597-bc-remove-deprecated-config-keys-env-vars-and-file branch October 15, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants