@fjall/components-infrastructure 9.0.0 → 10.1.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.
Files changed (37) hide show
  1. package/dist/lib/patterns/aws/compute.js +13 -1
  2. package/dist/lib/patterns/aws/computeEcs.d.ts +80 -1
  3. package/dist/lib/patterns/aws/computeEcs.js +450 -70
  4. package/dist/lib/patterns/aws/computeEcsTypes.d.ts +113 -6
  5. package/dist/lib/patterns/aws/computeEcsTypes.js +19 -0
  6. package/dist/lib/patterns/aws/computePropApplicability.js +1 -0
  7. package/dist/lib/patterns/aws/database.d.ts +12 -1
  8. package/dist/lib/patterns/aws/database.js +16 -0
  9. package/dist/lib/patterns/aws/devSubstrate.js +64 -8
  10. package/dist/lib/patterns/aws/interfaces/database.d.ts +26 -0
  11. package/dist/lib/patterns/aws/storage.d.ts +7 -0
  12. package/dist/lib/patterns/aws/storage.js +14 -1
  13. package/dist/lib/resources/aws/compute/applicationLoadBalancer.js +6 -0
  14. package/dist/lib/resources/aws/compute/ecs.d.ts +12 -0
  15. package/dist/lib/resources/aws/compute/ecs.js +32 -2
  16. package/dist/lib/resources/aws/compute/ecsImages.js +4 -0
  17. package/dist/lib/resources/aws/compute/ecsServiceFactory.d.ts +29 -3
  18. package/dist/lib/resources/aws/compute/ecsServiceFactory.js +32 -0
  19. package/dist/lib/resources/aws/compute/ecsTaskDefinition.js +12 -0
  20. package/dist/lib/resources/aws/compute/ecsTypes.d.ts +42 -2
  21. package/dist/lib/resources/aws/compute/ecsValidation.d.ts +6 -0
  22. package/dist/lib/resources/aws/compute/ecsValidation.js +13 -0
  23. package/dist/lib/resources/aws/database/rdsAurora.d.ts +7 -1
  24. package/dist/lib/resources/aws/database/rdsAurora.js +1 -1
  25. package/dist/lib/resources/aws/messaging/eventTargets.d.ts +4 -2
  26. package/dist/lib/resources/aws/messaging/eventTargets.js +55 -2
  27. package/dist/lib/resources/aws/monitoring/alarmDefaults.d.ts +1 -0
  28. package/dist/lib/resources/aws/monitoring/alarmDefaults.js +1 -1
  29. package/dist/lib/resources/aws/monitoring/ecsTaskStopWatchdog.d.ts +59 -0
  30. package/dist/lib/resources/aws/monitoring/ecsTaskStopWatchdog.js +115 -0
  31. package/dist/lib/resources/aws/monitoring/index.d.ts +1 -0
  32. package/dist/lib/resources/aws/monitoring/index.js +1 -0
  33. package/dist/lib/resources/aws/monitoring/metricNamespaces.d.ts +1 -0
  34. package/dist/lib/resources/aws/monitoring/metricNamespaces.js +1 -0
  35. package/dist/lib/utils/manifestWriter.d.ts +16 -2
  36. package/dist/lib/utils/manifestWriter.js +22 -0
  37. package/package.json +4 -3
@@ -15,8 +15,8 @@
15
15
  */
16
16
  import type { CloudAssembly } from "aws-cdk-lib/cx-api";
17
17
  import { type ResourceCategory } from "@fjall/util/resourceCategorisation";
18
- import { type ManifestService, type ManifestPattern, type ManifestEcr, type ManifestLambda, type ManifestStackHash, type ManifestCapacityAlias, type FjallManifest } from "@fjall/util/manifest/schemas";
19
- export type { ManifestService, ManifestPattern, ManifestEcr, ManifestLambda, ManifestStackHash, ManifestCapacityAlias, FjallManifest };
18
+ import { type ManifestService, type ManifestPattern, type ManifestEcr, type ManifestLambda, type ManifestStackHash, type ManifestCapacityAlias, type ManifestResidual, type FjallManifest } from "@fjall/util/manifest/schemas";
19
+ export type { ManifestService, ManifestPattern, ManifestEcr, ManifestLambda, ManifestStackHash, ManifestCapacityAlias, ManifestResidual, FjallManifest };
20
20
  /**
21
21
  * Collected manifest data during synthesis.
22
22
  * Stores all data that will be written to the manifest file.
@@ -25,6 +25,7 @@ export declare class ManifestCollector {
25
25
  private services;
26
26
  private lambdas;
27
27
  private capacityIdentityAliases;
28
+ private residuals;
28
29
  private pattern?;
29
30
  private ecr?;
30
31
  private appName;
@@ -59,6 +60,19 @@ export declare class ManifestCollector {
59
60
  * first-wins for safety.
60
61
  */
