• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / cli / 32736691992
62%
develop: 62%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-6318-a3a42281908da41bbc7103cb13d39c1afda66fbb
DEFAULT BRANCH: develop
Ran 24 Aug 2026 02:08PM UTC
Jobs 1
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Aug 2026 02:06PM UTC coverage: 62.406%. Remained the same
32736691992

push

github

web-flow
feat(config): expose config defaults and provide sparse mapping functions (#6205)

Implements [CLI-2155](https://linear.app/supabase/issue/CLI-2155): a
stored reference of config default values and a mapping function that
omits values matching them, so `config diff` (CLI-2156) and `config
pull` (CLI-2064) can compare sparse configs instead of full effective
ones.

## What changed

**New API in `@supabase/config`** (`packages/config/src/sparse.ts`, all
pure and synchronous, operating on decoded `ProjectConfig` values):

- `getDefaultProjectConfig()` — the default config, derived by decoding
`{}` through `ProjectConfigSchema` (memoized). The schema's existing
`default` annotations and decoding defaults remain the single source of
truth; there is no hand-maintained defaults table to drift.
- `subtractProjectConfig(config, baseline)` — returns the sparse config
`config − baseline`: strict deep equality (order-sensitive arrays),
sections emptied by subtraction dropped recursively. Directional, so
CLI-2156 can subtract a remote block against the merged base config.
- `omitDefaultValues(config)` — `subtractProjectConfig` with the default
config as baseline. The result is itself a valid config document:
re-decoding refills the removed defaults, yielding the same effective
config under the current schema's defaults. `[remotes.*]` blocks (config
overrides for a specific persistent Supabase branch, bound by
`project_id`) pass through untouched — pruning them against global
defaults would silently change what a branch resolves to.

**Refactor:** `io.ts` had a private `stripDefaults`/`isEqualValue` walk
used for writing minimal config files; that walk is now the shared
`subtractValue` core in `sparse.ts`, consumed by both the new API and
the save path, so there is one subtraction implementation in the
package.

**Design docs:** ADR 0018 (`docs/adr/0018-sparse-config-subtraction.md`)
records the decision, the remote-block baseline rule, what the output is
depending... (continued)

5571 of 8927 relevant lines covered (62.41%)

6.65 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32736691992.1 24 Aug 2026 02:08PM UTC 95
62.41
GitHub Action Run
Source Files on build 32736691992
  • Tree
  • List 95
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32736691992
  • ea63c9d2 on github
  • Prev Build on gh-readonly-queue/develop/pr-6303-b9254df4197ebba26bc16dfc69579ad2708fc7d1 (#32736392588)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc