canopycms-cdk 0.0.61 → 0.0.63

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 (46) hide show
  1. package/dist/constructs/cms-service.d.ts +14 -1
  2. package/dist/constructs/cms-service.d.ts.map +1 -1
  3. package/dist/constructs/cms-service.js +130 -21
  4. package/dist/constructs/cms-service.js.map +1 -1
  5. package/lambda/asset-transform/dist/handler.js +34 -6
  6. package/lambda/asset-transform/dist/node_modules/.package-lock.json +33 -6
  7. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/LICENSE +21 -0
  8. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/README.md +1 -0
  9. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +1398 -0
  10. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.d.ts +671 -0
  11. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -0
  12. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.d.mts +671 -0
  13. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.d.ts +673 -0
  14. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.esm-bundler.js +1457 -0
  15. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.iife.d.ts +426 -0
  16. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.iife.js +1528 -0
  17. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.js +1529 -0
  18. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.min.d.mts +671 -0
  19. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.min.js +1 -0
  20. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.min.mjs +1 -0
  21. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/dist/emnapi.mjs +1367 -0
  22. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/index.js +5 -0
  23. package/lambda/asset-transform/dist/node_modules/@emnapi/runtime/package.json +48 -0
  24. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/LICENSE +191 -0
  25. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/README.md +50 -0
  26. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/index.cjs +1 -0
  27. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/lib/sharp-wasm32-0.35.3.node.js +1 -0
  28. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/lib/sharp-wasm32-0.35.3.node.wasm +0 -0
  29. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/package.json +37 -0
  30. package/lambda/asset-transform/dist/node_modules/@img/sharp-wasm32/versions.json +21 -0
  31. package/lambda/asset-transform/dist/node_modules/tslib/CopyrightNotice.txt +15 -0
  32. package/lambda/asset-transform/dist/node_modules/tslib/LICENSE.txt +12 -0
  33. package/lambda/asset-transform/dist/node_modules/tslib/README.md +164 -0
  34. package/lambda/asset-transform/dist/node_modules/tslib/SECURITY.md +41 -0
  35. package/lambda/asset-transform/dist/node_modules/tslib/modules/index.d.ts +38 -0
  36. package/lambda/asset-transform/dist/node_modules/tslib/modules/index.js +70 -0
  37. package/lambda/asset-transform/dist/node_modules/tslib/modules/package.json +3 -0
  38. package/lambda/asset-transform/dist/node_modules/tslib/package.json +47 -0
  39. package/lambda/asset-transform/dist/node_modules/tslib/tslib.d.ts +460 -0
  40. package/lambda/asset-transform/dist/node_modules/tslib/tslib.es6.html +1 -0
  41. package/lambda/asset-transform/dist/node_modules/tslib/tslib.es6.js +402 -0
  42. package/lambda/asset-transform/dist/node_modules/tslib/tslib.es6.mjs +401 -0
  43. package/lambda/asset-transform/dist/node_modules/tslib/tslib.html +1 -0
  44. package/lambda/asset-transform/dist/node_modules/tslib/tslib.js +484 -0
  45. package/package.json +5 -5
  46. package/worker/dist/index.js +526 -459
