vaulter 1.0.66 → 1.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -106
- package/dist/cli/commands/apply.d.ts +15 -0
- package/dist/cli/commands/apply.d.ts.map +1 -0
- package/dist/cli/commands/apply.js +160 -0
- package/dist/cli/commands/apply.js.map +1 -0
- package/dist/cli/commands/change.d.ts +33 -0
- package/dist/cli/commands/change.d.ts.map +1 -0
- package/dist/cli/commands/change.js +621 -0
- package/dist/cli/commands/change.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +15 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +136 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/local/delete.d.ts.map +1 -1
- package/dist/cli/commands/local/delete.js +12 -1
- package/dist/cli/commands/local/delete.js.map +1 -1
- package/dist/cli/commands/local/diff.d.ts.map +1 -1
- package/dist/cli/commands/local/diff.js +12 -0
- package/dist/cli/commands/local/diff.js.map +1 -1
- package/dist/cli/commands/local/index.js +2 -2
- package/dist/cli/commands/local/index.js.map +1 -1
- package/dist/cli/commands/local/init.d.ts.map +1 -1
- package/dist/cli/commands/local/init.js +13 -2
- package/dist/cli/commands/local/init.js.map +1 -1
- package/dist/cli/commands/local/pull.d.ts.map +1 -1
- package/dist/cli/commands/local/pull.js +2 -11
- package/dist/cli/commands/local/pull.js.map +1 -1
- package/dist/cli/commands/local/push.d.ts.map +1 -1
- package/dist/cli/commands/local/push.js +12 -0
- package/dist/cli/commands/local/push.js.map +1 -1
- package/dist/cli/commands/local/set.d.ts +1 -1
- package/dist/cli/commands/local/set.d.ts.map +1 -1
- package/dist/cli/commands/local/set.js +13 -2
- package/dist/cli/commands/local/set.js.map +1 -1
- package/dist/cli/commands/local/status.js +1 -1
- package/dist/cli/commands/local/status.js.map +1 -1
- package/dist/cli/commands/local/sync.js +1 -1
- package/dist/cli/commands/local/sync.js.map +1 -1
- package/dist/cli/commands/plan.d.ts +14 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +172 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/rotation.js +1 -1
- package/dist/cli/commands/rotation.js.map +1 -1
- package/dist/cli/commands/service/dedupe.d.ts.map +1 -1
- package/dist/cli/commands/service/dedupe.js +4 -8
- package/dist/cli/commands/service/dedupe.js.map +1 -1
- package/dist/cli/commands/services.js +2 -2
- package/dist/cli/commands/services.js.map +1 -1
- package/dist/cli/commands/status.d.ts +21 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +714 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/index.js +198 -96
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/colors.d.ts +1 -0
- package/dist/cli/lib/colors.d.ts.map +1 -1
- package/dist/cli/lib/colors.js +2 -0
- package/dist/cli/lib/colors.js.map +1 -1
- package/dist/cli/lib/create-client.d.ts.map +1 -1
- package/dist/cli/lib/create-client.js +15 -0
- package/dist/cli/lib/create-client.js.map +1 -1
- package/dist/cli/lib/error-hints.d.ts +6 -0
- package/dist/cli/lib/error-hints.d.ts.map +1 -0
- package/dist/cli/lib/error-hints.js +5 -0
- package/dist/cli/lib/error-hints.js.map +1 -0
- package/dist/cli/tui/app.d.ts.map +1 -1
- package/dist/cli/tui/app.js +2 -23
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/dashboard.js +1 -1
- package/dist/cli/tui/dashboard.js.map +1 -1
- package/dist/cli/tui/secrets-explorer/entry.d.ts.map +1 -1
- package/dist/cli/tui/secrets-explorer/entry.js +2 -34
- package/dist/cli/tui/secrets-explorer/entry.js.map +1 -1
- package/dist/cli/tui/tabs/audit-tab.d.ts +1 -2
- package/dist/cli/tui/tabs/audit-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/audit-tab.js +2 -3
- package/dist/cli/tui/tabs/audit-tab.js.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +26 -13
- package/dist/client.js.map +1 -1
- package/dist/domain/apply.d.ts +47 -0
- package/dist/domain/apply.d.ts.map +1 -0
- package/dist/domain/apply.js +144 -0
- package/dist/domain/apply.js.map +1 -0
- package/dist/domain/governance.d.ts +50 -0
- package/dist/domain/governance.d.ts.map +1 -0
- package/dist/domain/governance.js +456 -0
- package/dist/domain/governance.js.map +1 -0
- package/dist/domain/index.d.ts +22 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +22 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/inventory.d.ts +30 -0
- package/dist/domain/inventory.d.ts.map +1 -0
- package/dist/domain/inventory.js +175 -0
- package/dist/domain/inventory.js.map +1 -0
- package/dist/domain/plan.d.ts +67 -0
- package/dist/domain/plan.d.ts.map +1 -0
- package/dist/domain/plan.js +352 -0
- package/dist/domain/plan.js.map +1 -0
- package/dist/domain/scorecard.d.ts +34 -0
- package/dist/domain/scorecard.d.ts.map +1 -0
- package/dist/domain/scorecard.js +216 -0
- package/dist/domain/scorecard.js.map +1 -0
- package/dist/domain/state.d.ts +104 -0
- package/dist/domain/state.d.ts.map +1 -0
- package/dist/domain/state.js +566 -0
- package/dist/domain/state.js.map +1 -0
- package/dist/domain/types.d.ts +389 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/domain/types.js +161 -0
- package/dist/domain/types.js.map +1 -0
- package/dist/lib/audit.js +1 -1
- package/dist/lib/audit.js.map +1 -1
- package/dist/lib/backend-sync.d.ts +5 -7
- package/dist/lib/backend-sync.d.ts.map +1 -1
- package/dist/lib/backend-sync.js +96 -74
- package/dist/lib/backend-sync.js.map +1 -1
- package/dist/lib/crypto.d.ts.map +1 -1
- package/dist/lib/crypto.js +16 -23
- package/dist/lib/crypto.js.map +1 -1
- package/dist/lib/error-hints.d.ts +27 -0
- package/dist/lib/error-hints.d.ts.map +1 -0
- package/dist/lib/error-hints.js +132 -0
- package/dist/lib/error-hints.js.map +1 -0
- package/dist/lib/errors.js +2 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/init-generator.d.ts +0 -10
- package/dist/lib/init-generator.d.ts.map +1 -1
- package/dist/lib/init-generator.js +1 -48
- package/dist/lib/init-generator.js.map +1 -1
- package/dist/lib/local-ops.d.ts +3 -3
- package/dist/lib/local-ops.d.ts.map +1 -1
- package/dist/lib/local-ops.js +111 -69
- package/dist/lib/local-ops.js.map +1 -1
- package/dist/lib/local.d.ts +22 -4
- package/dist/lib/local.d.ts.map +1 -1
- package/dist/lib/local.js +49 -9
- package/dist/lib/local.js.map +1 -1
- package/dist/lib/monorepo.d.ts +40 -1
- package/dist/lib/monorepo.d.ts.map +1 -1
- package/dist/lib/monorepo.js +190 -4
- package/dist/lib/monorepo.js.map +1 -1
- package/dist/lib/output.d.ts +0 -3
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +6 -2
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/root-gitignore.d.ts +14 -0
- package/dist/lib/root-gitignore.d.ts.map +1 -0
- package/dist/lib/root-gitignore.js +54 -0
- package/dist/lib/root-gitignore.js.map +1 -0
- package/dist/lib/scope-policy.d.ts +81 -0
- package/dist/lib/scope-policy.d.ts.map +1 -0
- package/dist/lib/scope-policy.js +269 -0
- package/dist/lib/scope-policy.js.map +1 -0
- package/dist/lib/snapshot-ops.js +1 -1
- package/dist/lib/snapshot-ops.js.map +1 -1
- package/dist/lib/sync-plan.d.ts +76 -0
- package/dist/lib/sync-plan.d.ts.map +1 -0
- package/dist/lib/sync-plan.js +205 -0
- package/dist/lib/sync-plan.js.map +1 -0
- package/dist/lib/variable-validation.d.ts +33 -0
- package/dist/lib/variable-validation.d.ts.map +1 -0
- package/dist/lib/variable-validation.js +137 -0
- package/dist/lib/variable-validation.js.map +1 -0
- package/dist/lib/write-guard.d.ts +25 -0
- package/dist/lib/write-guard.d.ts.map +1 -0
- package/dist/lib/write-guard.js +59 -0
- package/dist/lib/write-guard.js.map +1 -0
- package/dist/mcp/prompts.d.ts +26 -21
- package/dist/mcp/prompts.d.ts.map +1 -1
- package/dist/mcp/prompts.js +107 -1754
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/resources.d.ts +18 -27
- package/dist/mcp/resources.d.ts.map +1 -1
- package/dist/mcp/resources.js +242 -1677
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/server.d.ts +7 -7
- package/dist/mcp/server.js +9 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/config.d.ts +7 -1
- package/dist/mcp/tools/config.d.ts.map +1 -1
- package/dist/mcp/tools/config.js +15 -3
- package/dist/mcp/tools/config.js.map +1 -1
- package/dist/mcp/tools/definitions.d.ts +12 -7
- package/dist/mcp/tools/definitions.d.ts.map +1 -1
- package/dist/mcp/tools/definitions.js +269 -682
- package/dist/mcp/tools/definitions.js.map +1 -1
- package/dist/mcp/tools/handlers/apply.d.ts +8 -0
- package/dist/mcp/tools/handlers/apply.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/apply.js +72 -0
- package/dist/mcp/tools/handlers/apply.js.map +1 -0
- package/dist/mcp/tools/handlers/change.d.ts +9 -0
- package/dist/mcp/tools/handlers/change.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/change.js +175 -0
- package/dist/mcp/tools/handlers/change.js.map +1 -0
- package/dist/mcp/tools/handlers/diff.d.ts +8 -0
- package/dist/mcp/tools/handlers/diff.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/diff.js +67 -0
- package/dist/mcp/tools/handlers/diff.js.map +1 -0
- package/dist/mcp/tools/handlers/export.d.ts +10 -0
- package/dist/mcp/tools/handlers/export.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/export.js +217 -0
- package/dist/mcp/tools/handlers/export.js.map +1 -0
- package/dist/mcp/tools/handlers/init.d.ts +3 -6
- package/dist/mcp/tools/handlers/init.d.ts.map +1 -1
- package/dist/mcp/tools/handlers/init.js +22 -72
- package/dist/mcp/tools/handlers/init.js.map +1 -1
- package/dist/mcp/tools/handlers/key.d.ts +9 -0
- package/dist/mcp/tools/handlers/key.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/key.js +326 -0
- package/dist/mcp/tools/handlers/key.js.map +1 -0
- package/dist/mcp/tools/handlers/local.d.ts +10 -85
- package/dist/mcp/tools/handlers/local.d.ts.map +1 -1
- package/dist/mcp/tools/handlers/local.js +351 -468
- package/dist/mcp/tools/handlers/local.js.map +1 -1
- package/dist/mcp/tools/handlers/nuke.d.ts +9 -0
- package/dist/mcp/tools/handlers/nuke.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/nuke.js +30 -0
- package/dist/mcp/tools/handlers/nuke.js.map +1 -0
- package/dist/mcp/tools/handlers/plan.d.ts +8 -0
- package/dist/mcp/tools/handlers/plan.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/plan.js +75 -0
- package/dist/mcp/tools/handlers/plan.js.map +1 -0
- package/dist/mcp/tools/handlers/read.d.ts +15 -0
- package/dist/mcp/tools/handlers/read.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/read.js +57 -0
- package/dist/mcp/tools/handlers/read.js.map +1 -0
- package/dist/mcp/tools/handlers/run.d.ts +12 -0
- package/dist/mcp/tools/handlers/run.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/run.js +203 -0
- package/dist/mcp/tools/handlers/run.js.map +1 -0
- package/dist/mcp/tools/handlers/search.d.ts +11 -0
- package/dist/mcp/tools/handlers/search.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/search.js +124 -0
- package/dist/mcp/tools/handlers/search.js.map +1 -0
- package/dist/mcp/tools/handlers/services.d.ts +8 -0
- package/dist/mcp/tools/handlers/services.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/services.js +39 -0
- package/dist/mcp/tools/handlers/services.js.map +1 -0
- package/dist/mcp/tools/handlers/snapshot.d.ts +10 -0
- package/dist/mcp/tools/handlers/snapshot.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/snapshot.js +141 -0
- package/dist/mcp/tools/handlers/snapshot.js.map +1 -0
- package/dist/mcp/tools/handlers/status.d.ts +8 -0
- package/dist/mcp/tools/handlers/status.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/status.js +341 -0
- package/dist/mcp/tools/handlers/status.js.map +1 -0
- package/dist/mcp/tools/handlers/versions.d.ts +10 -0
- package/dist/mcp/tools/handlers/versions.d.ts.map +1 -0
- package/dist/mcp/tools/handlers/versions.js +139 -0
- package/dist/mcp/tools/handlers/versions.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +13 -5
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +158 -246
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +2 -10
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +2 -19
- package/dist/mcp/tools.js.map +1 -1
- package/dist/runtime/loader.d.ts.map +1 -1
- package/dist/runtime/loader.js +89 -1
- package/dist/runtime/loader.js.map +1 -1
- package/dist/runtime/types.d.ts +8 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/types.d.ts +44 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +16 -14
- package/dist/cli/commands/delete.d.ts +0 -25
- package/dist/cli/commands/delete.d.ts.map +0 -1
- package/dist/cli/commands/delete.js +0 -118
- package/dist/cli/commands/delete.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -21
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js +0 -493
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/get.d.ts +0 -24
- package/dist/cli/commands/get.d.ts.map +0 -1
- package/dist/cli/commands/get.js +0 -118
- package/dist/cli/commands/get.js.map +0 -1
- package/dist/cli/commands/pull.d.ts +0 -32
- package/dist/cli/commands/pull.d.ts.map +0 -1
- package/dist/cli/commands/pull.js +0 -196
- package/dist/cli/commands/pull.js.map +0 -1
- package/dist/cli/commands/push.d.ts +0 -29
- package/dist/cli/commands/push.d.ts.map +0 -1
- package/dist/cli/commands/push.js +0 -322
- package/dist/cli/commands/push.js.map +0 -1
- package/dist/cli/commands/rollback.d.ts +0 -8
- package/dist/cli/commands/rollback.d.ts.map +0 -1
- package/dist/cli/commands/rollback.js +0 -109
- package/dist/cli/commands/rollback.js.map +0 -1
- package/dist/cli/commands/set.d.ts +0 -35
- package/dist/cli/commands/set.d.ts.map +0 -1
- package/dist/cli/commands/set.js +0 -424
- package/dist/cli/commands/set.js.map +0 -1
- package/dist/cli/commands/sync/index.d.ts +0 -33
- package/dist/cli/commands/sync/index.d.ts.map +0 -1
- package/dist/cli/commands/sync/index.js +0 -275
- package/dist/cli/commands/sync/index.js.map +0 -1
- package/dist/cli/commands/sync.d.ts +0 -26
- package/dist/cli/commands/sync.d.ts.map +0 -1
- package/dist/cli/commands/sync.js +0 -371
- package/dist/cli/commands/sync.js.map +0 -1
- package/dist/cli/commands/var/index.d.ts +0 -31
- package/dist/cli/commands/var/index.d.ts.map +0 -1
- package/dist/cli/commands/var/index.js +0 -119
- package/dist/cli/commands/var/index.js.map +0 -1
- package/dist/cli/commands/versions.d.ts +0 -8
- package/dist/cli/commands/versions.d.ts.map +0 -1
- package/dist/cli/commands/versions.js +0 -135
- package/dist/cli/commands/versions.js.map +0 -1
- package/dist/mcp/tools/handlers/analysis.d.ts +0 -13
- package/dist/mcp/tools/handlers/analysis.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/analysis.js +0 -195
- package/dist/mcp/tools/handlers/analysis.js.map +0 -1
- package/dist/mcp/tools/handlers/batch.d.ts +0 -12
- package/dist/mcp/tools/handlers/batch.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/batch.js +0 -171
- package/dist/mcp/tools/handlers/batch.js.map +0 -1
- package/dist/mcp/tools/handlers/core.d.ts +0 -15
- package/dist/mcp/tools/handlers/core.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/core.js +0 -179
- package/dist/mcp/tools/handlers/core.js.map +0 -1
- package/dist/mcp/tools/handlers/doctor.d.ts +0 -32
- package/dist/mcp/tools/handlers/doctor.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/doctor.js +0 -1062
- package/dist/mcp/tools/handlers/doctor.js.map +0 -1
- package/dist/mcp/tools/handlers/iac.d.ts +0 -17
- package/dist/mcp/tools/handlers/iac.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/iac.js +0 -131
- package/dist/mcp/tools/handlers/iac.js.map +0 -1
- package/dist/mcp/tools/handlers/k8s.d.ts +0 -11
- package/dist/mcp/tools/handlers/k8s.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/k8s.js +0 -117
- package/dist/mcp/tools/handlers/k8s.js.map +0 -1
- package/dist/mcp/tools/handlers/keys.d.ts +0 -54
- package/dist/mcp/tools/handlers/keys.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/keys.js +0 -561
- package/dist/mcp/tools/handlers/keys.js.map +0 -1
- package/dist/mcp/tools/handlers/monorepo.d.ts +0 -29
- package/dist/mcp/tools/handlers/monorepo.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/monorepo.js +0 -329
- package/dist/mcp/tools/handlers/monorepo.js.map +0 -1
- package/dist/mcp/tools/handlers/sync.d.ts +0 -11
- package/dist/mcp/tools/handlers/sync.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/sync.js +0 -77
- package/dist/mcp/tools/handlers/sync.js.map +0 -1
- package/dist/mcp/tools/handlers/utility.d.ts +0 -29
- package/dist/mcp/tools/handlers/utility.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/utility.js +0 -245
- package/dist/mcp/tools/handlers/utility.js.map +0 -1
- package/dist/mcp/tools/handlers/versioning.d.ts +0 -33
- package/dist/mcp/tools/handlers/versioning.d.ts.map +0 -1
- package/dist/mcp/tools/handlers/versioning.js +0 -208
- package/dist/mcp/tools/handlers/versioning.js.map +0 -1
package/README.md
CHANGED
|
@@ -26,14 +26,81 @@ curl -fsSL https://raw.githubusercontent.com/forattini-dev/vaulter/main/install.
|
|
|
26
26
|
|
|
27
27
|
## Quick Start
|
|
28
28
|
|
|
29
|
+
### Minimal
|
|
30
|
+
|
|
29
31
|
```bash
|
|
30
32
|
vaulter init # Initialize project
|
|
31
33
|
vaulter key generate --name master # Generate encryption key
|
|
32
|
-
vaulter
|
|
33
|
-
vaulter
|
|
34
|
+
vaulter change set DATABASE_URL="postgres://..." -e dev # Set secret
|
|
35
|
+
vaulter change set PORT::3000 -e dev # Set config (plain)
|
|
36
|
+
vaulter change set NODE_ENV=local -e dev # Set config (sensitive=false)
|
|
37
|
+
vaulter change move API_KEY --from shared --to api -e dev # Move variable to service
|
|
38
|
+
vaulter change move API_KEY --from shared -e dev -s svc-notifications # Infer destination service
|
|
39
|
+
vaulter plan -e dev # Preview changes before applying
|
|
34
40
|
eval $(vaulter export shell -e dev) # Export to shell
|
|
35
41
|
```
|
|
36
42
|
|
|
43
|
+
### End-to-End (Monorepo, `web` + `api`)
|
|
44
|
+
|
|
45
|
+
This flow shows local editing, team sharing, and promotion across multiple environments.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# 0) Initialize + discover services
|
|
49
|
+
vaulter init --monorepo
|
|
50
|
+
vaulter key generate --name master
|
|
51
|
+
vaulter services
|
|
52
|
+
|
|
53
|
+
# 1) Create/override vars locally (offline by default)
|
|
54
|
+
# `local set` writes only to `.vaulter/local/*`; use `-e/--env` only for backend-aware operations.
|
|
55
|
+
vaulter local set NEXT_PUBLIC_APP_NAME=Portal --shared
|
|
56
|
+
vaulter local set NODE_ENV=local --shared
|
|
57
|
+
vaulter local set DATABASE_URL=postgres://... -s api
|
|
58
|
+
vaulter local set REDIS_URL=redis://... -s api
|
|
59
|
+
vaulter local set QUEUE_ENABLED::true -s api
|
|
60
|
+
vaulter local set WORKER_CONCURRENCY::4 -s web
|
|
61
|
+
vaulter local pull --all # Generates .env for local run (all outputs)
|
|
62
|
+
vaulter local diff # Review local overrides
|
|
63
|
+
|
|
64
|
+
# 2) Share source of truth with team (backend sync)
|
|
65
|
+
vaulter local push --all -e dev
|
|
66
|
+
|
|
67
|
+
# 3) Team members pull and generate local envs
|
|
68
|
+
vaulter local sync -e dev
|
|
69
|
+
vaulter local pull --all
|
|
70
|
+
|
|
71
|
+
# 4) Promote the same managed set to multiple environments
|
|
72
|
+
for ENV in dev stg prd; do
|
|
73
|
+
echo "Deploying to $ENV"
|
|
74
|
+
vaulter plan -e "$ENV"
|
|
75
|
+
vaulter apply -e "$ENV" $( [ "$ENV" = "prd" ] && echo '--force' )
|
|
76
|
+
done
|
|
77
|
+
|
|
78
|
+
# 5) Run your scripts with vaulter-managed variables
|
|
79
|
+
vaulter run -e dev -- pnpm start # Local run with local overrides
|
|
80
|
+
vaulter run -e dev -s web -- pnpm --dir apps/web dev
|
|
81
|
+
vaulter run -e dev -s api -- pnpm --dir apps/api lint
|
|
82
|
+
vaulter run -e stg -s api -- pnpm --dir apps/api migrate
|
|
83
|
+
vaulter run -e prd -- docker compose -f ./deploy/docker/docker-compose.yml up
|
|
84
|
+
|
|
85
|
+
# 6) Export service-specific artifacts per environment
|
|
86
|
+
# Config-like outputs
|
|
87
|
+
vaulter export env -e dev --service api > apps/api/.env
|
|
88
|
+
vaulter export env -e stg --service web > apps/web/.env
|
|
89
|
+
vaulter export shell -e prd --service api > /tmp/api-env.sh
|
|
90
|
+
|
|
91
|
+
# Kubernetes artifacts
|
|
92
|
+
vaulter export k8s-secret -e dev --service api --name api-secrets
|
|
93
|
+
vaulter export k8s-secret -e dev --service web --name web-secrets
|
|
94
|
+
vaulter export k8s-secret -e stg --service api --name api-secrets
|
|
95
|
+
vaulter export k8s-secret -e prd --service api --name api-secrets
|
|
96
|
+
|
|
97
|
+
# Deployment formats
|
|
98
|
+
vaulter export k8s-configmap -e prd --service api --name api-configmap
|
|
99
|
+
vaulter export helm -e prd --service api --name api-values
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
> `--force` is required on `apply -e prd` and other production-like environments.
|
|
103
|
+
|
|
37
104
|
---
|
|
38
105
|
|
|
39
106
|
## 🔄 Development Workflow
|
|
@@ -91,18 +158,20 @@ apps/api/.env # ❌ Gitignored - Generated output
|
|
|
91
158
|
|
|
92
159
|
```bash
|
|
93
160
|
# 1. Start: Pull latest from backend + apply your local overrides
|
|
94
|
-
vaulter local pull
|
|
161
|
+
vaulter local pull
|
|
95
162
|
|
|
96
163
|
# 2. Work: Add personal overrides (not shared with team)
|
|
97
164
|
vaulter local set DEBUG::true # Shared override
|
|
98
|
-
vaulter local set PORT::3001
|
|
165
|
+
vaulter local set PORT::3001 # Service-specific (inferred from cwd in monorepo)
|
|
99
166
|
|
|
100
167
|
# 3. Add new variable for team? Push to backend
|
|
101
|
-
vaulter set NEW_VAR=value
|
|
102
|
-
vaulter
|
|
168
|
+
vaulter local set NEW_VAR=value --shared # Personal scratch pad
|
|
169
|
+
vaulter local push # Share scratch locally with team
|
|
170
|
+
vaulter plan -e dev # Preview changes (recommended)
|
|
171
|
+
vaulter apply -e dev # Apply after approval
|
|
103
172
|
|
|
104
173
|
# 4. Check: See what's different
|
|
105
|
-
vaulter diff -e dev
|
|
174
|
+
vaulter diff -e dev # Local vs backend diff
|
|
106
175
|
|
|
107
176
|
# 5. Promote: Clone to staging/production
|
|
108
177
|
vaulter clone dev stg --dry-run # Preview
|
|
@@ -138,37 +207,70 @@ vaulter clone dev stg # Execute
|
|
|
138
207
|
|
|
139
208
|
### Team Collaboration
|
|
140
209
|
|
|
141
|
-
|
|
210
|
+
Team collaboration assumes one shared truth for each environment (backend) and private, local overrides per developer.
|
|
211
|
+
|
|
212
|
+
**New team member setup (2 minutes):**
|
|
142
213
|
```bash
|
|
143
214
|
git clone <repo> # Gets .vaulter/config.yaml
|
|
144
215
|
export VAULTER_KEY_DEV=<from-team> # Get key securely from team
|
|
145
|
-
vaulter sync
|
|
216
|
+
vaulter local sync -e dev # Pull remote vars to .vaulter/local/
|
|
146
217
|
vaulter local pull --all # Generate .env files (offline)
|
|
147
218
|
```
|
|
148
219
|
|
|
149
|
-
**
|
|
220
|
+
**Why this is stable for teams**
|
|
221
|
+
|
|
222
|
+
- `vaulter local set` is always a private, working-copy edit. It does **not** change what others consume by itself.
|
|
223
|
+
- `vaulter local push` is how you publish team-visible changes from local overrides.
|
|
224
|
+
- `vaulter local sync` is how others consume published changes.
|
|
225
|
+
- Use environment-specific gates (`status`, `diff`, and `plan/apply`) before merging critical updates.
|
|
226
|
+
|
|
227
|
+
**Recommended sharing flow (single variable):**
|
|
150
228
|
```bash
|
|
151
|
-
# 1
|
|
152
|
-
vaulter local set NEW_FEATURE::enabled # Shared config
|
|
229
|
+
# 1) Add locally first
|
|
230
|
+
vaulter local set --shared NEW_FEATURE::enabled # Shared config
|
|
231
|
+
vaulter local diff # Verify local change before publishing
|
|
232
|
+
|
|
233
|
+
# 2) Optional dry-run share preview
|
|
234
|
+
vaulter local push --shared --dry-run -e dev # Checks what would be pushed
|
|
153
235
|
|
|
154
|
-
#
|
|
155
|
-
vaulter
|
|
236
|
+
# 3) Share to backend (explicit approval step before running)
|
|
237
|
+
vaulter local push --shared -e dev
|
|
156
238
|
|
|
157
|
-
#
|
|
158
|
-
# "New var
|
|
239
|
+
# 4) Notify team
|
|
240
|
+
# "New var published. Run: vaulter local sync -e dev && vaulter local pull --all"
|
|
159
241
|
```
|
|
160
242
|
|
|
243
|
+
**Monorepo service rule (recommended):**
|
|
244
|
+
|
|
245
|
+
- Defaults are shared only when genuinely global.
|
|
246
|
+
- Service behavior should live in service scope (`-s svc-*`) unless explicitly cross-service.
|
|
247
|
+
- Keep service ownership rules documented in `.vaulter/config.yaml` (`policy`), so mistakes are prevented early.
|
|
248
|
+
|
|
249
|
+
**Conflict resolution if two devs edit same key**
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
vaulter local diff -s <service> # See your local delta
|
|
253
|
+
vaulter local sync -e dev # Pull latest from backend
|
|
254
|
+
vaulter local pull --all # Rebuild outputs
|
|
255
|
+
vaulter local diff -s <service> # Re-check before pushing
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
If divergence remains:
|
|
259
|
+
- Ask one owner to pause and re-publish.
|
|
260
|
+
- Prefer `vaulter plan -e dev` + manual review for sensitive or cross-service keys.
|
|
261
|
+
|
|
262
|
+
**Important:** Most `local` commands are local-only. Passing `-e/--env` is only needed when publishing or syncing with backend.
|
|
263
|
+
|
|
161
264
|
### MCP Tools for Workflow
|
|
162
265
|
|
|
163
266
|
| Task | Tool |
|
|
164
267
|
|:-----|:-----|
|
|
165
|
-
| Check health | `
|
|
166
|
-
| Pull with overrides | `
|
|
167
|
-
| Set shared override | `
|
|
168
|
-
| Set service override | `
|
|
169
|
-
| See differences | `
|
|
170
|
-
|
|
|
171
|
-
| Compare environments | `vaulter_compare source="dev" target="prd"` |
|
|
268
|
+
| Check health | `vaulter_status action="scorecard"` |
|
|
269
|
+
| Pull with overrides | `vaulter_local action="pull"` |
|
|
270
|
+
| Set shared override | `vaulter_local action="shared-set" key="DEBUG" value="true"` |
|
|
271
|
+
| Set service override | `vaulter_local action="set" key="PORT" value="3001"` |
|
|
272
|
+
| See differences | `vaulter_diff` |
|
|
273
|
+
| Compare environments | `vaulter_search source="dev" target="prd"` |
|
|
172
274
|
|
|
173
275
|
---
|
|
174
276
|
|
|
@@ -212,38 +314,40 @@ config() // Loads from .vaulter/local/ (configs.env + secrets.env)
|
|
|
212
314
|
npx vaulter run -- pnpm dev
|
|
213
315
|
|
|
214
316
|
# Or pull from backend first
|
|
215
|
-
vaulter local pull
|
|
317
|
+
vaulter local pull
|
|
216
318
|
```
|
|
217
319
|
|
|
218
320
|
That's it! For most local development, vaulter is just a structured dotenv.
|
|
219
321
|
|
|
220
322
|
---
|
|
221
323
|
|
|
222
|
-
## 🩺 Health Check -
|
|
324
|
+
## 🩺 Health Check - Status
|
|
223
325
|
|
|
224
|
-
**Always start with `vaulter
|
|
326
|
+
**Always start with `vaulter status`** to diagnose your setup:
|
|
225
327
|
|
|
226
328
|
```bash
|
|
227
|
-
vaulter
|
|
329
|
+
vaulter status -e dev
|
|
330
|
+
vaulter status -e dev --offline
|
|
228
331
|
```
|
|
229
332
|
|
|
230
|
-
|
|
333
|
+
Status performs **up to 18 checks** online, or a local-first subset in `--offline`.
|
|
231
334
|
|
|
232
335
|
| Check | What It Does |
|
|
233
336
|
|-------|--------------|
|
|
234
|
-
| ✅ **Connection** | Tests backend connectivity |
|
|
337
|
+
| ✅ **Connection** | Tests backend connectivity (skipped in `--offline`) |
|
|
235
338
|
| ✅ **Latency** | Measures operation speed |
|
|
236
339
|
| ✅ **Permissions** | Validates read/write/delete access |
|
|
237
340
|
| ✅ **Encryption** | Tests encrypt → decrypt round-trip |
|
|
238
341
|
| ✅ **Sync Status** | Compares local vs remote |
|
|
239
342
|
| ✅ **Security** | Detects .env in git, weak keys |
|
|
343
|
+
| ✅ **Scope Policy** | Checks `shared` vs `service` assignment rules |
|
|
240
344
|
| ✅ **Perf Config** | Suggests cache/warmup/concurrency tuning |
|
|
241
|
-
| ✅ **+
|
|
345
|
+
| ✅ **+8 more** | Config, project, environment, backend, keys, etc. |
|
|
242
346
|
|
|
243
347
|
**Example output:**
|
|
244
348
|
|
|
245
349
|
```
|
|
246
|
-
✓ ok:
|
|
350
|
+
✓ ok: 15 | ⚠ warn: 1 | ✗ fail: 1
|
|
247
351
|
|
|
248
352
|
✓ connection: connected (24 vars in dev)
|
|
249
353
|
✓ latency: read=45ms, list=67ms
|
|
@@ -266,17 +370,18 @@ For a quick pre-deploy validation in local/dev workflows:
|
|
|
266
370
|
|
|
267
371
|
```bash
|
|
268
372
|
VAULTER_VERIFY_ENV=dev pnpm run verify:vaulter
|
|
373
|
+
VAULTER_VERIFY_OFFLINE=0 VAULTER_VERIFY_REQUIRE_CONFIG=1 pnpm run verify:vaulter
|
|
269
374
|
```
|
|
270
375
|
|
|
271
376
|
The script runs:
|
|
272
377
|
|
|
273
|
-
- `vaulter
|
|
274
|
-
- `vaulter
|
|
378
|
+
- `vaulter status -e <env> -v [--offline]` (offline by default)
|
|
379
|
+
- `vaulter diff -e <env> --values`
|
|
275
380
|
- `vaulter list -e <env>`
|
|
276
381
|
|
|
277
382
|
It writes an execution log under `artifacts/vaulter-health/` for auditability.
|
|
278
383
|
|
|
279
|
-
**For AI Agents:** Call `
|
|
384
|
+
**For AI Agents:** Call `vaulter_status action="scorecard"` once at the start of a new session (or when operations fail / environments change) to understand the current state before performing sensitive operations.
|
|
280
385
|
|
|
281
386
|
See [docs/DOCTOR.md](docs/DOCTOR.md) for complete guide.
|
|
282
387
|
|
|
@@ -291,38 +396,52 @@ See [docs/DOCTOR.md](docs/DOCTOR.md) for complete guide.
|
|
|
291
396
|
| `init` | Initialize project config |
|
|
292
397
|
| `init --split` | Initialize with split mode (configs/secrets dirs) |
|
|
293
398
|
|
|
294
|
-
###
|
|
399
|
+
### Health
|
|
295
400
|
|
|
296
401
|
| Command | Description |
|
|
297
402
|
|:--------|:------------|
|
|
298
|
-
| `
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
|
303
|
-
|
|
403
|
+
| `status -e <env>` | Full diagnostic report with checks and suggestions |
|
|
404
|
+
|
|
405
|
+
### Mutations (`change`)
|
|
406
|
+
|
|
407
|
+
| Command | Description |
|
|
408
|
+
|:--------|:------------|
|
|
409
|
+
| `change set KEY=val -e <env>` | Set secret (encrypted) |
|
|
410
|
+
| `change set KEY::val -e <env>` | Set config (plain text) |
|
|
411
|
+
| `change set KEY:=123 -e <env>` | Set typed secret (number/boolean) |
|
|
412
|
+
| `change delete <key> -e <env>` | Delete variable |
|
|
413
|
+
| `change move <key> --from <scope> --to <scope> -e <env>` | Move/copy variable between scopes |
|
|
414
|
+
| `change import -f <file> -e <env>` | Import variables from file |
|
|
415
|
+
| `list -e <env>` | List all variables |
|
|
304
416
|
|
|
305
417
|
**Set syntax**: `=` encrypted secret · `::` plain config · `:=` typed secret
|
|
306
418
|
|
|
307
|
-
|
|
419
|
+
In monorepo mode, when `--service` is resolved, one of `--from` or `--to` can be omitted and inferred from the active service.
|
|
420
|
+
|
|
421
|
+
### Plan & Apply
|
|
308
422
|
|
|
309
423
|
| Command | Description |
|
|
310
424
|
|:--------|:------------|
|
|
311
|
-
| `
|
|
312
|
-
| `
|
|
313
|
-
| `
|
|
314
|
-
| `
|
|
315
|
-
| `
|
|
316
|
-
|
|
317
|
-
|
|
425
|
+
| `plan -e <env>` | Compute diff local vs backend, generate plan artifact |
|
|
426
|
+
| `apply -e <env>` | Execute plan, push changes to backend |
|
|
427
|
+
| `diff -e <env>` | Quick diff without plan artifacts |
|
|
428
|
+
| `plan --dir -e <env>` | Plan from `.vaulter/{env}/` directory |
|
|
429
|
+
| `plan [--plan-output <file>] -e <env>` | Write plan artifact (`.json` + `.md`). If `--plan-output` is omitted, defaults to `artifacts/vaulter-plans/<project>-<env>-<timestamp>.*` |
|
|
430
|
+
|
|
431
|
+
### Recommended daily path
|
|
432
|
+
|
|
433
|
+
- `vaulter local pull` → `vaulter local set` → `vaulter local push` (when ready)
|
|
434
|
+
- `vaulter change set` → `vaulter change move` → `vaulter plan -e <env>` → `vaulter apply -e <env>`
|
|
435
|
+
- `vaulter plan -e <env>` → validate → `vaulter apply -e <env>`
|
|
436
|
+
- `vaulter status -e <env>` for quick pre-flight health check
|
|
318
437
|
|
|
319
438
|
### Export
|
|
320
439
|
|
|
321
440
|
| Command | Description |
|
|
322
441
|
|:--------|:------------|
|
|
323
442
|
| `export shell -e <env>` | Export for shell `eval $(...)` |
|
|
324
|
-
| `export k8s-secret -e <env>` | Generate Kubernetes Secret |
|
|
325
|
-
| `export k8s-configmap -e <env>` | Generate Kubernetes ConfigMap |
|
|
443
|
+
| `export k8s-secret -e <env>` | Generate Kubernetes Secret (sensitive vars only) |
|
|
444
|
+
| `export k8s-configmap -e <env>` | Generate Kubernetes ConfigMap (config vars only) |
|
|
326
445
|
| `export helm -e <env>` | Generate Helm values.yaml |
|
|
327
446
|
| `export terraform -e <env>` | Generate Terraform .tfvars |
|
|
328
447
|
| `export docker -e <env>` | Docker env-file format |
|
|
@@ -381,6 +500,30 @@ npx vaulter run -e prd -- pnpm build
|
|
|
381
500
|
npx vaulter run -e dev -s api -- pnpm start
|
|
382
501
|
```
|
|
383
502
|
|
|
503
|
+
### Run scripts via package.json
|
|
504
|
+
|
|
505
|
+
Use `vaulter run` directly in your npm scripts to keep variables centralized and explicit.
|
|
506
|
+
|
|
507
|
+
```json
|
|
508
|
+
{
|
|
509
|
+
"scripts": {
|
|
510
|
+
"dev:web": "vaulter run -e dev -s web -- pnpm --dir apps/web dev",
|
|
511
|
+
"lint:api": "vaulter run -e dev -s api -- pnpm --dir apps/api lint",
|
|
512
|
+
"migrate:api:stg": "vaulter run -e stg -s api -- pnpm --dir apps/api run migrate",
|
|
513
|
+
"deploy:api:prd": "vaulter run -e prd -s api -- pnpm --dir apps/api build && vaulter export k8s-secret -e prd -s api --name api-secrets"
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
npm run dev:web
|
|
520
|
+
npm run lint:api
|
|
521
|
+
npm run migrate:api:stg
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
The important part is that `vaulter run` stays as the first command so variable resolution and scope resolution
|
|
525
|
+
happen before your script command.
|
|
526
|
+
|
|
384
527
|
The `run` command auto-detects the environment (local, CI, K8s) and loads the appropriate files before executing your command.
|
|
385
528
|
|
|
386
529
|
> Run `vaulter --help` or `vaulter <command> --help` for all options.
|
|
@@ -499,10 +642,10 @@ encryption:
|
|
|
499
642
|
**Example flow:**
|
|
500
643
|
```bash
|
|
501
644
|
# Set shared var (uses dev key because shared_key_environment: dev)
|
|
502
|
-
vaulter
|
|
645
|
+
vaulter change set LOG_LEVEL=debug -e dev --scope shared
|
|
503
646
|
|
|
504
647
|
# Read shared var from prd (still uses dev key for shared vars)
|
|
505
|
-
vaulter
|
|
648
|
+
vaulter list -e prd --shared # Works! Uses dev key for shared
|
|
506
649
|
```
|
|
507
650
|
|
|
508
651
|
---
|
|
@@ -533,6 +676,20 @@ audit:
|
|
|
533
676
|
enabled: true
|
|
534
677
|
retention_days: 90
|
|
535
678
|
|
|
679
|
+
scope_policy:
|
|
680
|
+
mode: warn
|
|
681
|
+
inherit_defaults: true
|
|
682
|
+
rules:
|
|
683
|
+
- name: api-keys-service
|
|
684
|
+
pattern: '^API_'
|
|
685
|
+
expected_scope: service
|
|
686
|
+
expected_service: svc-app
|
|
687
|
+
reason: 'API_* vars are service-owned'
|
|
688
|
+
- name: app-url-shared-default
|
|
689
|
+
pattern: '^APP_.*_URL$'
|
|
690
|
+
expected_scope: shared
|
|
691
|
+
reason: 'URL variables stay shared by default'
|
|
692
|
+
|
|
536
693
|
# Local development files (see "Local vs Deploy Structure" below)
|
|
537
694
|
# local: .vaulter/local/
|
|
538
695
|
|
|
@@ -581,7 +738,7 @@ Vaulter separates **local development** from **deployment** configurations:
|
|
|
581
738
|
| `local/configs.env` | Developer's machine | Ignored | Non-sensitive local vars |
|
|
582
739
|
| `local/secrets.env` | Developer's machine | Ignored | Sensitive local secrets |
|
|
583
740
|
| `deploy/configs/*.env` | CI/CD configs | Committed | Non-sensitive (PORT, HOST, LOG_LEVEL) |
|
|
584
|
-
| `deploy/secrets/*.env` | CI/CD secrets | Ignored | Pulled via `vaulter sync
|
|
741
|
+
| `deploy/secrets/*.env` | CI/CD secrets | Ignored | Pulled via `vaulter local sync` |
|
|
585
742
|
|
|
586
743
|
**Gitignore:**
|
|
587
744
|
|
|
@@ -754,7 +911,8 @@ You can also use the CLI directly:
|
|
|
754
911
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
755
912
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
756
913
|
run: |
|
|
757
|
-
npx vaulter sync
|
|
914
|
+
npx vaulter local sync -e prd
|
|
915
|
+
npx vaulter local pull -e prd
|
|
758
916
|
npx vaulter run -e prd -- pnpm build
|
|
759
917
|
```
|
|
760
918
|
|
|
@@ -797,8 +955,8 @@ Auto-detects NX, Turborepo, Lerna, pnpm, Yarn workspaces, Rush.
|
|
|
797
955
|
|
|
798
956
|
```bash
|
|
799
957
|
vaulter service list # List discovered services
|
|
800
|
-
vaulter
|
|
801
|
-
vaulter
|
|
958
|
+
vaulter plan -e dev -s api # Plan changes for specific service
|
|
959
|
+
vaulter apply -e dev -s api # Apply planned changes
|
|
802
960
|
vaulter export shell -e dev -s api # Export with shared inheritance
|
|
803
961
|
vaulter export shell -e dev --shared # Export only shared variables
|
|
804
962
|
```
|
|
@@ -864,7 +1022,7 @@ shared:
|
|
|
864
1022
|
|
|
865
1023
|
```bash
|
|
866
1024
|
# Pull to all outputs at once
|
|
867
|
-
vaulter
|
|
1025
|
+
vaulter local pull --all
|
|
868
1026
|
|
|
869
1027
|
# Result:
|
|
870
1028
|
# ✓ web: apps/web/.env.local (5 vars)
|
|
@@ -876,10 +1034,10 @@ vaulter sync pull --all
|
|
|
876
1034
|
|
|
877
1035
|
```bash
|
|
878
1036
|
# Pull only web
|
|
879
|
-
vaulter
|
|
1037
|
+
vaulter local pull --output web
|
|
880
1038
|
|
|
881
1039
|
# Preview without writing
|
|
882
|
-
vaulter
|
|
1040
|
+
vaulter local pull --all --dry-run
|
|
883
1041
|
```
|
|
884
1042
|
|
|
885
1043
|
### How It Works
|
|
@@ -890,7 +1048,7 @@ vaulter sync pull --all --dry-run
|
|
|
890
1048
|
│ DATABASE_URL, JWT_SECRET, NEXT_PUBLIC_API, LOG_LEVEL │
|
|
891
1049
|
└────────────────────────┬────────────────────────────────┘
|
|
892
1050
|
│
|
|
893
|
-
vaulter
|
|
1051
|
+
vaulter local pull --all
|
|
894
1052
|
│
|
|
895
1053
|
┌───────────────┼───────────────┐
|
|
896
1054
|
▼ ▼ ▼
|
|
@@ -929,17 +1087,19 @@ outputs:
|
|
|
929
1087
|
|
|
930
1088
|
## Local Overrides (Dev Environment) - OFFLINE FIRST
|
|
931
1089
|
|
|
932
|
-
**`vaulter local pull`
|
|
1090
|
+
**`vaulter local pull` and local `.env` generation are 100% OFFLINE** - no backend calls.
|
|
933
1091
|
|
|
934
|
-
Works entirely from local files in `.vaulter/local/`.
|
|
1092
|
+
Works entirely from local files in `.vaulter/local/`. This is the primary workflow for day-to-day development: edit local overrides, run `vaulter local pull`, and only sync when needed.
|
|
935
1093
|
|
|
936
1094
|
### Quick Reference
|
|
937
1095
|
|
|
938
1096
|
| Command | What it does | Backend? |
|
|
939
1097
|
|---------|--------------|----------|
|
|
940
|
-
| `vaulter local pull
|
|
1098
|
+
| `vaulter local pull` | Generate .env files from local | ❌ OFFLINE |
|
|
941
1099
|
| `vaulter local push --all` | Send local → backend | ✅ Backend |
|
|
942
1100
|
| `vaulter local sync` | Download backend → local | ✅ Backend |
|
|
1101
|
+
| `vaulter local set` | Write local override to `.vaulter/local/` | ❌ OFFLINE |
|
|
1102
|
+
| `vaulter local diff` | Compare local overrides vs base env | ❌ OFFLINE |
|
|
943
1103
|
|
|
944
1104
|
### Workflow
|
|
945
1105
|
|
|
@@ -947,7 +1107,7 @@ Works entirely from local files in `.vaulter/local/`. Perfect for local developm
|
|
|
947
1107
|
┌─────────────────────────────────────────────────────┐
|
|
948
1108
|
│ LOCAL DEVELOPMENT │
|
|
949
1109
|
│ 1. Edit .vaulter/local/*.env │
|
|
950
|
-
│ 2. vaulter local pull
|
|
1110
|
+
│ 2. vaulter local pull → Generate .env │
|
|
951
1111
|
│ 3. Develop... │
|
|
952
1112
|
└─────────────────────────────────────────────────────┘
|
|
953
1113
|
↓
|
|
@@ -960,10 +1120,12 @@ Works entirely from local files in `.vaulter/local/`. Perfect for local developm
|
|
|
960
1120
|
│ NEW TEAM MEMBER │
|
|
961
1121
|
│ 1. git clone <repo> │
|
|
962
1122
|
│ 2. vaulter local sync → Download from backend │
|
|
963
|
-
│ 3. vaulter local pull
|
|
1123
|
+
│ 3. vaulter local pull → Generate .env │
|
|
964
1124
|
└─────────────────────────────────────────────────────┘
|
|
965
1125
|
```
|
|
966
1126
|
|
|
1127
|
+
For monorepos, use `--service <name>` on `local set`, `local delete`, `local diff`, and `local push` (without `--all`), unless the CLI can infer the service from your current directory (or the monorepo has only one service).
|
|
1128
|
+
|
|
967
1129
|
### File Structure
|
|
968
1130
|
|
|
969
1131
|
```
|
|
@@ -997,11 +1159,13 @@ For each output target, vaulter merges:
|
|
|
997
1159
|
# === EDIT LOCALLY ===
|
|
998
1160
|
vaulter local set --shared DEBUG::true # shared config
|
|
999
1161
|
vaulter local set --shared API_KEY=xxx # shared secret
|
|
1000
|
-
vaulter local set PORT::3001
|
|
1162
|
+
vaulter local set PORT::3001 # service config (inferred from cwd in monorepo)
|
|
1001
1163
|
vaulter local set DB_URL=xxx -s api # service secret
|
|
1164
|
+
# In service directories, `-s` is usually auto-inferred.
|
|
1165
|
+
# If the repo has only one service, `-s` is inferred automatically too.
|
|
1002
1166
|
|
|
1003
1167
|
# === GENERATE .ENV FILES [OFFLINE] ===
|
|
1004
|
-
vaulter local pull
|
|
1168
|
+
vaulter local pull
|
|
1005
1169
|
# Output: "svc-auth: 23 vars (21 shared + 2 service)"
|
|
1006
1170
|
|
|
1007
1171
|
# === SHARE WITH TEAM ===
|
|
@@ -1009,7 +1173,7 @@ vaulter local push --all # Upload entire structure
|
|
|
1009
1173
|
|
|
1010
1174
|
# === GET TEAM'S CHANGES ===
|
|
1011
1175
|
vaulter local sync # Download from backend
|
|
1012
|
-
vaulter local pull
|
|
1176
|
+
vaulter local pull # Generate .env files
|
|
1013
1177
|
|
|
1014
1178
|
# === OTHER ===
|
|
1015
1179
|
vaulter local diff # Show differences
|
|
@@ -1045,10 +1209,10 @@ NODE_ENV=production
|
|
|
1045
1209
|
|
|
1046
1210
|
```bash
|
|
1047
1211
|
# Section-aware pull (default)
|
|
1048
|
-
vaulter local pull
|
|
1212
|
+
vaulter local pull
|
|
1049
1213
|
|
|
1050
1214
|
# Overwrite entire file (ignores sections)
|
|
1051
|
-
vaulter local pull --
|
|
1215
|
+
vaulter local pull --overwrite
|
|
1052
1216
|
```
|
|
1053
1217
|
|
|
1054
1218
|
**Programmatic API:**
|
|
@@ -1271,7 +1435,7 @@ const result = await loadRuntime({
|
|
|
1271
1435
|
|
|
1272
1436
|
## MCP Server
|
|
1273
1437
|
|
|
1274
|
-
Claude AI integration via Model Context Protocol. **
|
|
1438
|
+
Claude AI integration via Model Context Protocol. **17 Tools | 4 Resources | 5 Prompts.**
|
|
1275
1439
|
|
|
1276
1440
|
```bash
|
|
1277
1441
|
vaulter mcp
|
|
@@ -1290,58 +1454,52 @@ vaulter mcp
|
|
|
1290
1454
|
}
|
|
1291
1455
|
```
|
|
1292
1456
|
|
|
1293
|
-
### Tools (
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
|
1298
|
-
|
|
1299
|
-
| **
|
|
1300
|
-
|
|
|
1301
|
-
|
|
|
1302
|
-
|
|
|
1303
|
-
| **
|
|
1304
|
-
|
|
|
1305
|
-
|
|
|
1306
|
-
|
|
|
1307
|
-
| **
|
|
1308
|
-
| **
|
|
1309
|
-
| **
|
|
1310
|
-
| **
|
|
1311
|
-
| **
|
|
1312
|
-
|
|
|
1313
|
-
|
|
1314
|
-
|
|
1457
|
+
### Tools (17)
|
|
1458
|
+
|
|
1459
|
+
> **Tool Architecture:** Each tool is action-based (one tool per domain with `action` parameter).
|
|
1460
|
+
|
|
1461
|
+
| Category | Tool | Actions / Description |
|
|
1462
|
+
|:---------|:-----|:---------------------|
|
|
1463
|
+
| **Mutation Flow** | `vaulter_change` | set, delete, move, import (writes local state only) |
|
|
1464
|
+
| | `vaulter_plan` | Compute diff local vs backend, generate plan artifact |
|
|
1465
|
+
| | `vaulter_apply` | Execute plan, push changes to backend |
|
|
1466
|
+
| | `vaulter_run` | Execute command with loaded variables |
|
|
1467
|
+
| **Read** | `vaulter_get` | Get single var or multi-get via `keys[]` |
|
|
1468
|
+
| | `vaulter_list` | List vars with optional filter |
|
|
1469
|
+
| | `vaulter_search` | Search by pattern or compare environments |
|
|
1470
|
+
| | `vaulter_diff` | Quick diff without plan artifacts |
|
|
1471
|
+
| **Status** | `vaulter_status` | scorecard, vars, audit, drift, inventory |
|
|
1472
|
+
| **Export** | `vaulter_export` | k8s-secret, k8s-configmap, helm, terraform, env, shell, json |
|
|
1473
|
+
| **Keys** | `vaulter_key` | generate, list, show, export, import, rotate |
|
|
1474
|
+
| **Local Dev** | `vaulter_local` | pull, push, push-all, sync, set, delete, diff, status, shared-set, shared-delete, shared-list |
|
|
1475
|
+
| **Backup** | `vaulter_snapshot` | create, list, restore, delete |
|
|
1476
|
+
| | `vaulter_versions` | list, get, rollback |
|
|
1477
|
+
| **Setup** | `vaulter_init` | Initialize project |
|
|
1478
|
+
| | `vaulter_services` | Discover monorepo services |
|
|
1479
|
+
| **Danger** | `vaulter_nuke` | Preview backend deletion (CLI-only execution) |
|
|
1480
|
+
|
|
1481
|
+
### Resources (4)
|
|
1315
1482
|
|
|
1316
1483
|
Static data views (no input required). For actions with parameters, use tools.
|
|
1317
1484
|
|
|
1318
1485
|
| URI | Description |
|
|
1319
1486
|
|:----|:------------|
|
|
1320
|
-
| `vaulter://instructions` | **Read first!**
|
|
1487
|
+
| `vaulter://instructions` | **Read first!** s3db.js architecture + tool overview |
|
|
1321
1488
|
| `vaulter://tools-guide` | Which tool to use for each scenario |
|
|
1322
|
-
| `vaulter://monorepo-example` | Complete monorepo isolation example with var counts |
|
|
1323
|
-
| `vaulter://mcp-config` | MCP settings sources (priority chain) |
|
|
1324
1489
|
| `vaulter://config` | Project configuration (YAML) |
|
|
1325
1490
|
| `vaulter://services` | Monorepo services list |
|
|
1326
1491
|
|
|
1327
|
-
### Prompts (
|
|
1492
|
+
### Prompts (5)
|
|
1328
1493
|
|
|
1329
1494
|
Pre-configured workflows for common tasks.
|
|
1330
1495
|
|
|
1331
1496
|
| Prompt | Description |
|
|
1332
1497
|
|:-------|:------------|
|
|
1333
1498
|
| `setup_project` | Initialize new vaulter project |
|
|
1334
|
-
| `migrate_dotenv` | Migrate existing .env files |
|
|
1335
1499
|
| `deploy_secrets` | Deploy to Kubernetes |
|
|
1336
1500
|
| `compare_environments` | Compare dev vs prd |
|
|
1337
|
-
| `security_audit` | Audit secrets for issues |
|
|
1338
1501
|
| `rotation_workflow` | Check/rotate/report on rotation |
|
|
1339
|
-
| `
|
|
1340
|
-
| `batch_operations` | Multi-set/get/delete operations |
|
|
1341
|
-
| `copy_environment` | Copy variables between environments |
|
|
1342
|
-
| `sync_workflow` | Sync local files with remote backend |
|
|
1343
|
-
| `monorepo_deploy` | Complete monorepo setup with isolation |
|
|
1344
|
-
| `local_overrides_workflow` | Manage local dev overrides (shared + service) |
|
|
1502
|
+
| `local_dev_workflow` | Manage local dev overrides (shared + service) |
|
|
1345
1503
|
|
|
1346
1504
|
> **Full MCP documentation:** See [docs/MCP.md](docs/MCP.md) for complete tool reference with parameters.
|
|
1347
1505
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vaulter `apply` Command
|
|
3
|
+
*
|
|
4
|
+
* Executes the last plan, pushing changes to the backend.
|
|
5
|
+
* If no plan exists or plan is stale, auto-plans first.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* vaulter apply -e dev Apply latest plan (auto-plan if needed)
|
|
9
|
+
* vaulter apply -e prd --force Apply to production (requires --force)
|
|
10
|
+
* vaulter apply -e dev --dry-run Show what would be applied
|
|
11
|
+
* vaulter apply -e dev --prune Include remote-only deletions
|
|
12
|
+
*/
|
|
13
|
+
import type { VarContext } from './change.js';
|
|
14
|
+
export declare function runApply(context: VarContext): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAc7C,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GjE"}
|