Skip to content

refactor(config): unify OB_* env vars onto the OPENBUCKET_* prefix (1.0 prep) - #61

Merged
ProjectBay merged 1 commit into
mainfrom
refactor/env-prefix-normalization
Jul 9, 2026
Merged

refactor(config): unify OB_* env vars onto the OPENBUCKET_* prefix (1.0 prep)#61
ProjectBay merged 1 commit into
mainfrom
refactor/env-prefix-normalization

Conversation

@ProjectBay

Copy link
Copy Markdown
Owner

What

Standalone env-var feature blocks were inconsistently prefixed: replication, scheduled-backup, and integrity-scrub used OB_*, while every other feature block (tiering, endpoint, region, SSE) used OPENBUCKET_*. This unifies the three stragglers onto OPENBUCKET_* before 1.0.

Why

The standalone env vars are the Docker/compose users' stable API. Pre-1.0 is the moment to remove the OB_* vs OPENBUCKET_* inconsistency (API review MF-6) so the 1.0 surface is uniform.

Rename table

Old New
OB_REPLICATION_* OPENBUCKET_REPLICATION_*
OB_SCHEDULED_BACKUP_* OPENBUCKET_SCHEDULED_BACKUP_*
OB_INTEGRITY_* OPENBUCKET_INTEGRITY_*

Breaking change

This is a pre-1.0 hard rename with no backward-compatible aliases — the old OB_* names are no longer read. Standalone operators must update their .env / compose / deploy config. The bare core vars (DATA_DIR, JWT_SECRET, ROOT_ACCESS_KEY_ID, PORT, …) and the already-bare feature knobs (WEBHOOK_*, METRICS_*, RESTORE_*, KEY_ENCRYPTION_SECRET, …) are unchanged, as is the internal OB_FAULT test-harness knob and the programmatic OpenBucketModule.forRoot API.

Scope

Applied consistently across: the Zod env schema + superRefine cross-field checks, config-source option→env mapping, app-config getters, the replication/backup config resolvers, the secret-redaction serializer, all tests, .env.example, README config tables, PM docs (stories/tasks/test-plans), and the Docusaurus guides + reference.

Also documents (NH-1) that a few standalone features (KEY_ENCRYPTION_SECRET, the cold-tiering OPENBUCKET_TIER_* family) are env-only with no forRoot counterpart — the library options are a deliberate subset.

Verification

  • npx nx build nestjs — pass
  • npx nx test nestjs — 138 suites / 1199 tests pass (1 skipped)
  • npx nx lint nestjs — 0 errors (92 pre-existing warnings, unrelated files)
  • apps/docs docusaurus build — succeeds (only the one pre-existing "Noncharacter in input stream" minifier warning on the whitepaper page)
  • Final grep: no stray OB_REPLICATION / OB_SCHEDULED_BACKUP / OB_INTEGRITY references remain except the CHANGELOG rename note

🤖 Generated with Claude Code

….0 prep)

The standalone env-var feature blocks were inconsistently prefixed:
replication/backup/integrity used OB_* while tiering/endpoint/region/sse
used OPENBUCKET_*. Standardize onto OPENBUCKET_* before 1.0.

Renames (hard rename, no backward-compat aliases):
- OB_REPLICATION_*      -> OPENBUCKET_REPLICATION_*
- OB_SCHEDULED_BACKUP_* -> OPENBUCKET_SCHEDULED_BACKUP_*
- OB_INTEGRITY_*        -> OPENBUCKET_INTEGRITY_*

Applied across the Zod env schema + superRefine, config-source mapping,
app-config getters, replication/backup config resolvers, the secret-redaction
serializer, tests, .env.example, README config tables, PM docs, and the
Docusaurus guides/reference. Bare core vars and already-bare feature knobs
(WEBHOOK_*, METRICS_*, RESTORE_*, KEY_ENCRYPTION_SECRET, ...) are untouched,
as is the OB_FAULT test-harness knob and the programmatic forRoot API.

Also (NH-1) documents that a few standalone features (KEY_ENCRYPTION_SECRET,
the cold-tiering OPENBUCKET_TIER_* family) are env-only with no forRoot
counterpart — the library options are a deliberate subset.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ProjectBay
ProjectBay merged commit 451c1cb into main Jul 9, 2026
6 checks passed
@ProjectBay
ProjectBay deleted the refactor/env-prefix-normalization branch July 9, 2026 20:18
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.

1 participant