canopycms 0.0.61-int.75 → 0.0.62
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/dist/ai/handler.js +1 -1
- package/dist/ai/handler.js.map +1 -1
- package/dist/ai/json-to-markdown.js +1 -2
- package/dist/ai/json-to-markdown.js.map +1 -1
- package/dist/api/__test__/mock-client.d.ts +5 -1
- package/dist/api/__test__/mock-client.d.ts.map +1 -1
- package/dist/api/__test__/mock-client.js +9 -2
- package/dist/api/__test__/mock-client.js.map +1 -1
- package/dist/api/admin-branch-health.d.ts +36 -1
- package/dist/api/admin-branch-health.d.ts.map +1 -1
- package/dist/api/admin-branch-health.js +176 -2
- package/dist/api/admin-branch-health.js.map +1 -1
- package/dist/api/admin.d.ts +8 -1
- package/dist/api/admin.d.ts.map +1 -1
- package/dist/api/admin.js.map +1 -1
- package/dist/api/assets.d.ts.map +1 -1
- package/dist/api/assets.js +36 -4
- package/dist/api/assets.js.map +1 -1
- package/dist/api/branch-status.d.ts.map +1 -1
- package/dist/api/branch-status.js +56 -0
- package/dist/api/branch-status.js.map +1 -1
- package/dist/api/branch-withdraw.d.ts.map +1 -1
- package/dist/api/branch-withdraw.js +14 -3
- package/dist/api/branch-withdraw.js.map +1 -1
- package/dist/api/branch.d.ts +31 -2
- package/dist/api/branch.d.ts.map +1 -1
- package/dist/api/branch.js +268 -15
- package/dist/api/branch.js.map +1 -1
- package/dist/api/client.d.ts +5 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +6 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/comments.d.ts +2 -2
- package/dist/api/content.d.ts +11 -5
- package/dist/api/content.d.ts.map +1 -1
- package/dist/api/content.js +91 -10
- package/dist/api/content.js.map +1 -1
- package/dist/api/entries.d.ts +10 -0
- package/dist/api/entries.d.ts.map +1 -1
- package/dist/api/entries.js +51 -24
- package/dist/api/entries.js.map +1 -1
- package/dist/api/guards.d.ts.map +1 -1
- package/dist/api/guards.js +12 -5
- package/dist/api/guards.js.map +1 -1
- package/dist/api/permissions.d.ts +2 -2
- package/dist/api/permissions.d.ts.map +1 -1
- package/dist/api/permissions.js +51 -3
- package/dist/api/permissions.js.map +1 -1
- package/dist/api/reference-options.d.ts.map +1 -1
- package/dist/api/reference-options.js +10 -17
- package/dist/api/reference-options.js.map +1 -1
- package/dist/api/resolve-references.d.ts.map +1 -1
- package/dist/api/resolve-references.js +3 -1
- package/dist/api/resolve-references.js.map +1 -1
- package/dist/api/schema.d.ts +4 -4
- package/dist/api/schema.d.ts.map +1 -1
- package/dist/api/schema.js +16 -15
- package/dist/api/schema.js.map +1 -1
- package/dist/api/settings-helpers.d.ts.map +1 -1
- package/dist/api/settings-helpers.js +6 -5
- package/dist/api/settings-helpers.js.map +1 -1
- package/dist/assets/pipeline.d.ts +11 -2
- package/dist/assets/pipeline.d.ts.map +1 -1
- package/dist/assets/pipeline.js +114 -2
- package/dist/assets/pipeline.js.map +1 -1
- package/dist/assets/transform-directives.d.ts +18 -0
- package/dist/assets/transform-directives.d.ts.map +1 -1
- package/dist/assets/transform-directives.js +18 -0
- package/dist/assets/transform-directives.js.map +1 -1
- package/dist/assets/transform.d.ts.map +1 -1
- package/dist/assets/transform.js +20 -16
- package/dist/assets/transform.js.map +1 -1
- package/dist/auth/types.d.ts +29 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/protected-branch.d.ts +75 -0
- package/dist/authorization/protected-branch.d.ts.map +1 -1
- package/dist/authorization/protected-branch.js +39 -0
- package/dist/authorization/protected-branch.js.map +1 -1
- package/dist/branch-health.d.ts +13 -0
- package/dist/branch-health.d.ts.map +1 -1
- package/dist/branch-health.js +23 -0
- package/dist/branch-health.js.map +1 -1
- package/dist/branch-registry.d.ts.map +1 -1
- package/dist/branch-registry.js +5 -1
- package/dist/branch-registry.js.map +1 -1
- package/dist/branch-schema-cache.d.ts.map +1 -1
- package/dist/branch-schema-cache.js +9 -0
- package/dist/branch-schema-cache.js.map +1 -1
- package/dist/build/generate-ai-content.js +1 -1
- package/dist/build/generate-ai-content.js.map +1 -1
- package/dist/cli/cli.js +2215 -1280
- package/dist/cli/generate-ai-content.js +1158 -585
- package/dist/cli/init.d.ts +8 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +459 -152
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/project-detect.d.ts +89 -0
- package/dist/cli/project-detect.d.ts.map +1 -0
- package/dist/cli/project-detect.js +240 -0
- package/dist/cli/project-detect.js.map +1 -0
- package/dist/cli/template-files/Dockerfile.cms.template +30 -7
- package/dist/cli/template-files/canopycms.config.ts.template +7 -0
- package/dist/cli/template-files/cdk-app.ts.template +82 -0
- package/dist/cli/template-files/cdk.json.template +9 -0
- package/dist/cli/template-files/cms-stack.ts.template +130 -0
- package/dist/cli/template-files/deploy-cms.yml.template +125 -13
- package/dist/cli/template-files/dockerignore.template +2 -1
- package/dist/cli/templates.d.ts +26 -2
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +36 -4
- package/dist/cli/templates.js.map +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/config/schemas/config.d.ts +2 -3
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +21 -1
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config/schemas/field.d.ts +15 -15
- package/dist/config/types.d.ts +2 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +0 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.d.ts +18 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +36 -12
- package/dist/config/validation.js.map +1 -1
- package/dist/content-id-index.d.ts +97 -5
- package/dist/content-id-index.d.ts.map +1 -1
- package/dist/content-id-index.js +170 -18
- package/dist/content-id-index.js.map +1 -1
- package/dist/content-reader.js +1 -1
- package/dist/content-reader.js.map +1 -1
- package/dist/content-store.d.ts +92 -7
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +445 -259
- package/dist/content-store.js.map +1 -1
- package/dist/dev-content-watcher.d.ts.map +1 -1
- package/dist/dev-content-watcher.js +4 -1
- package/dist/dev-content-watcher.js.map +1 -1
- package/dist/editor/BranchManager.d.ts +15 -0
- package/dist/editor/BranchManager.d.ts.map +1 -1
- package/dist/editor/BranchManager.js +61 -15
- package/dist/editor/BranchManager.js.map +1 -1
- package/dist/editor/CanopyEditor.d.ts.map +1 -1
- package/dist/editor/CanopyEditor.js +3 -3
- package/dist/editor/CanopyEditor.js.map +1 -1
- package/dist/editor/CanopyEditorPage.d.ts +9 -1
- package/dist/editor/CanopyEditorPage.d.ts.map +1 -1
- package/dist/editor/CanopyEditorPage.js +9 -2
- package/dist/editor/CanopyEditorPage.js.map +1 -1
- package/dist/editor/Editor.d.ts +9 -1
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +156 -60
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/FormRenderer.d.ts.map +1 -1
- package/dist/editor/FormRenderer.js +12 -0
- package/dist/editor/FormRenderer.js.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.d.ts.map +1 -1
- package/dist/editor/admin/SystemHealthPanel.js +14 -9
- package/dist/editor/admin/SystemHealthPanel.js.map +1 -1
- package/dist/editor/components/EditorHeader.d.ts +6 -0
- package/dist/editor/components/EditorHeader.d.ts.map +1 -1
- package/dist/editor/components/EditorHeader.js +76 -23
- package/dist/editor/components/EditorHeader.js.map +1 -1
- package/dist/editor/components/EntryCreateModal.d.ts +9 -1
- package/dist/editor/components/EntryCreateModal.d.ts.map +1 -1
- package/dist/editor/components/EntryCreateModal.js +25 -7
- package/dist/editor/components/EntryCreateModal.js.map +1 -1
- package/dist/editor/context/SWRProvider.d.ts +31 -0
- package/dist/editor/context/SWRProvider.d.ts.map +1 -0
- package/dist/editor/context/SWRProvider.js +12 -0
- package/dist/editor/context/SWRProvider.js.map +1 -0
- package/dist/editor/context/index.d.ts +3 -0
- package/dist/editor/context/index.d.ts.map +1 -1
- package/dist/editor/context/index.js +3 -0
- package/dist/editor/context/index.js.map +1 -1
- package/dist/editor/editor-utils.d.ts.map +1 -1
- package/dist/editor/editor-utils.js +8 -2
- package/dist/editor/editor-utils.js.map +1 -1
- package/dist/editor/fields/DateTimeField.d.ts +46 -0
- package/dist/editor/fields/DateTimeField.d.ts.map +1 -0
- package/dist/editor/fields/DateTimeField.js +66 -0
- package/dist/editor/fields/DateTimeField.js.map +1 -0
- package/dist/editor/fields/ImageField.d.ts.map +1 -1
- package/dist/editor/fields/ImageField.js +27 -3
- package/dist/editor/fields/ImageField.js.map +1 -1
- package/dist/editor/fields/NumberField.d.ts +34 -0
- package/dist/editor/fields/NumberField.d.ts.map +1 -0
- package/dist/editor/fields/NumberField.js +53 -0
- package/dist/editor/fields/NumberField.js.map +1 -0
- package/dist/editor/fields/NumberListField.d.ts +25 -0
- package/dist/editor/fields/NumberListField.d.ts.map +1 -0
- package/dist/editor/fields/NumberListField.js +53 -0
- package/dist/editor/fields/NumberListField.js.map +1 -0
- package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
- package/dist/editor/fields/ReferenceField.js +52 -31
- package/dist/editor/fields/ReferenceField.js.map +1 -1
- package/dist/editor/hooks/__test__/test-utils.d.ts +38 -3
- package/dist/editor/hooks/__test__/test-utils.d.ts.map +1 -1
- package/dist/editor/hooks/__test__/test-utils.js +50 -4
- package/dist/editor/hooks/__test__/test-utils.js.map +1 -1
- package/dist/editor/hooks/index.d.ts +4 -1
- package/dist/editor/hooks/index.d.ts.map +1 -1
- package/dist/editor/hooks/index.js +4 -1
- package/dist/editor/hooks/index.js.map +1 -1
- package/dist/editor/hooks/useBranchManager.d.ts +21 -1
- package/dist/editor/hooks/useBranchManager.d.ts.map +1 -1
- package/dist/editor/hooks/useBranchManager.js +183 -58
- package/dist/editor/hooks/useBranchManager.js.map +1 -1
- package/dist/editor/hooks/useBranchesData.d.ts +57 -0
- package/dist/editor/hooks/useBranchesData.d.ts.map +1 -0
- package/dist/editor/hooks/useBranchesData.js +69 -0
- package/dist/editor/hooks/useBranchesData.js.map +1 -0
- package/dist/editor/hooks/useCommentSystem.d.ts.map +1 -1
- package/dist/editor/hooks/useCommentSystem.js +24 -22
- package/dist/editor/hooks/useCommentSystem.js.map +1 -1
- package/dist/editor/hooks/useCommentsData.d.ts +29 -0
- package/dist/editor/hooks/useCommentsData.d.ts.map +1 -0
- package/dist/editor/hooks/useCommentsData.js +40 -0
- package/dist/editor/hooks/useCommentsData.js.map +1 -0
- package/dist/editor/hooks/useDraftManager.d.ts +8 -0
- package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
- package/dist/editor/hooks/useDraftManager.js +290 -36
- package/dist/editor/hooks/useDraftManager.js.map +1 -1
- package/dist/editor/hooks/useEntriesData.d.ts +35 -0
- package/dist/editor/hooks/useEntriesData.d.ts.map +1 -0
- package/dist/editor/hooks/useEntriesData.js +96 -0
- package/dist/editor/hooks/useEntriesData.js.map +1 -0
- package/dist/editor/hooks/useEntryManager.d.ts +29 -15
- package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
- package/dist/editor/hooks/useEntryManager.js +284 -119
- package/dist/editor/hooks/useEntryManager.js.map +1 -1
- package/dist/editor/hooks/usePermissionManager.d.ts +2 -2
- package/dist/editor/hooks/usePermissionManager.d.ts.map +1 -1
- package/dist/editor/hooks/usePermissionManager.js +11 -9
- package/dist/editor/hooks/usePermissionManager.js.map +1 -1
- package/dist/editor/hooks/useReferenceResolution.d.ts.map +1 -1
- package/dist/editor/hooks/useReferenceResolution.js +24 -1
- package/dist/editor/hooks/useReferenceResolution.js.map +1 -1
- package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -1
- package/dist/editor/media/MediaLibraryBody.js +12 -2
- package/dist/editor/media/MediaLibraryBody.js.map +1 -1
- package/dist/editor/permission-manager/GroupSelector.d.ts.map +1 -1
- package/dist/editor/permission-manager/GroupSelector.js +7 -2
- package/dist/editor/permission-manager/GroupSelector.js.map +1 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts +3 -3
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.d.ts.map +1 -1
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js +1 -0
- package/dist/editor/permission-manager/hooks/useGroupsAndUsers.js.map +1 -1
- package/dist/editor/permission-manager/types.d.ts +6 -4
- package/dist/editor/permission-manager/types.d.ts.map +1 -1
- package/dist/editor/test-setup.js +8 -0
- package/dist/editor/test-setup.js.map +1 -1
- package/dist/editor/theme.d.ts +8 -8
- package/dist/git-manager.d.ts +175 -14
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +354 -39
- package/dist/git-manager.js.map +1 -1
- package/dist/github-service.d.ts.map +1 -1
- package/dist/github-service.js +13 -7
- package/dist/github-service.js.map +1 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +78 -29
- package/dist/http/handler.js.map +1 -1
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +40 -3
- package/dist/http/router.js.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.d.ts.map +1 -1
- package/dist/operating-mode/client-unsafe-strategy.js +7 -8
- package/dist/operating-mode/client-unsafe-strategy.js.map +1 -1
- package/dist/operating-mode/deployment-name-fixtures.d.ts +29 -0
- package/dist/operating-mode/deployment-name-fixtures.d.ts.map +1 -0
- package/dist/operating-mode/deployment-name-fixtures.js +55 -0
- package/dist/operating-mode/deployment-name-fixtures.js.map +1 -0
- package/dist/operating-mode/deployment-name.d.ts +37 -0
- package/dist/operating-mode/deployment-name.d.ts.map +1 -0
- package/dist/operating-mode/deployment-name.js +86 -0
- package/dist/operating-mode/deployment-name.js.map +1 -0
- package/dist/operating-mode/index.d.ts +6 -1
- package/dist/operating-mode/index.d.ts.map +1 -1
- package/dist/operating-mode/index.js +10 -1
- package/dist/operating-mode/index.js.map +1 -1
- package/dist/operating-mode/mode-env.d.ts +58 -0
- package/dist/operating-mode/mode-env.d.ts.map +1 -0
- package/dist/operating-mode/mode-env.js +97 -0
- package/dist/operating-mode/mode-env.js.map +1 -0
- package/dist/operating-mode/types.d.ts +13 -3
- package/dist/operating-mode/types.d.ts.map +1 -1
- package/dist/paths/branch-name.d.ts +38 -0
- package/dist/paths/branch-name.d.ts.map +1 -1
- package/dist/paths/branch-name.js +46 -0
- package/dist/paths/branch-name.js.map +1 -1
- package/dist/paths/index.d.ts +1 -1
- package/dist/paths/index.d.ts.map +1 -1
- package/dist/paths/index.js +1 -1
- package/dist/paths/index.js.map +1 -1
- package/dist/reference-resolver.d.ts +6 -2
- package/dist/reference-resolver.d.ts.map +1 -1
- package/dist/reference-resolver.js +8 -1
- package/dist/reference-resolver.js.map +1 -1
- package/dist/resolve-canopy-user.d.ts +34 -0
- package/dist/resolve-canopy-user.d.ts.map +1 -0
- package/dist/resolve-canopy-user.js +55 -0
- package/dist/resolve-canopy-user.js.map +1 -0
- package/dist/schema/meta-loader.d.ts.map +1 -1
- package/dist/schema/meta-loader.js +10 -2
- package/dist/schema/meta-loader.js.map +1 -1
- package/dist/schema/schema-store.d.ts +64 -4
- package/dist/schema/schema-store.d.ts.map +1 -1
- package/dist/schema/schema-store.js +113 -30
- package/dist/schema/schema-store.js.map +1 -1
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -1
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +40 -6
- package/dist/services.js.map +1 -1
- package/dist/settings-workspace.d.ts +27 -2
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +142 -58
- package/dist/settings-workspace.js.map +1 -1
- package/dist/types.d.ts +73 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/content-write-lock.d.ts +127 -0
- package/dist/utils/content-write-lock.d.ts.map +1 -0
- package/dist/utils/content-write-lock.js +170 -0
- package/dist/utils/content-write-lock.js.map +1 -0
- package/dist/utils/debug.d.ts +11 -0
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +12 -1
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/error.d.ts +1 -1
- package/dist/utils/error.js +1 -1
- package/dist/utils/git.d.ts +54 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +91 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/logger.d.ts +71 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +85 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/sanitize-href.d.ts +28 -3
- package/dist/utils/sanitize-href.d.ts.map +1 -1
- package/dist/utils/sanitize-href.js +64 -6
- package/dist/utils/sanitize-href.js.map +1 -1
- package/dist/validation/entry-link-validator.d.ts +1 -1
- package/dist/validation/entry-link-validator.js +3 -3
- package/dist/validation/entry-link-validator.js.map +1 -1
- package/dist/validation/entry-type-reference-validator.d.ts +33 -0
- package/dist/validation/entry-type-reference-validator.d.ts.map +1 -0
- package/dist/validation/entry-type-reference-validator.js +110 -0
- package/dist/validation/entry-type-reference-validator.js.map +1 -0
- package/dist/validation/entry-validator.js +1 -1
- package/dist/validation/entry-validator.js.map +1 -1
- package/dist/worker/cms-worker.d.ts +245 -3
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +1084 -253
- package/dist/worker/cms-worker.js.map +1 -1
- package/dist/worker/log.d.ts +61 -0
- package/dist/worker/log.d.ts.map +1 -0
- package/dist/worker/log.js +74 -0
- package/dist/worker/log.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CanopyCMS infrastructure: VPC + EFS + CMS Lambda + EC2 worker, and
|
|
3
|
+
* optionally CloudFront + Route53 in front of the Lambda's Function URL.
|
|
4
|
+
*
|
|
5
|
+
* This file is yours to edit -- `canopycms init-deploy aws` will not overwrite
|
|
6
|
+
* it without `--force`. The comments below mark the settings that have a
|
|
7
|
+
* silent-failure mode; the rest is ordinary CDK.
|
|
8
|
+
*
|
|
9
|
+
* See docs/deploying-to-aws.md for the full walkthrough, including the media
|
|
10
|
+
* (AssetSupport) and multi-deployment cases.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { Stack, StackProps } from 'aws-cdk-lib'
|
|
14
|
+
import { Construct } from 'constructs'
|
|
15
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda'
|
|
16
|
+
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
|
|
17
|
+
import { Platform } from 'aws-cdk-lib/aws-ecr-assets'
|
|
18
|
+
import { CanopyCmsService, CanopyCmsDistribution } from 'canopycms-cdk'
|
|
19
|
+
|
|
20
|
+
export interface CmsStackProps extends StackProps {
|
|
21
|
+
/** GitHub repository the EC2 worker pushes branches and opens PRs against. */
|
|
22
|
+
githubOwner: string
|
|
23
|
+
githubRepo: string
|
|
24
|
+
/** FULL Secrets Manager ARN, including the random six-character suffix. */
|
|
25
|
+
githubTokenSecretArn: string
|
|
26
|
+
/** FULL Secrets Manager ARN, including the random six-character suffix. */
|
|
27
|
+
clerkSecretKeySecretArn: string
|
|
28
|
+
/** Clerk's public JWKS PEM, for networkless session verification. */
|
|
29
|
+
clerkJwtKey: string
|
|
30
|
+
/** Clerk publishable key, baked into the client bundle at image-build time. */
|
|
31
|
+
clerkPublishableKey: string
|
|
32
|
+
/** Comma-separated Clerk user IDs granted admin on first boot. */
|
|
33
|
+
bootstrapAdminIds: string
|
|
34
|
+
/** Namespaces this deployment's settings branch (`canopycms-settings-{name}`). */
|
|
35
|
+
deploymentName: string
|
|
36
|
+
/** Optional CloudFront domain, e.g. 'cms.docs.example.org'. */
|
|
37
|
+
domainName?: string
|
|
38
|
+
/** Optional Route53 hosted zone domain, e.g. 'example.org'. */
|
|
39
|
+
hostedZoneDomain?: string
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export class CmsStack extends Stack {
|
|
43
|
+
constructor(scope: Construct, id: string, props: CmsStackProps) {
|
|
44
|
+
super(scope, id, props)
|
|
45
|
+
|
|
46
|
+
// fromSecretCompleteArn, NOT fromSecretNameV2: `secretsArns` below is
|
|
47
|
+
// written verbatim into the worker's IAM policy, so a partial or
|
|
48
|
+
// name-based ARN never matches the real secret and the worker fails with
|
|
49
|
+
// AccessDenied at boot rather than at deploy.
|
|
50
|
+
const githubToken = secretsmanager.Secret.fromSecretCompleteArn(
|
|
51
|
+
this,
|
|
52
|
+
'GitHubToken',
|
|
53
|
+
props.githubTokenSecretArn,
|
|
54
|
+
)
|
|
55
|
+
const clerkSecretKey = secretsmanager.Secret.fromSecretCompleteArn(
|
|
56
|
+
this,
|
|
57
|
+
'ClerkSecret',
|
|
58
|
+
props.clerkSecretKeySecretArn,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
const cmsService = new CanopyCmsService(this, 'CmsService', {
|
|
62
|
+
// `cdk deploy` builds this image and publishes it to the CDK bootstrap
|
|
63
|
+
// assets repository -- it is the ONLY thing that ships CMS code. Do not
|
|
64
|
+
// pair it with a separate ECR push plus `aws lambda
|
|
65
|
+
// update-function-code`: that builds the image twice and leaves the
|
|
66
|
+
// function's image URI out of sync with CloudFormation, so the next
|
|
67
|
+
// `cdk deploy` touching the function silently reverts your code.
|
|
68
|
+
cmsDockerImage: lambda.DockerImageCode.fromImageAsset('.', {
|
|
69
|
+
file: 'Dockerfile.cms',
|
|
70
|
+
// The image platform and the Lambda architecture must agree, or the
|
|
71
|
+
// function fails at invoke with an exec-format error. Building on
|
|
72
|
+
// Apple Silicon defaults to arm64, so arm64 is the pairing that works
|
|
73
|
+
// both locally and on an x86 CI runner.
|
|
74
|
+
platform: Platform.LINUX_ARM64,
|
|
75
|
+
// Next.js inlines NEXT_PUBLIC_* into the CLIENT bundle during
|
|
76
|
+
// `next build`, so these have to reach the image BUILD. A Lambda
|
|
77
|
+
// environment variable would be far too late.
|
|
78
|
+
buildArgs: {
|
|
79
|
+
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: props.clerkPublishableKey,
|
|
80
|
+
// The browser half of the operating mode. The server half is the
|
|
81
|
+
// Lambda's CANOPY_MODE, set by CanopyCmsService; this one decides
|
|
82
|
+
// what the editor bundle believes (Clerk auth rather than dev auth,
|
|
83
|
+
// and the prod feature flags). The image's own `next build` stays in
|
|
84
|
+
// dev mode either way -- see Dockerfile.cms.
|
|
85
|
+
NEXT_PUBLIC_CANOPY_MODE: 'prod',
|
|
86
|
+
},
|
|
87
|
+
}),
|
|
88
|
+
architecture: lambda.Architecture.ARM_64,
|
|
89
|
+
|
|
90
|
+
githubOwner: props.githubOwner,
|
|
91
|
+
githubRepo: props.githubRepo,
|
|
92
|
+
deploymentName: props.deploymentName,
|
|
93
|
+
|
|
94
|
+
// Secrets the EC2 worker reads. The Lambda needs none of them.
|
|
95
|
+
secretsArns: [githubToken.secretArn, clerkSecretKey.secretArn],
|
|
96
|
+
githubTokenSecretArn: githubToken.secretArn,
|
|
97
|
+
clerkSecretKeySecretArn: clerkSecretKey.secretArn,
|
|
98
|
+
|
|
99
|
+
// Lambda environment: public config only, never secrets.
|
|
100
|
+
environment: {
|
|
101
|
+
CANOPY_AUTH_MODE: 'clerk',
|
|
102
|
+
CLERK_JWT_KEY: props.clerkJwtKey,
|
|
103
|
+
CANOPY_BOOTSTRAP_ADMIN_IDS: props.bootstrapAdminIds,
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
memorySize: 2048,
|
|
107
|
+
reservedConcurrency: 10,
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
// Media support (uploads, on-demand image transforms). Uncomment to give
|
|
111
|
+
// the deployed editor an asset backend, pass `assetBucket:
|
|
112
|
+
// assetSupport.bucket` to CanopyCmsService above, and wire
|
|
113
|
+
// `assetSupport.cloudFrontBehaviors` into the distribution below. See the
|
|
114
|
+
// assets section of docs/deploying-to-aws.md.
|
|
115
|
+
//
|
|
116
|
+
// const assetSupport = new AssetSupport(this, 'Assets', {})
|
|
117
|
+
|
|
118
|
+
// CloudFront + Route53, only when a domain is configured. Skipping this
|
|
119
|
+
// leaves `cmsService.functionUrl` as the entry point, which is enough to
|
|
120
|
+
// exercise the editor and is what keeps a credential-free `cdk synth`
|
|
121
|
+
// working -- HostedZone.fromLookup below needs real AWS context.
|
|
122
|
+
if (props.domainName && props.hostedZoneDomain) {
|
|
123
|
+
new CanopyCmsDistribution(this, 'CmsDist', {
|
|
124
|
+
functionUrl: cmsService.functionUrl,
|
|
125
|
+
domainName: props.domainName,
|
|
126
|
+
hostedZoneDomain: props.hostedZoneDomain,
|
|
127
|
+
})
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -1,35 +1,147 @@
|
|
|
1
|
-
# CanopyCMS deployment workflow
|
|
2
|
-
#
|
|
1
|
+
# CanopyCMS deployment workflow.
|
|
2
|
+
#
|
|
3
|
+
# `cdk deploy` is the ONLY thing that ships code here, deliberately.
|
|
4
|
+
#
|
|
5
|
+
# The generated CDK stack passes the CMS image to CanopyCmsService as
|
|
6
|
+
# `lambda.DockerImageCode.fromImageAsset('.', { file: 'Dockerfile.cms' })` -- a
|
|
7
|
+
# CDK-built asset. `cdk deploy` builds that image, publishes it to the CDK
|
|
8
|
+
# bootstrap assets repository, and points the Lambda at it as part of the
|
|
9
|
+
# CloudFormation change set.
|
|
10
|
+
#
|
|
11
|
+
# So do NOT add a separate `docker build` + push to your own ECR repo followed
|
|
12
|
+
# by `aws lambda update-function-code`. That builds the image twice and leaves
|
|
13
|
+
# the function's image URI out of sync with CloudFormation's view of it -- the
|
|
14
|
+
# next `cdk deploy` that touches the function silently reverts your code to the
|
|
15
|
+
# CDK asset. If you want to control the image tag yourself, switch the stack to
|
|
16
|
+
# `DockerImageCode.fromEcr(repo, { tagOrDigest })` and keep `cdk deploy` as the
|
|
17
|
+
# single deployer; don't run both mechanisms.
|
|
18
|
+
#
|
|
19
|
+
# `cdk deploy` also rolls the EC2 worker (CanopyCmsService gives its Auto
|
|
20
|
+
# Scaling Group a rolling UpdatePolicy), so a worker code change reaches the
|
|
21
|
+
# running instance. Expect a short worker outage during the replacement; the
|
|
22
|
+
# task queue and branch workspaces live on EFS and are picked up on boot.
|
|
23
|
+
#
|
|
24
|
+
# This workflow deploys the stack BY NAME rather than with `--all`. If you keep
|
|
25
|
+
# other CDK stacks in this repository, `--all` would deploy those too, on every
|
|
26
|
+
# content merge -- so if you rename the stack in infrastructure/bin/app.ts,
|
|
27
|
+
# rename it in the Deploy step below as well.
|
|
28
|
+
#
|
|
29
|
+
# Before this workflow can run:
|
|
30
|
+
# 1. Bootstrap CDK in the target account/region: `cdk bootstrap`.
|
|
31
|
+
# `cdk deploy` needs it; `aws lambda update-function-code` did not, so
|
|
32
|
+
# this is easy to miss when migrating from an update-only pipeline.
|
|
33
|
+
# 2. Create an IAM role your repo can assume via GitHub OIDC, trusted for
|
|
34
|
+
# this repository, able to assume the CDK bootstrap roles
|
|
35
|
+
# (cdk-hnb659fds-*-deploy-role, -file-publishing-role,
|
|
36
|
+
# -image-publishing-role, -lookup-role). This is a broader grant than an
|
|
37
|
+
# update-function-code pipeline needed -- `cdk deploy` mutates
|
|
38
|
+
# infrastructure.
|
|
39
|
+
# 3. Install the CDK dependencies the app entry point needs:
|
|
40
|
+
# `{{ADD_DEV}} canopycms-cdk aws-cdk-lib constructs tsx aws-cdk`
|
|
41
|
+
# 4. Set these repository secrets (Settings -> Secrets and variables ->
|
|
42
|
+
# Actions -> Secrets). Every one of them is read by `required()` in
|
|
43
|
+
# infrastructure/bin/app.ts, so a missing value fails the deploy at synth:
|
|
44
|
+
# AWS_DEPLOY_ROLE_ARN OIDC role ARN from step 2
|
|
45
|
+
# GITHUB_TOKEN_SECRET_ARN FULL Secrets Manager ARN (with suffix)
|
|
46
|
+
# CLERK_SECRET_KEY_SECRET_ARN FULL Secrets Manager ARN (with suffix)
|
|
47
|
+
# CLERK_JWT_KEY Clerk's public JWKS PEM
|
|
48
|
+
# 5. Set these repository variables (same page -> Variables):
|
|
49
|
+
# AWS_REGION e.g. us-east-1
|
|
50
|
+
# NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY or the editor ships unable to sign in
|
|
51
|
+
# CANOPY_BOOTSTRAP_ADMIN_IDS comma-separated Clerk user IDs
|
|
52
|
+
# Optional:
|
|
53
|
+
# CANOPYCMS_DEPLOYMENT_NAME defaults to 'prod'
|
|
54
|
+
# CMS_DOMAIN_NAME enables CloudFront + Route53
|
|
55
|
+
# CMS_HOSTED_ZONE_DOMAIN required alongside CMS_DOMAIN_NAME
|
|
3
56
|
|
|
4
57
|
name: Deploy CMS
|
|
58
|
+
|
|
5
59
|
on:
|
|
6
60
|
push:
|
|
61
|
+
branches: [{{DEFAULT_BRANCH}}]
|
|
7
62
|
paths:
|
|
8
63
|
- 'app/**'
|
|
9
64
|
- 'src/**'
|
|
10
65
|
- 'content/**'
|
|
11
66
|
- 'canopycms.config.ts'
|
|
12
67
|
- 'Dockerfile.cms'
|
|
68
|
+
- 'infrastructure/**'
|
|
69
|
+
- 'cdk.json'
|
|
70
|
+
# A dependency bump alone changes what the image contains, so it has to
|
|
71
|
+
# trigger a deploy too -- otherwise the Lambda keeps running the old
|
|
72
|
+
# dependency tree until the next content change happens to ship it.
|
|
73
|
+
- 'package.json'
|
|
74
|
+
- '{{LOCKFILE}}'
|
|
13
75
|
workflow_dispatch:
|
|
14
76
|
|
|
77
|
+
concurrency:
|
|
78
|
+
# Two overlapping `cdk deploy` runs against one stack fail on
|
|
79
|
+
# UPDATE_IN_PROGRESS. Queue rather than cancel: cancelling mid-deploy leaves
|
|
80
|
+
# the stack in an in-progress state that needs manual recovery.
|
|
81
|
+
group: deploy-cms
|
|
82
|
+
cancel-in-progress: false
|
|
83
|
+
|
|
15
84
|
jobs:
|
|
16
|
-
|
|
85
|
+
deploy:
|
|
17
86
|
runs-on: ubuntu-latest
|
|
87
|
+
permissions:
|
|
88
|
+
id-token: write # required for OIDC
|
|
89
|
+
contents: read
|
|
90
|
+
|
|
18
91
|
steps:
|
|
19
92
|
- uses: actions/checkout@v4
|
|
93
|
+
|
|
20
94
|
- uses: actions/setup-node@v4
|
|
21
95
|
with:
|
|
22
96
|
node-version: 20
|
|
23
97
|
|
|
24
|
-
|
|
25
|
-
|
|
98
|
+
- name: Install dependencies
|
|
99
|
+
run: {{CI_INSTALL}}
|
|
100
|
+
|
|
101
|
+
# cdk.json runs `node --import tsx infrastructure/bin/app.ts`, which
|
|
102
|
+
# imports canopycms-cdk, aws-cdk-lib and constructs. Missing any of them
|
|
103
|
+
# otherwise surfaces as an ERR_MODULE_NOT_FOUND buried in `cdk deploy`
|
|
104
|
+
# output, several minutes in.
|
|
26
105
|
#
|
|
27
|
-
#
|
|
28
|
-
# the
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
|
|
106
|
+
# aws-cdk is checked too even though nothing imports it: it is the CLI
|
|
107
|
+
# the Deploy step invokes as `npx cdk`. Absent from node_modules, npx
|
|
108
|
+
# silently fetches whatever version is current that day instead of
|
|
109
|
+
# failing -- so the deploy still runs, just not reproducibly. Keep this
|
|
110
|
+
# list in step with CDK_DEPENDENCIES in cli/project-detect.ts, which is
|
|
111
|
+
# what `canopycms init-deploy` tells adopters to install.
|
|
112
|
+
- name: Check CDK dependencies are installed
|
|
32
113
|
run: |
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
114
|
+
missing=""
|
|
115
|
+
for pkg in tsx aws-cdk-lib constructs canopycms-cdk aws-cdk; do
|
|
116
|
+
[ -e "node_modules/$pkg" ] || missing="$missing $pkg"
|
|
117
|
+
done
|
|
118
|
+
if [ -n "$missing" ]; then
|
|
119
|
+
echo "::error::Missing CDK dependencies:$missing"
|
|
120
|
+
echo "::error::Install them with: {{ADD_DEV}} canopycms-cdk aws-cdk-lib constructs tsx aws-cdk"
|
|
121
|
+
exit 1
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
- name: Configure AWS credentials
|
|
125
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
126
|
+
with:
|
|
127
|
+
role-to-assume: ${{ secrets.AWS_DEPLOY_ROLE_ARN }}
|
|
128
|
+
aws-region: ${{ vars.AWS_REGION }}
|
|
129
|
+
|
|
130
|
+
# Builds the CMS image, publishes it to the CDK assets repository, and
|
|
131
|
+
# applies the change set -- Lambda, EFS, CloudFront and the worker ASG
|
|
132
|
+
# in one operation.
|
|
133
|
+
#
|
|
134
|
+
# Every variable below is consumed by infrastructure/bin/app.ts. Keep
|
|
135
|
+
# this block in step with the `required()` calls there: a variable added
|
|
136
|
+
# in one place and not the other fails the deploy at synth.
|
|
137
|
+
- name: Deploy
|
|
138
|
+
env:
|
|
139
|
+
GITHUB_TOKEN_SECRET_ARN: ${{ secrets.GITHUB_TOKEN_SECRET_ARN }}
|
|
140
|
+
CLERK_SECRET_KEY_SECRET_ARN: ${{ secrets.CLERK_SECRET_KEY_SECRET_ARN }}
|
|
141
|
+
CLERK_JWT_KEY: ${{ secrets.CLERK_JWT_KEY }}
|
|
142
|
+
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ vars.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }}
|
|
143
|
+
CANOPY_BOOTSTRAP_ADMIN_IDS: ${{ vars.CANOPY_BOOTSTRAP_ADMIN_IDS }}
|
|
144
|
+
CANOPYCMS_DEPLOYMENT_NAME: ${{ vars.CANOPYCMS_DEPLOYMENT_NAME }}
|
|
145
|
+
CMS_DOMAIN_NAME: ${{ vars.CMS_DOMAIN_NAME }}
|
|
146
|
+
CMS_HOSTED_ZONE_DOMAIN: ${{ vars.CMS_HOSTED_ZONE_DOMAIN }}
|
|
147
|
+
run: npx cdk deploy {{STACK_NAME}} --require-approval never
|
|
@@ -10,4 +10,5 @@ cdk.out
|
|
|
10
10
|
.env*
|
|
11
11
|
|
|
12
12
|
# Do NOT ignore vendor/ -- file: dependencies (vendored tarballs) must reach
|
|
13
|
-
# the Docker build context, or
|
|
13
|
+
# the Docker build context, or the install step in Dockerfile.cms will fail to
|
|
14
|
+
# resolve them.
|
package/dist/cli/templates.d.ts
CHANGED
|
@@ -28,7 +28,31 @@ export declare function middleware(options: {
|
|
|
28
28
|
export declare function nextConfig(options: {
|
|
29
29
|
staticBuild: boolean;
|
|
30
30
|
}): Promise<string>;
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* CloudFormation stack id used by the scaffolded CDK app.
|
|
33
|
+
*
|
|
34
|
+
* Shared rather than written twice: `infrastructure/bin/app.ts` names the
|
|
35
|
+
* stack, and the deploy workflow deploys it BY NAME (not `--all`, which would
|
|
36
|
+
* also deploy any unrelated stacks an adopter keeps in the same repo). Those
|
|
37
|
+
* two must agree, so they read the same constant.
|
|
38
|
+
*/
|
|
39
|
+
export declare const SCAFFOLD_STACK_NAME = "CanopyCms";
|
|
40
|
+
export declare function dockerfileCms(options: {
|
|
41
|
+
copy: string;
|
|
42
|
+
install: string;
|
|
43
|
+
build: string;
|
|
44
|
+
}): Promise<string>;
|
|
32
45
|
export declare function dockerignore(): Promise<string>;
|
|
33
|
-
export declare function githubWorkflowCms(
|
|
46
|
+
export declare function githubWorkflowCms(options: {
|
|
47
|
+
defaultBranch: string;
|
|
48
|
+
lockfile: string;
|
|
49
|
+
ciInstall: string;
|
|
50
|
+
addDev: string;
|
|
51
|
+
}): Promise<string>;
|
|
52
|
+
export declare function cdkJson(): Promise<string>;
|
|
53
|
+
export declare function cdkApp(options: {
|
|
54
|
+
githubOwner: string;
|
|
55
|
+
githubRepo: string;
|
|
56
|
+
}): Promise<string>;
|
|
57
|
+
export declare function cmsStack(): Promise<string>;
|
|
34
58
|
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAgClB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAgClB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEvD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjF;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAC9B,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,YAAY,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAE9C,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAEpD;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAE/C;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlB;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD"}
|
package/dist/cli/templates.js
CHANGED
|
@@ -80,13 +80,45 @@ export async function nextConfig(options) {
|
|
|
80
80
|
: 'next.config.ts.template';
|
|
81
81
|
return readTemplate(templateName);
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
/**
|
|
84
|
+
* CloudFormation stack id used by the scaffolded CDK app.
|
|
85
|
+
*
|
|
86
|
+
* Shared rather than written twice: `infrastructure/bin/app.ts` names the
|
|
87
|
+
* stack, and the deploy workflow deploys it BY NAME (not `--all`, which would
|
|
88
|
+
* also deploy any unrelated stacks an adopter keeps in the same repo). Those
|
|
89
|
+
* two must agree, so they read the same constant.
|
|
90
|
+
*/
|
|
91
|
+
export const SCAFFOLD_STACK_NAME = 'CanopyCms';
|
|
92
|
+
export async function dockerfileCms(options) {
|
|
93
|
+
const template = await readTemplate('Dockerfile.cms.template');
|
|
94
|
+
return template
|
|
95
|
+
.replace('{{DOCKER_COPY}}', options.copy)
|
|
96
|
+
.replace('{{DOCKER_INSTALL}}', options.install)
|
|
97
|
+
.replace('{{DOCKER_BUILD}}', options.build);
|
|
85
98
|
}
|
|
86
99
|
export async function dockerignore() {
|
|
87
100
|
return readTemplate('dockerignore.template');
|
|
88
101
|
}
|
|
89
|
-
export async function githubWorkflowCms() {
|
|
90
|
-
|
|
102
|
+
export async function githubWorkflowCms(options) {
|
|
103
|
+
const template = await readTemplate('deploy-cms.yml.template');
|
|
104
|
+
return template
|
|
105
|
+
.replace('{{DEFAULT_BRANCH}}', options.defaultBranch)
|
|
106
|
+
.replace('{{LOCKFILE}}', options.lockfile)
|
|
107
|
+
.replace('{{CI_INSTALL}}', options.ciInstall)
|
|
108
|
+
.replaceAll('{{ADD_DEV}}', options.addDev)
|
|
109
|
+
.replace('{{STACK_NAME}}', SCAFFOLD_STACK_NAME);
|
|
110
|
+
}
|
|
111
|
+
export async function cdkJson() {
|
|
112
|
+
return readTemplate('cdk.json.template');
|
|
113
|
+
}
|
|
114
|
+
export async function cdkApp(options) {
|
|
115
|
+
const template = await readTemplate('cdk-app.ts.template');
|
|
116
|
+
return template
|
|
117
|
+
.replace('{{STACK_NAME}}', SCAFFOLD_STACK_NAME)
|
|
118
|
+
.replace('{{GITHUB_OWNER}}', options.githubOwner)
|
|
119
|
+
.replace('{{GITHUB_REPO}}', options.githubRepo);
|
|
120
|
+
}
|
|
121
|
+
export async function cmsStack() {
|
|
122
|
+
return readTemplate('cms-stack.ts.template');
|
|
91
123
|
}
|
|
92
124
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAE5D,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAGrC;IACC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,8BAA8B,CAAC,CAAA;IACnE,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,kEAAkE;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW;QACpC,CAAC,CAAC,+FAA+F;YAC/F,6DAA6D;YAC7D,8EAA8E;QAChF,CAAC,CAAC,EAAE,CAAA;IACN,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAGnC;IACC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzD,MAAM,WAAW,GACf,OAAO,CAAC,YAAY,KAAK,OAAO;QAC9B,CAAC,CAAC,wHAAwH;QAC1H,CAAC,CAAC,0DAA0D,CAAA;IAEhE,uFAAuF;IACvF,yFAAyF;IACzF,qFAAqF;IACrF,8EAA8E;IAC9E,MAAM,eAAe,GACnB,OAAO,CAAC,YAAY,KAAK,OAAO;QAC9B,CAAC,CAAC;YACE,qFAAqF;YACrF,uFAAuF;YACvF,oFAAoF;YACpF,sFAAsF;YACtF,8EAA8E;YAC9E,8BAA8B;YAC9B,oBAAoB;YACpB,6EAA6E;YAC7E,iEAAiE;YACjE,6BAA6B;SAC9B,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,0CAA0C,CAAA;IAEhD,OAAO,QAAQ;SACZ,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC;SACxC,OAAO,CAAC,uBAAuB,EAAE,eAAe,CAAC;SACjD,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAiC;IAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,CAAA;IACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAG9B;IACC,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAC1F,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAA;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAiC;IAC7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,CAAA;IAC3D,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0C;IACzE,MAAM,YAAY,GAChB,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAC9F,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAiC;IAChE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW;QACtC,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,yBAAyB,CAAA;IAC7B,OAAO,YAAY,CAAC,YAAY,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAInC;IACC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAC9D,OAAO,QAAQ;SACZ,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC;SACxC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC;SAC9C,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAKvC;IACC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAC9D,OAAO,QAAQ;SACZ,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,aAAa,CAAC;SACpD,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;SACzC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC;SAC5C,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;SACzC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,OAAO,YAAY,CAAC,mBAAmB,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAG5B;IACC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAA;IAC1D,OAAO,QAAQ;SACZ,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC9C,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC;SAChD,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAC9C,CAAC"}
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClD,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAClF,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACzF,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAClF,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA"}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAIZ,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA"}
|
|
@@ -197,6 +197,7 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
197
197
|
dev?: {
|
|
198
198
|
contentSync?: "off" | "warn" | undefined;
|
|
199
199
|
} | undefined;
|
|
200
|
+
settingsBranch?: string | undefined;
|
|
200
201
|
media?: {
|
|
201
202
|
adapter: "local";
|
|
202
203
|
publicBaseUrl?: string | undefined;
|
|
@@ -217,7 +218,6 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
217
218
|
defaultRemoteUrl?: string | undefined;
|
|
218
219
|
githubTokenEnvVar?: string | undefined;
|
|
219
220
|
allowNetworkRemoteInProd?: boolean | undefined;
|
|
220
|
-
settingsBranch?: string | undefined;
|
|
221
221
|
autoCreateSettingsPR?: boolean | undefined;
|
|
222
222
|
deploymentName?: string | undefined;
|
|
223
223
|
sourceRoot?: string | undefined;
|
|
@@ -240,6 +240,7 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
240
240
|
dev?: {
|
|
241
241
|
contentSync?: "off" | "warn" | undefined;
|
|
242
242
|
} | undefined;
|
|
243
|
+
settingsBranch?: string | undefined;
|
|
243
244
|
media?: {
|
|
244
245
|
adapter: "local";
|
|
245
246
|
publicBaseUrl?: string | undefined;
|
|
@@ -267,7 +268,6 @@ export declare const CanopyConfigSchema: z.ZodObject<{
|
|
|
267
268
|
githubTokenEnvVar?: string | undefined;
|
|
268
269
|
deployedAs?: "static" | "server" | undefined;
|
|
269
270
|
allowNetworkRemoteInProd?: boolean | undefined;
|
|
270
|
-
settingsBranch?: string | undefined;
|
|
271
271
|
autoCreateSettingsPR?: boolean | undefined;
|
|
272
272
|
deploymentName?: string | undefined;
|
|
273
273
|
contentRoot?: string | undefined;
|
|
@@ -311,7 +311,6 @@ export declare const getConfigDefaults: () => {
|
|
|
311
311
|
branchAccess: "allow" | "deny";
|
|
312
312
|
contentRoot: string;
|
|
313
313
|
githubTokenEnvVar: string;
|
|
314
|
-
deploymentName: string;
|
|
315
314
|
prodWorkspace: string;
|
|
316
315
|
};
|
|
317
316
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKjD,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,4BAA4B,8BAA4B,CAAA;AAIrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAM/B,CAAA;AACX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;KAElB,CAAA;AAClB,eAAO,MAAM,uBAAuB,2BAA6B,CAAA;AACjE,eAAO,MAAM,uBAAuB,2BAA+B,CAAA;AACnE,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,uBAAuB,aAAqB,CAAA;AACzD,eAAO,MAAM,uBAAuB,2BAAyC,CAAA;AAC7E,eAAO,MAAM,mBAAmB,4BAA0B,CAAA;AAC1D,eAAO,MAAM,gBAAgB,+CAAiD,CAAA;AAC9E,eAAO,MAAM,iBAAiB,qHAAwC,CAAA;AACtE,eAAO,MAAM,gBAAgB,4BAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,2BAA6B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,0CAA0C,CAAA;AAG3E,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAKjD,eAAO,MAAM,yBAAyB,4CAA4C,CAAA;AAClF,eAAO,MAAM,4BAA4B,8BAA4B,CAAA;AAIrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;EAM/B,CAAA;AACX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;KAElB,CAAA;AAClB,eAAO,MAAM,uBAAuB,2BAA6B,CAAA;AACjE,eAAO,MAAM,uBAAuB,2BAA+B,CAAA;AACnE,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,sBAAsB,aAAoB,CAAA;AACvD,eAAO,MAAM,uBAAuB,aAAqB,CAAA;AACzD,eAAO,MAAM,uBAAuB,2BAAyC,CAAA;AAC7E,eAAO,MAAM,mBAAmB,4BAA0B,CAAA;AAC1D,eAAO,MAAM,gBAAgB,+CAAiD,CAAA;AAC9E,eAAO,MAAM,iBAAiB,qHAAwC,CAAA;AACtE,eAAO,MAAM,gBAAgB,4BAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,2BAA6B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,0CAA0C,CAAA;AAG3E,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAGF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDpB,CAAA;AAEX;;;GAGG;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAA;AAe1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAQ5B,CAAA"}
|
|
@@ -82,6 +82,16 @@ export const CanopyConfigSchema = z
|
|
|
82
82
|
allowNetworkRemoteInProd: z.boolean().optional(),
|
|
83
83
|
settingsBranch: z.string().optional(),
|
|
84
84
|
autoCreateSettingsPR: z.boolean().optional(),
|
|
85
|
+
// Deliberately `deploymentNameSchema.optional()`, NOT `deploymentNameSchema` alone.
|
|
86
|
+
// deploymentNameSchema.default('prod') would make `parse(undefined)` resolve to
|
|
87
|
+
// the literal 'prod' instead of staying `undefined` — collapsing the
|
|
88
|
+
// env > config > modeDefault precedence chain that resolveDeploymentName
|
|
89
|
+
// (operating-mode/deployment-name.ts) implements: config would then always
|
|
90
|
+
// "win" over modeDefault (masking dev's real default of 'local'), and the env
|
|
91
|
+
// var would just be racing config's baked-in 'prod' instead of a true absence.
|
|
92
|
+
// `.optional()` here is what keeps an omitted deploymentName reaching
|
|
93
|
+
// resolveDeploymentName as `undefined`, so it can fall through to modeDefault.
|
|
94
|
+
// Do not "fix" this by removing `.optional()`.
|
|
85
95
|
deploymentName: deploymentNameSchema.optional(),
|
|
86
96
|
contentRoot: contentRootSchema.default('content'),
|
|
87
97
|
sourceRoot: sourceRootSchema.optional(),
|
|
@@ -109,6 +119,17 @@ export const CanopyConfigSchema = z
|
|
|
109
119
|
export const DEFAULT_PROD_WORKSPACE = '/mnt/efs/workspace';
|
|
110
120
|
// Note: `mode` has no default by design (SEC-C1) and is intentionally omitted here —
|
|
111
121
|
// operatingModeSchema.parse(undefined) would throw.
|
|
122
|
+
//
|
|
123
|
+
// `deploymentName` is ALSO deliberately omitted here (checked every caller,
|
|
124
|
+
// 2026-07-30: only packages/canopycms/src/services.ts reads from this return
|
|
125
|
+
// value, and only `.remoteName`; nothing ever read `.deploymentName`). Unlike
|
|
126
|
+
// the defaults below, deploymentName's real default is mode-dependent — 'prod'
|
|
127
|
+
// for ProdStrategy, 'local' for DevStrategy (see
|
|
128
|
+
// operating-mode/client-unsafe-strategy.ts's getSettingsBranchName, which
|
|
129
|
+
// resolves it via resolveDeploymentName) — and this accessor has no mode to
|
|
130
|
+
// select between them. Emitting `deploymentNameSchema.parse(undefined)`
|
|
131
|
+
// ('prod') here would silently lie for dev mode; better to have no caller of
|
|
132
|
+
// this than a mode-blind one.
|
|
112
133
|
export const getConfigDefaults = () => ({
|
|
113
134
|
baseBranch: defaultBaseBranchSchema.parse(undefined),
|
|
114
135
|
remoteName: defaultRemoteNameSchema.parse(undefined),
|
|
@@ -116,7 +137,6 @@ export const getConfigDefaults = () => ({
|
|
|
116
137
|
branchAccess: defaultBranchAccessSchema.parse(undefined),
|
|
117
138
|
contentRoot: contentRootSchema.parse(undefined),
|
|
118
139
|
githubTokenEnvVar: githubTokenEnvVarSchema.parse(undefined),
|
|
119
|
-
deploymentName: deploymentNameSchema.parse(undefined),
|
|
120
140
|
prodWorkspace: DEFAULT_PROD_WORKSPACE,
|
|
121
141
|
});
|
|
122
142
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/schemas/config.ts"],"names":[],"mappings":"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"}
|