@@ -24,7 +24,15 @@ export interface CanopyCmsServiceProps {
24
24
  spotMaxPrice?: string;
25
25
  /** Secrets Manager ARNs the worker needs to read (GitHub token, Clerk key) */
26
26
  secretsArns?: string[];
27
- /** Environment variables for the Lambda function */
27
+ /**
28
+ * Environment variables for the Lambda function.
29
+ *
30
+ * Two keys are not free-form here, because the construct configures the
31
+ * worker from the same values and the two halves must agree:
32
+ * `CANOPYCMS_DEPLOYMENT_NAME` is folded into `deploymentName` (validated,
33
+ * and mirrored into the worker's `.env`), and `CANOPY_MODE` accepts only
34
+ * `'prod'`. Everything else is passed through untouched.
35
+ */
28
36
  environment?: Record<string, string>;
29
37
  /** EFS removal policy (default: RETAIN) */
30
38
  efsRemovalPolicy?: RemovalPolicy;
@@ -48,6 +56,11 @@ export interface CanopyCmsServiceProps {
48
56
  * which lets this env value win over any `deploymentName` baked into the
49
57
  * shared repo's `canopycms.config.ts` — the point of this prop.
50
58
  *
59
+ * `environment.CANOPYCMS_DEPLOYMENT_NAME` still overrides this prop, but it
60
+ * is now folded in at synth: the winner is validated by the same rule and
61
+ * written to BOTH halves, so the Lambda and the worker can never resolve
62
+ * different settings branches.
63
+ *
51
64
  * Two `CanopyCmsService` stacks pointed at the SAME GitHub repo MUST set
52
65
  * distinct values here, or both resolve to `canopycms-settings-prod` and
53
66
  * fight over the same branch (permissions/groups changes reviewed on one PR
@@ -1 +1 @@
1
- {"version":3,"file":"cms-service.d.ts","sourceRoot":"","sources":["../../src/constructs/cms-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,OAAO,IAAI,GAAG,EACd,OAAO,IAAI,GAAG,EAEd,UAAU,IAAI,MAAM,EACpB,eAAe,IAAI,WAAW,EAE9B,QAAQ,IAAI,IAAI,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAwBjD,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC,eAAe,CAAA;IAEtC,4DAA4D;IAC5D,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAA;IAEd,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,QAAQ,CAAA;IAElB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAA;IAElC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAEtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpC,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,aAAa,CAAA;IAEhC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAA;IAEnB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAElB,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAEhC,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,IAAI,CAAC,aAAa,CAAA;IAEvC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;OAGG;IACH,eAAe,CAAC,EAAE,IAAI,CAAC,aAAa,CAAA;IAEpC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,qDAAqD;IACrD,SAAgB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAA;IAE/C,yBAAyB;IACzB,SAAgB,UAAU,EAAE,GAAG,CAAC,UAAU,CAAA;IAE1C,cAAc;IACd,SAAgB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAA;IAE7B,0BAA0B;IAC1B,SAAgB,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAA;IAE/C,mEAAmE;IACnE,SAAgB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAA;IAE1C,wCAAwC;IACxC,SAAgB,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAA;IAEvD,mEAAmE;IACnE,SAAgB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAA;gBAEjC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;CAgjBvE"}
1
+ {"version":3,"file":"cms-service.d.ts","sourceRoot":"","sources":["../../src/constructs/cms-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,OAAO,IAAI,GAAG,EACd,OAAO,IAAI,GAAG,EAEd,UAAU,IAAI,MAAM,EACpB,eAAe,IAAI,WAAW,EAE9B,QAAQ,IAAI,IAAI,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AA0EjD,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC,eAAe,CAAA;IAEtC,4DAA4D;IAC5D,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAA;IAEd,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,QAAQ,CAAA;IAElB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAA;IAElC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAEtB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEpC,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,aAAa,CAAA;IAEhC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAA;IAEnB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAElB,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B,mDAAmD;IACnD,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAEhC,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,IAAI,CAAC,aAAa,CAAA;IAEvC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;OAGG;IACH,eAAe,CAAC,EAAE,IAAI,CAAC,aAAa,CAAA;IAEpC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,qDAAqD;IACrD,SAAgB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAA;IAE/C,yBAAyB;IACzB,SAAgB,UAAU,EAAE,GAAG,CAAC,UAAU,CAAA;IAE1C,cAAc;IACd,SAAgB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAA;IAE7B,0BAA0B;IAC1B,SAAgB,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAA;IAE/C,mEAAmE;IACnE,SAAgB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAA;IAE1C,wCAAwC;IACxC,SAAgB,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAA;IAEvD,mEAAmE;IACnE,SAAgB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAA;gBAEjC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;CAsnBvE"}
@@ -13,14 +13,58 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
13
  /**
14
14
  * Synth-time mirror of `resolveDeploymentName`'s rule in the `canopycms`
15
15
  * package (packages/canopycms/src/operating-mode/deployment-name.ts).
16
- * Duplicated rather than imported: `canopycms-cdk` deliberately does not
17
- * depend on the runtime package. Keep the two in step — see the constructor
18
- * guard for why this is checked here as well as at runtime.
16
+ * Duplicated rather than imported: `canopycms-cdk` publishes with no runtime
17
+ * dependency on `canopycms` (it is a devDependency, used only to bundle the
18
+ * worker), so importing it here would break the published construct.
19
+ *
20
+ * Drift between the two copies is caught by a test, not by this comment:
21
+ * cms-deploy.test.ts drives both this construct and the runtime predicate over
22
+ * the shared fixture in
23
+ * packages/canopycms/src/operating-mode/deployment-name-fixtures.ts and
24
+ * requires them to agree. Add a case there when you change either copy.
19
25
  */
20
26
  const isValidDeploymentName = (name) => /^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(name) &&
21
27
  !name.includes('..') &&
22
28
  !name.endsWith('.') &&
23
29
  !name.endsWith('.lock');
30
+ /**
31
+ * The heredoc delimiter user-data uses to write the worker's `.env` (see the
32
+ * `cat > … << 'ENVEOF'` block below).
33
+ */
34
+ const ENV_HEREDOC_DELIMITER = 'ENVEOF';
35
+ /**
36
+ * Guard every value interpolated into the worker's `.env` file.
37
+ *
38
+ * This is robustness, not a security boundary: the heredoc delimiter is
39
+ * quoted, so the shell performs no expansion on the body, and these values
40
+ * come from the adopter's own CDK code rather than from an attacker. What it
41
+ * catches is a malformed value silently producing a broken instance — a value
42
+ * carrying a newline injects an arbitrary extra line into the worker's
43
+ * environment, and a value containing the delimiter ends the heredoc early, so
44
+ * the rest of the value is executed as user-data shell commands. Both would
45
+ * deploy clean and fail at boot, or worse, boot with a subtly wrong
46
+ * environment.
47
+ *
48
+ * Applied to every entry in `envEntries` below by construction rather than by
49
+ * remembering to call it — the previous version validated `deploymentName`
50
+ * only, while giving a rationale that applied verbatim to the other three
51
+ * interpolated values.
52
+ *
53
+ * Returns the value so it can be used inline.
54
+ */
55
+ function assertEnvSafe(name, value) {
56
+ if (/[\r\n]/.test(value)) {
57
+ throw new Error(`CanopyCmsService: ${name} must not contain a newline (got ${JSON.stringify(value)}). ` +
58
+ `It is written into the worker's .env file, where a newline injects an arbitrary ` +
59
+ `extra environment line.`);
60
+ }
61
+ if (value.includes(ENV_HEREDOC_DELIMITER)) {
62
+ throw new Error(`CanopyCmsService: ${name} must not contain ${JSON.stringify(ENV_HEREDOC_DELIMITER)} ` +
63
+ `(got ${JSON.stringify(value)}). It is written into the worker's .env file with a ` +
64
+ `<< '${ENV_HEREDOC_DELIMITER}' heredoc, which that value would terminate early.`);
65
+ }
66
+ return value;
67
+ }
24
68
  /**
25
69
  * Core CDK construct for CanopyCMS deployment.
26
70
  *
@@ -48,18 +92,67 @@ const isValidDeploymentName = (name) => /^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(name
48
92
  export class CanopyCmsService extends Construct {
49
93
  constructor(scope, id, props) {
50
94
  super(scope, id);
95
+ // ------------------------------------------------------------------
96
+ // Deployment name: ONE effective value, validated once, used by both halves
97
+ // ------------------------------------------------------------------
98
+ //
99
+ // `props.environment` is spread into the Lambda's environment, so an
100
+ // adopter can set CANOPYCMS_DEPLOYMENT_NAME there directly. That escape
101
+ // hatch used to bypass both things that make this prop safe: the synth
102
+ // guard below (an invalid value deployed clean and crash-looped the Lambda
103
+ // at boot) and the worker, which kept reading `props.deploymentName` and so
104
+ // resolved a DIFFERENT settings branch than the Lambda — exactly the split
105
+ // that `pushSettingsBranches`'s [SYNC-M3] warning was added to detect.
106
+ //
107
+ // Kept rather than dropped (dropping is a breaking change for anyone
108
+ // already setting it), but resolved to a single value here: whatever wins
109
+ // is validated, and the same string is stamped on the Lambda AND written
110
+ // into the worker's `.env` below. The two halves cannot disagree.
111
+ const envDeploymentNameOverride = props.environment?.['CANOPYCMS_DEPLOYMENT_NAME'];
112
+ const deploymentName = envDeploymentNameOverride ?? props.deploymentName ?? 'prod';
113
+ const deploymentNameSource = envDeploymentNameOverride !== undefined
114
+ ? 'environment.CANOPYCMS_DEPLOYMENT_NAME'
115
+ : 'deploymentName';
51
116
  // Fail at synth, not at boot. deploymentName is interpolated BOTH into a
52
117
  // git ref (`canopycms-settings-{deploymentName}`) and into a line of the
53
118
  // worker's `.env`, which user-data writes with a shell heredoc — a value
54
119
  // carrying a newline or quote would corrupt the worker's environment file
55
120
  // before any runtime validation could run. Mirrors the package-side rule
56
- // in operating-mode/deployment-name.ts (resolveDeploymentName); keep the
57
- // two in step.
58
- if (props.deploymentName !== undefined && !isValidDeploymentName(props.deploymentName)) {
59
- throw new Error(`CanopyCmsService: invalid deploymentName ${JSON.stringify(props.deploymentName)}. ` +
121
+ // in operating-mode/deployment-name.ts (resolveDeploymentName); the
122
+ // fixture-driven drift test named above keeps the two in step.
123
+ if (!isValidDeploymentName(deploymentName)) {
124
+ throw new Error(`CanopyCmsService: invalid deploymentName ${JSON.stringify(deploymentName)} ` +
125
+ `(from ${deploymentNameSource}). ` +
60
126
  `It must start with a letter or digit, contain only letters, digits, '.', '_' or '-', ` +
61
127
  `and must not contain '..' or end with '.' or '.lock'.`);
62
128
  }
129
+ // ------------------------------------------------------------------
130
+ // Operating mode
131
+ // ------------------------------------------------------------------
132
+ //
133
+ // The adopter's `canopycms.config.ts` is shared by local dev, the image
134
+ // build and this deployment, and it must say `dev` for the first two (a
135
+ // prod-mode `next build` would try to open an EFS branch workspace that
136
+ // cannot exist in an image builder). So the deployed mode is supplied
137
+ // here, at run time: `resolveOperatingMode`
138
+ // (packages/canopycms/src/operating-mode/mode-env.ts) reads CANOPY_MODE
139
+ // and it wins over the config literal. Without it the Lambda runs dev
140
+ // mode, resolves its workspace to `<cwd>/.canopy-dev`, and fails EROFS on
141
+ // Lambda's read-only filesystem.
142
+ //
143
+ // Only 'prod' is accepted from `props.environment`: this construct deploys
144
+ // the prod topology (EFS workspace, no internet, read-only container), and
145
+ // 'dev' there cannot work — better a synth error than an EROFS crash-loop.
146
+ // The browser half of `mode` cannot come from here at all; it is inlined
147
+ // at image-build time from the NEXT_PUBLIC_CANOPY_MODE build arg (see
148
+ // Dockerfile.cms.template and the generated cms-stack.ts).
149
+ const envModeOverride = props.environment?.['CANOPY_MODE'];
150
+ if (envModeOverride !== undefined && envModeOverride !== 'prod') {
151
+ throw new Error(`CanopyCmsService: invalid environment.CANOPY_MODE ${JSON.stringify(envModeOverride)}. ` +
152
+ `This construct deploys the prod topology, so the only supported value is "prod" ` +
153
+ `(dev mode resolves its workspace to <cwd>/.canopy-dev, which is read-only on Lambda). ` +
154
+ `Omit it to get the default.`);
155
+ }
63
156
  // ========================================================================
64
157
  // VPC — 2 AZs, public + private subnets, NO NAT
65
158
  // ========================================================================
@@ -189,9 +282,6 @@ export class CanopyCmsService extends Construct {
189
282
  // or the Lambda and worker silently operate on different directories.
190
283
  CANOPYCMS_WORKSPACE_ROOT: '/mnt/efs',
191
284
  CANOPY_AUTH_CACHE_PATH: '/mnt/efs/.cache',
192
- // Placed before ...props.environment below so an adopter can still
193
- // override it explicitly via that escape hatch.
194
- CANOPYCMS_DEPLOYMENT_NAME: props.deploymentName ?? 'prod',
195
285
  // B7 note: git >= 2.35.2 refuses repos owned by another uid (the
196
286
  // access point forces uid 1000; Lambda containers run as a different
197
287
  // user). Env-based GIT_CONFIG_* CANNOT fix this - simple-git
@@ -199,6 +289,15 @@ export class CanopyCmsService extends Construct {
199
289
  // the image: Dockerfile.cms.template runs
200
290
  // `git config --system safe.directory '*'`.
201
291
  ...props.environment,
292
+ // AFTER the spread, deliberately. Both values are already the
293
+ // adopter's own choice (an `environment` override is folded into
294
+ // `deploymentName` above and validated; CANOPY_MODE is restricted to
295
+ // 'prod'), so nothing is being taken away here - what the placement
296
+ // buys is that the Lambda and the worker's `.env` cannot end up
297
+ // holding different strings, which is the failure mode that made this
298
+ // an escape hatch worth fixing rather than a harmless one.
299
+ CANOPYCMS_DEPLOYMENT_NAME: deploymentName,
300
+ CANOPY_MODE: 'prod',
202
301
  },
203
302
  });
204
303
  // Explicit, scoped grant - NOT a reliance on the auto-created execution
@@ -298,25 +397,35 @@ export class CanopyCmsService extends Construct {
298
397
  path: path.join(__dirname, '../../worker/dist'),
299
398
  });
300
399
  workerAsset.grantRead(workerRole);
301
- // Build worker .env file content from CDK props
302
- const envLines = [
303
- `CANOPYCMS_WORKSPACE_ROOT=/mnt/efs/workspace`,
304
- `CANOPYCMS_GITHUB_OWNER=${props.githubOwner}`,
305
- `CANOPYCMS_GITHUB_REPO=${props.githubRepo}`,
306
- `CANOPYCMS_BASE_BRANCH=${props.baseBranch ?? 'main'}`,
307
- `CANOPYCMS_DEPLOYMENT_NAME=${props.deploymentName ?? 'prod'}`,
400
+ // Build worker .env file content from CDK props.
401
+ //
402
+ // Name/value PAIRS rather than pre-formatted lines: every value then flows
403
+ // through `assertEnvSafe` in the single `map` below, so a value added here
404
+ // later is guarded whether or not whoever adds it remembers to.
405
+ const envEntries = [
406
+ ['CANOPYCMS_WORKSPACE_ROOT', '/mnt/efs/workspace'],
407
+ ['CANOPYCMS_GITHUB_OWNER', props.githubOwner],
408
+ ['CANOPYCMS_GITHUB_REPO', props.githubRepo],
409
+ ['CANOPYCMS_BASE_BRANCH', props.baseBranch ?? 'main'],
410
+ // The SAME string the Lambda's environment gets above, including an
411
+ // `environment.CANOPYCMS_DEPLOYMENT_NAME` override - the two halves
412
+ // resolve one settings branch (`canopycms-settings-<name>`) between them,
413
+ // and disagreeing here is what [SYNC-M3] warns about at runtime.
414
+ ['CANOPYCMS_DEPLOYMENT_NAME', deploymentName],
308
415
  // B8: the AWS SDK JS v3 cannot resolve a region from IMDS on its own -
309
416
  // without this the worker's bare `SecretsManagerClient({})` crash-loops
310
417
  // with "Region is missing".
311
- `AWS_REGION=${Stack.of(this).region}`,
418
+ ['AWS_REGION', Stack.of(this).region],
312
419
  ];
313
420
  if (props.githubTokenSecretArn) {
314
- envLines.push(`CANOPYCMS_GITHUB_TOKEN_SECRET_ARN=${props.githubTokenSecretArn}`);
421
+ envEntries.push(['CANOPYCMS_GITHUB_TOKEN_SECRET_ARN', props.githubTokenSecretArn]);
315
422
  }
316
423
  if (props.clerkSecretKeySecretArn) {
317
- envLines.push(`CLERK_SECRET_KEY_SECRET_ARN=${props.clerkSecretKeySecretArn}`);
424
+ envEntries.push(['CLERK_SECRET_KEY_SECRET_ARN', props.clerkSecretKeySecretArn]);
318
425
  }
319
- const envFileContent = envLines.join('\n');
426
+ const envFileContent = envEntries
427
+ .map(([name, value]) => `${name}=${assertEnvSafe(name, value)}`)
428
+ .join('\n');
320
429
  // UserData script
321
430
  const userData = ec2.UserData.forLinux();
322
431
  userData.addCommands('#!/bin/bash', 'set -euo pipefail', '', '# Install dependencies (unzip is not guaranteed in the AL2023 AMI)', 'yum install -y git unzip', 'curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -', 'yum install -y nodejs', '', '# Mount EFS', 'yum install -y amazon-efs-utils', 'mkdir -p /mnt/efs', `mount -t efs ${this.fileSystem.fileSystemId}:/ /mnt/efs`, '# Persist the mount across instance reboots: user-data runs once per', '# instance, so without an fstab entry a plain reboot leaves /mnt/efs an', '# empty local dir and the worker would clone a divergent remote.git', '# onto the instance disk, invisible to the Lambda.', `echo '${this.fileSystem.fileSystemId}:/ /mnt/efs efs _netdev 0 0' >> /etc/fstab`, '', '# Download worker from CDK S3 Asset', `aws s3 cp s3://${workerAsset.s3BucketName}/${workerAsset.s3ObjectKey} /tmp/canopy-worker.zip`, 'mkdir -p /opt/canopy-worker', 'cd /opt/canopy-worker', 'unzip -o /tmp/canopy-worker.zip', '# The worker bundle is ESM (esbuild --format=esm). Node 20 treats .js as', '# CommonJS without this marker and crash-loops on the import statement', '# (Node >=22.7 auto-detects and masks the bug locally).', `echo '{"type":"module"}' > /opt/canopy-worker/package.json`, '', '# Write environment file for systemd service', `cat > /opt/canopy-worker/.env << 'ENVEOF'`, envFileContent, 'ENVEOF', '', '# Create systemd service', `cat > /etc/systemd/system/canopy-worker.service << 'SVCEOF'`, '[Unit]', 'Description=CanopyCMS Worker Daemon', 'After=network.target', '# Never run against an unmounted /mnt/efs (see the fstab note above).', 'RequiresMountsFor=/mnt/efs', '', '[Service]', 'Type=simple', 'User=ec2-user', 'WorkingDirectory=/opt/canopy-worker', 'ExecStart=/usr/bin/node index.js', 'Restart=always', 'RestartSec=5', 'TimeoutStartSec=300', '# File output, not journal: the CloudWatch agent cannot read journald,', '# so it tails this file instead (see the agent config below).', '# CAUTION: /var/log/canopy-worker must exist BEFORE first start. systemd', '# opens append: targets before it creates LogsDirectory= dirs', '# (systemd#27591), so without the pre-created dir the exec fails with', '# 209/STDOUT and Restart=always crash-loops forever. User-data runs', '# mkdir before systemctl start; LogsDirectory= is kept for ownership.', 'LogsDirectory=canopy-worker', 'StandardOutput=append:/var/log/canopy-worker/worker.log', 'StandardError=append:/var/log/canopy-worker/worker.log', 'EnvironmentFile=/opt/canopy-worker/.env', '', '[Install]', 'WantedBy=multi-user.target', 'SVCEOF', '', '# Set ownership for ec2-user', 'chown -R ec2-user:ec2-user /opt/canopy-worker', '# Non-recursive: EFS access point enforces UID 1000 for Lambda.', '# Only set ownership on mount point and workspace dir to avoid', '# slow recursive chown on large filesystems during ASG replacements.', 'chown ec2-user:ec2-user /mnt/efs', 'mkdir -p /mnt/efs/workspace', 'chown ec2-user:ec2-user /mnt/efs/workspace', '', '# Pre-create the worker log dir (crash-loop guard, MUST precede the', '# first systemctl start): systemd opens StandardOutput=append: files', '# BEFORE it creates LogsDirectory= dirs (systemd#27591), so on a fresh', '# instance the unit would fail exec with 209/STDOUT and crash-loop', '# forever without this. The unit keeps LogsDirectory= for ownership', '# management on subsequent starts.', 'mkdir -p /var/log/canopy-worker', 'chown ec2-user:ec2-user /var/log/canopy-worker', '', '# Start worker', 'systemctl daemon-reload', 'systemctl enable canopy-worker', 'systemctl start canopy-worker', '', '# ---- CloudWatch log shipping ----', '# Placed AFTER worker start: with set -euo pipefail, a yum/agent failure', '# here must not prevent the worker from running (shipping is best-effort).', 'yum install -y amazon-cloudwatch-agent logrotate', '', '# Bound on-disk growth; copytruncate keeps the fd the CW agent tails valid', '# (tiny copy->truncate loss window is acceptable for diagnostic logs).', `cat > /etc/logrotate.d/canopy-worker << 'ROTEOF'`, '/var/log/canopy-worker/worker.log {', ' size 10M', ' rotate 5', ' compress', ' copytruncate', ' missingok', ' notifempty', '}', 'ROTEOF', '# The config above only fires when logrotate actually runs; AL2023', '# presets may leave logrotate.timer disabled, and without it the size', '# cap never triggers and worker.log grows until the nano disk fills.', '# --now is idempotent if the timer is already enabled/running.', 'systemctl enable --now logrotate.timer', '', '# No retention_in_days here: CDK owns retention on the pre-created group.', `cat > /opt/aws/amazon-cloudwatch-agent/etc/canopy-worker-logs.json << 'CWEOF'`, '{', ' "logs": {', ' "logs_collected": {', ' "files": {', ' "collect_list": [', ' {', ' "file_path": "/var/log/canopy-worker/worker.log",', ` "log_group_name": "${this.workerLogGroup.logGroupName}",`, ' "log_stream_name": "{instance_id}",',
@@ -1 +1 @@
1
- {"version":3,"file":"cms-service.js","sourceRoot":"","sources":["../../src/constructs/cms-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cms-service.js","sourceRoot":"","sources":["../../src/constructs/cms-service.ts"],"names":[],"mappings":"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"}
@@ -91,7 +91,6 @@ var init_types = __esm({
91
91
  "number",
92
92
  "boolean",
93
93
  "datetime",
94
- "rich-text",
95
94
  "markdown",
96
95
  "mdx",
97
96
  "code"
@@ -4526,12 +4525,21 @@ var init_flatten = __esm({
4526
4525
  }
4527
4526
  });
4528
4527
 
4528
+ // ../canopycms/src/operating-mode/mode-env.ts
4529
+ var init_mode_env = __esm({
4530
+ "../canopycms/src/operating-mode/mode-env.ts"() {
4531
+ "use strict";
4532
+ init_logger();
4533
+ }
4534
+ });
4535
+
4529
4536
  // ../canopycms/src/config/validation.ts
4530
4537
  var init_validation2 = __esm({
4531
4538
  "../canopycms/src/config/validation.ts"() {
4532
4539
  "use strict";
4533
4540
  init_config();
4534
4541
  init_flatten();
4542
+ init_mode_env();
4535
4543
  }
4536
4544
  });
4537
4545
 
@@ -4584,6 +4592,7 @@ var init_operating_mode = __esm({
4584
4592
  init_client_safe_strategy();
4585
4593
  init_client_unsafe_strategy();
4586
4594
  init_deployment_name();
4595
+ init_mode_env();
4587
4596
  }
4588
4597
  });
4589
4598
 
@@ -7319,6 +7328,7 @@ var init_content_id_index = __esm({
7319
7328
  "use strict";
7320
7329
  init_id();
7321
7330
  init_error();
7331
+ init_logger();
7322
7332
  }
7323
7333
  });
7324
7334
 
@@ -28330,6 +28340,11 @@ var log5 = createDebugLogger({ prefix: "BranchWorkspace" });
28330
28340
  // ../canopycms/src/content-store.ts
28331
28341
  var import_gray_matter = __toESM(require_gray_matter(), 1);
28332
28342
  var import_yaml = __toESM(require_dist4(), 1);
28343
+
28344
+ // ../canopycms/src/utils/content-write-lock.ts
28345
+ init_error();
28346
+
28347
+ // ../canopycms/src/content-store.ts
28333
28348
  init_content_id_index();
28334
28349
  init_id();
28335
28350
  init_error();
@@ -30022,6 +30037,18 @@ var log9 = createDebugLogger({ prefix: "Context" });
30022
30037
 
30023
30038
  // ../canopycms/src/server.ts
30024
30039
  init_operating_mode();
30040
+
30041
+ // ../canopycms/src/resolve-canopy-user.ts
30042
+ init_logger();
30043
+
30044
+ // ../canopycms/src/user.ts
30045
+ var ANONYMOUS_USER = Object.freeze({
30046
+ type: "anonymous",
30047
+ userId: "anonymous",
30048
+ groups: []
30049
+ });
30050
+
30051
+ // ../canopycms/src/server.ts
30025
30052
  init_schema();
30026
30053
 
30027
30054
  // ../canopycms/src/entry-schema-registry.ts
@@ -30294,18 +30321,19 @@ function encode(pipeline, format2, quality) {
30294
30321
  return pipeline.png(options2);
30295
30322
  }
30296
30323
  }
30297
- function encodeSourceFormat(pipeline, sourceExt) {
30324
+ function encodeSourceFormat(pipeline, sourceExt, quality) {
30325
+ const options2 = quality !== void 0 ? { quality } : void 0;
30298
30326
  switch (sourceExt) {
30299
30327
  case "gif":
30300
30328
  return pipeline.gif();
30301
30329
  case "webp":
30302
- return pipeline.webp();
30330
+ return pipeline.webp(options2);
30303
30331
  case "jpg":
30304
30332
  case "jpeg":
30305
- return pipeline.jpeg();
30333
+ return pipeline.jpeg(options2);
30306
30334
  case "png":
30307
30335
  default:
30308
- return pipeline.png();
30336
+ return pipeline.png(options2);
30309
30337
  }
30310
30338
  }
30311
30339
  async function applyTransform(input, directives) {
@@ -30340,7 +30368,7 @@ async function applyTransform(input, directives) {
30340
30368
  if (resize?.width) {
30341
30369
  pipeline = pipeline.resize({ width: resize.width, withoutEnlargement: true });
30342
30370
  }
30343
- pipeline = format2 ? encode(pipeline, format2, quality) : encodeSourceFormat(pipeline, sourceExt);
30371
+ pipeline = format2 ? encode(pipeline, format2, quality) : encodeSourceFormat(pipeline, sourceExt, quality);
30344
30372
  const data = await pipeline.toBuffer();
30345
30373
  if (data.byteLength > MAX_OUTPUT_BYTES) {
30346
30374
  return {
@@ -2,6 +2,16 @@
2
2
  "lockfileVersion": 3,
3
3
  "requires": true,
4
4
  "packages": {
5
+ "node_modules/@emnapi/runtime": {
6
+ "version": "1.11.3",
7
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz",
8
+ "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==",
9
+ "license": "MIT",
10
+ "optional": true,
11
+ "dependencies": {
12
+ "tslib": "^2.4.0"
13
+ }
14
+ },
5
15
  "node_modules/@img/colour": {
6
16
  "version": "1.1.0",
7
17
  "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
@@ -18,9 +28,6 @@
18
28
  "cpu": [
19
29
  "arm64"
20
30
  ],
21
- "libc": [
22
- "glibc"
23
- ],
24
31
  "license": "LGPL-3.0-or-later",
25
32
  "optional": true,
26
33
  "os": [
@@ -37,9 +44,6 @@
37
44
  "cpu": [
38
45
  "arm64"
39
46
  ],
40
- "libc": [
41
- "glibc"
42
- ],
43
47
  "license": "Apache-2.0",
44
48
  "optional": true,
45
49
  "os": [
@@ -55,6 +59,22 @@
55
59
  "@img/sharp-libvips-linux-arm64": "1.3.2"
56
60
  }
57
61
  },
62
+ "node_modules/@img/sharp-wasm32": {
63
+ "version": "0.35.3",
64
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz",
65
+ "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==",
66
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
67
+ "optional": true,
68
+ "dependencies": {
69
+ "@emnapi/runtime": "^1.11.1"
70
+ },
71
+ "engines": {
72
+ "node": ">=20.9.0"
73
+ },
74
+ "funding": {
75
+ "url": "https://opencollective.com/libvips"
76
+ }
77
+ },
58
78
  "node_modules/detect-libc": {
59
79
  "version": "2.1.2",
60
80
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -124,6 +144,13 @@
124
144
  "optional": true
125
145
  }
126
146
  }
147
+ },
148
+ "node_modules/tslib": {
149
+ "version": "2.8.1",
150
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
151
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
152
+ "license": "0BSD",
153
+ "optional": true
127
154
  }
128
155
  }
129
156
  }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021-present Toyobayashi
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 @@
1
+ See [https://github.com/toyobayashi/emnapi](https://github.com/toyobayashi/emnapi)