@factiii/stack 0.1.24 → 0.1.26
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 +81 -60
- package/bin/{factiii → stack} +12 -12
- package/dist/cli/check-config.js +1 -1
- package/dist/cli/check-config.js.map +1 -1
- package/dist/cli/deploy-secrets.d.ts.map +1 -1
- package/dist/cli/deploy-secrets.js +11 -11
- package/dist/cli/deploy-secrets.js.map +1 -1
- package/dist/cli/deploy.d.ts.map +1 -1
- package/dist/cli/deploy.js +19 -9
- package/dist/cli/deploy.js.map +1 -1
- package/dist/cli/dev-sync.d.ts.map +1 -1
- package/dist/cli/dev-sync.js +10 -9
- package/dist/cli/dev-sync.js.map +1 -1
- package/dist/cli/execute-plugin-command.d.ts.map +1 -1
- package/dist/cli/execute-plugin-command.js +7 -7
- package/dist/cli/execute-plugin-command.js.map +1 -1
- package/dist/cli/fix.d.ts.map +1 -1
- package/dist/cli/fix.js +24 -4
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/init.d.ts +3 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +382 -69
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/pr-check.d.ts.map +1 -1
- package/dist/cli/pr-check.js +5 -4
- package/dist/cli/pr-check.js.map +1 -1
- package/dist/cli/scan.d.ts +6 -6
- package/dist/cli/scan.d.ts.map +1 -1
- package/dist/cli/scan.js +46 -30
- package/dist/cli/scan.js.map +1 -1
- package/dist/cli/secrets.d.ts.map +1 -1
- package/dist/cli/secrets.js +17 -16
- package/dist/cli/secrets.js.map +1 -1
- package/dist/cli/undeploy.d.ts.map +1 -1
- package/dist/cli/undeploy.js +4 -4
- package/dist/cli/undeploy.js.map +1 -1
- package/dist/cli/upgrade.d.ts +1 -1
- package/dist/cli/upgrade.js +5 -5
- package/dist/cli/upgrade.js.map +1 -1
- package/dist/cli/validate.js +1 -1
- package/dist/cli/validate.js.map +1 -1
- package/dist/constants/config-files.d.ts +23 -0
- package/dist/constants/config-files.d.ts.map +1 -0
- package/dist/constants/config-files.js +88 -0
- package/dist/constants/config-files.js.map +1 -0
- package/dist/generators/{generate-factiii-auto.d.ts → generate-stack-auto.d.ts} +4 -4
- package/dist/generators/generate-stack-auto.d.ts.map +1 -0
- package/dist/generators/{generate-factiii-auto.js → generate-stack-auto.js} +15 -13
- package/dist/generators/generate-stack-auto.js.map +1 -0
- package/dist/generators/{generate-factiii-yml.d.ts → generate-stack-yml.d.ts} +5 -5
- package/dist/generators/generate-stack-yml.d.ts.map +1 -0
- package/dist/generators/{generate-factiii-yml.js → generate-stack-yml.js} +16 -15
- package/dist/generators/generate-stack-yml.js.map +1 -0
- package/dist/generators/index.d.ts +2 -2
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +5 -5
- package/dist/generators/index.js.map +1 -1
- package/dist/plugins/pipelines/aws/index.js +3 -3
- package/dist/plugins/pipelines/aws/index.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/credentials.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/credentials.js +36 -44
- package/dist/plugins/pipelines/aws/scanfix/credentials.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ec2.js +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ec2.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/iam.js +2 -2
- package/dist/plugins/pipelines/aws/scanfix/iam.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/rds.js +2 -2
- package/dist/plugins/pipelines/aws/scanfix/rds.js.map +1 -1
- package/dist/plugins/pipelines/factiii/index.d.ts +5 -3
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/index.js +14 -77
- package/dist/plugins/pipelines/factiii/index.js.map +1 -1
- package/dist/plugins/pipelines/factiii/pr-check.d.ts +1 -1
- package/dist/plugins/pipelines/factiii/pr-check.js +1 -1
- package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/prod.js +3 -3
- package/dist/plugins/pipelines/factiii/prod.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/config.js +10 -11
- package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/env-files.d.ts +12 -0
- package/dist/plugins/pipelines/factiii/scanfix/env-files.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/env-files.js +310 -0
- package/dist/plugins/pipelines/factiii/scanfix/env-files.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/local-config.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/local-config.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/local-config.js +70 -0
- package/dist/plugins/pipelines/factiii/scanfix/local-config.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js +6 -6
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/workflows.js +16 -26
- package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -1
- package/dist/plugins/pipelines/factiii/staging.d.ts +1 -1
- package/dist/plugins/pipelines/factiii/staging.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/staging.js +3 -2
- package/dist/plugins/pipelines/factiii/staging.js.map +1 -1
- package/dist/plugins/pipelines/factiii/utils/workflows.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/utils/workflows.js +6 -21
- package/dist/plugins/pipelines/factiii/utils/workflows.js.map +1 -1
- package/dist/plugins/pipelines/factiii/workflows/stack-ci.yml +56 -0
- package/dist/plugins/pipelines/factiii/workflows/stack-cicd-prod.yml +54 -0
- package/dist/plugins/servers/mac/scanfix/containers.js +1 -1
- package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -1
- package/dist/scanfix/fixes/pnpm.d.ts.map +1 -1
- package/dist/scanfix/fixes/pnpm.js +2 -2
- package/dist/scanfix/fixes/pnpm.js.map +1 -1
- package/dist/scripts/generate-all.d.ts.map +1 -1
- package/dist/scripts/generate-all.js +9 -8
- package/dist/scripts/generate-all.js.map +1 -1
- package/dist/scripts/get-repo-name.d.ts +1 -1
- package/dist/scripts/get-repo-name.js +5 -3
- package/dist/scripts/get-repo-name.js.map +1 -1
- package/dist/scripts/validate-env-files.js +7 -1
- package/dist/scripts/validate-env-files.js.map +1 -1
- package/dist/scripts/validate-example-values.d.ts +1 -1
- package/dist/scripts/validate-example-values.js +3 -2
- package/dist/scripts/validate-example-values.js.map +1 -1
- package/dist/scripts/validate-stack-yml.d.ts +6 -0
- package/dist/scripts/validate-stack-yml.d.ts.map +1 -0
- package/dist/scripts/{validate-factiii-yml.js → validate-stack-yml.js} +15 -11
- package/dist/scripts/validate-stack-yml.js.map +1 -0
- package/dist/utils/config-helpers.d.ts +15 -0
- package/dist/utils/config-helpers.d.ts.map +1 -1
- package/dist/utils/config-helpers.js +57 -5
- package/dist/utils/config-helpers.js.map +1 -1
- package/dist/utils/config-validator.d.ts +2 -2
- package/dist/utils/config-validator.d.ts.map +1 -1
- package/dist/utils/config-validator.js +7 -6
- package/dist/utils/config-validator.js.map +1 -1
- package/dist/utils/config-writer.d.ts +2 -2
- package/dist/utils/config-writer.d.ts.map +1 -1
- package/dist/utils/config-writer.js +6 -6
- package/dist/utils/config-writer.js.map +1 -1
- package/dist/utils/deployment-report.js +4 -4
- package/dist/utils/deployment-report.js.map +1 -1
- package/dist/utils/ssh-helper.js +6 -6
- package/dist/utils/ssh-helper.js.map +1 -1
- package/dist/utils/template-generator.js +1 -1
- package/dist/utils/version-check.d.ts +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +9 -8
- package/dist/utils/version-check.js.map +1 -1
- package/package.json +8 -2
- package/dist/generators/generate-factiii-auto.d.ts.map +0 -1
- package/dist/generators/generate-factiii-auto.js.map +0 -1
- package/dist/generators/generate-factiii-yml.d.ts.map +0 -1
- package/dist/generators/generate-factiii-yml.js.map +0 -1
- package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-prod.yml +0 -112
- package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-staging.yml +0 -117
- package/dist/plugins/pipelines/factiii/workflows/factiii-command.yml +0 -130
- package/dist/plugins/pipelines/factiii/workflows/factiii-deploy.yml +0 -198
- package/dist/plugins/pipelines/factiii/workflows/factiii-dev-sync.yml +0 -179
- package/dist/plugins/pipelines/factiii/workflows/factiii-fix.yml +0 -176
- package/dist/plugins/pipelines/factiii/workflows/factiii-pr-check.yml +0 -103
- package/dist/plugins/pipelines/factiii/workflows/factiii-scan.yml +0 -176
- package/dist/plugins/pipelines/factiii/workflows/factiii-undeploy.yml +0 -95
- package/dist/scripts/validate-factiii-yml.d.ts +0 -6
- package/dist/scripts/validate-factiii-yml.d.ts.map +0 -1
- package/dist/scripts/validate-factiii-yml.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Configuration-related fixes for Factiii Pipeline plugin
|
|
4
|
-
* Handles
|
|
4
|
+
* Handles stack.yml file generation and validation
|
|
5
5
|
*/
|
|
6
6
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
7
|
if (k2 === undefined) k2 = k;
|
|
@@ -39,22 +39,22 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.configFixes = void 0;
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
|
-
const
|
|
42
|
+
const config_files_js_1 = require("../../../../constants/config-files.js");
|
|
43
43
|
exports.configFixes = [
|
|
44
44
|
{
|
|
45
45
|
id: 'example-values-in-config',
|
|
46
46
|
stage: 'dev',
|
|
47
47
|
severity: 'critical',
|
|
48
|
-
description:
|
|
48
|
+
description: config_files_js_1.STACK_CONFIG_FILENAME + ' contains EXAMPLE- placeholder values that must be replaced',
|
|
49
49
|
scan: async (_config, rootDir) => {
|
|
50
|
-
const configPath =
|
|
50
|
+
const configPath = (0, config_files_js_1.getStackConfigPath)(rootDir);
|
|
51
51
|
if (!fs.existsSync(configPath))
|
|
52
52
|
return false;
|
|
53
53
|
const content = fs.readFileSync(configPath, 'utf8');
|
|
54
54
|
return content.includes('EXAMPLE-');
|
|
55
55
|
},
|
|
56
56
|
fix: null,
|
|
57
|
-
manualFix: 'Replace all EXAMPLE- prefixed values in
|
|
57
|
+
manualFix: 'Replace all EXAMPLE- prefixed values in ' + config_files_js_1.STACK_CONFIG_FILENAME + ' with your actual values:\n' +
|
|
58
58
|
' - name: your-repo-name\n' +
|
|
59
59
|
' - github_repo: your-username/your-repo\n' +
|
|
60
60
|
' - ssl_email: your-email@domain.com\n' +
|
|
@@ -62,19 +62,18 @@ exports.configFixes = [
|
|
|
62
62
|
' - prod.domain: yourdomain.com',
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
id: 'missing-
|
|
65
|
+
id: 'missing-stack-yml',
|
|
66
66
|
stage: 'dev',
|
|
67
67
|
severity: 'critical',
|
|
68
|
-
description:
|
|
68
|
+
description: config_files_js_1.STACK_CONFIG_FILENAME + ' configuration file not found',
|
|
69
69
|
scan: async (_config, rootDir) => {
|
|
70
|
-
return !fs.existsSync(
|
|
70
|
+
return !fs.existsSync((0, config_files_js_1.getStackConfigPath)(rootDir));
|
|
71
71
|
},
|
|
72
72
|
fix: async (_config, rootDir) => {
|
|
73
|
-
|
|
74
|
-
const { generateFactiiiYml } = await Promise.resolve().then(() => __importStar(require('../../../../generators/generate-factiii-yml.js')));
|
|
73
|
+
const { generateFactiiiYml } = await Promise.resolve().then(() => __importStar(require('../../../../generators/generate-stack-yml.js')));
|
|
75
74
|
return generateFactiiiYml(rootDir, { force: false });
|
|
76
75
|
},
|
|
77
|
-
manualFix: 'Run: npx
|
|
76
|
+
manualFix: 'Run: npx stack fix (will create ' + config_files_js_1.STACK_CONFIG_FILENAME + ' from plugin schemas)',
|
|
78
77
|
},
|
|
79
78
|
];
|
|
80
79
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AAEzB,2EAAkG;AAErF,QAAA,WAAW,GAAU;IAChC;QACE,EAAE,EAAE,0BAA0B;QAC9B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,uCAAqB,GAAG,6DAA6D;QAClG,IAAI,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAoB,EAAE;YACxE,MAAM,UAAU,GAAG,IAAA,oCAAkB,EAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EACP,0CAA0C,GAAG,uCAAqB,GAAG,6BAA6B;YAClG,gCAAgC;YAChC,gDAAgD;YAChD,4CAA4C;YAC5C,kDAAkD;YAClD,qCAAqC;KACxC;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,uCAAqB,GAAG,+BAA+B;QACpE,IAAI,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAoB,EAAE;YACxE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAA,oCAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAoB,EAAE;YACvE,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAC7B,8CAA8C,GAC/C,CAAC;YACF,OAAO,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,EAAE,kCAAkC,GAAG,uCAAqB,GAAG,uBAAuB;KAChG;CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment file scanfixes for Factiii Pipeline plugin
|
|
3
|
+
*
|
|
4
|
+
* Validates .env.example, .env.staging, .env.prod:
|
|
5
|
+
* - File existence
|
|
6
|
+
* - Key completeness (all keys from .env.example present)
|
|
7
|
+
* - Value matching warnings (staging/prod values shouldn't match dev)
|
|
8
|
+
* - Vault storage (env files should be encrypted in Ansible Vault)
|
|
9
|
+
*/
|
|
10
|
+
import type { Fix } from '../../../../types/index.js';
|
|
11
|
+
export declare const envFileFixes: Fix[];
|
|
12
|
+
//# sourceMappingURL=env-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-files.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/env-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AASrE,eAAO,MAAM,YAAY,EAAE,GAAG,EAiQ7B,CAAC"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Environment file scanfixes for Factiii Pipeline plugin
|
|
4
|
+
*
|
|
5
|
+
* Validates .env.example, .env.staging, .env.prod:
|
|
6
|
+
* - File existence
|
|
7
|
+
* - Key completeness (all keys from .env.example present)
|
|
8
|
+
* - Value matching warnings (staging/prod values shouldn't match dev)
|
|
9
|
+
* - Vault storage (env files should be encrypted in Ansible Vault)
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.envFileFixes = void 0;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const env_validator_js_1 = require("../../../../utils/env-validator.js");
|
|
49
|
+
const config_helpers_js_1 = require("../../../../utils/config-helpers.js");
|
|
50
|
+
/**
|
|
51
|
+
* Values that are commonly identical across environments and shouldn't trigger warnings
|
|
52
|
+
*/
|
|
53
|
+
const TRIVIALLY_IDENTICAL = new Set(['', 'true', 'false', '0', '1', 'yes', 'no']);
|
|
54
|
+
exports.envFileFixes = [
|
|
55
|
+
// ── File existence checks ──────────────────────────────────────
|
|
56
|
+
{
|
|
57
|
+
id: 'missing-env-example',
|
|
58
|
+
stage: 'dev',
|
|
59
|
+
severity: 'warning',
|
|
60
|
+
description: '.env.example not found (template for environment variables)',
|
|
61
|
+
scan: async (_config, rootDir) => {
|
|
62
|
+
return !fs.existsSync(path.join(rootDir, '.env.example'));
|
|
63
|
+
},
|
|
64
|
+
fix: null,
|
|
65
|
+
manualFix: 'Create .env.example with your environment variables as a template',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'missing-env-staging',
|
|
69
|
+
stage: 'staging',
|
|
70
|
+
severity: 'critical',
|
|
71
|
+
description: '.env.staging not found',
|
|
72
|
+
scan: async (config, rootDir) => {
|
|
73
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
74
|
+
if (!envs.staging)
|
|
75
|
+
return false; // staging not configured, skip
|
|
76
|
+
return !fs.existsSync(path.join(rootDir, '.env.staging'));
|
|
77
|
+
},
|
|
78
|
+
fix: async (_config, rootDir) => {
|
|
79
|
+
const examplePath = path.join(rootDir, '.env.example');
|
|
80
|
+
if (!fs.existsSync(examplePath))
|
|
81
|
+
return false;
|
|
82
|
+
fs.copyFileSync(examplePath, path.join(rootDir, '.env.staging'));
|
|
83
|
+
console.log(' Copied .env.example to .env.staging - edit with real staging values');
|
|
84
|
+
return true;
|
|
85
|
+
},
|
|
86
|
+
manualFix: 'Copy .env.example to .env.staging and fill in staging values',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 'missing-env-prod',
|
|
90
|
+
stage: 'prod',
|
|
91
|
+
severity: 'critical',
|
|
92
|
+
description: '.env.prod not found',
|
|
93
|
+
scan: async (config, rootDir) => {
|
|
94
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
95
|
+
const hasProd = !!envs.prod || !!envs.production;
|
|
96
|
+
if (!hasProd)
|
|
97
|
+
return false; // prod not configured, skip
|
|
98
|
+
return !fs.existsSync(path.join(rootDir, '.env.prod'));
|
|
99
|
+
},
|
|
100
|
+
fix: async (_config, rootDir) => {
|
|
101
|
+
const examplePath = path.join(rootDir, '.env.example');
|
|
102
|
+
if (!fs.existsSync(examplePath))
|
|
103
|
+
return false;
|
|
104
|
+
fs.copyFileSync(examplePath, path.join(rootDir, '.env.prod'));
|
|
105
|
+
console.log(' Copied .env.example to .env.prod - edit with real production values');
|
|
106
|
+
return true;
|
|
107
|
+
},
|
|
108
|
+
manualFix: 'Copy .env.example to .env.prod and fill in production values',
|
|
109
|
+
},
|
|
110
|
+
// ── Key validation ─────────────────────────────────────────────
|
|
111
|
+
{
|
|
112
|
+
id: 'env-staging-missing-keys',
|
|
113
|
+
stage: 'staging',
|
|
114
|
+
severity: 'critical',
|
|
115
|
+
description: '.env.staging is missing keys from .env.example',
|
|
116
|
+
scan: async (config, rootDir) => {
|
|
117
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
118
|
+
if (!envs.staging)
|
|
119
|
+
return false;
|
|
120
|
+
const dev = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.example'));
|
|
121
|
+
const staging = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.staging'));
|
|
122
|
+
if (!dev || !staging)
|
|
123
|
+
return false;
|
|
124
|
+
const comparison = (0, env_validator_js_1.compareEnvKeys)(dev, staging);
|
|
125
|
+
if (comparison.missing.length > 0) {
|
|
126
|
+
// Store missing keys for display in description
|
|
127
|
+
this._missingKeys = comparison.missing;
|
|
128
|
+
}
|
|
129
|
+
return comparison.missing.length > 0;
|
|
130
|
+
},
|
|
131
|
+
fix: null,
|
|
132
|
+
manualFix: 'Add missing keys to .env.staging (compare with .env.example)',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
id: 'env-prod-missing-keys',
|
|
136
|
+
stage: 'prod',
|
|
137
|
+
severity: 'critical',
|
|
138
|
+
description: '.env.prod is missing keys from .env.example',
|
|
139
|
+
scan: async (config, rootDir) => {
|
|
140
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
141
|
+
const hasProd = !!envs.prod || !!envs.production;
|
|
142
|
+
if (!hasProd)
|
|
143
|
+
return false;
|
|
144
|
+
const dev = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.example'));
|
|
145
|
+
const prod = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.prod'));
|
|
146
|
+
if (!dev || !prod)
|
|
147
|
+
return false;
|
|
148
|
+
const comparison = (0, env_validator_js_1.compareEnvKeys)(dev, prod);
|
|
149
|
+
return comparison.missing.length > 0;
|
|
150
|
+
},
|
|
151
|
+
fix: null,
|
|
152
|
+
manualFix: 'Add missing keys to .env.prod (compare with .env.example)',
|
|
153
|
+
},
|
|
154
|
+
// ── Value matching warnings (dev vs staging/prod) ──────────────
|
|
155
|
+
{
|
|
156
|
+
id: 'env-staging-matches-dev',
|
|
157
|
+
stage: 'staging',
|
|
158
|
+
severity: 'warning',
|
|
159
|
+
description: '.env.staging has values identical to .env.example (probably needs updating)',
|
|
160
|
+
scan: async (config, rootDir) => {
|
|
161
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
162
|
+
if (!envs.staging)
|
|
163
|
+
return false;
|
|
164
|
+
const dev = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.example'));
|
|
165
|
+
const staging = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.staging'));
|
|
166
|
+
if (!dev || !staging)
|
|
167
|
+
return false;
|
|
168
|
+
const matching = (0, env_validator_js_1.findMatchingValues)(dev, staging);
|
|
169
|
+
// Filter out trivially-identical values
|
|
170
|
+
const meaningful = matching.filter((key) => {
|
|
171
|
+
const val = dev[key];
|
|
172
|
+
return val !== undefined && !TRIVIALLY_IDENTICAL.has(val);
|
|
173
|
+
});
|
|
174
|
+
return meaningful.length > 0;
|
|
175
|
+
},
|
|
176
|
+
fix: null,
|
|
177
|
+
manualFix: 'Update .env.staging values that are identical to .env.example (dev values)',
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: 'env-prod-matches-dev',
|
|
181
|
+
stage: 'prod',
|
|
182
|
+
severity: 'warning',
|
|
183
|
+
description: '.env.prod has values identical to .env.example (probably needs updating)',
|
|
184
|
+
scan: async (config, rootDir) => {
|
|
185
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
186
|
+
const hasProd = !!envs.prod || !!envs.production;
|
|
187
|
+
if (!hasProd)
|
|
188
|
+
return false;
|
|
189
|
+
const dev = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.example'));
|
|
190
|
+
const prod = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.prod'));
|
|
191
|
+
if (!dev || !prod)
|
|
192
|
+
return false;
|
|
193
|
+
const matching = (0, env_validator_js_1.findMatchingValues)(dev, prod);
|
|
194
|
+
const meaningful = matching.filter((key) => {
|
|
195
|
+
const val = dev[key];
|
|
196
|
+
return val !== undefined && !TRIVIALLY_IDENTICAL.has(val);
|
|
197
|
+
});
|
|
198
|
+
return meaningful.length > 0;
|
|
199
|
+
},
|
|
200
|
+
fix: null,
|
|
201
|
+
manualFix: 'Update .env.prod values that are identical to .env.example (dev values)',
|
|
202
|
+
},
|
|
203
|
+
// ── Vault storage ──────────────────────────────────────────────
|
|
204
|
+
{
|
|
205
|
+
id: 'env-staging-not-in-vault',
|
|
206
|
+
stage: 'secrets',
|
|
207
|
+
severity: 'warning',
|
|
208
|
+
description: '.env.staging not stored in Ansible Vault',
|
|
209
|
+
scan: async (config, rootDir) => {
|
|
210
|
+
if (!config.ansible?.vault_path)
|
|
211
|
+
return false;
|
|
212
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
213
|
+
if (!envs.staging)
|
|
214
|
+
return false;
|
|
215
|
+
if (!fs.existsSync(path.join(rootDir, '.env.staging')))
|
|
216
|
+
return false;
|
|
217
|
+
try {
|
|
218
|
+
const { AnsibleVaultSecrets } = await Promise.resolve().then(() => __importStar(require('../../../../utils/ansible-vault-secrets.js')));
|
|
219
|
+
const vault = new AnsibleVaultSecrets({
|
|
220
|
+
vault_path: config.ansible.vault_path,
|
|
221
|
+
vault_password_file: config.ansible.vault_password_file ?? '~/.vault_pass',
|
|
222
|
+
rootDir,
|
|
223
|
+
});
|
|
224
|
+
const has = await vault.hasEnvironmentSecrets('staging');
|
|
225
|
+
return !has;
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
return false; // Can't check vault, skip
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
fix: async (config, rootDir) => {
|
|
232
|
+
if (!config.ansible?.vault_path)
|
|
233
|
+
return false;
|
|
234
|
+
const envVars = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.staging'));
|
|
235
|
+
if (!envVars)
|
|
236
|
+
return false;
|
|
237
|
+
try {
|
|
238
|
+
const { AnsibleVaultSecrets } = await Promise.resolve().then(() => __importStar(require('../../../../utils/ansible-vault-secrets.js')));
|
|
239
|
+
const vault = new AnsibleVaultSecrets({
|
|
240
|
+
vault_path: config.ansible.vault_path,
|
|
241
|
+
vault_password_file: config.ansible.vault_password_file ?? '~/.vault_pass',
|
|
242
|
+
rootDir,
|
|
243
|
+
});
|
|
244
|
+
await vault.setEnvironmentSecrets('staging', envVars);
|
|
245
|
+
console.log(' Stored .env.staging in vault as staging_envs');
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
catch (e) {
|
|
249
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
250
|
+
console.log(' Failed to store in vault: ' + msg);
|
|
251
|
+
return false;
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
manualFix: 'Run: npx stack fix (will store .env.staging in Ansible Vault)',
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: 'env-prod-not-in-vault',
|
|
258
|
+
stage: 'secrets',
|
|
259
|
+
severity: 'warning',
|
|
260
|
+
description: '.env.prod not stored in Ansible Vault',
|
|
261
|
+
scan: async (config, rootDir) => {
|
|
262
|
+
if (!config.ansible?.vault_path)
|
|
263
|
+
return false;
|
|
264
|
+
const envs = (0, config_helpers_js_1.extractEnvironments)(config);
|
|
265
|
+
const hasProd = !!envs.prod || !!envs.production;
|
|
266
|
+
if (!hasProd)
|
|
267
|
+
return false;
|
|
268
|
+
if (!fs.existsSync(path.join(rootDir, '.env.prod')))
|
|
269
|
+
return false;
|
|
270
|
+
try {
|
|
271
|
+
const { AnsibleVaultSecrets } = await Promise.resolve().then(() => __importStar(require('../../../../utils/ansible-vault-secrets.js')));
|
|
272
|
+
const vault = new AnsibleVaultSecrets({
|
|
273
|
+
vault_path: config.ansible.vault_path,
|
|
274
|
+
vault_password_file: config.ansible.vault_password_file ?? '~/.vault_pass',
|
|
275
|
+
rootDir,
|
|
276
|
+
});
|
|
277
|
+
const has = await vault.hasEnvironmentSecrets('prod');
|
|
278
|
+
return !has;
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
fix: async (config, rootDir) => {
|
|
285
|
+
if (!config.ansible?.vault_path)
|
|
286
|
+
return false;
|
|
287
|
+
const envVars = (0, env_validator_js_1.parseEnvFile)(path.join(rootDir, '.env.prod'));
|
|
288
|
+
if (!envVars)
|
|
289
|
+
return false;
|
|
290
|
+
try {
|
|
291
|
+
const { AnsibleVaultSecrets } = await Promise.resolve().then(() => __importStar(require('../../../../utils/ansible-vault-secrets.js')));
|
|
292
|
+
const vault = new AnsibleVaultSecrets({
|
|
293
|
+
vault_path: config.ansible.vault_path,
|
|
294
|
+
vault_password_file: config.ansible.vault_password_file ?? '~/.vault_pass',
|
|
295
|
+
rootDir,
|
|
296
|
+
});
|
|
297
|
+
await vault.setEnvironmentSecrets('prod', envVars);
|
|
298
|
+
console.log(' Stored .env.prod in vault as prod_envs');
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
catch (e) {
|
|
302
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
303
|
+
console.log(' Failed to store in vault: ' + msg);
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
manualFix: 'Run: npx stack fix (will store .env.prod in Ansible Vault)',
|
|
308
|
+
},
|
|
309
|
+
];
|
|
310
|
+
//# sourceMappingURL=env-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-files.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/env-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local config scanfix for Factiii Pipeline plugin
|
|
3
|
+
* Warns if stack.local.yml is missing (per-developer, gitignored config)
|
|
4
|
+
*/
|
|
5
|
+
import type { Fix } from '../../../../types/index.js';
|
|
6
|
+
export declare const localConfigFixes: Fix[];
|
|
7
|
+
//# sourceMappingURL=local-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-config.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/local-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAGrE,eAAO,MAAM,gBAAgB,EAAE,GAAG,EA2BjC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Local config scanfix for Factiii Pipeline plugin
|
|
4
|
+
* Warns if stack.local.yml is missing (per-developer, gitignored config)
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.localConfigFixes = void 0;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const config_files_js_1 = require("../../../../constants/config-files.js");
|
|
43
|
+
exports.localConfigFixes = [
|
|
44
|
+
{
|
|
45
|
+
id: 'missing-local-config',
|
|
46
|
+
stage: 'dev',
|
|
47
|
+
severity: 'warning',
|
|
48
|
+
description: config_files_js_1.STACK_LOCAL_FILENAME + ' not found (specifies your dev OS)',
|
|
49
|
+
scan: async (_config, rootDir) => {
|
|
50
|
+
const localPath = (0, config_files_js_1.getStackLocalPath)(rootDir);
|
|
51
|
+
return !fs.existsSync(localPath);
|
|
52
|
+
},
|
|
53
|
+
fix: async (_config, rootDir) => {
|
|
54
|
+
const localPath = (0, config_files_js_1.getStackLocalPath)(rootDir);
|
|
55
|
+
let devOS = 'ubuntu';
|
|
56
|
+
if (process.platform === 'darwin')
|
|
57
|
+
devOS = 'mac';
|
|
58
|
+
else if (process.platform === 'win32')
|
|
59
|
+
devOS = 'windows';
|
|
60
|
+
const content = '# Local machine config (gitignored - each developer has their own)\n' +
|
|
61
|
+
'# Generated by: npx stack fix\n' +
|
|
62
|
+
'\n' +
|
|
63
|
+
'dev_os: ' + devOS + '\n';
|
|
64
|
+
fs.writeFileSync(localPath, content, 'utf8');
|
|
65
|
+
return true;
|
|
66
|
+
},
|
|
67
|
+
manualFix: 'Create ' + config_files_js_1.STACK_LOCAL_FILENAME + ' with: dev_os: mac|windows|ubuntu',
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
//# sourceMappingURL=local-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-config.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/local-config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AAEzB,2EAAgG;AAEnF,QAAA,gBAAgB,GAAU;IACrC;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,sCAAoB,GAAG,oCAAoC;QACxE,IAAI,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAoB,EAAE;YACxE,MAAM,SAAS,GAAG,IAAA,mCAAiB,EAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAe,EAAoB,EAAE;YACvE,MAAM,SAAS,GAAG,IAAA,mCAAiB,EAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,KAAK,GAAG,QAAQ,CAAC;YACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAAE,KAAK,GAAG,KAAK,CAAC;iBAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAAE,KAAK,GAAG,SAAS,CAAC;YAEzD,MAAM,OAAO,GACX,sEAAsE;gBACtE,iCAAiC;gBACjC,IAAI;gBACJ,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC;YAE5B,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS,EAAE,SAAS,GAAG,sCAAoB,GAAG,mCAAmC;KAClF;CACF,CAAC"}
|
|
@@ -109,7 +109,7 @@ exports.secretsFixes = [
|
|
|
109
109
|
manualFix: 'Store your staging SSH key in the vault:\n' +
|
|
110
110
|
' 1. Generate key: ssh-keygen -t ed25519 -C "staging-deploy" -f ~/.ssh/staging_deploy_key\n' +
|
|
111
111
|
' 2. Add to server: ssh-copy-id -i ~/.ssh/staging_deploy_key.pub user@staging-host\n' +
|
|
112
|
-
' 3. Store in vault: npx
|
|
112
|
+
' 3. Store in vault: npx stack secrets set STAGING_SSH',
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
id: 'missing-prod-ssh',
|
|
@@ -145,7 +145,7 @@ exports.secretsFixes = [
|
|
|
145
145
|
manualFix: 'Store your prod SSH key in the vault:\n' +
|
|
146
146
|
' 1. Generate key: ssh-keygen -t ed25519 -C "prod-deploy" -f ~/.ssh/prod_deploy_key\n' +
|
|
147
147
|
' 2. Add to server: ssh-copy-id -i ~/.ssh/prod_deploy_key.pub user@prod-host\n' +
|
|
148
|
-
' 3. Store in vault: npx
|
|
148
|
+
' 3. Store in vault: npx stack secrets set PROD_SSH',
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
id: 'missing-aws-secret',
|
|
@@ -178,7 +178,7 @@ exports.secretsFixes = [
|
|
|
178
178
|
return false;
|
|
179
179
|
}
|
|
180
180
|
},
|
|
181
|
-
manualFix: 'Set AWS_SECRET_ACCESS_KEY secret: npx
|
|
181
|
+
manualFix: 'Set AWS_SECRET_ACCESS_KEY secret: npx stack secrets set AWS_SECRET_ACCESS_KEY',
|
|
182
182
|
},
|
|
183
183
|
{
|
|
184
184
|
id: 'missing-vault-password-file',
|
|
@@ -197,7 +197,7 @@ exports.secretsFixes = [
|
|
|
197
197
|
manualFix: 'Create the vault password file specified in factiii.yml ansible.vault_password_file:\n' +
|
|
198
198
|
' macOS/Linux: echo "your-vault-password" > ~/.vault_pass && chmod 600 ~/.vault_pass\n' +
|
|
199
199
|
' Windows: echo your-vault-password > %USERPROFILE%\\.vault_pass\n' +
|
|
200
|
-
' Or run: npx
|
|
200
|
+
' Or run: npx stack init (will guide you through vault setup)',
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
id: 'missing-ssh-key-staging',
|
|
@@ -214,7 +214,7 @@ exports.secretsFixes = [
|
|
|
214
214
|
return !fs.existsSync(keyPath);
|
|
215
215
|
},
|
|
216
216
|
fix: null,
|
|
217
|
-
manualFix: 'Extract SSH keys from vault: npx
|
|
217
|
+
manualFix: 'Extract SSH keys from vault: npx stack secrets write-ssh-keys',
|
|
218
218
|
},
|
|
219
219
|
{
|
|
220
220
|
id: 'missing-ssh-key-prod',
|
|
@@ -231,7 +231,7 @@ exports.secretsFixes = [
|
|
|
231
231
|
return !fs.existsSync(keyPath);
|
|
232
232
|
},
|
|
233
233
|
fix: null,
|
|
234
|
-
manualFix: 'Extract SSH keys from vault: npx
|
|
234
|
+
manualFix: 'Extract SSH keys from vault: npx stack secrets write-ssh-keys',
|
|
235
235
|
},
|
|
236
236
|
];
|
|
237
237
|
//# sourceMappingURL=secrets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/secrets.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAE7B,yFAAiF;AACjF,2EAAsE;AAEtE,SAAS,eAAe,CAAC,MAAqB,EAAE,OAAe;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,IAAI,8CAAmB,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;QACrC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;QACvD,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,GAAG,GAA2B;QAClC,qBAAqB,EAAE,aAAa;QACpC,kBAAkB,EAAE,UAAU;QAC9B,oBAAoB,EAAE,uBAAuB;KAC9C,CAAC;IACF,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAEY,QAAA,YAAY,GAAU;IACjC;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,0EAA0E;QACvF,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAoB,EAAE;YACxE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;QACrC,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EACP,uCAAuC;YACvC,cAAc;YACd,4CAA4C;YAC5C,oDAAoD;KACvD;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACvE,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;YACpF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,yDAAyD;YACzD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC,CAAC,uCAAuC;YAEzE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAEzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;QAC1D,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACtE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAe,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAC3D,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,SAAS,EACP,4CAA4C;YAC5C,iGAAiG;YACjG,0FAA0F;YAC1F,
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/secrets.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAE7B,yFAAiF;AACjF,2EAAsE;AAEtE,SAAS,eAAe,CAAC,MAAqB,EAAE,OAAe;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,IAAI,8CAAmB,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;QACrC,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;QACvD,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,GAAG,GAA2B;QAClC,qBAAqB,EAAE,aAAa;QACpC,kBAAkB,EAAE,UAAU;QAC9B,oBAAoB,EAAE,uBAAuB;KAC9C,CAAC;IACF,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAEY,QAAA,YAAY,GAAU;IACjC;QACE,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,0EAA0E;QACvF,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAoB,EAAE;YACxE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;QACrC,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EACP,uCAAuC;YACvC,cAAc;YACd,4CAA4C;YAC5C,oDAAoD;KACvD;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,+CAA+C;QAC5D,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACvE,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;YACpF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,yDAAyD;YACzD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;YAC3C,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC,CAAC,uCAAuC;YAEzE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAEzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;QAC1D,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACtE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAe,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAC3D,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,SAAS,EACP,4CAA4C;YAC5C,iGAAiG;YACjG,0FAA0F;YAC1F,4DAA4D;KAC/D;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,4CAA4C;QACzD,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACvE,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;YACpF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,sDAAsD;YACtD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC,CAAC,oCAAoC;YAEnE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAEzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;QACvD,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACtE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAe,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACxD,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,SAAS,EACP,yCAAyC;YACzC,2FAA2F;YAC3F,oFAAoF;YACpF,yDAAyD;KAC5D;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,mEAAmE;QAChF,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACvE,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;YACpF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,6CAA6C;YAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACvD,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,aAAa,CAC5C,CAAC;YACF,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC;YAE7B,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,+CAA+C;YAEzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC;QACpE,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,MAAqB,EAAE,OAAe,EAAoB,EAAE;YACtE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAA,mCAAe,EAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBACrE,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,SAAS,EACP,+EAA+E;KAClF;IACD;QACE,EAAE,EAAE,6BAA6B;QACjC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,6DAA6D;QAC1E,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAoB,EAAE;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU;gBAAE,OAAO,KAAK,CAAC,CAAC,2CAA2C;YAC1F,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB;gBAAE,OAAO,KAAK,CAAC,CAAC,0BAA0B;YAEjF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EACP,wFAAwF;YACxF,4FAA4F;YAC5F,4EAA4E;YAC5E,mEAAmE;KACtE;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,GAAG,0CAA0C;QACjI,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAoB,EAAE;YACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;YACpF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,+CAA+C;YAC/C,IAAI,CAAC,YAAY,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;YACtE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EACP,+DAA+D;KAClE;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,GAAG,uCAAuC;QAC3H,IAAI,EAAE,KAAK,EAAE,MAAqB,EAAoB,EAAE;YACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;YACpF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAEjD,4CAA4C;YAC5C,IAAI,CAAC,YAAY,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YAErC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACnE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,EAAE,IAAI;QACT,SAAS,EACP,+DAA+D;KAClE;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/workflows.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAIrE,eAAO,MAAM,aAAa,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/factiii/scanfix/workflows.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAIrE,eAAO,MAAM,aAAa,EAAE,GAAG,EAmI9B,CAAC"}
|