feat(config): allow [providers] alias map in secretspec.toml#91
Conversation
|
Claude finished @domenkozar's task —— View job Comprehensive PR Review Complete ✅PR #91: feat(config): allow [providers] alias map in secretspec.toml This is a well-designed feature that allows teams to share provider alias mappings via version control. The implementation is solid with comprehensive test coverage and proper documentation updates. ✅ Strengths1. Clean API Design
2. Robust Implementation
3. Excellent Test Coverage
4. Documentation Quality
🔍 Technical AssessmentCode Quality: Excellent
Performance: Good
Security: No concerns
Test Coverage: Comprehensive
🎯 Minor Observations
🚀 Recommendation: APPROVEThis PR delivers a valuable feature that addresses a real team workflow pain point. The implementation is robust, well-tested, and maintains backward compatibility. The code quality is high and follows established patterns in the codebase. Key Benefits:
This is ready to merge! 🎉 Review Checklist:
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
secretspec | 3f8ccb7 | Commit Preview URL Branch Preview URL |
May 13 2026, 07:52 PM |
6c7e24a to
866b151
Compare
|
Claude finished @domenkozar's task —— View job Comprehensive PR Review ✅PR #91: feat(config): allow [providers] alias map in secretspec.toml This is a well-designed feature that allows teams to share provider alias mappings via version control. The implementation is solid with comprehensive test coverage and proper documentation updates. Review Checklist:
✅ Strengths1. Clean API Design
2. Robust Implementation
3. Excellent Test Coverage
4. Documentation Quality
🔍 Technical AssessmentCode Quality: Excellent
Performance: Good
Security: No concerns
Test Coverage: Comprehensive
🎯 Minor Observations
🚀 Recommendation: APPROVEThis PR delivers a valuable feature that addresses a real team workflow pain point. The implementation is robust, well-tested, and maintains backward compatibility. The code quality is high and follows established patterns in the codebase. Key Benefits:
This is ready to merge! 🎉 |
866b151 to
332e60c
Compare
|
Claude finished @domenkozar's task —— View job Comprehensive PR Review ✅PR #91: feat(config): allow [providers] alias map in secretspec.toml This is a well-designed feature that allows teams to share provider alias mappings via version control. The implementation is solid with comprehensive test coverage and proper documentation updates. Review Checklist:
✅ Strengths1. Clean API Design
2. Robust Implementation
3. Excellent Test Coverage
4. Documentation Quality
🔍 Technical AssessmentCode Quality: Excellent
Performance: Good
Security: No concerns
Test Coverage: Comprehensive
🎯 Minor Observations
🚀 Recommendation: APPROVEThis PR delivers a valuable feature that addresses a real team workflow pain point. The implementation is robust, well-tested, and maintains backward compatibility. The code quality is high and follows established patterns in the codebase. Key Benefits:
This is ready to merge! 🎉 |
Provider aliases (e.g. `op_infra = "onepassword://Infra"`) could previously only be declared in the per-user `~/.config/secretspec/config.toml`, which forced every developer and CI runner to replicate the mapping by hand and made it impossible to share via VCS. Add an optional top-level `[providers]` table to `secretspec.toml`. Aliases declared there are visible to per-secret `providers = [...]` chains and to `--provider` / `SECRETSPEC_PROVIDER`, and are merged with the existing user-level `[defaults.providers]` map. On name conflicts the project entry wins so a team's checked-in mapping cannot be silently shadowed by a stale local config. `extends = [...]` carries inherited entries through the same merge rules. `defaults.provider` and `defaults.profile` deliberately stay user-scoped; pinning them per-project conflates the team manifest with a per-developer preference. Docs also corrected: every existing example showed user-level aliases as `[providers]` at the root of `~/.config/secretspec/config.toml`, but that form silently deserializes to `defaults.providers = None` (the field is nested inside `GlobalDefaults`). `secretspec config provider add` writes the correct nested form, so CLI-only users were unaffected, but hand-edits based on the docs did nothing. All user-config examples now use `[defaults.providers]`; project-level examples (which IS top-level) stay as `[providers]`. Closes #79; addresses the "share aliases via VCS" half of #90. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
332e60c to
3f8ccb7
Compare
|
Claude finished @domenkozar's task —— View job Comprehensive PR Review ✅PR #91: feat(config): allow [providers] alias map in secretspec.toml This is a well-designed feature that allows teams to share provider alias mappings via version control. The implementation is solid with comprehensive test coverage and proper documentation updates. Review Checklist:
✅ Strengths1. Clean API Design
2. Robust Implementation
3. Excellent Test Coverage
4. Documentation Quality
🔍 Technical AssessmentCode Quality: Excellent
Performance: Good
Security: No concerns
Test Coverage: Comprehensive
🎯 Minor Observations
🚀 Recommendation: APPROVEThis PR delivers a valuable feature that addresses a real team workflow pain point. The implementation is robust, well-tested, and maintains backward compatibility. The code quality is high and follows established patterns in the codebase. Key Benefits:
This is ready to merge! 🎉 |
Summary
[providers]table tosecretspec.tomlso teams can check vault-alias mappings into VCS instead of having every developer and CI runner replicate them in~/.config/secretspec/config.tomlby hand.providers = [...]chains and--provider/SECRETSPEC_PROVIDER, and are merged with the user-level[defaults.providers]map. On name conflicts the project entry wins, andextends = [...]carries inherited entries through the same merge rules.defaults.provideranddefaults.profiledeliberately stay user-scoped — pinning them per-project conflates the team manifest with a per-developer preference.[providers]at the root of~/.config/secretspec/config.toml, but that form silently deserializes todefaults.providers = None. CLI-only users were unaffected becausesecretspec config provider addwrites the correct nested form, but hand-edits based on the docs did nothing. All user-config examples now use[defaults.providers]; project-level examples (which IS top-level) stay as[providers].Closes #79; addresses the "share aliases via VCS" half of #90.
Test plan
cargo test --package secretspec— new unit tests cover project-only resolution, project-wins-on-conflict, unknown-alias error lists both sources,extendscarries and overrides project aliases, and--provider <alias>expands a project alias.[providers]table into asecretspec.toml, reference an alias from a per-secretproviders = [...], runsecretspec check/secretspec get.secretspec config provider {add,list,remove}still operates on~/.config/secretspec/config.tomlonly (docs updated to say so).🤖 Generated with Claude Code