@intentius/chant-lexicon-aws 0.57.0 → 0.59.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.
Files changed (44) hide show
  1. package/dist/agentcore/trace-fetch.d.ts +5 -4
  2. package/dist/agentcore/trace-fetch.d.ts.map +1 -1
  3. package/dist/codegen/enum-overlay.d.ts +113 -0
  4. package/dist/codegen/enum-overlay.d.ts.map +1 -0
  5. package/dist/codegen/enum-overlay.json +1843 -0
  6. package/dist/codegen/generate.d.ts.map +1 -1
  7. package/dist/integrity.json +4 -4
  8. package/dist/lint/audit-catalog.d.ts.map +1 -1
  9. package/dist/lint/audit-lineage.d.ts +10 -0
  10. package/dist/lint/audit-lineage.d.ts.map +1 -0
  11. package/dist/manifest.json +1 -1
  12. package/dist/meta.json +1613 -0
  13. package/dist/okf/types/DbCluster.md +1 -1
  14. package/dist/okf/types/DbInstance.md +1 -1
  15. package/dist/okf/types/EC2Volume.md +1 -1
  16. package/dist/okf/types/Function.md +1 -1
  17. package/dist/okf/types/Instance.md +2 -2
  18. package/dist/okf/types/LoadBalancer.md +1 -1
  19. package/dist/okf/types/ScalableTarget.md +2 -2
  20. package/dist/okf/types/Subscription.md +1 -1
  21. package/dist/okf/types/Table.md +1 -1
  22. package/dist/okf/types/TargetGroup.md +2 -2
  23. package/dist/op/activities/aws-apply.d.ts.map +1 -1
  24. package/dist/op/activities/floci.d.ts +3 -2
  25. package/dist/op/activities/floci.d.ts.map +1 -1
  26. package/dist/op/builders.d.ts +4 -4
  27. package/dist/types/index.d.ts +1587 -18
  28. package/package.json +2 -2
  29. package/src/agentcore/trace-fetch.ts +5 -4
  30. package/src/codegen/docs.ts +3 -3
  31. package/src/codegen/enum-overlay.json +1843 -0
  32. package/src/codegen/enum-overlay.test.ts +298 -0
  33. package/src/codegen/enum-overlay.ts +245 -0
  34. package/src/codegen/generate.ts +40 -2
  35. package/src/deep-observe.test.ts +23 -15
  36. package/src/deep-topology.test.ts +7 -3
  37. package/src/generated/index.d.ts +1587 -18
  38. package/src/generated/lexicon-aws.json +1613 -0
  39. package/src/index.ts +3 -3
  40. package/src/lint/audit-catalog.ts +5 -1
  41. package/src/lint/audit-lineage.ts +159 -0
  42. package/src/op/activities/aws-apply.ts +1 -3
  43. package/src/op/activities/floci.ts +3 -2
  44. package/src/op/builders.ts +4 -4
