@intentius/chant-lexicon-gcp 0.44.1 → 0.44.2

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.
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Landing-zone bootstrap composites (#791, epic #787 C1) — the GCP slice.
2
+ * Landing-zone bootstrap composites — the GCP slice.
3
3
  *
4
4
  * Fixed-shape resources for greenfield creation of the recommended
5
5
  * governance foundation through a Config Connector management stack. The
6
6
  * evaluability rules (EVL002/004) require composites to declare a fixed set
7
7
  * of resources, so these carry the foundation only; arbitrary folder/project
8
8
  * trees are authored as config with `landingZoneConfig()` (../governance.ts)
9
- * and reconciled by the GCP cloud warden, and further folders/projects are
9
+ * and reconciled by an external governance reconciler, and further folders/projects are
10
10
  * declared as ordinary resources.
11
11
  *
12
12
  * The pieces compose:
@@ -1,6 +1,6 @@
1
1
  /**
2
- * GCP governance authoring (#791, epic #787 C1): the desired-state config
3
- * shape the GCP cloud warden reconciles, and `landingZoneConfig()` — the
2
+ * GCP governance authoring: the desired-state config
3
+ * shape an external governance reconciler reconciles, and `landingZoneConfig()` — the
4
4
  * typed authoring layer that emits it.
5
5
  *
6
6
  * This is deliberately NOT a composite. The evaluability rules (EVL002/004,
@@ -8,7 +8,7 @@
8
8
  * data-driven folder tree walker cannot be one. The split mirrors the AWS
9
9
  * slice (lexicons/aws/src/governance.ts): authoring emits config (this
10
10
  * module, arbitrary cardinality); resources for greenfield bootstrap are the
11
- * fixed-shape composites in `composites/landing-zone.ts`; the warden
11
+ * fixed-shape composites in `composites/landing-zone.ts`; the reconciler
12
12
  * consumes only the config.
13
13
  *
14
14
  * GCP has no OrganizationRoot analog — organizations are created through
@@ -37,8 +37,8 @@ export interface FolderConfig {
37
37
  }
38
38
  /**
39
39
  * The desired-state governance tree for one GCP organization. This is the
40
- * shape the GCP cloud warden loads as config — the GCP counterpart of
41
- * `AwsGovernanceConfig`. Cycles map onto the governance verbs (#790): the
40
+ * shape an external governance reconciler loads as config — the GCP counterpart of
41
+ * `AwsGovernanceConfig`. Cycles map onto the governance verbs: the
42
42
  * folder/project tree is `org-unit`, org policies are `policy-guardrail`,
43
43
  * audit configuration is `audit-sink`.
44
44
  */
@@ -93,7 +93,7 @@ export interface LandingZoneConfigProps {
93
93
  auditAllServices?: boolean;
94
94
  }
95
95
  /**
96
- * Author the desired-state tree the GCP cloud warden reconciles. Pure.
96
+ * Author the desired-state tree an external governance reconciler reconciles. Pure.
97
97
  * Throws when the tree attaches an org-policy name with no definition; only
98
98
  * policies the tree actually attaches are included in the output.
99
99
  */
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "a77b96031861d35097dbe5d31f4e5fd6a709f5992c20e887bdc6b8db3680c145",
4
+ "manifest.json": "aa850a2fa5518536aa451e735570ad0a7a633ee97f1b5e5d26979495768a3a95",
5
5
  "meta.json": "475f10909854d059a2e2d4fb541c058803422e38b9c64bd4d6858c0623eedb8c",
6
6
  "types/index.d.ts": "5433b54c04b57d6fda8f3d81ef92ed0aca87f7e8e5dd3ea92d8de6e62a3ccfab",
7
7
  "rules/hardcoded-project.ts": "228631d3159e1ffcce2359c66073d4ae59bb0285f378e46e446f416aec50481c",
@@ -32,13 +32,13 @@
32
32
  "rules/wgc401.ts": "287a28258a6987eacf4228df8e57cdc6d5357d5efcb35a732fb01e4b7b8ce797",
33
33
  "rules/wgc402.ts": "4dacefea0ead25987ded5f8f5b83d02d2aa957f3816a7d0cc602cc9872257458",
34
34
  "rules/wgc403.ts": "156a8af8f8e419d36e740f4fc6f2ed7576a1692e3286e4c9ca6f9e9ccf772965",
35
- "rules/wgc501.ts": "9684ce2c6aa6585aad72eba06386623cffc7790c8c5e928c53677cb2ea6a0160",
36
- "rules/wgc502.ts": "d82bea32a0d21c715f59b6ee2343357bd15ffb1a2fc18d4fb5102593595c0d46",
37
- "rules/wgc503.ts": "bbd1a2ba8189ef07ba921b46b57be507b62bca0342f86c3ec0292ba250406991",
35
+ "rules/wgc501.ts": "bf99d8dc97537687fdfe9a8d5eb420172bf3279a4147311037f9c1d1f5fd4c85",
36
+ "rules/wgc502.ts": "6460a028f73ef31a66653954e67142079130112b70fa01a79f80464968a1b9f6",
37
+ "rules/wgc503.ts": "44dc51efbf9f9384b61a4e19b173b4c182557143cb59fbaf4da087e70a38f916",
38
38
  "skills/chant-gcp.md": "6fd732fb5df2fd6561b4b704379f6779ff4ac12e3069ea4f641d9b222e0c3c81",
39
39
  "skills/chant-gcp-security.md": "39a1c97b7425ed43b081257132449d11ce9d12f2d4755fc30d8b14bbc38f60bd",
40
40
  "skills/chant-gcp-patterns.md": "a7ef31c1eb2f7244d3f73952c300472ef94c1eb09bd7a1003281b89299b6b704",
41
41
  "skills/chant-gcp-gke.md": "be277019da9a722c851e47cd2dfb9c9536668948c3535fb20db7697e934c4e2b"
42
42
  },
