@kubbisec/ai-linux-arm64 0.1.15 → 0.1.17
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/bin/kubbisec +0 -0
- package/bundled/extensions/cli-local-shared.d.ts.map +1 -1
- package/bundled/extensions/cli-local-shared.js +2 -1
- package/bundled/extensions/cli-local-shared.js.map +1 -1
- package/bundled/extensions/kubbisec-naus-local.extension.js +6 -6
- package/bundled/extensions/kubbisec-naus-local.extension.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-bundle-report.dto.d.ts +8 -5
- package/bundled/node_modules/@aspm/shared/dist/dto/create-bundle-report.dto.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-bundle-report.dto.js +35 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-bundle-report.dto.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-coverage-report.dto.d.ts +15 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-coverage-report.dto.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-coverage-report.dto.js +88 -3
- package/bundled/node_modules/@aspm/shared/dist/dto/create-coverage-report.dto.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-vulnerability.dto.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-vulnerability.dto.js +3 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/create-vulnerability.dto.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/index.d.ts +2 -2
- package/bundled/node_modules/@aspm/shared/dist/dto/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/index.js +3 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/index.d.ts +2 -0
- package/bundled/node_modules/@aspm/shared/dist/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/index.js +2 -0
- package/bundled/node_modules/@aspm/shared/dist/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.d.ts +21 -0
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.js +56 -0
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/better-auth-org-roles.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/better-auth-org-roles.js +0 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/better-auth-org-roles.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/redaction.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/redaction.js +1 -0
- package/bundled/node_modules/@aspm/shared/dist/redaction.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.d.ts +19 -0
- package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.js +61 -0
- package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.d.ts +3 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.js +54 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.d.ts +4 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js +72 -0
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-action-pins.d.ts +27 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-action-pins.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-action-pins.js +30 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-action-pins.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-tool-jobs.d.ts +7 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-tool-jobs.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-tool-jobs.js +184 -0
- package/bundled/node_modules/@aspm/shared/dist/security/github-workflow-tool-jobs.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/index.d.ts +7 -0
- package/bundled/node_modules/@aspm/shared/dist/security/index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/index.js +23 -0
- package/bundled/node_modules/@aspm/shared/dist/security/index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool-catalog.d.ts +5 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool-catalog.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool-catalog.js +74 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool-catalog.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool.types.d.ts +43 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool.types.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool.types.js +22 -0
- package/bundled/node_modules/@aspm/shared/dist/security/security-tool.types.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/sonar-safe-string.d.ts +8 -0
- package/bundled/node_modules/@aspm/shared/dist/sonar-safe-string.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/sonar-safe-string.js +65 -0
- package/bundled/node_modules/@aspm/shared/dist/sonar-safe-string.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/package.json +4 -0
- package/package.json +1 -1
|
@@ -20,7 +20,6 @@ exports.ORG_INVITE_ROLE_OPTIONS = [
|
|
|
20
20
|
/** All assignable org roles (invites exclude org_administrator by design). */
|
|
21
21
|
exports.ORG_MEMBER_ROLE_OPTIONS = [
|
|
22
22
|
{ value: "org_administrator", label: "Administrador da organização" },
|
|
23
|
-
{ value: "org_finance", label: "Financeiro" },
|
|
24
23
|
...exports.ORG_INVITE_ROLE_OPTIONS,
|
|
25
24
|
];
|
|
26
25
|
/** Maps legacy Better Auth roles and Kubbisec slugs stored in DB → canonical `OrgRoleSlug`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-org-roles.js","sourceRoot":"","sources":["../../src/rbac/better-auth-org-roles.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"better-auth-org-roles.js","sourceRoot":"","sources":["../../src/rbac/better-auth-org-roles.ts"],"names":[],"mappings":";;;AAyBA,wDAyBC;AAGD,kDAEC;AArDD,mGAAmG;AACtF,QAAA,4BAA4B,GAAG;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,WAAW,EAAE,aAAa;IAC1B,qBAAqB,EAAE,uBAAuB;IAC9C,qBAAqB,EAAE,uBAAuB;IAC9C,YAAY,EAAE,cAAc;CACuB,CAAC;AAEzC,QAAA,uBAAuB,GAA4C;IAC9E,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE;IAC7C,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC/D,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IAC7D,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;CAC/C,CAAC;AAEF,8EAA8E;AACjE,QAAA,uBAAuB,GAA4C;IAC9E,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,8BAA8B,EAAE;IACrE,GAAG,+BAAuB;CAC3B,CAAC;AAEF,+FAA+F;AAC/F,SAAgB,sBAAsB,CAAC,GAA8B;IACnE,IAAI,CAAC,GAAG;QAAE,OAAO,cAAc,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IACE,CAAC,KAAK,mBAAmB;QACzB,CAAC,KAAK,aAAa;QACnB,CAAC,KAAK,uBAAuB;QAC7B,CAAC,KAAK,uBAAuB;QAC7B,CAAC,KAAK,cAAc,EACpB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,IACE,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,eAAe;QACzB,KAAK,KAAK,WAAW,EACrB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QACjD,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,8EAA8E;AAC9E,SAAgB,mBAAmB,CAAC,IAAiB;IACnD,OAAO,oCAA4B,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,eAAe,CAAC;AAiD3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,eAAe,CAAC;AAiD3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAmMF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CA2ClD;AAED,wBAAgB,qBAAqB,CACnC,CAAC,SAAS;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CAChE,EACD,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,gBAAqB,GAAG,CAAC,CAyB9C"}
|
|
@@ -88,6 +88,7 @@ function redactString(value) {
|
|
|
88
88
|
.replace(/\bAIza[0-9A-Za-z_-]{35}\b/g, exports.REDACTED_VALUE)
|
|
89
89
|
.replace(/\b(AccountKey|SharedAccessSignature)=([^;\n]+)/gi, `$1=${exports.REDACTED_VALUE}`)
|
|
90
90
|
.replace(/\b((?:password|passwd|pwd|secret|token|api[_-]?key|client[_-]?secret)\b\s*[:=]\s*)(["'`]?)[^,\s"'`]+/gi, `$1$2${exports.REDACTED_VALUE}`)
|
|
91
|
+
.replace(/\b((?:postgres(?:ql)?|mysql|mariadb|mongodb(?:\+srv)?|redis|rediss):\/\/)([^/@\s:]*):([^/@\s]+)@/gi, `$1${exports.REDACTED_VALUE}@`)
|
|
91
92
|
.replace(/(https?:\/\/)([^/@\s:]+):([^/@\s]+)@/gi, `$1${exports.REDACTED_VALUE}@`);
|
|
92
93
|
}
|
|
93
94
|
/** Path string for @pinojs/redact / fast-redact. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type AspmGateRules = {
|
|
2
|
+
vulnerabilities?: {
|
|
3
|
+
max_by_severity: Record<string, number>;
|
|
4
|
+
};
|
|
5
|
+
coverage?: {
|
|
6
|
+
min_line_pct: number;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare const DEFAULT_ASPM_GATE_RULES: AspmGateRules;
|
|
10
|
+
/** Base64 payload for `aspm gate --rules` (wraps rules in `{ rules: ... }`). */
|
|
11
|
+
export declare function encodeAspmGateRulesBase64(rules?: AspmGateRules): string;
|
|
12
|
+
/** Pretty JSON for `aspm gate --rules-file` (wraps rules in `{ rules: ... }`). */
|
|
13
|
+
export declare function formatAspmGateRulesJson(rules?: AspmGateRules): string;
|
|
14
|
+
/**
|
|
15
|
+
* GitHub Actions step with human-readable gate rules JSON and `aspm gate --rules-file`.
|
|
16
|
+
* Same semantics as Naus `aspm_gate`, without base64 or Node wrappers in the YAML.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildAspmGateGithubWorkflowStep(rules?: AspmGateRules, projectId?: string): string;
|
|
19
|
+
//# sourceMappingURL=aspm-gate-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspm-gate-rules.d.ts","sourceRoot":"","sources":["../../src/security/aspm-gate-rules.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,CAAC,EAAE;QAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzC,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAOrC,CAAC;AAeF,gFAAgF;AAChF,wBAAgB,yBAAyB,CACvC,KAAK,GAAE,aAAuC,GAC7C,MAAM,CAIR;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CACrC,KAAK,GAAE,aAAuC,GAC7C,MAAM,CAIR;AAWD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,GAAE,aAAuC,EAC9C,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAaR"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_ASPM_GATE_RULES = void 0;
|
|
4
|
+
exports.encodeAspmGateRulesBase64 = encodeAspmGateRulesBase64;
|
|
5
|
+
exports.formatAspmGateRulesJson = formatAspmGateRulesJson;
|
|
6
|
+
exports.buildAspmGateGithubWorkflowStep = buildAspmGateGithubWorkflowStep;
|
|
7
|
+
exports.DEFAULT_ASPM_GATE_RULES = {
|
|
8
|
+
vulnerabilities: {
|
|
9
|
+
max_by_severity: {
|
|
10
|
+
CRITICAL: 0,
|
|
11
|
+
HIGH: 0,
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
function encodeUtf8ToBase64(value) {
|
|
16
|
+
const bufferCtor = globalThis.Buffer;
|
|
17
|
+
if (bufferCtor) {
|
|
18
|
+
return bufferCtor.from(value, "utf8").toString("base64");
|
|
19
|
+
}
|
|
20
|
+
const bytes = new TextEncoder().encode(value);
|
|
21
|
+
let binary = "";
|
|
22
|
+
for (const byte of bytes) {
|
|
23
|
+
binary += String.fromCharCode(byte);
|
|
24
|
+
}
|
|
25
|
+
return btoa(binary);
|
|
26
|
+
}
|
|
27
|
+
/** Base64 payload for `aspm gate --rules` (wraps rules in `{ rules: ... }`). */
|
|
28
|
+
function encodeAspmGateRulesBase64(rules = exports.DEFAULT_ASPM_GATE_RULES) {
|
|
29
|
+
const body = rules && Object.keys(rules).length > 0 ? { rules } : {};
|
|
30
|
+
return encodeUtf8ToBase64(JSON.stringify(body));
|
|
31
|
+
}
|
|
32
|
+
/** Pretty JSON for `aspm gate --rules-file` (wraps rules in `{ rules: ... }`). */
|
|
33
|
+
function formatAspmGateRulesJson(rules = exports.DEFAULT_ASPM_GATE_RULES) {
|
|
34
|
+
const body = rules && Object.keys(rules).length > 0 ? { rules } : {};
|
|
35
|
+
return JSON.stringify(body, null, 2);
|
|
36
|
+
}
|
|
37
|
+
const KUBBISEC_GATE_RULES_FILENAME = "kubbisec-gate-rules.json";
|
|
38
|
+
function indentForYamlRunBlock(text, indent = " ") {
|
|
39
|
+
return text
|
|
40
|
+
.split("\n")
|
|
41
|
+
.map((line) => (line.length > 0 ? `${indent}${line}` : line))
|
|
42
|
+
.join("\n");
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* GitHub Actions step with human-readable gate rules JSON and `aspm gate --rules-file`.
|
|
46
|
+
* Same semantics as Naus `aspm_gate`, without base64 or Node wrappers in the YAML.
|
|
47
|
+
*/
|
|
48
|
+
function buildAspmGateGithubWorkflowStep(rules = exports.DEFAULT_ASPM_GATE_RULES, projectId) {
|
|
49
|
+
const rulesJson = indentForYamlRunBlock(formatAspmGateRulesJson(rules));
|
|
50
|
+
const projectRef = projectId ?? `\${{ vars.KUBBISEC_PROJECT }}`;
|
|
51
|
+
return ` # Quality gate KubbiSec: avalia os relatórios locais desta job (modelo Naus aspm_gate)
|
|
52
|
+
- name: KubbiSec ASPM gate
|
|
53
|
+
env:
|
|
54
|
+
KUBBISEC_PROJECT: ${projectRef}
|
|
55
|
+
run: |
|
|
56
|
+
cat > ${KUBBISEC_GATE_RULES_FILENAME} <<'EOF'
|
|
57
|
+
${rulesJson}
|
|
58
|
+
EOF
|
|
59
|
+
aspm gate --rules-file ${KUBBISEC_GATE_RULES_FILENAME} -p ${projectRef}`;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=aspm-gate-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspm-gate-rules.js","sourceRoot":"","sources":["../../src/security/aspm-gate-rules.ts"],"names":[],"mappings":";;;AAgCA,8DAMC;AAGD,0DAMC;AAeD,0EAgBC;AArEY,QAAA,uBAAuB,GAAkB;IACpD,eAAe,EAAE;QACf,eAAe,EAAE;YACf,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,CAAC;SACR;KACF;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,UAAU,GAAI,UAAuG,CAAC,MAAM,CAAC;IACnI,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,gFAAgF;AAChF,SAAgB,yBAAyB,CACvC,QAAuB,+BAAuB;IAE9C,MAAM,IAAI,GACR,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,SAAgB,uBAAuB,CACrC,QAAuB,+BAAuB;IAE9C,MAAM,IAAI,GACR,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAEhE,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAM,GAAG,YAAY;IAChE,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,+BAA+B,CAC7C,QAAuB,+BAAuB,EAC9C,SAAkB;IAElB,MAAM,SAAS,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,SAAS,IAAI,+BAA+B,CAAC;IAEhE,OAAO;;;8BAGqB,UAAU;;kBAEtB,4BAA4B;EAC5C,SAAS;;mCAEwB,4BAA4B,OAAO,UAAU,EAAE,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BuildAspmSecurityMatrixPipelineOptions } from "./security-tool.types";
|
|
2
|
+
export declare function buildAspmSecurityMatrixPipelineYaml(tools: readonly string[], options?: BuildAspmSecurityMatrixPipelineOptions): string;
|
|
3
|
+
//# sourceMappingURL=build-aspm-security-matrix-pipeline-yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-aspm-security-matrix-pipeline-yaml.d.ts","sourceRoot":"","sources":["../../src/security/build-aspm-security-matrix-pipeline-yaml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sCAAsC,EAEvC,MAAM,uBAAuB,CAAC;AAqB/B,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,sCAAsC,GAC/C,MAAM,CAkCR"}
|
package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildAspmSecurityMatrixPipelineYaml = buildAspmSecurityMatrixPipelineYaml;
|
|
4
|
+
const aspm_gate_rules_1 = require("./aspm-gate-rules");
|
|
5
|
+
const security_tool_catalog_1 = require("./security-tool-catalog");
|
|
6
|
+
function formatGateRulesYaml(gateRules) {
|
|
7
|
+
const lines = [];
|
|
8
|
+
if (gateRules.vulnerabilities?.max_by_severity) {
|
|
9
|
+
lines.push(" vulnerabilities:");
|
|
10
|
+
lines.push(" max_by_severity:");
|
|
11
|
+
for (const [severity, max] of Object.entries(gateRules.vulnerabilities.max_by_severity)) {
|
|
12
|
+
lines.push(` ${severity}: ${max}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (gateRules.coverage?.min_line_pct != null) {
|
|
16
|
+
lines.push(" coverage:");
|
|
17
|
+
lines.push(` min_line_pct: ${gateRules.coverage.min_line_pct}`);
|
|
18
|
+
}
|
|
19
|
+
return lines.join("\n");
|
|
20
|
+
}
|
|
21
|
+
function buildAspmSecurityMatrixPipelineYaml(tools, options) {
|
|
22
|
+
const normalized = (0, security_tool_catalog_1.normalizeSecurityTools)(tools);
|
|
23
|
+
const pipelineName = options?.pipelineName?.trim() || "kubbisec-security";
|
|
24
|
+
const matrixStrategy = options?.matrixStrategy ?? "fanout";
|
|
25
|
+
const gateRules = options?.gateRules ?? aspm_gate_rules_1.DEFAULT_ASPM_GATE_RULES;
|
|
26
|
+
const parallelBlock = normalized.map((tool) => ` - tool: ${tool}`).join("\n");
|
|
27
|
+
const gateYaml = formatGateRulesYaml(gateRules);
|
|
28
|
+
return `name: "${pipelineName}"
|
|
29
|
+
description: Pipeline de segurança KubbiSec ASPM (matriz gerada automaticamente)
|
|
30
|
+
|
|
31
|
+
stages:
|
|
32
|
+
- security
|
|
33
|
+
- gate
|
|
34
|
+
|
|
35
|
+
run:
|
|
36
|
+
- kubbisec_security:
|
|
37
|
+
display_name: "KubbiSec ASPM: matriz de segurança"
|
|
38
|
+
stage: security
|
|
39
|
+
kind: aspm_matrix
|
|
40
|
+
mode: scan-and-upload
|
|
41
|
+
matrix_strategy: ${matrixStrategy}
|
|
42
|
+
parallel:
|
|
43
|
+
${parallelBlock}
|
|
44
|
+
- kubbisec_gate:
|
|
45
|
+
display_name: "KubbiSec ASPM gate"
|
|
46
|
+
stage: gate
|
|
47
|
+
kind: aspm_gate
|
|
48
|
+
rules:
|
|
49
|
+
${gateYaml}
|
|
50
|
+
depends_on:
|
|
51
|
+
- kubbisec_security
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=build-aspm-security-matrix-pipeline-yaml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-aspm-security-matrix-pipeline-yaml.js","sourceRoot":"","sources":["../../src/security/build-aspm-security-matrix-pipeline-yaml.ts"],"names":[],"mappings":";;AAyBA,kFAqCC;AA9DD,uDAA4D;AAK5D,mEAAiE;AAEjE,SAAS,mBAAmB,CAC1B,SAA2E;IAE3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,CAAC,eAAe,EAAE,eAAe,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC;YACxF,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,EAAE,YAAY,IAAI,IAAI,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,2BAA2B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,mCAAmC,CACjD,KAAwB,EACxB,OAAgD;IAEhD,MAAM,UAAU,GAAG,IAAA,8CAAsB,EAAC,KAAK,CAAqB,CAAC;IACrE,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,mBAAmB,CAAC;IAC1E,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,QAAQ,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,yCAAuB,CAAC;IAEhE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO,UAAU,YAAY;;;;;;;;;;;;;yBAaN,cAAc;;EAErC,aAAa;;;;;;EAMb,QAAQ;;;CAGT,CAAC;AACF,CAAC"}
|
package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BuildGithubSecurityWorkflowOptions } from "./security-tool.types";
|
|
2
|
+
export declare function buildGithubSecurityWorkflowYaml(tools: readonly string[], options: BuildGithubSecurityWorkflowOptions): string;
|
|
3
|
+
export declare const DEFAULT_GITHUB_WORKFLOW_TRIGGERS: BuildGithubSecurityWorkflowOptions["events"];
|
|
4
|
+
//# sourceMappingURL=build-github-security-workflow-yaml.d.ts.map
|
package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-github-security-workflow-yaml.d.ts","sourceRoot":"","sources":["../../src/security/build-github-security-workflow-yaml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kCAAkC,EAAkB,MAAM,uBAAuB,CAAC;AAkDhG,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,EAAE,kCAAkC,GAC1C,MAAM,CAgBR;AAED,eAAO,MAAM,gCAAgC,EAAE,kCAAkC,CAAC,QAAQ,CAOzF,CAAC"}
|
package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_GITHUB_WORKFLOW_TRIGGERS = void 0;
|
|
4
|
+
exports.buildGithubSecurityWorkflowYaml = buildGithubSecurityWorkflowYaml;
|
|
5
|
+
const security_tool_catalog_1 = require("./security-tool-catalog");
|
|
6
|
+
const github_workflow_tool_jobs_1 = require("./github-workflow-tool-jobs");
|
|
7
|
+
function buildOnBlock(events) {
|
|
8
|
+
const lines = ["on:"];
|
|
9
|
+
if (events.push) {
|
|
10
|
+
const branches = events.pushBranches.filter(Boolean);
|
|
11
|
+
if (branches.length > 0) {
|
|
12
|
+
lines.push(" push:");
|
|
13
|
+
lines.push(" branches:");
|
|
14
|
+
for (const branch of branches) {
|
|
15
|
+
lines.push(` - ${branch}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
lines.push(" push:");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (events.pullRequest) {
|
|
23
|
+
lines.push(" pull_request:");
|
|
24
|
+
}
|
|
25
|
+
if (events.workflowDispatch) {
|
|
26
|
+
lines.push(" workflow_dispatch:");
|
|
27
|
+
}
|
|
28
|
+
if (events.schedule && events.scheduleCron.trim()) {
|
|
29
|
+
lines.push(" schedule:");
|
|
30
|
+
lines.push(" - cron: " + JSON.stringify(events.scheduleCron.trim()));
|
|
31
|
+
}
|
|
32
|
+
if (lines.length === 1) {
|
|
33
|
+
lines.push(" workflow_dispatch:");
|
|
34
|
+
}
|
|
35
|
+
return lines.join("\n");
|
|
36
|
+
}
|
|
37
|
+
function buildPermissionsBlock(tools) {
|
|
38
|
+
const needsCodeScanning = tools.some((tool) => tool === "gitleaks" || tool === "osv");
|
|
39
|
+
if (!needsCodeScanning) {
|
|
40
|
+
return `permissions:
|
|
41
|
+
contents: read`;
|
|
42
|
+
}
|
|
43
|
+
return `permissions:
|
|
44
|
+
contents: read
|
|
45
|
+
actions: read
|
|
46
|
+
security-events: write`;
|
|
47
|
+
}
|
|
48
|
+
function buildGithubSecurityWorkflowYaml(tools, options) {
|
|
49
|
+
const normalized = (0, security_tool_catalog_1.normalizeSecurityTools)(tools);
|
|
50
|
+
const workflowName = options.workflowName.trim() || "KubbiSec Security";
|
|
51
|
+
const onBlock = buildOnBlock(options.events);
|
|
52
|
+
const permissionsBlock = buildPermissionsBlock(normalized);
|
|
53
|
+
const { jobsYaml } = (0, github_workflow_tool_jobs_1.buildGithubToolJobsSection)(normalized, options.inlineEnv);
|
|
54
|
+
return `name: ${JSON.stringify(workflowName)}
|
|
55
|
+
|
|
56
|
+
${onBlock}
|
|
57
|
+
|
|
58
|
+
${permissionsBlock}
|
|
59
|
+
|
|
60
|
+
jobs:
|
|
61
|
+
${jobsYaml}
|
|
62
|
+
`;
|
|
63
|
+
}
|
|
64
|
+
exports.DEFAULT_GITHUB_WORKFLOW_TRIGGERS = {
|
|
65
|
+
push: true,
|
|
66
|
+
pushBranches: ["main"],
|
|
67
|
+
pullRequest: true,
|
|
68
|
+
workflowDispatch: true,
|
|
69
|
+
schedule: false,
|
|
70
|
+
scheduleCron: "0 6 * * 1",
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=build-github-security-workflow-yaml.js.map
|
package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-github-security-workflow-yaml.js","sourceRoot":"","sources":["../../src/security/build-github-security-workflow-yaml.ts"],"names":[],"mappings":";;;AAoDA,0EAmBC;AAvED,mEAAiE;AACjE,2EAAyE;AAGzE,SAAS,YAAY,CAAC,MAAoD;IACxE,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAEhC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAuB;IACpD,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;IACtF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;iBACM,CAAC;IAChB,CAAC;IACD,OAAO;;;yBAGgB,CAAC;AAC1B,CAAC;AAED,SAAgB,+BAA+B,CAC7C,KAAwB,EACxB,OAA2C;IAE3C,MAAM,UAAU,GAAG,IAAA,8CAAsB,EAAC,KAAK,CAAqB,CAAC;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,mBAAmB,CAAC;IACxE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,sDAA0B,EAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/E,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;;EAE5C,OAAO;;EAEP,gBAAgB;;;EAGhB,QAAQ;CACT,CAAC;AACF,CAAC;AAEY,QAAA,gCAAgC,GAAiD;IAC5F,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,WAAW;CAC1B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pinned GitHub Actions / images for KubbiSec workflow templates.
|
|
3
|
+
* Prefer stable major/minor tags maintained by vendors; pin SHAs in production if policy requires.
|
|
4
|
+
*
|
|
5
|
+
* @see https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23 (trivy-action >= v0.35.0)
|
|
6
|
+
*/
|
|
7
|
+
export declare const GITHUB_CHECKOUT_ACTION = "actions/checkout@v4";
|
|
8
|
+
/** aquasecurity/trivy-action — filesystem scan with JSON for `aspm upload`. */
|
|
9
|
+
export declare const TRIVY_ACTION = "aquasecurity/trivy-action@v0.35.0";
|
|
10
|
+
/** anchore/sbom-action — CycloneDX JSON SBOM for `aspm upload`. */
|
|
11
|
+
export declare const SBOM_ACTION = "anchore/sbom-action@v0";
|
|
12
|
+
/** gitleaks/gitleaks-action — Node 24 / LTS track (org repos may need GITLEAKS_LICENSE). */
|
|
13
|
+
export declare const GITLEAKS_ACTION = "gitleaks/gitleaks-action@v3";
|
|
14
|
+
/** google/osv-scanner-action sub-actions (scanner + SARIF reporter). */
|
|
15
|
+
export declare const OSV_SCANNER_ACTION = "google/osv-scanner-action/osv-scanner-action@v2.3.8";
|
|
16
|
+
export declare const OSV_REPORTER_ACTION = "google/osv-scanner-action/osv-reporter-action@v2.3.8";
|
|
17
|
+
/** Upload SARIF to GitHub Security tab (Code Scanning). */
|
|
18
|
+
export declare const CODEQL_UPLOAD_SARIF_ACTION = "github/codeql-action/upload-sarif@v4";
|
|
19
|
+
/** Tag root for reusable OSV workflows (documentação). */
|
|
20
|
+
export declare const OSV_SCANNER_ACTION_REF = "google/osv-scanner-action@v2.3.8";
|
|
21
|
+
/** SonarSource/sonarqube-scan-action — SonarQube Server 2026.1 LTA docs recommend v7. */
|
|
22
|
+
export declare const SONAR_SCAN_ACTION = "SonarSource/sonarqube-scan-action@v7";
|
|
23
|
+
/** Official Semgrep image (semgrep/semgrep-action is deprecated). */
|
|
24
|
+
export declare const SEMGREP_CONTAINER_IMAGE = "semgrep/semgrep:latest";
|
|
25
|
+
/** Pinned Gitleaks CLI when JSON report is required for ASPM (action defaults to SARIF). */
|
|
26
|
+
export declare const GITLEAKS_CLI_VERSION = "8.21.2";
|
|
27
|
+
//# sourceMappingURL=github-workflow-action-pins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-workflow-action-pins.d.ts","sourceRoot":"","sources":["../../src/security/github-workflow-action-pins.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAE5D,+EAA+E;AAC/E,eAAO,MAAM,YAAY,sCAAsC,CAAC;AAEhE,mEAAmE;AACnE,eAAO,MAAM,WAAW,2BAA2B,CAAC;AAEpD,4FAA4F;AAC5F,eAAO,MAAM,eAAe,gCAAgC,CAAC;AAE7D,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,wDAAwD,CAAC;AACxF,eAAO,MAAM,mBAAmB,yDAAyD,CAAC;AAE1F,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,yCAAyC,CAAC;AAEjF,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AAEzE,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAEhE,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GITLEAKS_CLI_VERSION = exports.SEMGREP_CONTAINER_IMAGE = exports.SONAR_SCAN_ACTION = exports.OSV_SCANNER_ACTION_REF = exports.CODEQL_UPLOAD_SARIF_ACTION = exports.OSV_REPORTER_ACTION = exports.OSV_SCANNER_ACTION = exports.GITLEAKS_ACTION = exports.SBOM_ACTION = exports.TRIVY_ACTION = exports.GITHUB_CHECKOUT_ACTION = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Pinned GitHub Actions / images for KubbiSec workflow templates.
|
|
6
|
+
* Prefer stable major/minor tags maintained by vendors; pin SHAs in production if policy requires.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23 (trivy-action >= v0.35.0)
|
|
9
|
+
*/
|
|
10
|
+
exports.GITHUB_CHECKOUT_ACTION = "actions/checkout@v4";
|
|
11
|
+
/** aquasecurity/trivy-action — filesystem scan with JSON for `aspm upload`. */
|
|
12
|
+
exports.TRIVY_ACTION = "aquasecurity/trivy-action@v0.35.0";
|
|
13
|
+
/** anchore/sbom-action — CycloneDX JSON SBOM for `aspm upload`. */
|
|
14
|
+
exports.SBOM_ACTION = "anchore/sbom-action@v0";
|
|
15
|
+
/** gitleaks/gitleaks-action — Node 24 / LTS track (org repos may need GITLEAKS_LICENSE). */
|
|
16
|
+
exports.GITLEAKS_ACTION = "gitleaks/gitleaks-action@v3";
|
|
17
|
+
/** google/osv-scanner-action sub-actions (scanner + SARIF reporter). */
|
|
18
|
+
exports.OSV_SCANNER_ACTION = "google/osv-scanner-action/osv-scanner-action@v2.3.8";
|
|
19
|
+
exports.OSV_REPORTER_ACTION = "google/osv-scanner-action/osv-reporter-action@v2.3.8";
|
|
20
|
+
/** Upload SARIF to GitHub Security tab (Code Scanning). */
|
|
21
|
+
exports.CODEQL_UPLOAD_SARIF_ACTION = "github/codeql-action/upload-sarif@v4";
|
|
22
|
+
/** Tag root for reusable OSV workflows (documentação). */
|
|
23
|
+
exports.OSV_SCANNER_ACTION_REF = "google/osv-scanner-action@v2.3.8";
|
|
24
|
+
/** SonarSource/sonarqube-scan-action — SonarQube Server 2026.1 LTA docs recommend v7. */
|
|
25
|
+
exports.SONAR_SCAN_ACTION = "SonarSource/sonarqube-scan-action@v7";
|
|
26
|
+
/** Official Semgrep image (semgrep/semgrep-action is deprecated). */
|
|
27
|
+
exports.SEMGREP_CONTAINER_IMAGE = "semgrep/semgrep:latest";
|
|
28
|
+
/** Pinned Gitleaks CLI when JSON report is required for ASPM (action defaults to SARIF). */
|
|
29
|
+
exports.GITLEAKS_CLI_VERSION = "8.21.2";
|
|
30
|
+
//# sourceMappingURL=github-workflow-action-pins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-workflow-action-pins.js","sourceRoot":"","sources":["../../src/security/github-workflow-action-pins.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,sBAAsB,GAAG,qBAAqB,CAAC;AAE5D,+EAA+E;AAClE,QAAA,YAAY,GAAG,mCAAmC,CAAC;AAEhE,mEAAmE;AACtD,QAAA,WAAW,GAAG,wBAAwB,CAAC;AAEpD,4FAA4F;AAC/E,QAAA,eAAe,GAAG,6BAA6B,CAAC;AAE7D,wEAAwE;AAC3D,QAAA,kBAAkB,GAAG,qDAAqD,CAAC;AAC3E,QAAA,mBAAmB,GAAG,sDAAsD,CAAC;AAE1F,2DAA2D;AAC9C,QAAA,0BAA0B,GAAG,sCAAsC,CAAC;AAEjF,0DAA0D;AAC7C,QAAA,sBAAsB,GAAG,kCAAkC,CAAC;AAEzE,yFAAyF;AAC5E,QAAA,iBAAiB,GAAG,sCAAsC,CAAC;AAExE,qEAAqE;AACxD,QAAA,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE,4FAA4F;AAC/E,QAAA,oBAAoB,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GithubWorkflowInlineEnv, SecurityToolId } from "./security-tool.types";
|
|
2
|
+
export declare const KUBBISEC_SCANS_JOB_ID = "kubbisec-scans";
|
|
3
|
+
export declare function buildGithubToolJobsSection(tools: SecurityToolId[], inlineEnv?: GithubWorkflowInlineEnv): {
|
|
4
|
+
jobIds: string[];
|
|
5
|
+
jobsYaml: string;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=github-workflow-tool-jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-workflow-tool-jobs.d.ts","sourceRoot":"","sources":["../../src/security/github-workflow-tool-jobs.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAErF,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAyKtD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,cAAc,EAAE,EACvB,SAAS,CAAC,EAAE,uBAAuB,GAClC;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAkBA"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KUBBISEC_SCANS_JOB_ID = void 0;
|
|
4
|
+
exports.buildGithubToolJobsSection = buildGithubToolJobsSection;
|
|
5
|
+
const aspm_gate_rules_1 = require("./aspm-gate-rules");
|
|
6
|
+
const github_workflow_action_pins_1 = require("./github-workflow-action-pins");
|
|
7
|
+
exports.KUBBISEC_SCANS_JOB_ID = "kubbisec-scans";
|
|
8
|
+
const ASPM_INSTALL_STEP = ` - name: Install ASPM CLI
|
|
9
|
+
run: npm install -g @kubbisec/aspm`;
|
|
10
|
+
const CHECKOUT_STEP = ` - uses: ${github_workflow_action_pins_1.GITHUB_CHECKOUT_ACTION}`;
|
|
11
|
+
const CHECKOUT_FULL_HISTORY_STEP = ` - uses: ${github_workflow_action_pins_1.GITHUB_CHECKOUT_ACTION}
|
|
12
|
+
with:
|
|
13
|
+
fetch-depth: 0`;
|
|
14
|
+
/**
|
|
15
|
+
* KubbiSec job env — API URL is omitted (ASPM CLI defaults to https://api.kubbisec.com).
|
|
16
|
+
* Only secret key + org/project identifiers are required in CI.
|
|
17
|
+
*/
|
|
18
|
+
function buildKubbisecScansJobEnv(inlineEnv) {
|
|
19
|
+
if (inlineEnv) {
|
|
20
|
+
return ` env:
|
|
21
|
+
KUBBISEC_API_KEY: \${{ secrets.KUBBISEC_API_KEY }}
|
|
22
|
+
KUBBISEC_ORG_ID: ${JSON.stringify(inlineEnv.orgId)}`;
|
|
23
|
+
}
|
|
24
|
+
return ` env:
|
|
25
|
+
KUBBISEC_API_KEY: \${{ secrets.KUBBISEC_API_KEY }}
|
|
26
|
+
KUBBISEC_ORG_ID: \${{ vars.KUBBISEC_ORG_ID }}`;
|
|
27
|
+
}
|
|
28
|
+
const GITHUB_PROJECT_VAR_REF = "${{ vars.KUBBISEC_PROJECT }}";
|
|
29
|
+
function projectRef(inlineEnv) {
|
|
30
|
+
return inlineEnv?.projectId ?? GITHUB_PROJECT_VAR_REF;
|
|
31
|
+
}
|
|
32
|
+
/** Scanner-specific steps (official actions where JSON output is compatible with `aspm upload`). */
|
|
33
|
+
function buildToolScanSteps(tool, inlineEnv) {
|
|
34
|
+
const p = projectRef(inlineEnv);
|
|
35
|
+
switch (tool) {
|
|
36
|
+
case "trivy":
|
|
37
|
+
return ` - name: Trivy filesystem scan
|
|
38
|
+
uses: ${github_workflow_action_pins_1.TRIVY_ACTION}
|
|
39
|
+
with:
|
|
40
|
+
scan-type: fs
|
|
41
|
+
scan-ref: .
|
|
42
|
+
format: json
|
|
43
|
+
output: trivy-report.json
|
|
44
|
+
exit-code: "0"
|
|
45
|
+
|
|
46
|
+
- name: Upload Trivy report
|
|
47
|
+
run: aspm upload trivy-report.json -s trivy -p ${p}`;
|
|
48
|
+
case "gitleaks":
|
|
49
|
+
return ` - name: Gitleaks (GitHub Security)
|
|
50
|
+
uses: ${github_workflow_action_pins_1.GITLEAKS_ACTION}
|
|
51
|
+
continue-on-error: true
|
|
52
|
+
env:
|
|
53
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
54
|
+
GITLEAKS_ENABLE_UPLOAD_ARTIFACT: "true"
|
|
55
|
+
GITLEAKS_VERSION: "${github_workflow_action_pins_1.GITLEAKS_CLI_VERSION}"
|
|
56
|
+
|
|
57
|
+
- name: Gitleaks scan (JSON para KubbiSec ASPM)
|
|
58
|
+
run: |
|
|
59
|
+
curl -sSL https://github.com/gitleaks/gitleaks/releases/download/v${github_workflow_action_pins_1.GITLEAKS_CLI_VERSION}/gitleaks_${github_workflow_action_pins_1.GITLEAKS_CLI_VERSION}_linux_x64.tar.gz | tar -xz -C /usr/local/bin
|
|
60
|
+
gitleaks detect --source . --report-format json --report-path gitleaks-report.json --exit-code 0 || true
|
|
61
|
+
|
|
62
|
+
- name: Upload Gitleaks report
|
|
63
|
+
run: aspm upload gitleaks-report.json -s gitleaks -p ${p}`;
|
|
64
|
+
case "syft":
|
|
65
|
+
return ` - name: Generate SBOM
|
|
66
|
+
uses: ${github_workflow_action_pins_1.SBOM_ACTION}
|
|
67
|
+
with:
|
|
68
|
+
path: .
|
|
69
|
+
format: cyclonedx-json
|
|
70
|
+
output-file: sbom.cdx.json
|
|
71
|
+
upload-artifact: false
|
|
72
|
+
upload-release-assets: false
|
|
73
|
+
|
|
74
|
+
- name: Upload SBOM
|
|
75
|
+
run: aspm upload sbom.cdx.json -s syft -p ${p}`;
|
|
76
|
+
case "osv":
|
|
77
|
+
return ` - name: OSV scan (JSON para KubbiSec ASPM)
|
|
78
|
+
uses: ${github_workflow_action_pins_1.OSV_SCANNER_ACTION}
|
|
79
|
+
continue-on-error: true
|
|
80
|
+
with:
|
|
81
|
+
scan-args: |-
|
|
82
|
+
--recursive
|
|
83
|
+
--format=json
|
|
84
|
+
--output=osv-report.json
|
|
85
|
+
./
|
|
86
|
+
|
|
87
|
+
- name: OSV SARIF (GitHub Security)
|
|
88
|
+
uses: ${github_workflow_action_pins_1.OSV_REPORTER_ACTION}
|
|
89
|
+
continue-on-error: true
|
|
90
|
+
with:
|
|
91
|
+
scan-args: |-
|
|
92
|
+
--output=osv-results.sarif
|
|
93
|
+
--new=osv-report.json
|
|
94
|
+
--gh-annotations=false
|
|
95
|
+
--fail-on-vuln=false
|
|
96
|
+
|
|
97
|
+
- name: Upload OSV SARIF to GitHub Security
|
|
98
|
+
uses: ${github_workflow_action_pins_1.CODEQL_UPLOAD_SARIF_ACTION}
|
|
99
|
+
if: always()
|
|
100
|
+
continue-on-error: true
|
|
101
|
+
with:
|
|
102
|
+
sarif_file: osv-results.sarif
|
|
103
|
+
category: kubbisec-osv
|
|
104
|
+
|
|
105
|
+
- name: Upload OSV report to KubbiSec
|
|
106
|
+
run: aspm upload osv-report.json -s osv -p ${p}`;
|
|
107
|
+
case "semgrep":
|
|
108
|
+
return ` # semgrep/semgrep-action está deprecated — imagem oficial semgrep/semgrep (Semgrep docs).
|
|
109
|
+
- name: Semgrep scan
|
|
110
|
+
run: |
|
|
111
|
+
docker run --rm -v "$PWD:/src" -w /src ${github_workflow_action_pins_1.SEMGREP_CONTAINER_IMAGE} \\
|
|
112
|
+
semgrep scan --config auto --json -o semgrep-report.json .
|
|
113
|
+
|
|
114
|
+
- name: Upload Semgrep report
|
|
115
|
+
run: aspm upload semgrep-report.json -s semgrep -p ${p}`;
|
|
116
|
+
case "sonar":
|
|
117
|
+
return ` # Configure secrets.SONAR_TOKEN, vars.SONAR_HOST_URL (SonarCloud: https://sonarcloud.io), vars.SONAR_PROJECT_KEY
|
|
118
|
+
- name: SonarQube scan (SonarSource GitHub Action)
|
|
119
|
+
uses: ${github_workflow_action_pins_1.SONAR_SCAN_ACTION}
|
|
120
|
+
env:
|
|
121
|
+
SONAR_TOKEN: \${{ secrets.SONAR_TOKEN }}
|
|
122
|
+
SONAR_HOST_URL: \${{ vars.SONAR_HOST_URL }}
|
|
123
|
+
with:
|
|
124
|
+
args: >
|
|
125
|
+
-Dsonar.projectKey=\${{ vars.SONAR_PROJECT_KEY }}
|
|
126
|
+
|
|
127
|
+
- name: Export Sonar issues (JSON para KubbiSec ASPM)
|
|
128
|
+
run: |
|
|
129
|
+
if [ -n "$SONAR_HOST_URL" ] && [ -n "$SONAR_TOKEN" ]; then
|
|
130
|
+
curl -sS -H "Authorization: Bearer $SONAR_TOKEN" \\
|
|
131
|
+
"$SONAR_HOST_URL/api/issues/search?componentKeys=$SONAR_PROJECT_KEY&ps=500" \\
|
|
132
|
+
-o sonar-report.json || echo '{}' > sonar-report.json
|
|
133
|
+
else
|
|
134
|
+
echo '{}' > sonar-report.json
|
|
135
|
+
fi
|
|
136
|
+
env:
|
|
137
|
+
SONAR_HOST_URL: \${{ vars.SONAR_HOST_URL }}
|
|
138
|
+
SONAR_TOKEN: \${{ secrets.SONAR_TOKEN }}
|
|
139
|
+
SONAR_PROJECT_KEY: \${{ vars.SONAR_PROJECT_KEY }}
|
|
140
|
+
|
|
141
|
+
- name: Upload Sonar report to KubbiSec
|
|
142
|
+
run: aspm upload sonar-report.json -s sonar -p ${p}`;
|
|
143
|
+
case "nmap":
|
|
144
|
+
return ` - name: Install Nmap
|
|
145
|
+
run: sudo apt-get update && sudo apt-get install -y nmap
|
|
146
|
+
|
|
147
|
+
- name: Nmap scan placeholder
|
|
148
|
+
run: |
|
|
149
|
+
echo "Configure NMAP_TARGET (vars) para varredura real; gerando placeholder."
|
|
150
|
+
echo '{}' > nmap-report.json
|
|
151
|
+
|
|
152
|
+
- name: Upload Nmap report
|
|
153
|
+
run: aspm upload nmap-report.json -s nmap -p ${p}`;
|
|
154
|
+
case "skipfish":
|
|
155
|
+
return ` - name: Install Skipfish
|
|
156
|
+
run: sudo apt-get update && sudo apt-get install -y skipfish
|
|
157
|
+
|
|
158
|
+
- name: Skipfish scan placeholder
|
|
159
|
+
run: |
|
|
160
|
+
echo "Configure SKIPFISH_TARGET (vars) para DAST real; gerando placeholder."
|
|
161
|
+
echo '{}' > skipfish-report.json
|
|
162
|
+
|
|
163
|
+
- name: Upload Skipfish report
|
|
164
|
+
run: aspm upload skipfish-report.json -s skipfish -p ${p}`;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function buildGithubToolJobsSection(tools, inlineEnv) {
|
|
168
|
+
const checkout = tools.includes("gitleaks") ? CHECKOUT_FULL_HISTORY_STEP : CHECKOUT_STEP;
|
|
169
|
+
const kubbisecScansJobEnv = buildKubbisecScansJobEnv(inlineEnv);
|
|
170
|
+
const toolSteps = tools.map((tool) => buildToolScanSteps(tool, inlineEnv)).join("\n\n");
|
|
171
|
+
const jobsYaml = ` ${exports.KUBBISEC_SCANS_JOB_ID}:
|
|
172
|
+
runs-on: ubuntu-latest
|
|
173
|
+
${kubbisecScansJobEnv}
|
|
174
|
+
steps:
|
|
175
|
+
${checkout}
|
|
176
|
+
|
|
177
|
+
${ASPM_INSTALL_STEP}
|
|
178
|
+
|
|
179
|
+
${toolSteps}
|
|
180
|
+
|
|
181
|
+
${(0, aspm_gate_rules_1.buildAspmGateGithubWorkflowStep)(undefined, inlineEnv?.projectId)}`;
|
|
182
|
+
return { jobIds: [exports.KUBBISEC_SCANS_JOB_ID], jobsYaml };
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=github-workflow-tool-jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-workflow-tool-jobs.js","sourceRoot":"","sources":["../../src/security/github-workflow-tool-jobs.ts"],"names":[],"mappings":";;;AAwLA,gEAwBC;AAhND,uDAAoE;AACpE,+EAWuC;AAG1B,QAAA,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD,MAAM,iBAAiB,GAAG;2CACiB,CAAC;AAE5C,MAAM,aAAa,GAAG,iBAAiB,oDAAsB,EAAE,CAAC;AAEhE,MAAM,0BAA0B,GAAG,iBAAiB,oDAAsB;;yBAEjD,CAAC;AAE1B;;;GAGG;AACH,SAAS,wBAAwB,CAAC,SAAmC;IACnE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;;yBAEc,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,OAAO;;oDAE2C,CAAC;AACrD,CAAC;AAED,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AAE9D,SAAS,UAAU,CAAC,SAAmC;IACrD,OAAO,SAAS,EAAE,SAAS,IAAI,sBAAsB,CAAC;AACxD,CAAC;AAED,oGAAoG;AACpG,SAAS,kBAAkB,CAAC,IAAoB,EAAE,SAAmC;IACnF,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAEhC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO;gBACG,0CAAY;;;;;;;;;yDAS6B,CAAC,EAAE,CAAC;QACzD,KAAK,UAAU;YACb,OAAO;gBACG,6CAAe;;;;;+BAKA,kDAAoB;;;;8EAI2B,kDAAoB,aAAa,kDAAoB;;;;+DAIpE,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM;YACT,OAAO;gBACG,yCAAW;;;;;;;;;oDASyB,CAAC,EAAE,CAAC;QACpD,KAAK,KAAK;YACR,OAAO;gBACG,gDAAkB;;;;;;;;;;gBAUlB,iDAAmB;;;;;;;;;;gBAUnB,wDAA0B;;;;;;;;qDAQW,CAAC,EAAE,CAAC;QACrD,KAAK,SAAS;YACZ,OAAO;;;mDAGsC,qDAAuB;;;;6DAIb,CAAC,EAAE,CAAC;QAC7D,KAAK,OAAO;YACV,OAAO;;gBAEG,+CAAiB;;;;;;;;;;;;;;;;;;;;;;;yDAuBwB,CAAC,EAAE,CAAC;QACzD,KAAK,MAAM;YACT,OAAO;;;;;;;;;uDAS0C,CAAC,EAAE,CAAC;QACvD,KAAK,UAAU;YACb,OAAO;;;;;;;;;+DASkD,CAAC,EAAE,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAgB,0BAA0B,CACxC,KAAuB,EACvB,SAAmC;IAKnC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC;IACzF,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExF,MAAM,QAAQ,GAAG,KAAK,6BAAqB;;EAE3C,mBAAmB;;EAEnB,QAAQ;;EAER,iBAAiB;;EAEjB,SAAS;;EAET,IAAA,iDAA+B,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;IAEnE,OAAO,EAAE,MAAM,EAAE,CAAC,6BAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./security-tool.types";
|
|
2
|
+
export * from "./security-tool-catalog";
|
|
3
|
+
export * from "./aspm-gate-rules";
|
|
4
|
+
export * from "./build-aspm-security-matrix-pipeline-yaml";
|
|
5
|
+
export * from "./build-github-security-workflow-yaml";
|
|
6
|
+
export * from "./github-workflow-action-pins";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./security-tool.types"), exports);
|
|
18
|
+
__exportStar(require("./security-tool-catalog"), exports);
|
|
19
|
+
__exportStar(require("./aspm-gate-rules"), exports);
|
|
20
|
+
__exportStar(require("./build-aspm-security-matrix-pipeline-yaml"), exports);
|
|
21
|
+
__exportStar(require("./build-github-security-workflow-yaml"), exports);
|
|
22
|
+
__exportStar(require("./github-workflow-action-pins"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|