@@ -949,12 +949,15 @@ describe("end to end: declared + mutated live + baseline (#1015)", () => {
949
949
  // all subtracted.
950
950
  expect(result.unchanged).toEqual(["AppRole"]);
951
951
 
952
- // The platform team's tag is accepted, so it is reported as suppressed
953
- // rather than as drift.
954
- expect(result.accepted.map((e) => e.name)).toEqual(["Assets"]);
955
- expect(result.accepted[0].changes.map((c) => c.path)).toEqual([
956
- "Tags[#cost-center].Key",
957
- "Tags[#cost-center].Value",
952
+ // The platform team's tag is on a path source never declared, so since
953
+ // #2160 the claim answers before the baseline gets a chance to: it is held
954
+ // elsewhere, at its live value, and it is not drift. AWS records no field
955
+ // manager, so the claimed-field set is the only source that can answer.
956
+ expect(result.accepted).toEqual([]);
957
+ expect(result.unclaimed.map((e) => e.name)).toEqual(["Assets"]);
958
+ expect(result.unclaimed[0].fields).toEqual([
959
+ { path: "Tags[#cost-center].Key", live: "cost-center", source: "claimed-fields", baseline: "cost-center" },
960
+ { path: "Tags[#cost-center].Value", live: "platform", source: "claimed-fields", baseline: "platform" },
958
961
  ]);
959
962
 
960
963
  // An unreadable deep read is a hole with a reason — never silence, never
@@ -976,7 +979,10 @@ describe("end to end: declared + mutated live + baseline (#1015)", () => {
976
979
  ]);
977
980
  });
978
981
 
979
- test("without the baseline the platform tag is drift, and accepting it is what silences it", async () => {
982
+ test("the claim silences the platform tag with no baseline at all (#2160)", async () => {
983
+ // Before #2160 this tag was drift until somebody accepted it. The
984
+ // declaration is the table AWS cannot provide, and it answers on the first
985
+ // read, with nothing recorded anywhere.
980
986
  wireMocks();
981
987
  const result = await deepDiffForLexicon(awsPlugin, {
982
988
  environment: "prod",
@@ -984,15 +990,16 @@ describe("end to end: declared + mutated live + baseline (#1015)", () => {
984
990
  entities: declared,
985
991
  });
986
992
  const assets = result.drifted.find((d) => d.name === "Assets");
987
- expect(assets?.changes.map((c) => c.path).sort()).toEqual([
993
+ expect(assets?.changes.map((c) => c.path)).toEqual(["VersioningConfiguration.Status"]);
994
+ expect(result.unclaimed[0].fields.map((f) => f.path)).toEqual([
988
995
  "Tags[#cost-center].Key",
989
996
  "Tags[#cost-center].Value",
990
- "VersioningConfiguration.Status",
991
997
  ]);
992
998
  expect(result.accepted).toEqual([]);
993
999
  });
994
1000
 
995
1001
  test("an accepted value that later changes is drift again, with all three axes", async () => {
1002
+ // The baseline's value-bound rule, on the path that is actually declared.
996
1003
  wireMocks();
997
1004
  const result = await deepDiffForLexicon(awsPlugin, {
998
1005
  environment: "prod",
@@ -1000,18 +1007,19 @@ describe("end to end: declared + mutated live + baseline (#1015)", () => {
1000
1007
  entities: declared,
1001
1008
  baseline: {
1002
1009
  Assets: {
1003
- accepted: [{ path: "Tags[#cost-center].Value", value: "someone-elses-team" }],
1010
+ accepted: [{ path: "VersioningConfiguration.Status", value: "Enabled" }],
1004
1011
  },
1005
1012
  },
1006
1013
  });
1007
1014
  const change = result.drifted
1008
1015
  .find((d) => d.name === "Assets")
1009
- ?.changes.find((c) => c.path === "Tags[#cost-center].Value");
1016
+ ?.changes.find((c) => c.path === "VersioningConfiguration.Status");
1010
1017
  expect(change).toEqual({
1011
- path: "Tags[#cost-center].Value",
1012
- kind: "undeclared",
1013
- live: "platform",
1014
- baseline: "someone-elses-team",
1018
+ path: "VersioningConfiguration.Status",
1019
+ kind: "changed",
1020
+ declared: "Enabled",
1021
+ live: "Suspended",
1022
+ baseline: "Enabled",
1015
1023
  });
1016
1024
  });
1017
1025
 
@@ -360,7 +360,7 @@ describe("the fold answers (#1269)", () => {
360
360
  ]);
361
361
  });
362
362
 
363
- test("an out-of-band MapPublicIpOnLaunch flip reports; the service default does not", async () => {
363
+ test("an out-of-band MapPublicIpOnLaunch flip reports as unclaimed; the service default does not", async () => {
364
364
  const subnetRow = (mapPublic: boolean) => ({
365
365
  Subnets: [{ SubnetId: "subnet-01", VpcId: "vpc-01", CidrBlock: "10.0.1.0/24", MapPublicIpOnLaunch: mapPublic }],
366
366
  });
@@ -381,11 +381,15 @@ describe("the fold answers (#1269)", () => {
381
381
 
382
382
  ec2Describes({ "describe-subnets": subnetRow(true) });
383
383
  const diff = diffDeepObservation(declared, await observe(), awsDeepNormalizationHooks);
384
- expect(diff.drifted).toEqual([
384
+ // Source never set MapPublicIpOnLaunch, so the flip is somebody else's
385
+ // (#2160): reported with its value, not counted as drift, and never
386
+ // proposed for an update.
387
+ expect(diff.drifted).toEqual([]);
388
+ expect(diff.unclaimed).toEqual([
385
389
  {
386
390
  name: "PublicSubnet",
387
391
  type: "AWS::EC2::Subnet",
388
- changes: [{ path: "MapPublicIpOnLaunch", kind: "undeclared", live: true }],
392
+ fields: [{ path: "MapPublicIpOnLaunch", live: true, source: "claimed-fields" }],
389
393
  },
390
394
  ]);
391
395
  });