61
62
  addCapacityIdentityAlias(alias: ManifestCapacityAlias): void;
63
+ /**
64
+ * Record a residual — a resource that survives (or needs SDK-side work on)
65
+ * an explicit destroy of the stack that declared it. Constructs register
66
+ * these at synth so the destroy lane can report what remains without
67
+ * re-deriving construct policy. First-wins on `constructPath`: a construct
68
+ * re-entered during synth (adopt seams re-resolve) must not duplicate its
69
+ * entry.
70
+ */
71
+ addResidual(residual: ManifestResidual): void;
72
+ /**
73
+ * Get collected residuals.
74
+ */
75
+ getResiduals(): ManifestResidual[];
62
76
  /**
63
77
  * Set the pattern configuration.
64
78
  */
@@ -29,6 +29,7 @@ export class ManifestCollector {
29
29
  services = [];
30
30
  lambdas = [];
31
31
  capacityIdentityAliases = [];
32
+ residuals = [];
32
33
  pattern;
33
34
  ecr;
34
35
  appName;
@@ -91,6 +92,25 @@ export class ManifestCollector {
91
92
  `{app, slot} and cannot tell the clusters apart. Give one cluster ` +
92
93
  `a distinct ec2Config.slot.`);
93
94
  }
95
+ /**
96
+ * Record a residual — a resource that survives (or needs SDK-side work on)
97
+ * an explicit destroy of the stack that declared it. Constructs register
98
+ * these at synth so the destroy lane can report what remains without
99
+ * re-deriving construct policy. First-wins on `constructPath`: a construct
100
+ * re-entered during synth (adopt seams re-resolve) must not duplicate its
101
+ * entry.
102
+ */
103
+ addResidual(residual) {
104
+ if (!this.residuals.some((r) => r.constructPath === residual.constructPath)) {
105
+ this.residuals.push(residual);
106
+ }
107
+ }
108
+ /**
109
+ * Get collected residuals.
110
+ */
111
+ getResiduals() {
112
+ return this.residuals;
113
+ }
94
114
  /**
95
115
  * Set the pattern configuration.
96
116
  */
@@ -211,6 +231,7 @@ export function writeManifest(assembly, collector) {
211
231
  "version-compatibility gate.");
212
232
  }
213
233
  const identityAliases = collector.getCapacityIdentityAliases();
234
+ const residuals = collector.getResiduals();
214
235
  const manifest = {
215
236
  version: MANIFEST_SCHEMA_VERSION,
216
237
  generatedAt: new Date().toISOString(),
@@ -220,6 +241,7 @@ export function writeManifest(assembly, collector) {
220
241
  stacks,
221
242
  ...(engineCompat !== undefined ? { engineCompat } : {}),
222
243
  ...(identityAliases.length > 0 ? { identityAliases } : {}),
244
+ ...(residuals.length > 0 ? { residuals } : {}),
223
245
  ...(constructMap.size > 0
224
246
  ? { resourceMap: constructMapToRecord(constructMap) }
225
247
  : {})
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "9.0.0",
3
+ "version": "10.1.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/fjall-tech/fjall.git",
@@ -52,6 +52,7 @@
52
52
  "typecheck:deploy-tests": "tsc --noEmit -p tsconfig.deploy-tests.json",
53
53
  "check:scripts": "tsc --project tsconfig.scripts.json",
54
54
  "deploy-test": "tsx deploy-tests/run.mts",
55
+ "deploy-test:mutation": "tsx deploy-tests/mutationGate.mts",
55
56
  "deploy-test:ops": "tsx deploy-tests/ops.mts",
56
57
  "deploy-test:select": "tsx deploy-tests/select.mts",
57
58
  "deploy-test:pipeline": "tsx deploy-tests/pipeline/renderPipelineSteps.mts",
@@ -79,8 +80,8 @@
79
80
  },
80
81
  "dependencies": {
81
82
  "@aws-sdk/client-organizations": "^3.1098.0",
82
- "@fjall/generator": "^9.0.0",
83
- "@fjall/util": "^9.0.0",
83
+ "@fjall/generator": "^10.1.2",
84
+ "@fjall/util": "^10.1.2",
84
85
  "constructs": "^10.7.2"
85
86
  },
86
87
  "overrides": {