@factiii/stack 0.1.190 → 0.1.192
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 +6 -44
- package/bin/stack +36 -3
- package/dist/cli/secrets.d.ts +6 -1
- package/dist/cli/secrets.d.ts.map +1 -1
- package/dist/cli/secrets.js +228 -0
- package/dist/cli/secrets.js.map +1 -1
- package/dist/plugins/addons/dns/index.d.ts +47 -0
- package/dist/plugins/addons/dns/index.d.ts.map +1 -0
- package/dist/plugins/addons/dns/index.js +104 -0
- package/dist/plugins/addons/dns/index.js.map +1 -0
- package/dist/plugins/addons/dns/scanfix/dev.d.ts +13 -0
- package/dist/plugins/addons/dns/scanfix/dev.d.ts.map +1 -0
- package/dist/plugins/addons/dns/scanfix/dev.js +235 -0
- package/dist/plugins/addons/dns/scanfix/dev.js.map +1 -0
- package/dist/plugins/addons/server-mode/index.d.ts.map +1 -1
- package/dist/plugins/addons/server-mode/index.js +6 -0
- package/dist/plugins/addons/server-mode/index.js.map +1 -1
- package/dist/plugins/addons/server-mode/scanfix/env-marker.d.ts +17 -0
- package/dist/plugins/addons/server-mode/scanfix/env-marker.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/env-marker.js +195 -0
- package/dist/plugins/addons/server-mode/scanfix/env-marker.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/tailscale.d.ts +16 -0
- package/dist/plugins/addons/server-mode/scanfix/tailscale.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/tailscale.js +211 -0
- package/dist/plugins/addons/server-mode/scanfix/tailscale.js.map +1 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +8 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/index.js +5 -2
- package/dist/plugins/pipelines/factiii/index.js.map +1 -1
- package/dist/plugins/pipelines/factiii/prod.d.ts +1 -1
- package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/prod.js +45 -4
- package/dist/plugins/pipelines/factiii/prod.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/docker.d.ts +11 -0
- package/dist/plugins/pipelines/factiii/scanfix/docker.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/docker.js +269 -0
- package/dist/plugins/pipelines/factiii/scanfix/docker.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/start-sh.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/start-sh.js +3 -11
- package/dist/plugins/pipelines/factiii/scanfix/start-sh.js.map +1 -1
- package/dist/utils/ansible-vault-secrets.d.ts +8 -0
- package/dist/utils/ansible-vault-secrets.d.ts.map +1 -1
- package/dist/utils/ansible-vault-secrets.js +54 -0
- package/dist/utils/ansible-vault-secrets.js.map +1 -1
- package/package.json +19 -5
package/README.md
CHANGED
|
@@ -333,60 +333,22 @@ GitHub Actions workflows are intentionally minimal - they just SSH into servers
|
|
|
333
333
|
|
|
334
334
|
All deployment logic runs on the server in testable JavaScript, not in workflow bash scripts.
|
|
335
335
|
|
|
336
|
-
## Secrets
|
|
336
|
+
## Secrets Configuration
|
|
337
337
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
### Configuration
|
|
341
|
-
|
|
342
|
-
Add Ansible Vault configuration to `factiii.yml`:
|
|
338
|
+
Secrets are managed via Ansible Vault (see CLI commands above). Add this to `stack.yml`:
|
|
343
339
|
|
|
344
340
|
```yaml
|
|
345
|
-
# Ansible Vault configuration (for secrets)
|
|
346
341
|
ansible:
|
|
347
|
-
vault_path: group_vars/all/vault.yml
|
|
348
|
-
vault_password_file: ~/.vault_pass
|
|
342
|
+
vault_path: group_vars/all/vault.yml
|
|
343
|
+
vault_password_file: ~/.vault_pass # or set ANSIBLE_VAULT_PASSWORD env var
|
|
349
344
|
```
|
|
350
345
|
|
|
351
|
-
|
|
346
|
+
**Required secrets:** `STAGING_SSH`, `PROD_SSH`, and `AWS_SECRET_ACCESS_KEY` (if using AWS).
|
|
352
347
|
|
|
353
|
-
|
|
354
|
-
- **Password file:** Set `ansible.vault_password_file` in `factiii.yml` (e.g. `~/.vault_pass`)
|
|
355
|
-
- **Environment variable:** `ANSIBLE_VAULT_PASSWORD` or `ANSIBLE_VAULT_PASSWORD_FILE`
|
|
348
|
+
**CI/CD:** Add `ANSIBLE_VAULT_PASSWORD` to your GitHub repo secrets. Workflows use `npx stack deploy --secrets write-ssh-keys` to extract SSH keys for deployment.
|
|
356
349
|
|
|
357
350
|
**Security:** Never commit the vault password or decrypted vault file to git.
|
|
358
351
|
|
|
359
|
-
### Managing Secrets
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
# List all secrets
|
|
363
|
-
npx stack deploy --secrets list
|
|
364
|
-
|
|
365
|
-
# Set a secret (interactive prompt)
|
|
366
|
-
npx stack deploy --secrets set STAGING_SSH
|
|
367
|
-
|
|
368
|
-
# Set a secret (non-interactive)
|
|
369
|
-
npx stack deploy --secrets set STAGING_SSH --value "your-key-here"
|
|
370
|
-
|
|
371
|
-
# Check if secrets exist
|
|
372
|
-
npx stack deploy --secrets check
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
### Required Secrets
|
|
376
|
-
|
|
377
|
-
- **STAGING_SSH** - SSH private key for staging server
|
|
378
|
-
- **PROD_SSH** - SSH private key for production server
|
|
379
|
-
- **AWS_SECRET_ACCESS_KEY** - AWS secret key (if using AWS pipeline)
|
|
380
|
-
|
|
381
|
-
### CI/CD Integration
|
|
382
|
-
|
|
383
|
-
In GitHub Actions workflows, provide the vault password as a GitHub secret:
|
|
384
|
-
|
|
385
|
-
1. Add `ANSIBLE_VAULT_PASSWORD` to your repository secrets
|
|
386
|
-
2. Workflows automatically load SSH keys from Ansible Vault using this password
|
|
387
|
-
|
|
388
|
-
The workflow step `npx stack deploy --secrets write-ssh-keys` extracts secrets from the vault and writes SSH keys to `~/.ssh/` for deployment steps.
|
|
389
|
-
|
|
390
352
|
## Environment Variables
|
|
391
353
|
|
|
392
354
|
Plugins declare required environment variables:
|
package/bin/stack
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const { program } = require('commander');
|
|
4
4
|
const path = require('path');
|
|
@@ -95,7 +95,7 @@ program
|
|
|
95
95
|
.option('-b, --branch <branch>', 'Branch to deploy from (defaults to current branch)')
|
|
96
96
|
.option('--commit <hash>', 'Commit hash to deploy (passed by workflow)')
|
|
97
97
|
.option('--token <token>', 'GitHub token (or set GITHUB_TOKEN env var)')
|
|
98
|
-
.option('--secrets [action]', 'Manage or deploy secrets (list|set|check|set-env|list-env|deploy|write-ssh-keys)')
|
|
98
|
+
.option('--secrets [action]', 'Manage or deploy secrets (list|set|get|delete|check|set-env|list-env|delete-env|deploy|write-ssh-keys)')
|
|
99
99
|
.option('--value <value>', 'Secret value (for scripting)')
|
|
100
100
|
.option('--restart', 'Restart containers after deploying secrets')
|
|
101
101
|
.option('--dry-run', 'Show deployment plan without actually deploying')
|
|
@@ -103,7 +103,7 @@ program
|
|
|
103
103
|
// --secrets with an action string = vault management mode
|
|
104
104
|
if (typeof options.secrets === 'string') {
|
|
105
105
|
const action = options.secrets;
|
|
106
|
-
const validActions = ['list', 'set', 'check', 'set-env', 'list-env', 'deploy', 'write-ssh-keys'];
|
|
106
|
+
const validActions = ['list', 'set', 'get', 'delete', 'check', 'set-env', 'list-env', 'delete-env', 'deploy', 'write-ssh-keys'];
|
|
107
107
|
|
|
108
108
|
if (!validActions.includes(action)) {
|
|
109
109
|
console.log('');
|
|
@@ -114,16 +114,22 @@ program
|
|
|
114
114
|
console.log('Actions:');
|
|
115
115
|
console.log(' list List all secrets (SSH keys + env vars)');
|
|
116
116
|
console.log(' set <name> Set a secret (STAGING_SSH, PROD_SSH, etc.)');
|
|
117
|
+
console.log(' get <name> Show a secret value');
|
|
118
|
+
console.log(' delete <name> Delete a secret from vault');
|
|
117
119
|
console.log(' check [name] Check if secrets exist');
|
|
118
120
|
console.log(' set-env <name> Set environment variable for a stage');
|
|
119
121
|
console.log(' list-env List environment variable keys for a stage');
|
|
122
|
+
console.log(' delete-env <name> Delete environment variable from a stage');
|
|
120
123
|
console.log(' deploy Deploy secrets to staging/prod servers');
|
|
121
124
|
console.log(' write-ssh-keys Write SSH keys to ~/.ssh/ (for workflows)');
|
|
122
125
|
console.log('');
|
|
123
126
|
console.log('Examples:');
|
|
124
127
|
console.log(' npx stack deploy --secrets list');
|
|
125
128
|
console.log(' npx stack deploy --secrets set STAGING_SSH');
|
|
129
|
+
console.log(' npx stack deploy --secrets get AWS_SECRET_ACCESS_KEY');
|
|
130
|
+
console.log(' npx stack deploy --secrets delete STAGING_SSH');
|
|
126
131
|
console.log(' npx stack deploy --secrets set-env DATABASE_URL --staging');
|
|
132
|
+
console.log(' npx stack deploy --secrets delete-env DATABASE_URL --staging');
|
|
127
133
|
console.log(' npx stack deploy --secrets deploy --staging');
|
|
128
134
|
console.log('');
|
|
129
135
|
return;
|
|
@@ -156,6 +162,30 @@ program
|
|
|
156
162
|
}
|
|
157
163
|
});
|
|
158
164
|
|
|
165
|
+
// Secrets command (top-level shortcut — same as deploy --secrets)
|
|
166
|
+
program
|
|
167
|
+
.command('secrets [action] [name]')
|
|
168
|
+
.description('Manage Ansible Vault secrets (shortcut for deploy --secrets)')
|
|
169
|
+
.option('--staging', 'Target staging environment')
|
|
170
|
+
.option('--prod', 'Target production environment')
|
|
171
|
+
.option('--value <value>', 'Secret value (for scripting)')
|
|
172
|
+
.option('--restart', 'Restart containers after deploying secrets')
|
|
173
|
+
.action(async (action, name, options) => {
|
|
174
|
+
if (!action) {
|
|
175
|
+
// No action = interactive mode
|
|
176
|
+
const { secretsInteractive } = require('../dist/cli/secrets');
|
|
177
|
+
await secretsInteractive(options);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const validActions = ['list', 'set', 'get', 'delete', 'check', 'set-env', 'list-env', 'delete-env', 'deploy', 'write-ssh-keys'];
|
|
181
|
+
if (!validActions.includes(action)) {
|
|
182
|
+
console.log('Unknown action: ' + action);
|
|
183
|
+
console.log('Valid actions: ' + validActions.join(', '));
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
await secrets(action, name, options);
|
|
187
|
+
});
|
|
188
|
+
|
|
159
189
|
// Undeploy command
|
|
160
190
|
program
|
|
161
191
|
.command('undeploy')
|
|
@@ -257,9 +287,12 @@ program.addHelpText('after', '\n' +
|
|
|
257
287
|
'SECRETS — npx stack deploy --secrets <action>\n' +
|
|
258
288
|
' list Show all stored vault secrets\n' +
|
|
259
289
|
' set <name> Set a secret (STAGING_SSH, PROD_SSH, etc.)\n' +
|
|
290
|
+
' get <name> Show a secret value\n' +
|
|
291
|
+
' delete <name> Delete a secret from vault\n' +
|
|
260
292
|
' check [name] Check if secrets exist\n' +
|
|
261
293
|
' set-env <name> --<stage> Set environment variable for a stage\n' +
|
|
262
294
|
' list-env --<stage> List environment variable keys for a stage\n' +
|
|
295
|
+
' delete-env <name> --<stage> Delete environment variable from a stage\n' +
|
|
263
296
|
' deploy --<stage> Push secrets to server\n' +
|
|
264
297
|
' write-ssh-keys Write SSH keys to ~/.ssh/\n' +
|
|
265
298
|
'\n' +
|
package/dist/cli/secrets.d.ts
CHANGED
|
@@ -13,7 +13,12 @@
|
|
|
13
13
|
* write-ssh-keys - Write SSH keys to ~/.ssh/ (for workflows)
|
|
14
14
|
*/
|
|
15
15
|
import type { SecretsOptions } from '../types/index.js';
|
|
16
|
-
export type SecretsAction = 'list' | 'set' | 'check' | 'set-env' | 'list-env' | 'deploy' | 'write-ssh-keys';
|
|
16
|
+
export type SecretsAction = 'list' | 'set' | 'get' | 'delete' | 'check' | 'set-env' | 'list-env' | 'delete-env' | 'deploy' | 'write-ssh-keys';
|
|
17
17
|
export declare function secrets(action: SecretsAction, secretName?: string, options?: SecretsOptions): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Interactive secrets management — shows all secrets and lets user pick action.
|
|
20
|
+
* Called by `npx stack secrets` (no arguments).
|
|
21
|
+
*/
|
|
22
|
+
export declare function secretsInteractive(options?: SecretsOptions): Promise<void>;
|
|
18
23
|
export default secrets;
|
|
19
24
|
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,KAAK,GACL,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,gBAAgB,CAAC;AA2BrB,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,KAAK,GACL,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,gBAAgB,CAAC;AA2BrB,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA8Uf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8JpF;AAED,eAAe,OAAO,CAAC"}
|
package/dist/cli/secrets.js
CHANGED
|
@@ -48,6 +48,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
48
48
|
})();
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
50
|
exports.secrets = secrets;
|
|
51
|
+
exports.secretsInteractive = secretsInteractive;
|
|
51
52
|
const fs = __importStar(require("fs"));
|
|
52
53
|
const path = __importStar(require("path"));
|
|
53
54
|
const os = __importStar(require("os"));
|
|
@@ -184,6 +185,46 @@ async function secrets(action, secretName, options = {}) {
|
|
|
184
185
|
}
|
|
185
186
|
break;
|
|
186
187
|
}
|
|
188
|
+
case 'get': {
|
|
189
|
+
if (!secretName) {
|
|
190
|
+
console.log('[ERROR] Secret name required');
|
|
191
|
+
console.log('Usage: npx stack deploy --secrets get <name>');
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const secretValue = await store.getSecret(secretName);
|
|
195
|
+
if (secretValue !== null) {
|
|
196
|
+
// For SSH keys, show truncated; for others show full value
|
|
197
|
+
if (secretName.includes('SSH') && secretValue.includes('PRIVATE KEY')) {
|
|
198
|
+
const lines = secretValue.split('\n');
|
|
199
|
+
console.log(secretName + ':');
|
|
200
|
+
console.log(' ' + (lines[0] ?? ''));
|
|
201
|
+
console.log(' ... (' + lines.length + ' lines)');
|
|
202
|
+
console.log(' ' + (lines[lines.length - 1] ?? lines[lines.length - 2] ?? ''));
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
console.log(secretName + ': ' + secretValue);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
console.log('[!] ' + secretName + ' not found in vault');
|
|
210
|
+
}
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
case 'delete': {
|
|
214
|
+
if (!secretName) {
|
|
215
|
+
console.log('[ERROR] Secret name required');
|
|
216
|
+
console.log('Usage: npx stack deploy --secrets delete <name>');
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const deleteResult = await store.deleteSecret(secretName);
|
|
220
|
+
if (deleteResult.success) {
|
|
221
|
+
console.log('[OK] Deleted ' + secretName + ' from vault');
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
console.log('[ERROR] ' + (deleteResult.error ?? 'Failed to delete'));
|
|
225
|
+
}
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
187
228
|
case 'check': {
|
|
188
229
|
const secretNames = secretName ? [secretName] : ['STAGING_SSH', 'PROD_SSH', 'AWS_SECRET_ACCESS_KEY'];
|
|
189
230
|
const result = await store.checkSecrets(secretNames);
|
|
@@ -282,6 +323,33 @@ async function secrets(action, secretName, options = {}) {
|
|
|
282
323
|
}
|
|
283
324
|
break;
|
|
284
325
|
}
|
|
326
|
+
case 'delete-env': {
|
|
327
|
+
if (!secretName) {
|
|
328
|
+
console.log('[ERROR] Environment variable name required');
|
|
329
|
+
console.log('Usage: npx stack deploy --secrets delete-env <NAME> --staging|--prod');
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
let deleteEnvStage;
|
|
333
|
+
if (options.staging) {
|
|
334
|
+
deleteEnvStage = 'staging';
|
|
335
|
+
}
|
|
336
|
+
else if (options.prod) {
|
|
337
|
+
deleteEnvStage = 'prod';
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
console.log('[ERROR] Please specify --staging or --prod');
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
const deleteEnvResult = await store.deleteEnvironmentSecret(deleteEnvStage, secretName);
|
|
344
|
+
if (deleteEnvResult.success) {
|
|
345
|
+
console.log('[OK] Deleted ' + secretName + ' from ' + deleteEnvStage + ' environment');
|
|
346
|
+
console.log('Deploy with: npx stack deploy --secrets deploy --' + deleteEnvStage);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
console.log('[ERROR] ' + (deleteEnvResult.error ?? 'Failed to delete'));
|
|
350
|
+
}
|
|
351
|
+
break;
|
|
352
|
+
}
|
|
285
353
|
case 'write-ssh-keys': {
|
|
286
354
|
const stagingKey = await store.getSecret('STAGING_SSH');
|
|
287
355
|
const prodKey = await store.getSecret('PROD_SSH');
|
|
@@ -322,5 +390,165 @@ async function secrets(action, secretName, options = {}) {
|
|
|
322
390
|
}
|
|
323
391
|
}
|
|
324
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* Interactive secrets management — shows all secrets and lets user pick action.
|
|
395
|
+
* Called by `npx stack secrets` (no arguments).
|
|
396
|
+
*/
|
|
397
|
+
async function secretsInteractive(options = {}) {
|
|
398
|
+
const { promptSingleLine } = await Promise.resolve().then(() => __importStar(require('../utils/secret-prompts.js')));
|
|
399
|
+
const rootDir = options.rootDir ?? process.cwd();
|
|
400
|
+
const config = loadConfigOrThrow(rootDir);
|
|
401
|
+
const store = getVaultStore(config, rootDir);
|
|
402
|
+
// Gather all secrets
|
|
403
|
+
const sshSecrets = ['STAGING_SSH', 'PROD_SSH'];
|
|
404
|
+
const awsSecrets = ['AWS_SECRET_ACCESS_KEY'];
|
|
405
|
+
const sshResult = await store.checkSecrets(sshSecrets);
|
|
406
|
+
const awsResult = await store.checkSecrets(awsSecrets);
|
|
407
|
+
const stagingKeys = await store.listEnvironmentSecretKeys('staging');
|
|
408
|
+
const prodKeys = await store.listEnvironmentSecretKeys('prod');
|
|
409
|
+
// Build numbered list
|
|
410
|
+
const allItems = [];
|
|
411
|
+
for (const name of sshSecrets) {
|
|
412
|
+
allItems.push({ name, type: 'secret', exists: sshResult.status?.[name] ?? false });
|
|
413
|
+
}
|
|
414
|
+
for (const name of awsSecrets) {
|
|
415
|
+
allItems.push({ name, type: 'secret', exists: awsResult.status?.[name] ?? false });
|
|
416
|
+
}
|
|
417
|
+
for (const key of stagingKeys) {
|
|
418
|
+
allItems.push({ name: key, type: 'env', stage: 'staging', exists: true });
|
|
419
|
+
}
|
|
420
|
+
for (const key of prodKeys) {
|
|
421
|
+
allItems.push({ name: key, type: 'env', stage: 'prod', exists: true });
|
|
422
|
+
}
|
|
423
|
+
// Display
|
|
424
|
+
console.log('');
|
|
425
|
+
console.log('ANSIBLE VAULT SECRETS');
|
|
426
|
+
console.log('');
|
|
427
|
+
let idx = 1;
|
|
428
|
+
console.log(' SSH KEYS & CREDENTIALS:');
|
|
429
|
+
for (const item of allItems) {
|
|
430
|
+
if (item.type !== 'secret')
|
|
431
|
+
continue;
|
|
432
|
+
const marker = item.exists ? '[OK]' : '[! ]';
|
|
433
|
+
console.log(' ' + idx + '. ' + marker + ' ' + item.name);
|
|
434
|
+
idx++;
|
|
435
|
+
}
|
|
436
|
+
if (stagingKeys.length > 0) {
|
|
437
|
+
console.log('');
|
|
438
|
+
console.log(' STAGING ENV VARS:');
|
|
439
|
+
for (const item of allItems) {
|
|
440
|
+
if (item.type !== 'env' || item.stage !== 'staging')
|
|
441
|
+
continue;
|
|
442
|
+
console.log(' ' + idx + '. [OK] ' + item.name);
|
|
443
|
+
idx++;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
if (prodKeys.length > 0) {
|
|
447
|
+
console.log('');
|
|
448
|
+
console.log(' PROD ENV VARS:');
|
|
449
|
+
for (const item of allItems) {
|
|
450
|
+
if (item.type !== 'env' || item.stage !== 'prod')
|
|
451
|
+
continue;
|
|
452
|
+
console.log(' ' + idx + '. [OK] ' + item.name);
|
|
453
|
+
idx++;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
console.log('');
|
|
457
|
+
console.log(' Actions:');
|
|
458
|
+
console.log(' [number] → edit/set that secret');
|
|
459
|
+
console.log(' d[number] → delete (e.g. d3)');
|
|
460
|
+
console.log(' v[number] → view value (e.g. v1)');
|
|
461
|
+
console.log(' n → add new secret');
|
|
462
|
+
console.log(' ne --staging → add new env var');
|
|
463
|
+
console.log(' q → quit');
|
|
464
|
+
console.log('');
|
|
465
|
+
const answer = await promptSingleLine(' Select: ');
|
|
466
|
+
if (!answer || answer.toLowerCase() === 'q')
|
|
467
|
+
return;
|
|
468
|
+
// Parse action
|
|
469
|
+
const trimmed = answer.trim().toLowerCase();
|
|
470
|
+
// "n" = new secret
|
|
471
|
+
if (trimmed === 'n') {
|
|
472
|
+
const name = await promptSingleLine(' Secret name (e.g. STAGING_SSH, AWS_SECRET_ACCESS_KEY): ');
|
|
473
|
+
if (name) {
|
|
474
|
+
await secrets('set', name.trim(), options);
|
|
475
|
+
}
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
// "ne" = new env var
|
|
479
|
+
if (trimmed === 'ne') {
|
|
480
|
+
let stage;
|
|
481
|
+
if (options.staging) {
|
|
482
|
+
stage = 'staging';
|
|
483
|
+
}
|
|
484
|
+
else if (options.prod) {
|
|
485
|
+
stage = 'prod';
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
const stageAnswer = await promptSingleLine(' Stage (staging/prod): ');
|
|
489
|
+
if (stageAnswer?.trim().toLowerCase() === 'prod') {
|
|
490
|
+
stage = 'prod';
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
stage = 'staging';
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
const envName = await promptSingleLine(' Env var name (e.g. DATABASE_URL): ');
|
|
497
|
+
if (envName) {
|
|
498
|
+
await secrets('set-env', envName.trim(), { ...options, staging: stage === 'staging', prod: stage === 'prod' });
|
|
499
|
+
}
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
// Parse number-based actions: "3" = edit #3, "d3" = delete #3, "v3" = view #3
|
|
503
|
+
let action = 'set';
|
|
504
|
+
let numStr = trimmed;
|
|
505
|
+
if (trimmed.startsWith('d')) {
|
|
506
|
+
action = 'delete';
|
|
507
|
+
numStr = trimmed.slice(1);
|
|
508
|
+
}
|
|
509
|
+
else if (trimmed.startsWith('v')) {
|
|
510
|
+
action = 'get';
|
|
511
|
+
numStr = trimmed.slice(1);
|
|
512
|
+
}
|
|
513
|
+
const num = parseInt(numStr, 10);
|
|
514
|
+
if (isNaN(num) || num < 1 || num > allItems.length) {
|
|
515
|
+
console.log('[!] Invalid selection');
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
const selected = allItems[num - 1];
|
|
519
|
+
if (selected.type === 'env' && selected.stage) {
|
|
520
|
+
// Environment variable
|
|
521
|
+
const stageOpts = { ...options, staging: selected.stage === 'staging', prod: selected.stage === 'prod' };
|
|
522
|
+
if (action === 'delete') {
|
|
523
|
+
await secrets('delete-env', selected.name, stageOpts);
|
|
524
|
+
}
|
|
525
|
+
else if (action === 'get') {
|
|
526
|
+
// Get env var value from vault
|
|
527
|
+
const envSecrets = await store.getEnvironmentSecrets(selected.stage);
|
|
528
|
+
const val = envSecrets[selected.name];
|
|
529
|
+
if (val !== undefined) {
|
|
530
|
+
console.log(selected.name + '=' + val);
|
|
531
|
+
}
|
|
532
|
+
else {
|
|
533
|
+
console.log('[!] ' + selected.name + ' not found');
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
else {
|
|
537
|
+
await secrets('set-env', selected.name, stageOpts);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
// Top-level secret
|
|
542
|
+
if (action === 'delete') {
|
|
543
|
+
await secrets('delete', selected.name, options);
|
|
544
|
+
}
|
|
545
|
+
else if (action === 'get') {
|
|
546
|
+
await secrets('get', selected.name, options);
|
|
547
|
+
}
|
|
548
|
+
else {
|
|
549
|
+
await secrets('set', selected.name, options);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
325
553
|
exports.default = secrets;
|
|
326
554
|
//# sourceMappingURL=secrets.js.map
|
package/dist/cli/secrets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/cli/secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DNS Addon
|
|
3
|
+
*
|
|
4
|
+
* Validates that DNS records resolve to the expected targets.
|
|
5
|
+
* Does NOT call any DNS provider API — works with any provider (Dynu, Cloudflare, etc.)
|
|
6
|
+
*
|
|
7
|
+
* ============================================================
|
|
8
|
+
* USAGE
|
|
9
|
+
* ============================================================
|
|
10
|
+
*
|
|
11
|
+
* Configure in stack.yml:
|
|
12
|
+
*
|
|
13
|
+
* dev:
|
|
14
|
+
* domain: dev.example.com
|
|
15
|
+
* plugins:
|
|
16
|
+
* dns:
|
|
17
|
+
* records:
|
|
18
|
+
* - host: "" # root domain → Vercel
|
|
19
|
+
* target: cname.vercel-dns.com
|
|
20
|
+
* - host: api # api.dev.example.com → AWS ALB
|
|
21
|
+
* target: my-alb.us-east-1.elb.amazonaws.com
|
|
22
|
+
*
|
|
23
|
+
* On scan: does DNS lookup, warns if records don't match expected targets.
|
|
24
|
+
* On fix: shows what needs updating, acknowledges warning in stackAuto.yml.
|
|
25
|
+
* Re-checks automatically if target changes in stack.yml.
|
|
26
|
+
* ============================================================
|
|
27
|
+
*/
|
|
28
|
+
import type { FactiiiConfig, Fix } from '../../../types/index.js';
|
|
29
|
+
declare class DnsAddon {
|
|
30
|
+
static readonly id = "dns";
|
|
31
|
+
static readonly name = "DNS";
|
|
32
|
+
static readonly category: 'addon';
|
|
33
|
+
static readonly version = "1.0.0";
|
|
34
|
+
static readonly requiredEnvVars: string[];
|
|
35
|
+
static readonly configSchema: Record<string, unknown>;
|
|
36
|
+
static readonly autoConfigSchema: Record<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Determine if this addon should be loaded.
|
|
39
|
+
* Loads if any environment has plugins.dns configured.
|
|
40
|
+
*/
|
|
41
|
+
static shouldLoad(_rootDir: string, config: FactiiiConfig): Promise<boolean>;
|
|
42
|
+
static readonly fixes: Fix[];
|
|
43
|
+
private _config;
|
|
44
|
+
constructor(config: FactiiiConfig);
|
|
45
|
+
}
|
|
46
|
+
export default DnsAddon;
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/addons/dns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAGlE,cAAM,QAAQ;IAKZ,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS;IAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS;IAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAW;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAElC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnD;IAEF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE9D;;;OAGG;WACU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAclF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAE1B;IAMF,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;CAGlC;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DNS Addon
|
|
4
|
+
*
|
|
5
|
+
* Validates that DNS records resolve to the expected targets.
|
|
6
|
+
* Does NOT call any DNS provider API — works with any provider (Dynu, Cloudflare, etc.)
|
|
7
|
+
*
|
|
8
|
+
* ============================================================
|
|
9
|
+
* USAGE
|
|
10
|
+
* ============================================================
|
|
11
|
+
*
|
|
12
|
+
* Configure in stack.yml:
|
|
13
|
+
*
|
|
14
|
+
* dev:
|
|
15
|
+
* domain: dev.example.com
|
|
16
|
+
* plugins:
|
|
17
|
+
* dns:
|
|
18
|
+
* records:
|
|
19
|
+
* - host: "" # root domain → Vercel
|
|
20
|
+
* target: cname.vercel-dns.com
|
|
21
|
+
* - host: api # api.dev.example.com → AWS ALB
|
|
22
|
+
* target: my-alb.us-east-1.elb.amazonaws.com
|
|
23
|
+
*
|
|
24
|
+
* On scan: does DNS lookup, warns if records don't match expected targets.
|
|
25
|
+
* On fix: shows what needs updating, acknowledges warning in stackAuto.yml.
|
|
26
|
+
* Re-checks automatically if target changes in stack.yml.
|
|
27
|
+
* ============================================================
|
|
28
|
+
*/
|
|
29
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
32
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
33
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
34
|
+
}
|
|
35
|
+
Object.defineProperty(o, k2, desc);
|
|
36
|
+
}) : (function(o, m, k, k2) {
|
|
37
|
+
if (k2 === undefined) k2 = k;
|
|
38
|
+
o[k2] = m[k];
|
|
39
|
+
}));
|
|
40
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
41
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
42
|
+
}) : function(o, v) {
|
|
43
|
+
o["default"] = v;
|
|
44
|
+
});
|
|
45
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
46
|
+
var ownKeys = function(o) {
|
|
47
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
48
|
+
var ar = [];
|
|
49
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
50
|
+
return ar;
|
|
51
|
+
};
|
|
52
|
+
return ownKeys(o);
|
|
53
|
+
};
|
|
54
|
+
return function (mod) {
|
|
55
|
+
if (mod && mod.__esModule) return mod;
|
|
56
|
+
var result = {};
|
|
57
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
58
|
+
__setModuleDefault(result, mod);
|
|
59
|
+
return result;
|
|
60
|
+
};
|
|
61
|
+
})();
|
|
62
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
63
|
+
const dev_js_1 = require("./scanfix/dev.js");
|
|
64
|
+
class DnsAddon {
|
|
65
|
+
// ============================================================
|
|
66
|
+
// STATIC METADATA
|
|
67
|
+
// ============================================================
|
|
68
|
+
static id = 'dns';
|
|
69
|
+
static name = 'DNS';
|
|
70
|
+
static category = 'addon';
|
|
71
|
+
static version = '1.0.0';
|
|
72
|
+
static requiredEnvVars = [];
|
|
73
|
+
static configSchema = {
|
|
74
|
+
// Defined per-environment under plugins.dns.records
|
|
75
|
+
};
|
|
76
|
+
static autoConfigSchema = {};
|
|
77
|
+
/**
|
|
78
|
+
* Determine if this addon should be loaded.
|
|
79
|
+
* Loads if any environment has plugins.dns configured.
|
|
80
|
+
*/
|
|
81
|
+
static async shouldLoad(_rootDir, config) {
|
|
82
|
+
const { extractEnvironments } = await Promise.resolve().then(() => __importStar(require('../../../utils/config-helpers.js')));
|
|
83
|
+
const environments = extractEnvironments(config);
|
|
84
|
+
return Object.values(environments).some(env => {
|
|
85
|
+
const dnsPlugin = env.plugins?.dns;
|
|
86
|
+
return dnsPlugin?.records && dnsPlugin.records.length > 0;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// ============================================================
|
|
90
|
+
// FIXES
|
|
91
|
+
// ============================================================
|
|
92
|
+
static fixes = [
|
|
93
|
+
...dev_js_1.dnsFixes,
|
|
94
|
+
];
|
|
95
|
+
// ============================================================
|
|
96
|
+
// INSTANCE
|
|
97
|
+
// ============================================================
|
|
98
|
+
_config;
|
|
99
|
+
constructor(config) {
|
|
100
|
+
this._config = config;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.default = DnsAddon;
|
|
104
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/addons/dns/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,6CAA4C;AAE5C,MAAM,QAAQ;IACZ,+DAA+D;IAC/D,kBAAkB;IAClB,+DAA+D;IAE/D,MAAM,CAAU,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,CAAU,IAAI,GAAG,KAAK,CAAC;IAC7B,MAAM,CAAU,QAAQ,GAAY,OAAO,CAAC;IAC5C,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAElC,MAAM,CAAU,eAAe,GAAa,EAAE,CAAC;IAE/C,MAAM,CAAU,YAAY,GAA4B;IACtD,oDAAoD;KACrD,CAAC;IAEF,MAAM,CAAU,gBAAgB,GAA2B,EAAE,CAAC;IAE9D;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,MAAqB;QAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,kCAAkC,GAAC,CAAC;QACjF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,GAA0C,CAAC;YAC1E,OAAO,SAAS,EAAE,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,QAAQ;IACR,+DAA+D;IAE/D,MAAM,CAAU,KAAK,GAAU;QAC7B,GAAG,iBAAQ;KACZ,CAAC;IAEF,+DAA+D;IAC/D,WAAW;IACX,+DAA+D;IAEvD,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;;AAGH,kBAAe,QAAQ,CAAC"}
|