@greenarmor/ges-policy-engine 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 greenarmor
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,12 @@
1
+ import type { PolicyPack, ProjectType } from "@greenarmor/ges-core";
2
+ export declare function getAllPacks(): PolicyPack[];
3
+ export declare function getPack(id: string): PolicyPack | undefined;
4
+ export declare function getPacksForProjectType(projectType: ProjectType): PolicyPack[];
5
+ export declare function listPackIds(): string[];
6
+ export { createGDPRPolicyPack } from "./packs/gdpr.js";
7
+ export { createOWASPPolicyPack } from "./packs/owasp.js";
8
+ export { createAIPolicyPack } from "./packs/ai.js";
9
+ export { createBlockchainPolicyPack } from "./packs/blockchain.js";
10
+ export { createGovernmentPolicyPack } from "./packs/government.js";
11
+ export { createCISPolicyPack } from "./packs/cis.js";
12
+ export { createNISTPolicyPack } from "./packs/nist.js";
package/dist/index.js ADDED
@@ -0,0 +1,46 @@
1
+ import { createGDPRPolicyPack } from "./packs/gdpr.js";
2
+ import { createOWASPPolicyPack } from "./packs/owasp.js";
3
+ import { createAIPolicyPack } from "./packs/ai.js";
4
+ import { createBlockchainPolicyPack } from "./packs/blockchain.js";
5
+ import { createGovernmentPolicyPack } from "./packs/government.js";
6
+ import { createCISPolicyPack } from "./packs/cis.js";
7
+ import { createNISTPolicyPack } from "./packs/nist.js";
8
+ const ALL_PACKS = [
9
+ createGDPRPolicyPack,
10
+ createOWASPPolicyPack,
11
+ createAIPolicyPack,
12
+ createBlockchainPolicyPack,
13
+ createGovernmentPolicyPack,
14
+ createCISPolicyPack,
15
+ createNISTPolicyPack,
16
+ ];
17
+ const PACK_MAP = {
18
+ gdpr: createGDPRPolicyPack,
19
+ owasp: createOWASPPolicyPack,
20
+ ai: createAIPolicyPack,
21
+ blockchain: createBlockchainPolicyPack,
22
+ government: createGovernmentPolicyPack,
23
+ cis: createCISPolicyPack,
24
+ nist: createNISTPolicyPack,
25
+ };
26
+ export function getAllPacks() {
27
+ return ALL_PACKS.map(fn => fn());
28
+ }
29
+ export function getPack(id) {
30
+ const factory = PACK_MAP[id];
31
+ return factory ? factory() : undefined;
32
+ }
33
+ export function getPacksForProjectType(projectType) {
34
+ return getAllPacks().filter(pack => pack.project_types.includes(projectType));
35
+ }
36
+ export function listPackIds() {
37
+ return Object.keys(PACK_MAP);
38
+ }
39
+ export { createGDPRPolicyPack } from "./packs/gdpr.js";
40
+ export { createOWASPPolicyPack } from "./packs/owasp.js";
41
+ export { createAIPolicyPack } from "./packs/ai.js";
42
+ export { createBlockchainPolicyPack } from "./packs/blockchain.js";
43
+ export { createGovernmentPolicyPack } from "./packs/government.js";
44
+ export { createCISPolicyPack } from "./packs/cis.js";
45
+ export { createNISTPolicyPack } from "./packs/nist.js";
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,SAAS,GAAyB;IACtC,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,0BAA0B;IAC1B,0BAA0B;IAC1B,mBAAmB;IACnB,oBAAoB;CACrB,CAAC;AAEF,MAAM,QAAQ,GAAqC;IACjD,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,qBAAqB;IAC5B,EAAE,EAAE,kBAAkB;IACtB,UAAU,EAAE,0BAA0B;IACtC,UAAU,EAAE,0BAA0B;IACtC,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,oBAAoB;CAC3B,CAAC;AAEF,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAwB;IAC7D,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { PolicyPack } from "@greenarmor/ges-core";
2
+ export declare function createAIPolicyPack(): PolicyPack;
@@ -0,0 +1,100 @@
1
+ export function createAIPolicyPack() {
2
+ const controls = [
3
+ {
4
+ id: "AI-001",
5
+ name: "Prompt Logging",
6
+ description: "Log all AI prompts and interactions for audit purposes.",
7
+ category: "ai-governance",
8
+ framework: "GDPR",
9
+ status: "not-implemented",
10
+ severity: "critical",
11
+ implementation_guidance: "Implement logging of all prompts sent to AI models. Store prompts securely with access controls. Define retention periods.",
12
+ checks: [
13
+ { id: "AI-001-C1", description: "Prompt logging system implemented", status: "not-implemented" },
14
+ { id: "AI-001-C2", description: "Logs stored securely", status: "not-implemented" },
15
+ { id: "AI-001-C3", description: "Retention period defined", status: "not-implemented" },
16
+ ],
17
+ },
18
+ {
19
+ id: "AI-002",
20
+ name: "Output Validation",
21
+ description: "Validate AI outputs before presenting to users or taking actions.",
22
+ category: "ai-governance",
23
+ framework: "GDPR",
24
+ status: "not-implemented",
25
+ severity: "critical",
26
+ implementation_guidance: "Implement output filtering and validation. Check for PII leakage. Validate against safety guidelines.",
27
+ checks: [
28
+ { id: "AI-002-C1", description: "Output validation pipeline implemented", status: "not-implemented" },
29
+ { id: "AI-002-C2", description: "PII detection on outputs", status: "not-implemented" },
30
+ ],
31
+ },
32
+ {
33
+ id: "AI-003",
34
+ name: "PII Detection",
35
+ description: "Detect and protect personal data in AI inputs and outputs.",
36
+ category: "ai-governance",
37
+ framework: "GDPR",
38
+ status: "not-implemented",
39
+ severity: "critical",
40
+ implementation_guidance: "Implement PII detection before sending to external AI providers. Redact or pseudonymise detected PII.",
41
+ checks: [
42
+ { id: "AI-003-C1", description: "PII detection on inputs", status: "not-implemented" },
43
+ { id: "AI-003-C2", description: "PII redaction/pseudonymisation implemented", status: "not-implemented" },
44
+ ],
45
+ },
46
+ {
47
+ id: "AI-004",
48
+ name: "AI Rate Limiting",
49
+ description: "Implement rate limiting on AI endpoints.",
50
+ category: "ai-governance",
51
+ framework: "GDPR",
52
+ status: "not-implemented",
53
+ severity: "high",
54
+ implementation_guidance: "Implement per-user and per-IP rate limiting on AI endpoints. Define usage quotas.",
55
+ checks: [
56
+ { id: "AI-004-C1", description: "Rate limiting on AI endpoints", status: "not-implemented" },
57
+ { id: "AI-004-C2", description: "Usage quotas defined", status: "not-implemented" },
58
+ ],
59
+ },
60
+ {
61
+ id: "AI-005",
62
+ name: "Data Classification for AI",
63
+ description: "Classify data before processing through AI systems.",
64
+ category: "ai-governance",
65
+ framework: "GDPR",
66
+ status: "not-implemented",
67
+ severity: "critical",
68
+ implementation_guidance: "Implement data classification checks before AI processing. Restrict restricted/confidential data from external AI providers.",
69
+ checks: [
70
+ { id: "AI-005-C1", description: "Data classification before AI processing", status: "not-implemented" },
71
+ { id: "AI-005-C2", description: "Restricted data blocked from external AI", status: "not-implemented" },
72
+ ],
73
+ },
74
+ {
75
+ id: "AI-006",
76
+ name: "Prevent Unauthorized Data Transfer to External AI",
77
+ description: "Prevent unauthorized transfer of personal data to external AI providers.",
78
+ category: "ai-governance",
79
+ framework: "GDPR",
80
+ status: "not-implemented",
81
+ severity: "critical",
82
+ implementation_guidance: "Implement data loss prevention for AI API calls. Review and approve AI providers. Document data processing agreements.",
83
+ checks: [
84
+ { id: "AI-006-C1", description: "DLP controls for AI API calls", status: "not-implemented" },
85
+ { id: "AI-006-C2", description: "AI providers reviewed and approved", status: "not-implemented" },
86
+ { id: "AI-006-C3", description: "DPAs with AI providers signed", status: "not-implemented" },
87
+ ],
88
+ },
89
+ ];
90
+ return {
91
+ id: "ai",
92
+ name: "AI System Policy Pack",
93
+ description: "Controls for LLMs, Agents, MCP, and RAG systems.",
94
+ version: "1.0.0",
95
+ project_types: ["ai-application", "mcp-server"],
96
+ controls,
97
+ frameworks: ["GDPR"],
98
+ };
99
+ }
100
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/packs/ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PolicyPack } from "@greenarmor/ges-core";
2
+ export declare function createBlockchainPolicyPack(): PolicyPack;
@@ -0,0 +1,97 @@
1
+ export function createBlockchainPolicyPack() {
2
+ const controls = [
3
+ {
4
+ id: "BC-001",
5
+ name: "Cryptographic Signatures",
6
+ description: "All on-chain operations must use cryptographic signatures.",
7
+ category: "blockchain",
8
+ framework: "GDPR",
9
+ status: "not-implemented",
10
+ severity: "critical",
11
+ implementation_guidance: "Implement wallet-based transaction signing. Verify signatures before on-chain operations.",
12
+ checks: [
13
+ { id: "BC-001-C1", description: "Cryptographic signing implemented", status: "not-implemented" },
14
+ { id: "BC-001-C2", description: "Signature verification on all operations", status: "not-implemented" },
15
+ ],
16
+ },
17
+ {
18
+ id: "BC-002",
19
+ name: "Validator Identity Verification",
20
+ description: "Validators must be identity-verified.",
21
+ category: "blockchain",
22
+ framework: "GDPR",
23
+ status: "not-implemented",
24
+ severity: "high",
25
+ implementation_guidance: "Implement KYC for validators. Maintain identity verification records.",
26
+ checks: [
27
+ { id: "BC-002-C1", description: "Validator identity verification process", status: "not-implemented" },
28
+ ],
29
+ },
30
+ {
31
+ id: "BC-003",
32
+ name: "Key Rotation",
33
+ description: "Implement regular key rotation for blockchain operations.",
34
+ category: "blockchain",
35
+ framework: "GDPR",
36
+ status: "not-implemented",
37
+ severity: "critical",
38
+ implementation_guidance: "Define key rotation schedule. Automate rotation where possible. Maintain key history.",
39
+ checks: [
40
+ { id: "BC-003-C1", description: "Key rotation schedule defined", status: "not-implemented" },
41
+ { id: "BC-003-C2", description: "Rotation automation implemented", status: "not-implemented" },
42
+ ],
43
+ },
44
+ {
45
+ id: "BC-004",
46
+ name: "Encrypted Payload Support",
47
+ description: "Support encrypted payloads for sensitive on-chain data.",
48
+ category: "blockchain",
49
+ framework: "GDPR",
50
+ status: "not-implemented",
51
+ severity: "critical",
52
+ implementation_guidance: "Encrypt sensitive data before storing on-chain. Use hybrid encryption schemes.",
53
+ checks: [
54
+ { id: "BC-004-C1", description: "Encrypted payload support implemented", status: "not-implemented" },
55
+ { id: "BC-004-C2", description: "No plaintext personal data on-chain", status: "not-implemented" },
56
+ ],
57
+ },
58
+ {
59
+ id: "BC-005",
60
+ name: "Immutable Audit Trails",
61
+ description: "Maintain immutable audit trails for all blockchain operations.",
62
+ category: "blockchain",
63
+ framework: "GDPR",
64
+ status: "not-implemented",
65
+ severity: "critical",
66
+ implementation_guidance: "Use blockchain immutability for audit logs. Store hashes and CIDs. Keep references off-chain.",
67
+ checks: [
68
+ { id: "BC-005-C1", description: "Audit trail mechanism implemented", status: "not-implemented" },
69
+ { id: "BC-005-C2", description: "Hashes stored on-chain, data off-chain", status: "not-implemented" },
70
+ ],
71
+ },
72
+ {
73
+ id: "BC-006",
74
+ name: "No Plaintext Personal Data On-Chain",
75
+ description: "Never store plaintext personal data on-chain. Store only hashes, CIDs, references, and encrypted metadata.",
76
+ category: "blockchain",
77
+ framework: "GDPR",
78
+ status: "not-implemented",
79
+ severity: "critical",
80
+ implementation_guidance: "Store only hashes (SHA-256+), CIDs, references, or encrypted metadata on-chain. Keep actual data in encrypted off-chain storage.",
81
+ checks: [
82
+ { id: "BC-006-C1", description: "Only hashes/CIDs/references on-chain", status: "not-implemented" },
83
+ { id: "BC-006-C2", description: "Encrypted metadata for on-chain records", status: "not-implemented" },
84
+ ],
85
+ },
86
+ ];
87
+ return {
88
+ id: "blockchain",
89
+ name: "Blockchain Policy Pack",
90
+ description: "Controls for blockchain, wallets, and government ledgers.",
91
+ version: "1.0.0",
92
+ project_types: ["blockchain", "wallet"],
93
+ controls,
94
+ frameworks: ["GDPR"],
95
+ };
96
+ }
97
+ //# sourceMappingURL=blockchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/packs/blockchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PolicyPack } from "@greenarmor/ges-core";
2
+ export declare function createCISPolicyPack(): PolicyPack;
@@ -0,0 +1,87 @@
1
+ export function createCISPolicyPack() {
2
+ const controls = [
3
+ {
4
+ id: "CIS-001",
5
+ name: "Inventory of Authorized and Unauthorized Devices",
6
+ description: "Maintain an inventory of all devices authorized to access organizational data.",
7
+ category: "asset-management",
8
+ framework: "CIS",
9
+ status: "not-implemented",
10
+ severity: "high",
11
+ implementation_guidance: "Maintain device inventory. Implement MDM. Monitor for unauthorized devices.",
12
+ checks: [
13
+ { id: "CIS-001-C1", description: "Device inventory maintained", status: "not-implemented" },
14
+ { id: "CIS-001-C2", description: "Unauthorized device detection", status: "not-implemented" },
15
+ ],
16
+ },
17
+ {
18
+ id: "CIS-002",
19
+ name: "Inventory of Authorized and Unauthorized Software",
20
+ description: "Maintain a software inventory.",
21
+ category: "asset-management",
22
+ framework: "CIS",
23
+ status: "not-implemented",
24
+ severity: "high",
25
+ implementation_guidance: "Use package managers and lock files. Scan for unauthorized software. Maintain SBOM.",
26
+ checks: [
27
+ { id: "CIS-002-C1", description: "Software inventory (SBOM) maintained", status: "not-implemented" },
28
+ { id: "CIS-002-C2", description: "Dependency scanning implemented", status: "not-implemented" },
29
+ ],
30
+ },
31
+ {
32
+ id: "CIS-003",
33
+ name: "Secure Configuration",
34
+ description: "Establish and maintain secure configuration for all hardware and software.",
35
+ category: "configuration",
36
+ framework: "CIS",
37
+ status: "not-implemented",
38
+ severity: "critical",
39
+ implementation_guidance: "Use infrastructure-as-code. Implement configuration management. Regular configuration audits.",
40
+ checks: [
41
+ { id: "CIS-003-C1", description: "Secure baseline configurations defined", status: "not-implemented" },
42
+ { id: "CIS-003-C2", description: "Configuration drift detection", status: "not-implemented" },
43
+ ],
44
+ },
45
+ {
46
+ id: "CIS-004",
47
+ name: "Continuous Vulnerability Management",
48
+ description: "Continuously assess and remediate vulnerabilities.",
49
+ category: "vulnerability-management",
50
+ framework: "CIS",
51
+ status: "not-implemented",
52
+ severity: "critical",
53
+ implementation_guidance: "Automated vulnerability scanning in CI/CD. Regular penetration testing. Remediation SLAs defined.",
54
+ checks: [
55
+ { id: "CIS-004-C1", description: "Automated vulnerability scanning", status: "not-implemented" },
56
+ { id: "CIS-004-C2", description: "Remediation SLAs defined", status: "not-implemented" },
57
+ ],
58
+ },
59
+ {
60
+ id: "CIS-005",
61
+ name: "Controlled Use of Administrative Privileges",
62
+ description: "Control and monitor access to administrative privileges.",
63
+ category: "access-control",
64
+ framework: "CIS",
65
+ status: "not-implemented",
66
+ severity: "critical",
67
+ implementation_guidance: "Implement RBAC. Use least privilege. Audit all admin actions. Require MFA for admin access.",
68
+ checks: [
69
+ { id: "CIS-005-C1", description: "RBAC implemented", status: "not-implemented" },
70
+ { id: "CIS-005-C2", description: "MFA required for admin access", status: "not-implemented" },
71
+ { id: "CIS-005-C3", description: "Admin action audit logging", status: "not-implemented" },
72
+ ],
73
+ },
74
+ ];
75
+ return {
76
+ id: "cis",
77
+ name: "CIS Controls Policy Pack",
78
+ description: "Center for Internet Security Controls.",
79
+ version: "1.0.0",
80
+ project_types: [
81
+ "saas", "healthcare-system", "generic-web-application", "government-system",
82
+ ],
83
+ controls,
84
+ frameworks: ["CIS"],
85
+ };
86
+ }
87
+ //# sourceMappingURL=cis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cis.js","sourceRoot":"","sources":["../../src/packs/cis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PolicyPack } from "@greenarmor/ges-core";
2
+ export declare function createGDPRPolicyPack(): PolicyPack;
@@ -0,0 +1,18 @@
1
+ import { createGDPRControls } from "@greenarmor/ges-compliance-engine";
2
+ export function createGDPRPolicyPack() {
3
+ return {
4
+ id: "gdpr",
5
+ name: "GDPR Compliance Pack",
6
+ description: "General Data Protection Regulation controls covering Articles 5, 25, 30, 32, 33, and 34.",
7
+ version: "1.0.0",
8
+ project_types: [
9
+ "saas", "ai-application", "mcp-server", "blockchain", "wallet",
10
+ "government-system", "healthcare-system", "event-platform",
11
+ "photo-storage-platform", "vulnerability-scanner",
12
+ "generic-web-application", "api-backend", "mobile-application",
13
+ ],
14
+ controls: createGDPRControls(),
15
+ frameworks: ["GDPR"],
16
+ };
17
+ }
18
+ //# sourceMappingURL=gdpr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gdpr.js","sourceRoot":"","sources":["../../src/packs/gdpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0FAA0F;QACvG,OAAO,EAAE,OAAO;QAChB,aAAa,EAAE;YACb,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ;YAC9D,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB;YAC1D,wBAAwB,EAAE,uBAAuB;YACjD,yBAAyB,EAAE,aAAa,EAAE,oBAAoB;SAC/D;QACD,QAAQ,EAAE,kBAAkB,EAAE;QAC9B,UAAU,EAAE,CAAC,MAAM,CAAC;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { PolicyPack } from "@greenarmor/ges-core";
2
+ export declare function createGovernmentPolicyPack(): PolicyPack;
@@ -0,0 +1,87 @@
1
+ export function createGovernmentPolicyPack() {
2
+ const controls = [
3
+ {
4
+ id: "GOV-001",
5
+ name: "Data Sovereignty",
6
+ description: "Ensure all data processing occurs within designated jurisdictions.",
7
+ category: "government",
8
+ framework: "GDPR",
9
+ status: "not-implemented",
10
+ severity: "critical",
11
+ implementation_guidance: "Deploy infrastructure in required jurisdictions. Implement geo-fencing for data storage. Verify cloud provider compliance.",
12
+ checks: [
13
+ { id: "GOV-001-C1", description: "Infrastructure in required jurisdictions", status: "not-implemented" },
14
+ { id: "GOV-001-C2", description: "Geo-fencing implemented", status: "not-implemented" },
15
+ { id: "GOV-001-C3", description: "Cloud provider compliance verified", status: "not-implemented" },
16
+ ],
17
+ },
18
+ {
19
+ id: "GOV-002",
20
+ name: "Chain of Custody",
21
+ description: "Maintain complete chain of custody for all data processing.",
22
+ category: "government",
23
+ framework: "GDPR",
24
+ status: "not-implemented",
25
+ severity: "critical",
26
+ implementation_guidance: "Log all data access and transfers. Maintain custody records. Implement digital signatures on records.",
27
+ checks: [
28
+ { id: "GOV-002-C1", description: "Chain of custody logging implemented", status: "not-implemented" },
29
+ { id: "GOV-002-C2", description: "Digital signatures on custody records", status: "not-implemented" },
30
+ ],
31
+ },
32
+ {
33
+ id: "GOV-003",
34
+ name: "Tamper Evidence",
35
+ description: "Implement tamper detection for all records and data.",
36
+ category: "government",
37
+ framework: "GDPR",
38
+ status: "not-implemented",
39
+ severity: "critical",
40
+ implementation_guidance: "Use cryptographic hashing for integrity verification. Implement merkle trees for batch verification. Use write-once storage.",
41
+ checks: [
42
+ { id: "GOV-003-C1", description: "Tamper detection implemented", status: "not-implemented" },
43
+ { id: "GOV-003-C2", description: "Integrity verification on read", status: "not-implemented" },
44
+ ],
45
+ },
46
+ {
47
+ id: "GOV-004",
48
+ name: "Record Integrity Verification",
49
+ description: "Enable verification of record integrity at any point.",
50
+ category: "government",
51
+ framework: "GDPR",
52
+ status: "not-implemented",
53
+ severity: "critical",
54
+ implementation_guidance: "Store integrity hashes with records. Provide verification APIs. Schedule regular integrity checks.",
55
+ checks: [
56
+ { id: "GOV-004-C1", description: "Integrity hashes stored with records", status: "not-implemented" },
57
+ { id: "GOV-004-C2", description: "Verification API available", status: "not-implemented" },
58
+ { id: "GOV-004-C3", description: "Regular integrity checks scheduled", status: "not-implemented" },
59
+ ],
60
+ },
61
+ {
62
+ id: "GOV-005",
63
+ name: "Auditability",
64
+ description: "Ensure all actions are fully auditable.",
65
+ category: "government",
66
+ framework: "GDPR",
67
+ status: "not-implemented",
68
+ severity: "critical",
69
+ implementation_guidance: "Implement comprehensive audit logging. Ensure logs are immutable. Provide audit trail export capabilities.",
70
+ checks: [
71
+ { id: "GOV-005-C1", description: "Comprehensive audit logging", status: "not-implemented" },
72
+ { id: "GOV-005-C2", description: "Immutable log storage", status: "not-implemented" },
73
+ { id: "GOV-005-C3", description: "Audit trail export capability", status: "not-implemented" },
74
+ ],
75
+ },
76
+ ];
77
+ return {
78
+ id: "government",
79
+ name: "Government Policy Pack",
80
+ description: "Additional controls for government systems including data sovereignty and chain of custody.",
81
+ version: "1.0.0",
82
+ project_types: ["government-system"],
83
+ controls,
84
+ frameworks: ["GDPR"],
85
+ };
86
+ }
87
+ //# sourceMappingURL=government.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"government.js","sourceRoot":"","sources":["../../src/packs/government.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { PolicyPack } from "@greenarmor/ges-core";
2
+ export declare function createNISTPolicyPack(): PolicyPack;
@@ -0,0 +1,103 @@
1
+ export function createNISTPolicyPack() {
2
+ const controls = [
3
+ {
4
+ id: "NIST-ID-001",
5
+ name: "Identity Management",
6
+ description: "Manage identities and access to organizational resources.",
7
+ category: "identify",
8
+ framework: "NIST",
9
+ status: "not-implemented",
10
+ severity: "critical",
11
+ implementation_guidance: "Implement centralized identity management. Use SSO. Automate user provisioning and deprovisioning.",
12
+ checks: [
13
+ { id: "NIST-ID-001-C1", description: "Centralized identity management", status: "not-implemented" },
14
+ { id: "NIST-ID-001-C2", description: "SSO implemented", status: "not-implemented" },
15
+ ],
16
+ },
17
+ {
18
+ id: "NIST-PR-001",
19
+ name: "Access Control",
20
+ description: "Implement access control policies and mechanisms.",
21
+ category: "protect",
22
+ framework: "NIST",
23
+ status: "not-implemented",
24
+ severity: "critical",
25
+ implementation_guidance: "Implement RBAC or ABAC. Enforce least privilege. Regular access reviews.",
26
+ checks: [
27
+ { id: "NIST-PR-001-C1", description: "Access control model implemented", status: "not-implemented" },
28
+ { id: "NIST-PR-001-C2", description: "Regular access reviews scheduled", status: "not-implemented" },
29
+ ],
30
+ },
31
+ {
32
+ id: "NIST-PR-002",
33
+ name: "Data Security",
34
+ description: "Protect data at rest and in transit.",
35
+ category: "protect",
36
+ framework: "NIST",
37
+ status: "not-implemented",
38
+ severity: "critical",
39
+ implementation_guidance: "Encrypt data at rest (AES-256). Encrypt data in transit (TLS 1.2+). Classify data.",
40
+ checks: [
41
+ { id: "NIST-PR-002-C1", description: "Data encryption at rest", status: "not-implemented" },
42
+ { id: "NIST-PR-002-C2", description: "Data encryption in transit", status: "not-implemented" },
43
+ { id: "NIST-PR-002-C3", description: "Data classification implemented", status: "not-implemented" },
44
+ ],
45
+ },
46
+ {
47
+ id: "NIST-DE-001",
48
+ name: "Security Monitoring",
49
+ description: "Monitor for security events and anomalies.",
50
+ category: "detect",
51
+ framework: "NIST",
52
+ status: "not-implemented",
53
+ severity: "critical",
54
+ implementation_guidance: "Implement centralized logging. Use SIEM or similar. Define alert thresholds.",
55
+ checks: [
56
+ { id: "NIST-DE-001-C1", description: "Centralized logging implemented", status: "not-implemented" },
57
+ { id: "NIST-DE-001-C2", description: "Security alerting configured", status: "not-implemented" },
58
+ ],
59
+ },
60
+ {
61
+ id: "NIST-RS-001",
62
+ name: "Incident Response",
63
+ description: "Establish and maintain incident response capabilities.",
64
+ category: "respond",
65
+ framework: "NIST",
66
+ status: "not-implemented",
67
+ severity: "critical",
68
+ implementation_guidance: "Create incident response plan. Define roles and responsibilities. Conduct regular drills.",
69
+ checks: [
70
+ { id: "NIST-RS-001-C1", description: "Incident response plan documented", status: "not-implemented" },
71
+ { id: "NIST-RS-001-C2", description: "Roles and responsibilities defined", status: "not-implemented" },
72
+ { id: "NIST-RS-001-C3", description: "Regular drills conducted", status: "not-implemented" },
73
+ ],
74
+ },
75
+ {
76
+ id: "NIST-RC-001",
77
+ name: "Recovery Planning",
78
+ description: "Establish and maintain recovery plans.",
79
+ category: "recover",
80
+ framework: "NIST",
81
+ status: "not-implemented",
82
+ severity: "critical",
83
+ implementation_guidance: "Create disaster recovery plan. Define RTO and RPO. Test recovery procedures regularly.",
84
+ checks: [
85
+ { id: "NIST-RC-001-C1", description: "Disaster recovery plan documented", status: "not-implemented" },
86
+ { id: "NIST-RC-001-C2", description: "RTO and RPO defined", status: "not-implemented" },
87
+ { id: "NIST-RC-001-C3", description: "Regular recovery tests", status: "not-implemented" },
88
+ ],
89
+ },
90
+ ];
91
+ return {
92
+ id: "nist",
93
+ name: "NIST Cybersecurity Framework Policy Pack",
94
+ description: "NIST CSF controls across Identify, Protect, Detect, Respond, and Recover.",
95
+ version: "1.0.0",
96
+ project_types: [
97
+ "saas", "healthcare-system", "generic-web-application", "government-system",
98
+ ],
99
+ controls,
100
+ frameworks: ["NIST"],
101
+ };
102
+ }
103
+ //# sourceMappingURL=nist.js.map