refactor: adopt envilder.json naming convention - #225
Conversation
Rename map files to envilder.json / envilder.*.json pattern: - secrets-map.json -> envilder.json (root) - param-map.json -> envilder.json (e2e/sample) - param-map-with-aws-config.json -> envilder.aws.json - param-map-with-azure-config.json -> envilder.azure.json Update all references across: - CLI help text and package.json scripts - E2E tests and CI workflows - SDK source code (dotnet, python, nodejs) docstrings - SDK test fixtures and containers - Documentation, README, examples, website - GHA bundle rebuilt Closes #216
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughThis PR standardizes the repository map-file name by replacing occurrences of ChangesMap-file naming adoption
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request renames the core mapping file to envilder.json across all documentation, SDK examples, and test suites. Feedback identifies several naming inconsistencies in the E2E tests where hyphens were used instead of dots for environment suffixes, and points out a path discrepancy in the Copilot instructions.
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/changelogs/cli.md (1)
47-70: 💤 Low valueConsider preserving the original filenames in the [0.9.3] historical entry.
The
0.9.3block is a historical release entry that already shipped withsecrets-map.jsonexamples. Retroactively rewriting it toenvilder.jsonsilently erases the original interface and may confuse users diffing changelogs or bisecting when the rename occurred. A cleaner approach would be to document the rename in the existing0.10.0(or a dedicated entry) and leave historical entries intact, or add an inline note to the0.9.3block.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/changelogs/cli.md` around lines 47 - 70, The changelog entry for version "0.9.3" was retroactively altered to use "envilder.json" instead of the original "secrets-map.json"; restore the original filename "secrets-map.json" in the 0.9.3 block and instead document the rename from "secrets-map.json" → "envilder.json" in the "0.10.0" entry (or add a dedicated rename note), referencing the exact strings "0.9.3", "0.10.0", "secrets-map.json", and "envilder.json" so historical diffs remain accurate and users can see when the interface changed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@e2e/cli.test.ts`:
- Around line 58-59: Rename the test fixture filenames from dash-based to
dot-based patterns: update the assignments to mapFilePath and
mapFileWithConfigPath so they use `envilder.${runId}.json` and
`envilder.aws.${runId}.json` respectively (replace `envilder-...` and
`envilder-aws-...` templates). Also sweep the file for other occurrences of the
`envilder-` pattern and change them to the corresponding
`envilder.`/`envilder.aws.` dot format to keep filenames consistent with the
fileMatch strategy.
In `@e2e/gha.test.ts`:
- Line 241: Replace the dash-based filename literal 'envilder-azure-gha.json'
with the dot-based convention 'envilder.azure.gha.json' wherever it appears
(e.g., in the test list/array in e2e/gha.test.ts), and update any related
assertions or test fixtures that reference the old name so tests still find the
file.
In `@src/website/src/i18n/en.ts`:
- Line 417: The English copy for the key step1 uses the wrong indefinite
article; update the string value in the i18n map (the property named step1) from
"Create a envilder.json mapping env vars to secret paths" to "Create an
envilder.json mapping env vars to secret paths" and make the same change for the
other occurrence mentioned (the other i18n string at the second location).
Locate the step1 entry in src/website/src/i18n/en.ts and the other similar
string and replace "a envilder.json" with "an envilder.json" so both entries use
correct grammar.
---
Nitpick comments:
In `@docs/changelogs/cli.md`:
- Around line 47-70: The changelog entry for version "0.9.3" was retroactively
altered to use "envilder.json" instead of the original "secrets-map.json";
restore the original filename "secrets-map.json" in the 0.9.3 block and instead
document the rename from "secrets-map.json" → "envilder.json" in the "0.10.0"
entry (or add a dedicated rename note), referencing the exact strings "0.9.3",
"0.10.0", "secrets-map.json", and "envilder.json" so historical diffs remain
accurate and users can see when the interface changed.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 41086f53-21ad-49e0-a965-4f4da7a2fb3e
⛔ Files ignored due to path filters (16)
.github/agents/content-designer.agent.mdis excluded by none and included by none.github/copilot-instructions.mdis excluded by none and included by none.github/skills/common-architecture-decisions/SKILL.mdis excluded by none and included by none.github/skills/common-security/SKILL.mdis excluded by none and included by none.github/skills/doc-sync/SKILL.mdis excluded by none and included by none.github/skills/sdk-acceptance-testing/SKILL.mdis excluded by none and included by none.github/skills/website-content-strategy/SKILL.mdis excluded by none and included by none.github/skills/website-i18n/SKILL.mdis excluded by none and included by none.github/workflows/publish-action.ymlis excluded by none and included by none.github/workflows/test-action.ymlis excluded by none and included by noneREADME.mdis excluded by none and included by noneROADMAP.mdis excluded by none and included by noneenvilder.jsonis excluded by none and included by nonegithub-action/README.mdis excluded by none and included by nonepackage.jsonis excluded by none and included by nonevitest.global-setup.tsis excluded by none and included by none
📒 Files selected for processing (67)
docs/architecture/adr/0001-sdk-acceptance-test-infrastructure.mddocs/architecture/adr/0008-map-file-schema.mddocs/changelogs/cli.mddocs/changelogs/sdk-dotnet.mddocs/changelogs/sdk-python.mddocs/conventional-commits.mddocs/github-action.mddocs/pull-command.mddocs/push-command.mddocs/requirements-installation.mde2e/cli.test.tse2e/gha.test.tse2e/sample/envilder.aws.jsone2e/sample/envilder.azure.jsone2e/sample/envilder.jsonexamples/sdk/dotnet/1_configuration.csexamples/sdk/dotnet/2_fluent.csexamples/sdk/dotnet/3_env_routing.csexamples/sdk/dotnet/4_validation.csexamples/sdk/dotnet/5_load.csexamples/sdk/dotnet/6_resolve.csexamples/sdk/dotnet/README.mdexamples/sdk/nodejs/1_fluent.tsexamples/sdk/nodejs/2_env_routing.tsexamples/sdk/nodejs/3_validation.tsexamples/sdk/nodejs/4_load.tsexamples/sdk/nodejs/5_resolve.tsexamples/sdk/nodejs/README.mdexamples/sdk/python/1_fluent.pyexamples/sdk/python/2_env_routing.pyexamples/sdk/python/3_validation.pyexamples/sdk/python/4_load.pyexamples/sdk/python/5_resolve.pyexamples/sdk/python/README.mdsrc/envilder/apps/cli/Cli.tssrc/sdks/dotnet/Application/Envilder.cssrc/sdks/dotnet/Application/EnvilderBuilder.cssrc/sdks/dotnet/Application/SecretValidationExtensions.cssrc/sdks/dotnet/README.mdsrc/sdks/nodejs/README.mdsrc/sdks/nodejs/src/application/envilder.tssrc/sdks/python/README.mdsrc/sdks/python/envilder/application/envilder_client.pysrc/sdks/python/envilder/application/envilder_facade.pysrc/sdks/python/envilder/application/map_file_parser.pysrc/sdks/python/envilder/application/secret_validation.pysrc/website/src/components/DocsContent.astrosrc/website/src/components/GetStarted.astrosrc/website/src/components/GitHubAction.astrosrc/website/src/components/Hero.astrosrc/website/src/components/HowItWorks.astrosrc/website/src/components/Providers.astrosrc/website/src/components/Sdks.astrosrc/website/src/i18n/ca.tssrc/website/src/i18n/en.tssrc/website/src/i18n/es.tstests/envilder/core/application/pullSecretsToEnv/PullSecretsToEnvCommandHandler.test.tstests/sdks/dotnet/EndToEnd/ConsumerExperienceTests.cstests/sdks/dotnet/Envilder.Tests.csprojtests/sdks/dotnet/Fixtures/LocalStackFixture.cstests/sdks/dotnet/envilder.jsontests/sdks/nodejs/application/envilder.test.tstests/sdks/nodejs/containers/localstack-container.tstests/sdks/python/application/test_envilder_facade.pytests/sdks/python/containers/localstack_container.pytests/sdks/python/envilder.jsontests/website/utils/markdown.test.ts
There was a problem hiding this comment.
Pull request overview
This PR standardizes Envilder map-file naming across the repo to envilder.json / envilder.*.json to enable SchemaStore fileMatch integration and provide a consistent, recognizable convention for users and tooling.
Changes:
- Renamed map-file fixtures/examples to
envilder.jsonand provider/environment variants likeenvilder.aws.json/envilder.azure.json. - Updated references across CLI help, E2E tests, SDK docs/examples, website content, and internal skills/docs to the new filenames.
- Rebuilt/verified supporting workflows and tooling entrypoints that reference map files.
Reviewed changes
Copilot reviewed 77 out of 83 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| vitest.global-setup.ts | Uses envilder.json when generating local .env |
| tests/website/utils/markdown.test.ts | Updates embedded markdown examples |
| tests/sdks/python/envilder.json | Renamed Python SDK test fixture map file |
| tests/sdks/python/containers/localstack_container.py | Points container to envilder.json |
| tests/sdks/python/application/test_envilder_facade.py | Updates Python unit test map path |
| tests/sdks/nodejs/containers/localstack-container.ts | Points container to root envilder.json |
| tests/sdks/nodejs/application/envilder.test.ts | Updates Node SDK tests to envilder.json |
| tests/sdks/dotnet/Fixtures/LocalStackFixture.cs | Updates embedded resource filename |
| tests/sdks/dotnet/Envilder.Tests.csproj | Embeds envilder.json instead of old name |
| tests/sdks/dotnet/envilder.json | Renamed .NET SDK test fixture map file |
| tests/sdks/dotnet/EndToEnd/ConsumerExperienceTests.cs | Updates missing-file test path |
| tests/envilder/core/application/pullSecretsToEnv/PullSecretsToEnvCommandHandler.test.ts | Updates test map path string |
| src/website/src/i18n/es.ts | Updates Spanish copy/examples to envilder.json |
| src/website/src/i18n/en.ts | Updates English copy/examples to envilder.json |
| src/website/src/i18n/ca.ts | Updates Catalan copy/examples to envilder.json |
| src/website/src/components/Sdks.astro | Updates SDK snippets to envilder.json |
| src/website/src/components/Providers.astro | Updates provider snippets/filenames |
| src/website/src/components/HowItWorks.astro | Updates “How it works” snippets/commands |
| src/website/src/components/Hero.astro | Updates hero terminal mock text |
| src/website/src/components/GitHubAction.astro | Updates GHA snippet map-file value |
| src/website/src/components/GetStarted.astro | Updates terminal mock steps/filenames |
| src/website/src/components/DocsContent.astro | Updates docs page code blocks/commands |
| src/sdks/python/README.md | Updates Python SDK README examples |
| src/sdks/python/envilder/application/secret_validation.py | Updates docstring example path |
| src/sdks/python/envilder/application/map_file_parser.py | Updates docstring example path |
| src/sdks/python/envilder/application/envilder_facade.py | Updates docstring examples |
| src/sdks/python/envilder/application/envilder_client.py | Updates docstring example path |
| src/sdks/nodejs/src/application/envilder.ts | Updates JSDoc examples |
| src/sdks/nodejs/README.md | Updates Node SDK README examples |
| src/sdks/dotnet/README.md | Updates .NET SDK README examples |
| src/sdks/dotnet/Application/SecretValidationExtensions.cs | Updates XML doc examples |
| src/sdks/dotnet/Application/EnvilderBuilder.cs | Updates XML doc example |
| src/sdks/dotnet/Application/Envilder.cs | Updates XML doc examples |
| src/envilder/apps/cli/Cli.ts | Updates CLI help text examples |
| ROADMAP.md | Updates roadmap references to canonical filename |
| README.md | Updates repo README examples and terminology |
| package.json | Updates scripts referencing map files |
| github-action/README.md | Updates GHA README examples and troubleshooting |
| examples/sdk/python/README.md | Updates example README link/reference |
| examples/sdk/python/5_resolve.py | Updates example map path |
| examples/sdk/python/4_load.py | Updates example map path |
| examples/sdk/python/3_validation.py | Updates example map path |
| examples/sdk/python/2_env_routing.py | Updates example map path mapping |
| examples/sdk/python/1_fluent.py | Updates example map path |
| examples/sdk/nodejs/README.md | Updates example README link/reference |
| examples/sdk/nodejs/5_resolve.ts | Updates example map path |
| examples/sdk/nodejs/4_load.ts | Updates example map path |
| examples/sdk/nodejs/3_validation.ts | Updates example map path |
| examples/sdk/nodejs/2_env_routing.ts | Updates example map path mapping |
| examples/sdk/nodejs/1_fluent.ts | Updates example map path |
| examples/sdk/dotnet/README.md | Updates example README link/reference |
| examples/sdk/dotnet/6_resolve.cs | Updates example map path |
| examples/sdk/dotnet/5_load.cs | Updates example map path |
| examples/sdk/dotnet/4_validation.cs | Updates example map path |
| examples/sdk/dotnet/3_env_routing.cs | Updates example map path mapping |
| examples/sdk/dotnet/2_fluent.cs | Updates example map path |
| examples/sdk/dotnet/1_configuration.cs | Updates example map path + parser read |
| envilder.json | New canonical root example map file (includes $schema) |
| e2e/sample/envilder.json | Renamed E2E sample map file |
| e2e/sample/envilder.azure.json | Renamed E2E sample Azure-config map file |
| e2e/sample/envilder.aws.json | Renamed E2E sample AWS-config map file |
| e2e/gha.test.ts | Updates E2E test fixture paths |
| e2e/cli.test.ts | Updates E2E dynamic filenames |
| docs/requirements-installation.md | Updates CLI examples |
| docs/push-command.md | Updates push docs examples and labels |
| docs/pull-command.md | Updates pull docs examples and labels |
| docs/github-action.md | Updates GHA docs examples and labels |
| docs/conventional-commits.md | Updates example commit message text |
| docs/changelogs/sdk-python.md | Updates changelog wording/example name |
| docs/changelogs/sdk-dotnet.md | Updates changelog wording/example name |
| docs/changelogs/cli.md | Updates changelog snippets to new filename |
| docs/architecture/adr/0008-map-file-schema.md | Updates ADR examples to new pattern |
| docs/architecture/adr/0001-sdk-acceptance-test-infrastructure.md | Updates ADR terminology to new canonical file |
| .github/workflows/test-action.yml | Updates workflow test fixture path |
| .github/workflows/publish-action.yml | Updates publish workflow example snippet |
| .github/skills/website-i18n/SKILL.md | Updates token list to envilder.json |
| .github/skills/website-content-strategy/SKILL.md | Updates content guidance references |
| .github/skills/sdk-acceptance-testing/SKILL.md | Updates acceptance-testing guidance references |
| .github/skills/doc-sync/SKILL.md | Updates doc-sync “authoritative source” reference |
| .github/skills/common-security/SKILL.md | Updates security guidance references |
| .github/skills/common-architecture-decisions/SKILL.md | Updates ADR index wording |
| .github/copilot-instructions.md | Updates internal contributor instructions reference |
| .github/agents/content-designer.agent.md | Updates content-designer token list |
Comments suppressed due to low confidence (1)
src/website/src/components/Providers.astro:96
- This “coming soon” GCP block includes a concrete
$config.provider: "gcp"example and a runnableenvilder --provider=gcp ...command, but the CLI currently only supportsawsandazure. This is likely to mislead users; either remove the command/config snippet, or add a clear note that GCP is not supported yet and keep the example explicitly non-runnable.
Co-authored-by: Copilot <copilot@github.com>
- Fix 'a envilder.json' → 'an envilder.json' (English grammar) - Fix copilot-instructions path: tests/sample → e2e/sample
There was a problem hiding this comment.
🧹 Nitpick comments (1)
examples/sdk/dotnet/1_configuration.cs (1)
11-14: ⚡ Quick winUse a single constant for the map-file path (Line 11, Line 14).
The same relative path is duplicated; centralizing it avoids accidental divergence.
Proposed refactor
+const string mapFilePath = "../../../envilder.json"; + var config = new ConfigurationBuilder() - .AddEnvilder("../../../envilder.json") + .AddEnvilder(mapFilePath) .Build(); -var mapFile = new MapFileParser().Parse(File.ReadAllText("../../../envilder.json")); +var mapFile = new MapFileParser().Parse(File.ReadAllText(mapFilePath));🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@examples/sdk/dotnet/1_configuration.cs` around lines 11 - 14, The relative path "../../../envilder.json" is duplicated; define a single constant (e.g., var envilderPath = "../../../envilder.json") and use that constant in the fluent call to .AddEnvilder(envilderPath) and when calling new MapFileParser().Parse(File.ReadAllText(envilderPath)) so both uses reference the same symbol and avoid divergence.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@examples/sdk/dotnet/1_configuration.cs`:
- Around line 11-14: The relative path "../../../envilder.json" is duplicated;
define a single constant (e.g., var envilderPath = "../../../envilder.json") and
use that constant in the fluent call to .AddEnvilder(envilderPath) and when
calling new MapFileParser().Parse(File.ReadAllText(envilderPath)) so both uses
reference the same symbol and avoid divergence.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 41f58018-21f8-4b7b-82c0-55ede4d4dd40
⛔ Files ignored due to path filters (5)
.github/copilot-instructions.mdis excluded by none and included by none.github/instructions/git-conventions.instructions.mdis excluded by none and included by noneREADME.mdis excluded by none and included by nonelefthook.ymlis excluded by none and included by nonesrc/sdks/python/uv.lockis excluded by!**/*.lockand included bysrc/**
📒 Files selected for processing (14)
docs/github-action.mdexamples/sdk/dotnet/1_configuration.csexamples/sdk/dotnet/2_fluent.csexamples/sdk/dotnet/3_env_routing.csexamples/sdk/dotnet/4_validation.csexamples/sdk/dotnet/5_load.csexamples/sdk/dotnet/6_resolve.csexamples/sdk/nodejs/package.jsonexamples/sdk/python/1_fluent.pyexamples/sdk/python/2_env_routing.pyexamples/sdk/python/3_validation.pyexamples/sdk/python/4_load.pyexamples/sdk/python/5_resolve.pysrc/website/src/i18n/en.ts
✅ Files skipped from review due to trivial changes (7)
- examples/sdk/python/4_load.py
- examples/sdk/dotnet/2_fluent.cs
- examples/sdk/nodejs/package.json
- examples/sdk/dotnet/4_validation.cs
- examples/sdk/python/5_resolve.py
- src/website/src/i18n/en.ts
- docs/github-action.md
🚧 Files skipped from review as they are similar to previous changes (5)
- examples/sdk/dotnet/5_load.cs
- examples/sdk/dotnet/6_resolve.cs
- examples/sdk/python/3_validation.py
- examples/sdk/python/2_env_routing.py
- examples/sdk/dotnet/3_env_routing.cs
- Remove per-SDK copies (tests/sdks/dotnet/, tests/sdks/python/) - .NET: EmbeddedResource Link to root file - Python: resolve path to repo root via parents[4] - Fix lefthook: replace make targets with direct commands, remove parallel (race condition), remove redundant pre-push - Aligns with ADR-0001 single-fixture approach
Summary
Standardizes map file naming to
envilder.json/envilder.*.jsonpattern across the entire codebase. This establishes a unique, recognizable naming convention that enables SchemaStore integration viafileMatch.Changes
File renames:
secrets-map.json→envilder.json(root)e2e/sample/param-map.json→e2e/sample/envilder.jsone2e/sample/param-map-with-aws-config.json→e2e/sample/envilder.aws.jsone2e/sample/param-map-with-azure-config.json→e2e/sample/envilder.azure.jsontests/sdks/dotnet/secrets-map.json→tests/sdks/dotnet/envilder.jsontests/sdks/python/secrets-map.json→tests/sdks/python/envilder.jsonReference updates (83 files):
Motivation
Prerequisite for SchemaStore submission (#222). SchemaStore requires unique
fileMatchpatterns —envilder.jsonandenvilder.*.jsonare specific enough to avoid conflicts with other schemas.Closes #216
Summary by CodeRabbit