vaulter 0.2.1 → 0.3.1

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.
Files changed (49) hide show
  1. package/README.md +353 -8
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +80 -11
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/commands/integrations/kubernetes.d.ts +14 -0
  6. package/dist/cli/commands/integrations/kubernetes.d.ts.map +1 -1
  7. package/dist/cli/commands/integrations/kubernetes.js +166 -56
  8. package/dist/cli/commands/integrations/kubernetes.js.map +1 -1
  9. package/dist/cli/commands/pull.d.ts.map +1 -1
  10. package/dist/cli/commands/pull.js +6 -4
  11. package/dist/cli/commands/pull.js.map +1 -1
  12. package/dist/cli/commands/push.d.ts.map +1 -1
  13. package/dist/cli/commands/push.js +6 -4
  14. package/dist/cli/commands/push.js.map +1 -1
  15. package/dist/cli/commands/set.d.ts +13 -1
  16. package/dist/cli/commands/set.d.ts.map +1 -1
  17. package/dist/cli/commands/set.js +294 -48
  18. package/dist/cli/commands/set.js.map +1 -1
  19. package/dist/cli/commands/sync.d.ts +3 -2
  20. package/dist/cli/commands/sync.d.ts.map +1 -1
  21. package/dist/cli/commands/sync.js +19 -16
  22. package/dist/cli/commands/sync.js.map +1 -1
  23. package/dist/cli/index.js +304 -135
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/client.d.ts +6 -0
  26. package/dist/client.d.ts.map +1 -1
  27. package/dist/client.js +21 -3
  28. package/dist/client.js.map +1 -1
  29. package/dist/lib/batch-runner.d.ts +0 -1
  30. package/dist/lib/batch-runner.d.ts.map +1 -1
  31. package/dist/lib/batch-runner.js +1 -1
  32. package/dist/lib/batch-runner.js.map +1 -1
  33. package/dist/lib/config-loader.d.ts +39 -1
  34. package/dist/lib/config-loader.d.ts.map +1 -1
  35. package/dist/lib/config-loader.js +106 -6
  36. package/dist/lib/config-loader.js.map +1 -1
  37. package/dist/mcp/resources.d.ts.map +1 -1
  38. package/dist/mcp/resources.js +3 -2
  39. package/dist/mcp/resources.js.map +1 -1
  40. package/dist/mcp/server.d.ts.map +1 -1
  41. package/dist/mcp/server.js +12 -1
  42. package/dist/mcp/server.js.map +1 -1
  43. package/dist/mcp/tools.d.ts.map +1 -1
  44. package/dist/mcp/tools.js +8 -13
  45. package/dist/mcp/tools.js.map +1 -1
  46. package/dist/types.d.ts +25 -1
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js.map +1 -1
  49. package/package.json +2 -3
package/README.md CHANGED
@@ -18,9 +18,11 @@ npm install -g vaulter
18
18
  # Initialize project
19
19
  vaulter init
20
20
 
21
- # Set some secrets
22
- vaulter set DATABASE_URL "postgres://localhost/mydb" -e dev
23
- vaulter set API_KEY "sk-secret-key" -e dev
21
+ # Set secrets (encrypted, synced to backend)
22
+ vaulter set DATABASE_URL="postgres://localhost/mydb" API_KEY="sk-secret-key" -e dev
23
+
24
+ # Set configs (plain text, file only in split mode)
25
+ vaulter set PORT:3000 LOG_LEVEL:debug -e dev
24
26
 
25
27
  # Export to shell
26
28
  eval $(vaulter export -e dev)
@@ -50,13 +52,41 @@ MCP server for Claude AI. Zero config for dev, production-ready.
50
52
 
51
53
  ---
52
54
 