43
- "composite": "09c15cce67a44ee4ad75992a765d524d07f8dc97edc20c166dc3f3c92b5d0506"
43
+ "composite": "aa9608e822f035c8219ca487c3a3dc85d29f4ea9b081853df4436aa2fe784107"
44
44
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC501: Org Policy Guardrail Not Enforced (#793, epic #787 C3)
2
+ * WGC501: Org Policy Guardrail Not Enforced
3
3
  *
4
4
  * Flags OrgPolicyPolicy resources whose rules switch enforcement off or that
5
5
  * reset the constraint to its default. A disabled org policy is the GCP
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC502: Org Policy Guardrail Defines No Rules (#793, epic #787 C3)
2
+ * WGC502: Org Policy Guardrail Defines No Rules
3
3
  *
4
4
  * Flags OrgPolicyPolicy resources with no rules (and no reset). A rule-less
5
5
  * org policy binds a constraint to nothing — the usual leftover of a
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC503: Audit Logging Dropped or Scoped Down (#793, epic #787 C3)
2
+ * WGC503: Audit Logging Dropped or Scoped Down
3
3
  *
4
4
  * Flags IAMAuditConfig resources that capture nothing (no auditLogConfigs)
5
5
  * or that carve identities out of the audit trail via exemptedMembers.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gcp",
3
- "version": "0.44.1",
3
+ "version": "0.44.2",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "GCP",
6
6
  "intrinsics": [],
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC501: Org Policy Guardrail Not Enforced (#793, epic #787 C3)
2
+ * WGC501: Org Policy Guardrail Not Enforced
3
3
  *
4
4
  * Flags OrgPolicyPolicy resources whose rules switch enforcement off or that
5
5
  * reset the constraint to its default. A disabled org policy is the GCP
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC502: Org Policy Guardrail Defines No Rules (#793, epic #787 C3)
2
+ * WGC502: Org Policy Guardrail Defines No Rules
3
3
  *
4
4
  * Flags OrgPolicyPolicy resources with no rules (and no reset). A rule-less
5
5
  * org policy binds a constraint to nothing — the usual leftover of a
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC503: Audit Logging Dropped or Scoped Down (#793, epic #787 C3)
2
+ * WGC503: Audit Logging Dropped or Scoped Down
3
3
  *
4
4
  * Flags IAMAuditConfig resources that capture nothing (no auditLogConfigs)
5
5
  * or that carve identities out of the audit trail via exemptedMembers.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-gcp",
3
- "version": "0.44.1",
3
+ "version": "0.44.2",
4
4
  "description": "Google Cloud lexicon for chant — declarative IaC in TypeScript",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -76,7 +76,7 @@
76
76
  "typescript": "^5.9.3"
77
77
  },
78
78
  "peerDependencies": {
79
- "@intentius/chant": "^0.44.1",
79
+ "@intentius/chant": "^0.44.2",
80
80
  "typescript": "^5.9.3"
81
81
  }
82
82
  }
@@ -7,7 +7,7 @@ function p(member: unknown): Record<string, any> {
7
7
  return (member as any).props;
8
8
  }
9
9
 
10
- describe("GovernanceFoundation (#791)", () => {
10
+ describe("GovernanceFoundation", () => {
11
11
  test("declares the foundation folders and baseline org policies", () => {
12
12
  const lz = GovernanceFoundation({ orgId: "123456789012" });
13
13
  expect(Object.keys(lz.members)).toEqual([
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Landing-zone bootstrap composites (#791, epic #787 C1) — the GCP slice.
2
+ * Landing-zone bootstrap composites — the GCP slice.
3
3
  *
4
4
  * Fixed-shape resources for greenfield creation of the recommended
5
5
  * governance foundation through a Config Connector management stack. The
6
6
  * evaluability rules (EVL002/004) require composites to declare a fixed set
7
7
  * of resources, so these carry the foundation only; arbitrary folder/project
8
8
  * trees are authored as config with `landingZoneConfig()` (../governance.ts)
9
- * and reconciled by the GCP cloud warden, and further folders/projects are
9
+ * and reconciled by an external governance reconciler, and further folders/projects are
10
10
  * declared as ordinary resources.
11
11
  *
12
12
  * The pieces compose:
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, test } from "vitest";
2
2
  import { landingZoneConfig, FOUNDATION_FOLDERS } from "./governance";
3
3
 
4
- describe("landingZoneConfig (#791)", () => {
4
+ describe("landingZoneConfig", () => {
5
5
  test("the default is the recommended foundation", () => {
6
6
  const cfg = landingZoneConfig();
7
7
  expect(Object.keys(cfg.folders)).toEqual(["Security", "Infrastructure", "Sandbox", "Workloads"]);
package/src/governance.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * GCP governance authoring (#791, epic #787 C1): the desired-state config
3
- * shape the GCP cloud warden reconciles, and `landingZoneConfig()` — the
2
+ * GCP governance authoring: the desired-state config
3
+ * shape an external governance reconciler reconciles, and `landingZoneConfig()` — the
4
4
  * typed authoring layer that emits it.
5
5
  *
6
6
  * This is deliberately NOT a composite. The evaluability rules (EVL002/004,
@@ -8,7 +8,7 @@
8
8
  * data-driven folder tree walker cannot be one. The split mirrors the AWS
9
9
  * slice (lexicons/aws/src/governance.ts): authoring emits config (this
10
10
  * module, arbitrary cardinality); resources for greenfield bootstrap are the
11
- * fixed-shape composites in `composites/landing-zone.ts`; the warden
11
+ * fixed-shape composites in `composites/landing-zone.ts`; the reconciler
12
12
  * consumes only the config.
13
13
  *
14
14
  * GCP has no OrganizationRoot analog — organizations are created through
@@ -16,7 +16,7 @@
16
16
  */
17
17
 
18
18
  // ---------------------------------------------------------------------------
19
- // The desired-state config shape the GCP cloud warden consumes
19
+ // The desired-state config shape an external governance reconciler consumes
20
20
  // ---------------------------------------------------------------------------
21
21
 
22
22
  /** An org-policy definition, keyed by name in `GcpGovernanceConfig.orgPolicies`. */
@@ -45,8 +45,8 @@ export interface FolderConfig {
45
45
 
46
46
  /**
47
47
  * The desired-state governance tree for one GCP organization. This is the
48
- * shape the GCP cloud warden loads as config — the GCP counterpart of
49
- * `AwsGovernanceConfig`. Cycles map onto the governance verbs (#790): the
48
+ * shape an external governance reconciler loads as config — the GCP counterpart of
49
+ * `AwsGovernanceConfig`. Cycles map onto the governance verbs: the
50
50
  * folder/project tree is `org-unit`, org policies are `policy-guardrail`,
51
51
  * audit configuration is `audit-sink`.
52
52
  */
@@ -132,7 +132,7 @@ export interface LandingZoneConfigProps {
132
132
  }
133
133
 
134
134
  /**
135
- * Author the desired-state tree the GCP cloud warden reconciles. Pure.
135
+ * Author the desired-state tree an external governance reconciler reconciles. Pure.
136
136
  * Throws when the tree attaches an org-policy name with no definition; only
137
137
  * policies the tree actually attaches are included in the output.
138
138
  */
package/src/index.ts CHANGED
@@ -42,8 +42,8 @@ export type {
42
42
  GovernanceFoundationProps, LocationRestrictionProps, OrganizationAuditConfigProps,
43
43
  } from "./composites/index";
44
44
 
45
- // GCP governance authoring (#791): the desired-state config the GCP cloud
46
- // warden reconciles, and the typed landing-zone authoring layer.
45
+ // GCP governance authoring: the desired-state config an external governance
46
+ // reconciler applies, and the typed landing-zone authoring layer.
47
47
  export {
48
48
  landingZoneConfig, resourceLocationRestriction,
49
49
  DISABLE_SA_KEY_CREATION, SKIP_DEFAULT_NETWORK, AUDIT_ALL_SERVICES, FOUNDATION_FOLDERS,
@@ -31,7 +31,7 @@ export const gcpAuditCatalog: Record<string, RuleMeta> = {
31
31
  WGC402: auditRule("WGC402", "merge-worthy", "guidance", "Missing required spec field", "Add the required spec field.", { category: "correctness" }),
32
32
  WGC403: auditRule("WGC403", "merge-worthy", "guidance", "Spec field has wrong type/structure", "Fix the field's type/structure.", { category: "correctness" }),
33
33
 
34
- // #793 — governance posture regressions (epic #787 C3).
34
+ // governance posture regressions.
35
35
  WGC501: auditRule("WGC501", "merge-worthy", "guidance", "Org Policy guardrail not enforced", "Enable enforce on the rule (or remove the policy deliberately) — a disabled org policy constrains nothing.", { authority: [GCP_SEC] }),
36
36
  WGC502: auditRule("WGC502", "merge-worthy", "guidance", "Org Policy guardrail defines no rules", "Add rules to the OrgPolicyPolicy — without them the constraint binds nothing.", { authority: [GCP_SEC] }),
37
37
  WGC503: auditRule("WGC503", "merge-worthy", "guidance", "Audit logging dropped or scoped down", "Keep auditLogConfigs populated and remove exemptedMembers from the IAMAuditConfig.", { authority: [GCP_SEC] }),
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC501: Org Policy Guardrail Not Enforced (#793, epic #787 C3)
2
+ * WGC501: Org Policy Guardrail Not Enforced
3
3
  *
4
4
  * Flags OrgPolicyPolicy resources whose rules switch enforcement off or that
5
5
  * reset the constraint to its default. A disabled org policy is the GCP
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC502: Org Policy Guardrail Defines No Rules (#793, epic #787 C3)
2
+ * WGC502: Org Policy Guardrail Defines No Rules
3
3
  *
4
4
  * Flags OrgPolicyPolicy resources with no rules (and no reset). A rule-less
5
5
  * org policy binds a constraint to nothing — the usual leftover of a
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WGC503: Audit Logging Dropped or Scoped Down (#793, epic #787 C3)
2
+ * WGC503: Audit Logging Dropped or Scoped Down
3
3
  *
4
4
  * Flags IAMAuditConfig resources that capture nothing (no auditLogConfigs)
5
5
  * or that carve identities out of the audit trail via exemptedMembers.