@greenarmor/ges 1.5.6 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/init.js +36 -2
- package/package.json +14 -14
package/dist/commands/init.js
CHANGED
|
@@ -4,6 +4,7 @@ import { banner, divider, blank, success, error, warn, info, step, kv, label, BO
|
|
|
4
4
|
import { PROJECT_TYPES, FRAMEWORKS, DEFAULT_FRAMEWORKS, GES_DIR, COMPLIANCE_DIR, SECURITY_DIR, CONTROLS_DIR, POLICIES_DIR, CHECKLISTS_DIR, DOCS_DIR, REPORTS_DIR, } from "@greenarmor/ges-core";
|
|
5
5
|
import { CLI_VERSION } from "../utils/version.js";
|
|
6
6
|
import { recordActivity } from "@greenarmor/ges-core";
|
|
7
|
+
import { createGovernanceRecord, addGovernanceRecord } from "@greenarmor/ges-core";
|
|
7
8
|
import { getPacksForProjectType, getPack, PRIVACY_COUNTRIES, getCountryByCode } from "@greenarmor/ges-policy-engine";
|
|
8
9
|
import { generateComplianceDocs, generateSecurityDocs, generateConfigJson, generateMetadataJson, generateFrameworkVersionJson, generateScoreJson, } from "@greenarmor/ges-doc-generator";
|
|
9
10
|
import { generateAllWorkflows } from "@greenarmor/ges-cicd-generator";
|
|
@@ -193,6 +194,18 @@ export const initCommand = new Command("init")
|
|
|
193
194
|
for (const wf of workflows) {
|
|
194
195
|
writeFileSync(path.join(process.cwd(), wf.filePath), wf.content);
|
|
195
196
|
}
|
|
197
|
+
// Genesis governance record — establishes the root of the approval provenance chain
|
|
198
|
+
// using project info collected during init, so audit findings can be assigned immediately.
|
|
199
|
+
const genesisSystemType = mapProjectTypeToSystemType(projectType);
|
|
200
|
+
const genesisRiskLevel = inferRiskLevel(projectType);
|
|
201
|
+
const genesisRecord = createGovernanceRecord({
|
|
202
|
+
system_name: projectName,
|
|
203
|
+
system_description: `Genesis governance record auto-created by ges init for a ${projectType} project. Frameworks: ${selectedFrameworks.join(", ")}. Update this record with approval, risk assessment, and evidence as your project matures.`,
|
|
204
|
+
system_type: genesisSystemType,
|
|
205
|
+
risk_level: genesisRiskLevel,
|
|
206
|
+
created_by: "ges-init",
|
|
207
|
+
});
|
|
208
|
+
addGovernanceRecord(process.cwd(), genesisRecord);
|
|
196
209
|
blank();
|
|
197
210
|
step(1, 4, "Creating project structure");
|
|
198
211
|
success("Project structure created");
|
|
@@ -210,6 +223,7 @@ export const initCommand = new Command("init")
|
|
|
210
223
|
}
|
|
211
224
|
success("Control packs installed", packs.map(p => p.id).join(", "));
|
|
212
225
|
success("GitHub Actions workflows generated");
|
|
226
|
+
success("Genesis governance record created", `${genesisRecord.id} (${genesisSystemType}, ${genesisRiskLevel} risk)`);
|
|
213
227
|
success("Developer logs directory created", ".dev-logs/");
|
|
214
228
|
blank();
|
|
215
229
|
step(2, 4, "Project summary");
|
|
@@ -230,8 +244,28 @@ export const initCommand = new Command("init")
|
|
|
230
244
|
source: "cli",
|
|
231
245
|
action: "init",
|
|
232
246
|
title: `Project initialized: ${projectName}`,
|
|
233
|
-
description: `Initialized GESF for ${projectType} project${countryInfo ? ` in ${countryInfo.name}` : ""} with frameworks: ${selectedFrameworks.join(", ")}. Installed ${packs.length} policy packs: ${packs.map(p => p.id).join(", ")}.`,
|
|
234
|
-
details: { packs_affected: packs.map(p => p.id), frameworks_added: selectedFrameworks.map((f) => String(f)), country: countryCode },
|
|
247
|
+
description: `Initialized GESF for ${projectType} project${countryInfo ? ` in ${countryInfo.name}` : ""} with frameworks: ${selectedFrameworks.join(", ")}. Installed ${packs.length} policy packs: ${packs.map(p => p.id).join(", ")}. Genesis governance record created: ${genesisRecord.id}.`,
|
|
248
|
+
details: { packs_affected: packs.map(p => p.id), frameworks_added: selectedFrameworks.map((f) => String(f)), country: countryCode, genesis_governance_record_id: genesisRecord.id },
|
|
235
249
|
});
|
|
236
250
|
await showNextStepsMenu("init");
|
|
237
251
|
});
|
|
252
|
+
function mapProjectTypeToSystemType(projectType) {
|
|
253
|
+
switch (projectType) {
|
|
254
|
+
case "ai-application":
|
|
255
|
+
case "mcp-server":
|
|
256
|
+
return "ai-system";
|
|
257
|
+
case "api-backend":
|
|
258
|
+
return "api";
|
|
259
|
+
default:
|
|
260
|
+
return "application";
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function inferRiskLevel(projectType) {
|
|
264
|
+
if (projectType === "healthcare-system" || projectType === "government-system") {
|
|
265
|
+
return "high";
|
|
266
|
+
}
|
|
267
|
+
if (projectType === "blockchain" || projectType === "wallet") {
|
|
268
|
+
return "high";
|
|
269
|
+
}
|
|
270
|
+
return "medium";
|
|
271
|
+
}
|
package/package.json
CHANGED
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
"ges": "./dist/cli.js"
|
|
4
4
|
},
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@greenarmor/ges-audit-engine": "1.5.
|
|
7
|
-
"@greenarmor/ges-cicd-generator": "1.5.
|
|
8
|
-
"@greenarmor/ges-compliance-engine": "1.5.
|
|
9
|
-
"@greenarmor/ges-core": "1.5.
|
|
10
|
-
"@greenarmor/ges-doc-generator": "1.5.
|
|
11
|
-
"@greenarmor/ges-git-hooks": "1.5.
|
|
12
|
-
"@greenarmor/ges-mcp-server": "1.5.
|
|
13
|
-
"@greenarmor/ges-policy-engine": "1.5.
|
|
14
|
-
"@greenarmor/ges-report-generator": "1.5.
|
|
15
|
-
"@greenarmor/ges-rules-engine": "1.5.
|
|
16
|
-
"@greenarmor/ges-scanner-integration": "1.5.
|
|
17
|
-
"@greenarmor/ges-scoring-engine": "1.5.
|
|
18
|
-
"@greenarmor/ges-web-dashboard": "1.5.
|
|
6
|
+
"@greenarmor/ges-audit-engine": "1.5.7",
|
|
7
|
+
"@greenarmor/ges-cicd-generator": "1.5.7",
|
|
8
|
+
"@greenarmor/ges-compliance-engine": "1.5.7",
|
|
9
|
+
"@greenarmor/ges-core": "1.5.7",
|
|
10
|
+
"@greenarmor/ges-doc-generator": "1.5.7",
|
|
11
|
+
"@greenarmor/ges-git-hooks": "1.5.7",
|
|
12
|
+
"@greenarmor/ges-mcp-server": "1.5.7",
|
|
13
|
+
"@greenarmor/ges-policy-engine": "1.5.7",
|
|
14
|
+
"@greenarmor/ges-report-generator": "1.5.7",
|
|
15
|
+
"@greenarmor/ges-rules-engine": "1.5.7",
|
|
16
|
+
"@greenarmor/ges-scanner-integration": "1.5.7",
|
|
17
|
+
"@greenarmor/ges-scoring-engine": "1.5.7",
|
|
18
|
+
"@greenarmor/ges-web-dashboard": "1.5.7",
|
|
19
19
|
"chalk": "^5.6.2",
|
|
20
20
|
"commander": "^13.0.0"
|
|
21
21
|
},
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"type": "module",
|
|
62
62
|
"types": "./dist/index.d.ts",
|
|
63
|
-
"version": "1.5.
|
|
63
|
+
"version": "1.5.7",
|
|
64
64
|
"scripts": {
|
|
65
65
|
"build": "tsc",
|
|
66
66
|
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|