55
+ ## Table of Contents
56
+
57
+ - [Quick Start](#quick-start)
58
+ - [What's Inside](#whats-inside)
59
+ - [Highlights](#highlights)
60
+ - [Commands](#commands)
61
+ - [Configuration](#configuration)
62
+ - [Directory Modes](#directory-modes)
63
+ - [Backend URLs](#backend-urls)
64
+ - [Encryption](#encryption)
65
+ - [Running Commands](#running-commands)
66
+ - [Shell Scripts](#shell-scripts)
67
+ - [Interactive Tools](#interactive-tools)
68
+ - [Integrations](#integrations)
69
+ - [kubectl](#kubectl)
70
+ - [Helm & Helmfile](#helm--helmfile)
71
+ - [Terraform & Terragrunt](#terraform--terragrunt)
72
+ - [Monorepo Support](#monorepo-support)
73
+ - [NX Monorepo](#nx-monorepo)
74
+ - [Turborepo](#turborepo)
75
+ - [MCP Tools](#mcp-tools)
76
+ - [CI/CD](#cicd)
77
+ - [Security Best Practices](#security-best-practices)
78
+ - [API Usage](#api-usage)
79
+ - [Pre-built Binaries](#pre-built-binaries)
80
+
81
+ ---
82
+
53
83
  ## What's Inside
54
84
 
55
85
  | Category | Features |
56
86
  |:---------|:---------|
57
87
  | **Backends** | AWS S3, MinIO, Cloudflare R2, DigitalOcean Spaces, Backblaze B2, FileSystem, Memory |
58
- | **Encryption** | AES-256-GCM via s3db.js, field-level encryption, key rotation |
59
- | **Environments** | dev, stg, prd, sbx, dr (fully customizable) |
88
+ | **Encryption** | AES-256-GCM via s3db.js, field-level encryption |
89
+ | **Environments** | dev, stg, prd, sbx, dr (configurable subset) |
60
90
  | **Integrations** | Kubernetes Secret/ConfigMap, Helm values.yaml, Terraform tfvars |
61
91
  | **Monorepo** | Service discovery, batch operations, config inheritance |
62
92
  | **MCP Server** | Claude AI integration via Model Context Protocol |
@@ -141,7 +171,8 @@ loader({ path: '.env.local', override: true })
141
171
  |:--------|:------------|:--------|
142
172
  | `init` | Initialize project | `vaulter init` |
143
173
  | `get <key>` | Get a variable | `vaulter get DATABASE_URL -e prd` |
144
- | `set <key> <value>` | Set a variable | `vaulter set API_KEY "sk-..." -e prd` |
174
+ | `set KEY=val ...` | Set secrets (batch) | `vaulter set KEY1=v1 KEY2=v2 -e prd` |
175
+ | `set KEY:val ...` | Set configs (plain) | `vaulter set PORT:3000 HOST:0.0.0.0 -e dev` |
145
176
  | `delete <key>` | Delete a variable | `vaulter delete OLD_KEY -e dev` |
146
177
  | `list` | List all variables | `vaulter list -e prd` |
147
178
  | `export` | Export for shell | `eval $(vaulter export -e dev)` |
@@ -172,6 +203,33 @@ loader({ path: '.env.local', override: true })
172
203
  | `services` | List monorepo services | `vaulter services` |
173
204
  | `mcp` | Start MCP server | `vaulter mcp` |
174
205
 
206
+ ### Set Command Syntax
207
+
208
+ HTTPie-style separators for differentiating secrets from configs:
209
+
210
+ ```bash
211
+ # Secrets (encrypted, synced to backend)
212
+ vaulter set KEY=value # Single secret
213
+ vaulter set A=1 B=2 C=3 -e dev # Batch secrets
214
+ vaulter set KEY:=123 # Typed secret (number/boolean)
215
+
216
+ # Configs (plain text, file only in split mode, synced in unified mode)
217
+ vaulter set PORT::3000 HOST::localhost # Configs
218
+
219
+ # With metadata
220
+ vaulter set DB_URL=postgres://... @tag:database,sensitive @owner:backend -e prd
221
+
222
+ # Legacy syntax (still works)
223
+ vaulter set KEY "value" -e dev # Treated as secret
224
+ ```
225
+
226
+ | Separator | Type | Backend Sync | Encryption |
227
+ |:----------|:-----|:-------------|:-----------|
228
+ | `=` | Secret | ✓ | ✓ |
229
+ | `:=` | Secret (typed) | ✓ | ✓ |
230
+ | `::` | Config | Split: ✗ / Unified: ✓ | ✗ |
231
+ | `@key:value` | Metadata | — | — |
232
+
175
233
  ## Global Options
176
234
 
177
235
  ```
@@ -227,7 +285,7 @@ Sync merges local and remote variables. Conflicts are resolved by `sync.conflict
227
285
 
228
286
  ```yaml
229
287
  sync:
230
- conflict: local # local | remote | prompt | error
288
+ conflict: local # local | remote | error
231
289
  ignore:
232
290
  - "PUBLIC_*"
233
291
  required:
@@ -236,9 +294,70 @@ sync:
236
294
  ```
237
295
 
238
296
  Notes:
239
- - `prompt` and `error` will stop the sync if conflicts are detected.
297
+ - `local` (default): Local values win on conflict, remote-only keys are pulled to local
298
+ - `remote`: Remote values win on conflict
299
+ - `error`: Stop sync if any conflicts are detected
240
300
  - When reading from stdin, sync only updates the backend (local file is not changed).
241
301
 
302
+ ### Directory Modes
303
+
304
+ Vaulter supports two directory structures for organizing environment files:
305
+
306
+ #### Unified Mode (Default)
307
+
308
+ All environment files in a single directory:
309
+
310
+ ```
311
+ my-project/
312
+ ├── .vaulter/
313
+ │ ├── config.yaml
314
+ │ └── environments/
315
+ │ ├── dev.env # All vars (secrets + configs)
316
+ │ ├── stg.env
317
+ │ └── prd.env
318
+ ```
319
+
320
+ #### Split Mode
321
+
322
+ Separate directories for configs (committable) and secrets (gitignored):
323
+
324
+ ```
325
+ my-project/
326
+ ├── .vaulter/
327
+ │ └── config.yaml
328
+ └── deploy/
329
+ ├── configs/ # ✅ Committable (non-sensitive)
330
+ │ ├── dev.env # NODE_ENV, PORT, LOG_LEVEL
331
+ │ ├── stg.env
332
+ │ └── prd.env
333
+ └── secrets/ # ❌ Gitignored (sensitive)
334
+ ├── dev.env # DATABASE_URL, JWT_SECRET
335
+ ├── stg.env
336
+ └── prd.env
337
+ ```
338
+
339
+ Configure split mode in `config.yaml`:
340
+
341
+ ```yaml
342
+ directories:
343
+ mode: split # "unified" (default) or "split"
344
+ configs: deploy/configs # Non-sensitive vars (committable)
345
+ secrets: deploy/secrets # Sensitive vars (gitignored)
346
+ ```
347
+
348
+ Tip: scaffold split mode with `vaulter init --split`.
349
+
350
+ **Behavior in split mode:**
351
+ - `sync`, `pull`, `push` operate on the **secrets** directory
352
+ - `k8s:secret` reads from local **secrets** file (no backend fetch)
353
+ - `k8s:configmap` reads from local **configs** file (no backend fetch)
354
+ - Configs are managed via git, secrets via vaulter
355
+
356
+ **When to use split mode:**
357
+ - Monorepos with deploy directories per service
358
+ - Teams that want configs reviewed in PRs
359
+ - Environments where non-sensitive configs should be in git
360
+
242
361
  ### Hooks
243
362
 
244
363
  ```yaml
@@ -322,6 +441,231 @@ security:
322
441
 
323
442
  `auto_encrypt.patterns` is used to classify secrets for integrations (K8s/Helm).
324
443
 
444
+ ## Running Commands
445
+
446
+ Load environment variables into any command using `eval $(vaulter export)`.
447
+
448
+ ### Shell Scripts
449
+
450
+ ```bash
451
+ # Run a script with environment variables
452
+ eval $(vaulter export -e dev) ./myscript.sh
453
+
454
+ # Or in two steps
455
+ eval $(vaulter export -e dev)
456
+ ./myscript.sh
457
+
458
+ # One-liner with subshell (vars don't persist after)
459
+ (eval $(vaulter export -e prd) && ./deploy.sh)
460
+
461
+ # Using env command (cleaner syntax)
462
+ env $(vaulter export -e dev --format=shell) ./myscript.sh
463
+ ```
464
+
465
+ ### Interactive Tools
466
+
467
+ ```bash
468
+ # k9s with production credentials
469
+ eval $(vaulter export -e prd) k9s
470
+
471
+ # psql with database URL
472
+ eval $(vaulter export -e dev) psql $DATABASE_URL
473
+
474
+ # redis-cli
475
+ eval $(vaulter export -e dev) redis-cli -u $REDIS_URL
476
+
477
+ # AWS CLI with credentials
478
+ eval $(vaulter export -e prd) aws s3 ls
479
+
480
+ # Docker run with env vars
481
+ eval $(vaulter export -e dev) docker run --env-file <(vaulter export -e dev --format=env) myapp
482
+
483
+ # Any Node.js app
484
+ eval $(vaulter export -e dev) node server.js
485
+
486
+ # Python app
487
+ eval $(vaulter export -e dev) python app.py
488
+ ```
489
+
490
+ ### Shell Alias (Recommended)
491
+
492
+ Add to your `~/.bashrc` or `~/.zshrc`:
493
+
494
+ ```bash
495
+ # Quick alias for common environments
496
+ alias vdev='eval $(vaulter export -e dev)'
497
+ alias vstg='eval $(vaulter export -e stg)'
498
+ alias vprd='eval $(vaulter export -e prd)'
499
+
500
+ # Usage
501
+ vdev ./myscript.sh
502
+ vprd k9s
503
+ vstg psql $DATABASE_URL
504
+ ```
505
+
506
+ ### One-liner Pattern
507
+
508
+ ```bash
509
+ # Pattern: eval $(vaulter export -e ENV) COMMAND
510
+ eval $(vaulter export -e dev) npm run dev
511
+ eval $(vaulter export -e prd) kubectl get pods
512
+ eval $(vaulter export -e stg) terraform plan
513
+ ```
514
+
515
+ ## Integrations
516
+
517
+ ### kubectl
518
+
519
+ ```bash
520
+ # Create Secret from vaulter
521
+ vaulter k8s:secret -e prd | kubectl apply -f -
522
+
523
+ # Create ConfigMap (non-secret vars)
524
+ vaulter k8s:configmap -e prd | kubectl apply -f -
525
+
526
+ # With custom name and namespace
527
+ vaulter k8s:secret -e prd -n my-namespace --name my-app-secrets | kubectl apply -f -
528
+
529
+ # Dry-run to see YAML
530
+ vaulter k8s:secret -e prd --dry-run
531
+
532
+ # Create secret from export (alternative)
533
+ vaulter export -e prd --format=env | \
534
+ kubectl create secret generic myapp --from-env-file=/dev/stdin --dry-run=client -o yaml | \
535
+ kubectl apply -f -
536
+
537
+ # Run kubectl with vaulter vars
538
+ eval $(vaulter export -e prd) kubectl exec -it deploy/myapp -- env | grep DATABASE
539
+ ```
540
+
541
+ ### Helm & Helmfile
542
+
543
+ #### Helm
544
+
545
+ ```bash
546
+ # Generate values.yaml and pipe to helm
547
+ vaulter helm:values -e prd | helm upgrade myapp ./chart -f -
548
+
549
+ # Save values to file
550
+ vaulter helm:values -e prd > values.prd.yaml
551
+ helm upgrade myapp ./chart -f values.prd.yaml
552
+
553
+ # With secrets separated (uses auto_encrypt.patterns)
554
+ vaulter helm:values -e prd --secrets # Only secret vars
555
+ vaulter helm:values -e prd --config # Only non-secret vars
556
+
557
+ # Install with inline values
558
+ helm install myapp ./chart \
559
+ --set-string DATABASE_URL="$(vaulter get DATABASE_URL -e prd)" \
560
+ --set-string API_KEY="$(vaulter get API_KEY -e prd)"
561
+ ```
562
+
563
+ #### Helmfile
564
+
565
+ ```yaml
566
+ # helmfile.yaml
567
+ repositories:
568
+ - name: bitnami
569
+ url: https://charts.bitnami.com/bitnami
570
+
571
+ releases:
572
+ - name: myapp
573
+ namespace: production
574
+ chart: ./charts/myapp
575
+ values:
576
+ - values.yaml
577
+ - values.prd.yaml # Generated by: vaulter helm:values -e prd > values.prd.yaml
578
+ ```
579
+
580
+ ```bash
581
+ # Generate values before helmfile sync
582
+ vaulter helm:values -e prd > values.prd.yaml
583
+ helmfile sync
584
+
585
+ # Or use process substitution
586
+ helmfile sync --values <(vaulter helm:values -e prd)
587
+
588
+ # With environment variables for helmfile
589
+ eval $(vaulter export -e prd) helmfile apply
590
+ ```
591
+
592
+ ### Terraform & Terragrunt
593
+
594
+ #### Terraform
595
+
596
+ ```bash
597
+ # Generate .tfvars file
598
+ vaulter tf:vars -e prd > terraform.tfvars
599
+ terraform plan
600
+
601
+ # Generate JSON format
602
+ vaulter tf:json -e prd > terraform.tfvars.json
603
+ terraform plan -var-file=terraform.tfvars.json
604
+
605
+ # Pass vars inline
606
+ terraform plan \
607
+ -var="database_url=$(vaulter get DATABASE_URL -e prd)" \
608
+ -var="api_key=$(vaulter get API_KEY -e prd)"
609
+
610
+ # Use TF_VAR_* environment variables
611
+ eval $(vaulter export -e prd --format=tfvars)
612
+ terraform plan
613
+
614
+ # Pipe directly (requires bash process substitution)
615
+ terraform plan -var-file=<(vaulter tf:vars -e prd)
616
+ ```
617
+
618
+ #### Terragrunt
619
+
620
+ ```bash
621
+ # Set env vars for terragrunt
622
+ eval $(vaulter export -e prd) terragrunt plan
623
+
624
+ # Generate inputs file
625
+ vaulter tf:vars -e prd > inputs.tfvars
626
+ terragrunt plan --terragrunt-config terragrunt.hcl
627
+
628
+ # In terragrunt.hcl - use environment variables
629
+ # terragrunt.hcl
630
+ inputs = {
631
+ database_url = get_env("DATABASE_URL", "")
632
+ api_key = get_env("API_KEY", "")
633
+ }
634
+
635
+ # Then run:
636
+ eval $(vaulter export -e prd) terragrunt apply
637
+
638
+ # Or with inputs file
639
+ # terragrunt.hcl
640
+ terraform {
641
+ extra_arguments "custom_vars" {
642
+ commands = get_terraform_commands_that_need_vars()
643
+ arguments = [
644
+ "-var-file=inputs.tfvars"
645
+ ]
646
+ }
647
+ }
648
+ ```
649
+
650
+ ```bash
651
+ # Full workflow with terragrunt
652
+ vaulter pull -e prd # Get latest vars
653
+ vaulter tf:vars -e prd > inputs.tfvars # Generate tfvars
654
+ terragrunt plan # Plan with vars
655
+ terragrunt apply # Apply
656
+ ```
657
+
658
+ ### Integration Summary
659
+
660
+ | Tool | Command |
661
+ |:-----|:--------|
662
+ | **kubectl** | `vaulter k8s:secret -e prd \| kubectl apply -f -` |
663
+ | **helm** | `vaulter helm:values -e prd \| helm upgrade app ./chart -f -` |
664
+ | **helmfile** | `vaulter helm:values -e prd > values.prd.yaml && helmfile sync` |
665
+ | **terraform** | `vaulter tf:vars -e prd > terraform.tfvars && terraform plan` |
666
+ | **terragrunt** | `eval $(vaulter export -e prd) terragrunt apply` |
667
+ | **any command** | `eval $(vaulter export -e ENV) COMMAND` |
668
+
325
669
  ## Monorepo Support
326
670
 
327
671
  Vaulter auto-discovers services with `.vaulter/` directories and supports config inheritance.
@@ -490,6 +834,7 @@ deploy:
490
834
  .vaulter/.key
491
835
  .vaulter/config.local.yaml
492
836
  **/config.local.yaml
837
+ deploy/secrets/
493
838
  .env
494
839
  .env.*
495
840
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG5D,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4FjE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG5D,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKjE"}
@@ -11,6 +11,12 @@ import { createDefaultConfig, configExists, findConfigDir } from '../../lib/conf
11
11
  */
12
12
  export async function runInit(context) {
13
13
  const { args, verbose, dryRun, jsonOutput } = context;
14
+ const splitMode = args.split || false;
15
+ const splitDirectories = {
16
+ mode: 'split',
17
+ configs: 'deploy/configs',
18
+ secrets: 'deploy/secrets'
19
+ };
14
20
  // Check if already initialized
15
21
  if (configExists()) {
16
22
  const existingDir = findConfigDir();
@@ -39,18 +45,25 @@ export async function runInit(context) {
39
45
  action: 'init',
40
46
  project: projectName,
41
47
  configDir,
48
+ splitMode,
42
49
  dryRun: true
43
50
  }));
44
51
  }
45
52
  else {
46
53
  console.log('Dry run - would create:');
47
54
  console.log(` ${configDir}/config.yaml`);
48
- console.log(` ${configDir}/environments/`);
55
+ if (splitMode) {
56
+ console.log(` ${splitDirectories.configs}/`);
57
+ console.log(` ${splitDirectories.secrets}/`);
58
+ }
59
+ else {
60
+ console.log(` ${configDir}/environments/`);
61
+ }
49
62
  }
50
63
  return;
51
64
  }
52
65
  // Create configuration
53
- createDefaultConfig(configDir, projectName);
66
+ createDefaultConfig(configDir, projectName, splitMode ? { directories: splitDirectories } : {});
54
67
  // Create .gitignore for sensitive files
55
68
  const gitignorePath = path.join(configDir, '.gitignore');
56
69
  if (!fs.existsSync(gitignorePath)) {
@@ -61,15 +74,51 @@ export async function runInit(context) {
61
74
  `);
62
75
  }
63
76
  // Create placeholder environment files
64
- const envDir = path.join(configDir, 'environments');
65
77
  const environments = ['dev', 'stg', 'prd', 'sbx', 'dr'];
66
- for (const env of environments) {
67
- const envFile = path.join(envDir, `${env}.env`);
68
- if (!fs.existsSync(envFile)) {
69
- fs.writeFileSync(envFile, `# ${env.toUpperCase()} Environment Variables
78
+ if (splitMode) {
79
+ const baseDir = path.dirname(configDir);
80
+ const configsDir = path.join(baseDir, splitDirectories.configs);
81
+ const secretsDir = path.join(baseDir, splitDirectories.secrets);
82
+ if (!fs.existsSync(configsDir)) {
83
+ fs.mkdirSync(configsDir, { recursive: true });
84
+ }
85
+ if (!fs.existsSync(secretsDir)) {
86
+ fs.mkdirSync(secretsDir, { recursive: true });
87
+ }
88
+ const secretsGitignore = path.join(secretsDir, '.gitignore');
89
+ if (!fs.existsSync(secretsGitignore)) {
90
+ fs.writeFileSync(secretsGitignore, `# Vaulter secrets (do not commit)
91
+ *
92
+ !.gitignore
93
+ `);
94
+ }
95
+ for (const env of environments) {
96
+ const configsFile = path.join(configsDir, `${env}.env`);
97
+ if (!fs.existsSync(configsFile)) {
98
+ fs.writeFileSync(configsFile, `# ${env.toUpperCase()} Config Variables
99
+ # Non-sensitive config values for ${env}
100
+ # Example: NODE_ENV=${env}
101
+ `);
102
+ }
103
+ const secretsFile = path.join(secretsDir, `${env}.env`);
104
+ if (!fs.existsSync(secretsFile)) {
105
+ fs.writeFileSync(secretsFile, `# ${env.toUpperCase()} Secret Variables
106
+ # Sensitive values for ${env} (gitignored)
107
+ # Example: DATABASE_URL=postgres://localhost/${env}_db
108
+ `);
109
+ }
110
+ }
111
+ }
112
+ else {
113
+ const envDir = path.join(configDir, 'environments');
114
+ for (const env of environments) {
115
+ const envFile = path.join(envDir, `${env}.env`);
116
+ if (!fs.existsSync(envFile)) {
117
+ fs.writeFileSync(envFile, `# ${env.toUpperCase()} Environment Variables
70
118
  # Add your ${env} environment variables here
71
119
  # Example: DATABASE_URL=postgres://localhost/${env}_db
72
120
  `);
121
+ }
73
122
  }
74
123
  }
75
124
  if (jsonOutput) {
@@ -77,22 +126,42 @@ export async function runInit(context) {
77
126
  success: true,
78
127
  project: projectName,
79
128
  configDir,
129
+ splitMode,
80
130
  files: [
81
131
  'config.yaml',
82
132
  '.gitignore',
83
- ...environments.map(e => `environments/${e}.env`)
133
+ ...(splitMode
134
+ ? [
135
+ `${splitDirectories.secrets}/.gitignore`,
136
+ ...environments.map(e => `${splitDirectories.configs}/${e}.env`),
137
+ ...environments.map(e => `${splitDirectories.secrets}/${e}.env`)
138
+ ]
139
+ : environments.map(e => `environments/${e}.env`))
84
140
  ]
85
141
  }));
86
142
  }
87
143
  else {
88
144
  console.log(`✓ Initialized vaulter for project: ${projectName}`);
89
145
  console.log(` Config: ${configDir}/config.yaml`);
90
- console.log(` Environments: ${envDir}/`);
146
+ if (splitMode) {
147
+ console.log(` Configs: ${splitDirectories.configs}/`);
148
+ console.log(` Secrets: ${splitDirectories.secrets}/`);
149
+ }
150
+ else {
151
+ console.log(` Environments: ${path.join(configDir, 'environments')}/`);
152
+ }
91
153
  console.log('');
92
154
  console.log('Next steps:');
93
155
  console.log(' 1. Edit .vaulter/config.yaml to configure your backend');
94
- console.log(' 2. Add environment variables to .vaulter/environments/*.env');
95
- console.log(' 3. Run "vaulter sync -e dev" to sync with backend');
156
+ if (splitMode) {
157
+ console.log(' 2. Add non-sensitive vars to deploy/configs/*.env');
158
+ console.log(' 3. Add secrets to deploy/secrets/*.env');
159
+ console.log(' 4. Run "vaulter sync -e dev" to sync with backend');
160
+ }
161
+ else {
162
+ console.log(' 2. Add environment variables to .vaulter/environments/*.env');
163
+ console.log(' 3. Run "vaulter sync -e dev" to sync with backend');
164
+ }
96
165
  }
97
166
  }
98
167
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,14 @@
2
2
  * Vaulter CLI - Kubernetes Integration Commands
3
3
  *
4
4
  * Generate Kubernetes Secret and ConfigMap YAML
5
+ *
6
+ * Supports two modes:
7
+ * - Backend mode (default): Fetch variables from backend storage
8
+ * - Local mode (-f/--file): Read variables from local .env file
9
+ *
10
+ * In split mode (directories.mode=split):
11
+ * - k8s:secret can read from deploy/secrets/<env>.env
12
+ * - k8s:configmap can read from deploy/configs/<env>.env
5
13
  */
6
14
  import type { CLIArgs, VaulterConfig, Environment } from '../../../types.js';
7
15
  interface K8sContext {
@@ -15,10 +23,16 @@ interface K8sContext {
15
23
  }
16
24
  /**
17
25
  * Generate Kubernetes Secret YAML
26
+ *
27
+ * In split mode (directories.mode=split), reads from local secrets file.
28
+ * Otherwise, fetches from backend storage.
18
29
  */
19
30
  export declare function runK8sSecret(context: K8sContext): Promise<void>;
20
31
  /**
21
32
  * Generate Kubernetes ConfigMap YAML
33
+ *
34
+ * In split mode (directories.mode=split), reads from local configs file.
35
+ * Otherwise, fetches from backend and filters out secrets.
22
36
  */
23
37
  export declare function runK8sConfigMap(context: K8sContext): Promise<void>;
24
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"kubernetes.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/integrations/kubernetes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAI5E,UAAU,UAAU;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAoBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkErE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiExE"}
1
+ {"version":3,"file":"kubernetes.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/integrations/kubernetes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAW5E,UAAU,UAAU;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AA0ED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFrE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGxE"}