@factiii/stack 0.1.57 → 0.1.58
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/dist/cli/deploy-secrets.js +1 -1
- package/dist/cli/deploy-secrets.js.map +1 -1
- package/dist/cli/fix.d.ts.map +1 -1
- package/dist/cli/fix.js +19 -1
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/scan.d.ts.map +1 -1
- package/dist/cli/scan.js +11 -1
- package/dist/cli/scan.js.map +1 -1
- package/dist/cli/secrets.js +1 -1
- package/dist/cli/secrets.js.map +1 -1
- package/dist/generators/generate-stack-auto.d.ts.map +1 -1
- package/dist/generators/generate-stack-auto.js +17 -1
- package/dist/generators/generate-stack-auto.js.map +1 -1
- package/dist/generators/generate-stack-yml.d.ts.map +1 -1
- package/dist/generators/generate-stack-yml.js +9 -4
- package/dist/generators/generate-stack-yml.js.map +1 -1
- package/dist/plugins/addons/vercel/index.d.ts.map +1 -1
- package/dist/plugins/addons/vercel/index.js +1 -1
- package/dist/plugins/addons/vercel/index.js.map +1 -1
- package/dist/plugins/addons/vercel/scanfix/config.d.ts.map +1 -1
- package/dist/plugins/addons/vercel/scanfix/config.js +9 -15
- package/dist/plugins/addons/vercel/scanfix/config.js.map +1 -1
- package/dist/plugins/addons/vercel/scanfix/token.d.ts.map +1 -1
- package/dist/plugins/addons/vercel/scanfix/token.js +13 -20
- package/dist/plugins/addons/vercel/scanfix/token.js.map +1 -1
- package/dist/plugins/addons/vercel/utils/vercel-api.d.ts.map +1 -1
- package/dist/plugins/addons/vercel/utils/vercel-api.js +2 -1
- package/dist/plugins/addons/vercel/utils/vercel-api.js.map +1 -1
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/index.js +1 -1
- package/dist/plugins/pipelines/factiii/index.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/config.js +2 -2
- package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/vault.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/vault.js +5 -3
- package/dist/plugins/pipelines/factiii/scanfix/vault.js.map +1 -1
- package/dist/plugins/servers/mac/scanfix/config.js +1 -1
- package/dist/plugins/servers/mac/scanfix/config.js.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/config-helpers.d.ts +14 -1
- package/dist/utils/config-helpers.d.ts.map +1 -1
- package/dist/utils/config-helpers.js +51 -0
- package/dist/utils/config-helpers.js.map +1 -1
- package/package.json +2 -2
|
@@ -51,6 +51,8 @@ exports.getUsedPlugins = getUsedPlugins;
|
|
|
51
51
|
exports.loadLocalConfig = loadLocalConfig;
|
|
52
52
|
exports.loadConfig = loadConfig;
|
|
53
53
|
exports.validateEnvironmentName = validateEnvironmentName;
|
|
54
|
+
exports.isDevOnly = isDevOnly;
|
|
55
|
+
exports.getDefaultVaultPath = getDefaultVaultPath;
|
|
54
56
|
const fs = __importStar(require("fs"));
|
|
55
57
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
56
58
|
const config_files_js_1 = require("../constants/config-files.js");
|
|
@@ -77,6 +79,7 @@ exports.RESERVED_CONFIG_KEYS = [
|
|
|
77
79
|
'trusted_plugins',
|
|
78
80
|
'ansible', // Ansible Vault configuration (not an environment)
|
|
79
81
|
'env_match_exceptions', // Keys allowed to match across .env.example and staging/prod
|
|
82
|
+
'dev_only', // Dev-only mode flag (default: true, set false in stack.local to unlock)
|
|
80
83
|
];
|
|
81
84
|
/**
|
|
82
85
|
* Extract environment configs from config object
|
|
@@ -250,6 +253,34 @@ function loadConfig(rootDir) {
|
|
|
250
253
|
// stackAuto.yml parse error — ignore, stack.yml is sufficient
|
|
251
254
|
}
|
|
252
255
|
}
|
|
256
|
+
// Merge stack.local.yml (per-developer overrides, stack.local wins over everything)
|
|
257
|
+
const localPath = (0, config_files_js_1.getStackLocalPath)(rootDir);
|
|
258
|
+
if (fs.existsSync(localPath)) {
|
|
259
|
+
try {
|
|
260
|
+
const localConfig = js_yaml_1.default.load(fs.readFileSync(localPath, 'utf8')) ?? {};
|
|
261
|
+
for (const [key, value] of Object.entries(localConfig)) {
|
|
262
|
+
// stack.local.yml values always win (override stack.yml and stackAuto.yml)
|
|
263
|
+
config[key] = value;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
// stack.local.yml parse error — ignore
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// Auto-populate ansible vault_path and vault_password_file defaults
|
|
271
|
+
// This ensures ALL downstream consumers (25+ places) get the correct per-repo vault path
|
|
272
|
+
// without needing explicit ansible: config in stack.yml
|
|
273
|
+
if (!config.ansible) {
|
|
274
|
+
config.ansible = { vault_path: getDefaultVaultPath(config), vault_password_file: '~/.vault_pass' };
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
if (!config.ansible.vault_path) {
|
|
278
|
+
config.ansible.vault_path = getDefaultVaultPath(config);
|
|
279
|
+
}
|
|
280
|
+
if (!config.ansible.vault_password_file) {
|
|
281
|
+
config.ansible.vault_password_file = '~/.vault_pass';
|
|
282
|
+
}
|
|
283
|
+
}
|
|
253
284
|
return config;
|
|
254
285
|
}
|
|
255
286
|
function validateEnvironmentName(name) {
|
|
@@ -271,4 +302,24 @@ function validateEnvironmentName(name) {
|
|
|
271
302
|
}
|
|
272
303
|
return null;
|
|
273
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Check if the project is in dev-only mode.
|
|
307
|
+
* Returns true unless the merged config (stack.yml + stack.local) explicitly sets dev_only: false.
|
|
308
|
+
* A fresh clone with no stack.local will always be dev-only.
|
|
309
|
+
*/
|
|
310
|
+
function isDevOnly(config) {
|
|
311
|
+
return config.dev_only !== false;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Get the default vault path for a repo, based on config.name.
|
|
315
|
+
* Produces per-repo vault files: vault-greasemoto.yml, vault-factiii.yml, etc.
|
|
316
|
+
* Falls back to vault.yml if name is missing or starts with EXAMPLE.
|
|
317
|
+
*/
|
|
318
|
+
function getDefaultVaultPath(config) {
|
|
319
|
+
const name = config.name;
|
|
320
|
+
if (!name || name.toUpperCase().startsWith('EXAMPLE')) {
|
|
321
|
+
return 'group_vars/all/vault.yml';
|
|
322
|
+
}
|
|
323
|
+
return 'group_vars/all/vault-' + name + '.yml';
|
|
324
|
+
}
|
|
274
325
|
//# sourceMappingURL=config-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-helpers.js","sourceRoot":"","sources":["../../src/utils/config-helpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config-helpers.js","sourceRoot":"","sources":["../../src/utils/config-helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@factiii/stack",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.58",
|
|
4
4
|
"description": "Infrastructure management package for deploying services to servers",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -92,4 +92,4 @@
|
|
|
92
92
|
"diff": ">=4.0.4"
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
}
|
|
95
|
+
}
|