@vendure/cloud 0.4.0 → 0.5.0-dev.20261016123507.ge07a06e
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/README.md +43 -10
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +9 -31
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js +13 -30
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/access/access.d.ts +5 -0
- package/dist/cli/commands/access/access.d.ts.map +1 -0
- package/dist/cli/commands/access/access.js +73 -0
- package/dist/cli/commands/access/access.js.map +1 -0
- package/dist/cli/commands/access/index.d.ts +2 -0
- package/dist/cli/commands/access/index.d.ts.map +1 -0
- package/dist/cli/commands/access/index.js +46 -0
- package/dist/cli/commands/access/index.js.map +1 -0
- package/dist/cli/commands/deployment/arguments.d.ts.map +1 -1
- package/dist/cli/commands/deployment/arguments.js +1 -8
- package/dist/cli/commands/deployment/arguments.js.map +1 -1
- package/dist/cli/commands/deployment/build-logs.d.ts.map +1 -1
- package/dist/cli/commands/deployment/build-logs.js +12 -16
- package/dist/cli/commands/deployment/build-logs.js.map +1 -1
- package/dist/cli/commands/deployment/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deployment/deploy.js +88 -45
- package/dist/cli/commands/deployment/deploy.js.map +1 -1
- package/dist/cli/commands/deployment/index.d.ts.map +1 -1
- package/dist/cli/commands/deployment/index.js +18 -30
- package/dist/cli/commands/deployment/index.js.map +1 -1
- package/dist/cli/commands/deployment/list.d.ts.map +1 -1
- package/dist/cli/commands/deployment/list.js +5 -5
- package/dist/cli/commands/deployment/list.js.map +1 -1
- package/dist/cli/commands/deployment/log-export.d.ts.map +1 -1
- package/dist/cli/commands/deployment/log-export.js +14 -27
- package/dist/cli/commands/deployment/log-export.js.map +1 -1
- package/dist/cli/commands/deployment/log-query-output.d.ts.map +1 -1
- package/dist/cli/commands/deployment/log-query-output.js +18 -32
- package/dist/cli/commands/deployment/log-query-output.js.map +1 -1
- package/dist/cli/commands/deployment/logs.d.ts.map +1 -1
- package/dist/cli/commands/deployment/logs.js +52 -72
- package/dist/cli/commands/deployment/logs.js.map +1 -1
- package/dist/cli/commands/deployment/options.d.ts.map +1 -1
- package/dist/cli/commands/deployment/options.js +11 -20
- package/dist/cli/commands/deployment/options.js.map +1 -1
- package/dist/cli/commands/deployment/plan-format.d.ts.map +1 -1
- package/dist/cli/commands/deployment/plan-format.js +2 -2
- package/dist/cli/commands/deployment/plan-format.js.map +1 -1
- package/dist/cli/commands/deployment/plan.d.ts.map +1 -1
- package/dist/cli/commands/deployment/plan.js +7 -8
- package/dist/cli/commands/deployment/plan.js.map +1 -1
- package/dist/cli/commands/deployment/recovery.d.ts.map +1 -1
- package/dist/cli/commands/deployment/recovery.js +25 -35
- package/dist/cli/commands/deployment/recovery.js.map +1 -1
- package/dist/cli/commands/deployment/rollback.d.ts.map +1 -1
- package/dist/cli/commands/deployment/rollback.js +58 -12
- package/dist/cli/commands/deployment/rollback.js.map +1 -1
- package/dist/cli/commands/deployment/shared.d.ts.map +1 -1
- package/dist/cli/commands/deployment/shared.js +4 -7
- package/dist/cli/commands/deployment/shared.js.map +1 -1
- package/dist/cli/commands/deployment/show.d.ts.map +1 -1
- package/dist/cli/commands/deployment/show.js +8 -9
- package/dist/cli/commands/deployment/show.js.map +1 -1
- package/dist/cli/commands/deployment/source.d.ts.map +1 -1
- package/dist/cli/commands/deployment/source.js +2 -2
- package/dist/cli/commands/deployment/source.js.map +1 -1
- package/dist/cli/commands/deployment/status.d.ts.map +1 -1
- package/dist/cli/commands/deployment/status.js +10 -11
- package/dist/cli/commands/deployment/status.js.map +1 -1
- package/dist/cli/commands/deployment/teardown.js +22 -31
- package/dist/cli/commands/deployment/teardown.js.map +1 -1
- package/dist/cli/commands/identity-context/context.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/context.js +3 -4
- package/dist/cli/commands/identity-context/context.js.map +1 -1
- package/dist/cli/commands/identity-context/index.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/index.js +16 -50
- package/dist/cli/commands/identity-context/index.js.map +1 -1
- package/dist/cli/commands/identity-context/keys.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/keys.js +13 -15
- package/dist/cli/commands/identity-context/keys.js.map +1 -1
- package/dist/cli/commands/identity-context/use.js +1 -1
- package/dist/cli/commands/identity-context/use.js.map +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +13 -20
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/project-config/config/build-fields.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/build-fields.js +2 -3
- package/dist/cli/commands/project-config/config/build-fields.js.map +1 -1
- package/dist/cli/commands/project-config/config/build.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/build.js +8 -9
- package/dist/cli/commands/project-config/config/build.js.map +1 -1
- package/dist/cli/commands/project-config/config/desired-state.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/desired-state.js +10 -12
- package/dist/cli/commands/project-config/config/desired-state.js.map +1 -1
- package/dist/cli/commands/project-config/config/email/domain.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/email/domain.js +12 -9
- package/dist/cli/commands/project-config/config/email/domain.js.map +1 -1
- package/dist/cli/commands/project-config/config/email/events.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/email/events.js +9 -9
- package/dist/cli/commands/project-config/config/email/events.js.map +1 -1
- package/dist/cli/commands/project-config/config/email/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/email/index.js +5 -6
- package/dist/cli/commands/project-config/config/email/index.js.map +1 -1
- package/dist/cli/commands/project-config/config/email/test-sending.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/email/test-sending.js +6 -5
- package/dist/cli/commands/project-config/config/email/test-sending.js.map +1 -1
- package/dist/cli/commands/project-config/config/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/index.js +8 -10
- package/dist/cli/commands/project-config/config/index.js.map +1 -1
- package/dist/cli/commands/project-config/config/runtime.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/runtime.js +10 -21
- package/dist/cli/commands/project-config/config/runtime.js.map +1 -1
- package/dist/cli/commands/project-config/config/set.js +3 -3
- package/dist/cli/commands/project-config/config/set.js.map +1 -1
- package/dist/cli/commands/project-config/config/show.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/show.js +7 -7
- package/dist/cli/commands/project-config/config/show.js.map +1 -1
- package/dist/cli/commands/project-config/env/add.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/add.js +4 -3
- package/dist/cli/commands/project-config/env/add.js.map +1 -1
- package/dist/cli/commands/project-config/env/get.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/get.js +7 -2
- package/dist/cli/commands/project-config/env/get.js.map +1 -1
- package/dist/cli/commands/project-config/env/import.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/import.js +15 -8
- package/dist/cli/commands/project-config/env/import.js.map +1 -1
- package/dist/cli/commands/project-config/env/index.js +7 -8
- package/dist/cli/commands/project-config/env/index.js.map +1 -1
- package/dist/cli/commands/project-config/env/list.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/list.js +29 -8
- package/dist/cli/commands/project-config/env/list.js.map +1 -1
- package/dist/cli/commands/project-config/env/metadata-options.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/metadata-options.js +0 -1
- package/dist/cli/commands/project-config/env/metadata-options.js.map +1 -1
- package/dist/cli/commands/project-config/env/pull.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/pull.js +22 -8
- package/dist/cli/commands/project-config/env/pull.js.map +1 -1
- package/dist/cli/commands/project-config/env/read-value.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/read-value.js +8 -4
- package/dist/cli/commands/project-config/env/read-value.js.map +1 -1
- package/dist/cli/commands/project-config/env/rm.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/rm.js +4 -3
- package/dist/cli/commands/project-config/env/rm.js.map +1 -1
- package/dist/cli/commands/project-config/env/run.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/run.js +9 -8
- package/dist/cli/commands/project-config/env/run.js.map +1 -1
- package/dist/cli/commands/project-config/env/update.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/update.js +4 -3
- package/dist/cli/commands/project-config/env/update.js.map +1 -1
- package/dist/cli/commands/project-config/environment/create.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/create.js +5 -6
- package/dist/cli/commands/project-config/environment/create.js.map +1 -1
- package/dist/cli/commands/project-config/environment/delete.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/delete.js +6 -6
- package/dist/cli/commands/project-config/environment/delete.js.map +1 -1
- package/dist/cli/commands/project-config/environment/find.js +3 -3
- package/dist/cli/commands/project-config/environment/find.js.map +1 -1
- package/dist/cli/commands/project-config/environment/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/index.js +8 -10
- package/dist/cli/commands/project-config/environment/index.js.map +1 -1
- package/dist/cli/commands/project-config/environment/initial-superadmin.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/initial-superadmin.js +4 -5
- package/dist/cli/commands/project-config/environment/initial-superadmin.js.map +1 -1
- package/dist/cli/commands/project-config/environment/list.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/list.js +5 -5
- package/dist/cli/commands/project-config/environment/list.js.map +1 -1
- package/dist/cli/commands/project-config/environment/regions.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/regions.js +3 -3
- package/dist/cli/commands/project-config/environment/regions.js.map +1 -1
- package/dist/cli/commands/project-config/environment/show.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/show.js +3 -4
- package/dist/cli/commands/project-config/environment/show.js.map +1 -1
- package/dist/cli/commands/project-config/environment/update.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/update.js +3 -4
- package/dist/cli/commands/project-config/environment/update.js.map +1 -1
- package/dist/cli/commands/project-config/index.js +5 -5
- package/dist/cli/commands/project-config/index.js.map +1 -1
- package/dist/cli/commands/project-config/init/build-detection.d.ts.map +1 -1
- package/dist/cli/commands/project-config/init/build-detection.js +4 -4
- package/dist/cli/commands/project-config/init/build-detection.js.map +1 -1
- package/dist/cli/commands/project-config/init/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/init/index.js +4 -5
- package/dist/cli/commands/project-config/init/index.js.map +1 -1
- package/dist/cli/commands/project-config/init/init.d.ts.map +1 -1
- package/dist/cli/commands/project-config/init/init.js +18 -22
- package/dist/cli/commands/project-config/init/init.js.map +1 -1
- package/dist/cli/commands/project-config/options.d.ts.map +1 -1
- package/dist/cli/commands/project-config/options.js +9 -14
- package/dist/cli/commands/project-config/options.js.map +1 -1
- package/dist/cli/commands/project-config/project/create.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/create.js +3 -3
- package/dist/cli/commands/project-config/project/create.js.map +1 -1
- package/dist/cli/commands/project-config/project/delete.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/delete.js +4 -5
- package/dist/cli/commands/project-config/project/delete.js.map +1 -1
- package/dist/cli/commands/project-config/project/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/index.js +4 -5
- package/dist/cli/commands/project-config/project/index.js.map +1 -1
- package/dist/cli/commands/project-config/project/link.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/link.js +4 -4
- package/dist/cli/commands/project-config/project/link.js.map +1 -1
- package/dist/cli/commands/project-config/project/list.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/list.js +5 -5
- package/dist/cli/commands/project-config/project/list.js.map +1 -1
- package/dist/cli/commands/project-config/project/show.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/show.js +11 -14
- package/dist/cli/commands/project-config/project/show.js.map +1 -1
- package/dist/cli/commands/project-config/project/subscription-state.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/subscription-state.js +17 -20
- package/dist/cli/commands/project-config/project/subscription-state.js.map +1 -1
- package/dist/cli/commands/project-config/project/unlink.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/unlink.js +2 -3
- package/dist/cli/commands/project-config/project/unlink.js.map +1 -1
- package/dist/cli/commands/project-config/project/update.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/update.js +3 -4
- package/dist/cli/commands/project-config/project/update.js.map +1 -1
- package/dist/cli/commands/project-config/source/connect.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/connect.js +24 -26
- package/dist/cli/commands/project-config/source/connect.js.map +1 -1
- package/dist/cli/commands/project-config/source/disconnect.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/disconnect.js +4 -4
- package/dist/cli/commands/project-config/source/disconnect.js.map +1 -1
- package/dist/cli/commands/project-config/source/index.js +7 -7
- package/dist/cli/commands/project-config/source/index.js.map +1 -1
- package/dist/cli/commands/project-config/source/map.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/map.js +12 -16
- package/dist/cli/commands/project-config/source/map.js.map +1 -1
- package/dist/cli/commands/project-config/source/repos.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/repos.js +5 -5
- package/dist/cli/commands/project-config/source/repos.js.map +1 -1
- package/dist/cli/commands/project-config/source/status.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/status.js +16 -25
- package/dist/cli/commands/project-config/source/status.js.map +1 -1
- package/dist/cli/commands/runtime-data/backup.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/backup.js +34 -36
- package/dist/cli/commands/runtime-data/backup.js.map +1 -1
- package/dist/cli/commands/runtime-data/index.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/index.js +38 -39
- package/dist/cli/commands/runtime-data/index.js.map +1 -1
- package/dist/cli/commands/runtime-data/resource.d.ts +1 -0
- package/dist/cli/commands/runtime-data/resource.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/resource.js +92 -33
- package/dist/cli/commands/runtime-data/resource.js.map +1 -1
- package/dist/cli/commands/runtime-data/restore.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/restore.js +32 -45
- package/dist/cli/commands/runtime-data/restore.js.map +1 -1
- package/dist/cli/commands/runtime-data/seeds.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/seeds.js +24 -26
- package/dist/cli/commands/runtime-data/seeds.js.map +1 -1
- package/dist/cli/commands/runtime-data/tunnel.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/tunnel.js +33 -43
- package/dist/cli/commands/runtime-data/tunnel.js.map +1 -1
- package/dist/cli/host-arguments.d.ts.map +1 -1
- package/dist/cli/host-arguments.js +10 -18
- package/dist/cli/host-arguments.js.map +1 -1
- package/dist/cli/host-nodes.js +1 -1
- package/dist/cli/host-nodes.js.map +1 -1
- package/dist/cli/index.d.ts +10 -13
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +22 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/api-client.d.ts +10 -5
- package/dist/cli/lib/api-client.d.ts.map +1 -1
- package/dist/cli/lib/api-client.js +23 -42
- package/dist/cli/lib/api-client.js.map +1 -1
- package/dist/cli/lib/auth.d.ts +4 -145
- package/dist/cli/lib/auth.d.ts.map +1 -1
- package/dist/cli/lib/auth.js +8 -515
- package/dist/cli/lib/auth.js.map +1 -1
- package/dist/cli/lib/cli-login.d.ts +12 -0
- package/dist/cli/lib/cli-login.d.ts.map +1 -0
- package/dist/cli/lib/cli-login.js +155 -0
- package/dist/cli/lib/cli-login.js.map +1 -0
- package/dist/cli/lib/cloud-api-url.d.ts +2 -0
- package/dist/cli/lib/cloud-api-url.d.ts.map +1 -0
- package/dist/cli/lib/cloud-api-url.js +3 -0
- package/dist/cli/lib/cloud-api-url.js.map +1 -0
- package/dist/cli/lib/commit.d.ts.map +1 -1
- package/dist/cli/lib/commit.js +2 -3
- package/dist/cli/lib/commit.js.map +1 -1
- package/dist/cli/lib/config-revisions.d.ts +9 -0
- package/dist/cli/lib/config-revisions.d.ts.map +1 -0
- package/dist/cli/lib/config-revisions.js +52 -0
- package/dist/cli/lib/config-revisions.js.map +1 -0
- package/dist/cli/lib/config.d.ts +0 -4
- package/dist/cli/lib/config.d.ts.map +1 -1
- package/dist/cli/lib/config.js +3 -5
- package/dist/cli/lib/config.js.map +1 -1
- package/dist/cli/lib/console-pairing.d.ts +1 -14
- package/dist/cli/lib/console-pairing.d.ts.map +1 -1
- package/dist/cli/lib/console-pairing.js +48 -60
- package/dist/cli/lib/console-pairing.js.map +1 -1
- package/dist/cli/lib/contract/backup-schedule-reasons.d.ts.map +1 -1
- package/dist/cli/lib/contract/backup-schedule-reasons.js +3 -7
- package/dist/cli/lib/contract/backup-schedule-reasons.js.map +1 -1
- package/dist/cli/lib/contract/build-settings.d.ts +1 -1
- package/dist/cli/lib/contract/build-settings.d.ts.map +1 -1
- package/dist/cli/lib/contract/build-settings.js +12 -18
- package/dist/cli/lib/contract/build-settings.js.map +1 -1
- package/dist/cli/lib/contract/database.d.ts.map +1 -1
- package/dist/cli/lib/contract/database.js +7 -13
- package/dist/cli/lib/contract/database.js.map +1 -1
- package/dist/cli/lib/contract/deployment-resource-labels.d.ts.map +1 -1
- package/dist/cli/lib/contract/deployment-resource-labels.js +2 -6
- package/dist/cli/lib/contract/deployment-resource-labels.js.map +1 -1
- package/dist/cli/lib/contract/deployments.d.ts +1 -0
- package/dist/cli/lib/contract/deployments.d.ts.map +1 -1
- package/dist/cli/lib/contract/deployments.js +32 -40
- package/dist/cli/lib/contract/deployments.js.map +1 -1
- package/dist/cli/lib/contract/desired-state.d.ts +3 -1
- package/dist/cli/lib/contract/desired-state.d.ts.map +1 -1
- package/dist/cli/lib/contract/desired-state.js +33 -50
- package/dist/cli/lib/contract/desired-state.js.map +1 -1
- package/dist/cli/lib/contract/env-vars.d.ts +37 -0
- package/dist/cli/lib/contract/env-vars.d.ts.map +1 -0
- package/dist/cli/lib/contract/env-vars.js +6 -0
- package/dist/cli/lib/contract/env-vars.js.map +1 -0
- package/dist/cli/lib/contract/foreign-credentials.d.ts +14 -27
- package/dist/cli/lib/contract/foreign-credentials.d.ts.map +1 -1
- package/dist/cli/lib/contract/foreign-credentials.js +19 -32
- package/dist/cli/lib/contract/foreign-credentials.js.map +1 -1
- package/dist/cli/lib/contract/logs.d.ts.map +1 -1
- package/dist/cli/lib/contract/logs.js +26 -34
- package/dist/cli/lib/contract/logs.js.map +1 -1
- package/dist/cli/lib/contract/managed-email.d.ts.map +1 -1
- package/dist/cli/lib/contract/managed-email.js +2 -3
- package/dist/cli/lib/contract/managed-email.js.map +1 -1
- package/dist/cli/lib/contract/permission-denied.d.ts +16 -0
- package/dist/cli/lib/contract/permission-denied.d.ts.map +1 -0
- package/dist/cli/lib/contract/permission-denied.js +20 -0
- package/dist/cli/lib/contract/permission-denied.js.map +1 -0
- package/dist/cli/lib/contract/project-grants.d.ts +16 -0
- package/dist/cli/lib/contract/project-grants.d.ts.map +1 -0
- package/dist/cli/lib/contract/project-grants.js +58 -0
- package/dist/cli/lib/contract/project-grants.js.map +1 -0
- package/dist/cli/lib/contract/projects.d.ts.map +1 -1
- package/dist/cli/lib/contract/projects.js +2 -3
- package/dist/cli/lib/contract/projects.js.map +1 -1
- package/dist/cli/lib/contract/public-error-details.d.ts.map +1 -1
- package/dist/cli/lib/contract/public-error-details.js +28 -43
- package/dist/cli/lib/contract/public-error-details.js.map +1 -1
- package/dist/cli/lib/contract/regions.js +2 -2
- package/dist/cli/lib/contract/regions.js.map +1 -1
- package/dist/cli/lib/contract/runtime-operations.d.ts +16 -0
- package/dist/cli/lib/contract/runtime-operations.d.ts.map +1 -1
- package/dist/cli/lib/contract/runtime-operations.js +16 -21
- package/dist/cli/lib/contract/runtime-operations.js.map +1 -1
- package/dist/cli/lib/contract/seeds.d.ts.map +1 -1
- package/dist/cli/lib/contract/seeds.js +12 -21
- package/dist/cli/lib/contract/seeds.js.map +1 -1
- package/dist/cli/lib/contract/source-disconnect-reasons.d.ts.map +1 -1
- package/dist/cli/lib/contract/source-disconnect-reasons.js +9 -17
- package/dist/cli/lib/contract/source-disconnect-reasons.js.map +1 -1
- package/dist/cli/lib/contract/source-repository.d.ts.map +1 -1
- package/dist/cli/lib/contract/source-repository.js +5 -9
- package/dist/cli/lib/contract/source-repository.js.map +1 -1
- package/dist/cli/lib/contract/wire-types.d.ts.map +1 -1
- package/dist/cli/lib/contract/wire-types.js +3 -8
- package/dist/cli/lib/contract/wire-types.js.map +1 -1
- package/dist/cli/lib/contract/wire-values.d.ts.map +1 -1
- package/dist/cli/lib/contract/wire-values.js +2 -3
- package/dist/cli/lib/contract/wire-values.js.map +1 -1
- package/dist/cli/lib/dotenv.d.ts +6 -0
- package/dist/cli/lib/dotenv.d.ts.map +1 -1
- package/dist/cli/lib/dotenv.js +62 -20
- package/dist/cli/lib/dotenv.js.map +1 -1
- package/dist/cli/lib/env-file.d.ts.map +1 -1
- package/dist/cli/lib/env-file.js +5 -11
- package/dist/cli/lib/env-file.js.map +1 -1
- package/dist/cli/lib/env-preflight.d.ts +6 -1
- package/dist/cli/lib/env-preflight.d.ts.map +1 -1
- package/dist/cli/lib/env-preflight.js +91 -63
- package/dist/cli/lib/env-preflight.js.map +1 -1
- package/dist/cli/lib/errors.d.ts +17 -49
- package/dist/cli/lib/errors.d.ts.map +1 -1
- package/dist/cli/lib/errors.js +47 -106
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/format.d.ts.map +1 -1
- package/dist/cli/lib/format.js +3 -5
- package/dist/cli/lib/format.js.map +1 -1
- package/dist/cli/lib/invocation.d.ts +4 -5
- package/dist/cli/lib/invocation.d.ts.map +1 -1
- package/dist/cli/lib/invocation.js +5 -33
- package/dist/cli/lib/invocation.js.map +1 -1
- package/dist/cli/lib/log-stream.d.ts.map +1 -1
- package/dist/cli/lib/log-stream.js +15 -23
- package/dist/cli/lib/log-stream.js.map +1 -1
- package/dist/cli/lib/logger.d.ts.map +1 -1
- package/dist/cli/lib/logger.js +7 -12
- package/dist/cli/lib/logger.js.map +1 -1
- package/dist/cli/lib/organization.d.ts.map +1 -1
- package/dist/cli/lib/organization.js +5 -13
- package/dist/cli/lib/organization.js.map +1 -1
- package/dist/cli/lib/project-link.d.ts.map +1 -1
- package/dist/cli/lib/project-link.js +2 -4
- package/dist/cli/lib/project-link.js.map +1 -1
- package/dist/cli/lib/resolve.d.ts +1 -6
- package/dist/cli/lib/resolve.d.ts.map +1 -1
- package/dist/cli/lib/resolve.js +26 -48
- package/dist/cli/lib/resolve.js.map +1 -1
- package/dist/cli/lib/source-repository-link.d.ts.map +1 -1
- package/dist/cli/lib/source-repository-link.js +6 -9
- package/dist/cli/lib/source-repository-link.js.map +1 -1
- package/dist/cli/lib/terminal-output.d.ts +4 -0
- package/dist/cli/lib/terminal-output.d.ts.map +1 -1
- package/dist/cli/lib/terminal-output.js +35 -18
- package/dist/cli/lib/terminal-output.js.map +1 -1
- package/dist/cli/lib/types.d.ts +3 -7
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/types.js.map +1 -1
- package/dist/cli/lib/utf8.d.ts +2 -0
- package/dist/cli/lib/utf8.d.ts.map +1 -0
- package/dist/cli/lib/utf8.js +12 -0
- package/dist/cli/lib/utf8.js.map +1 -0
- package/dist/cli/root-options.d.ts.map +1 -1
- package/dist/cli/root-options.js +11 -14
- package/dist/cli/root-options.js.map +1 -1
- package/dist/cli-plugin.d.ts.map +1 -1
- package/dist/cli-plugin.js +2 -6
- package/dist/cli-plugin.js.map +1 -1
- package/dist/cloud-config-module.js +2 -2
- package/dist/cloud-config-module.js.map +1 -1
- package/dist/dev/cli-host.d.ts.map +1 -1
- package/dist/dev/cli-host.js +16 -19
- package/dist/dev/cli-host.js.map +1 -1
- package/dist/dev/dashboard-vite-config.d.ts.map +1 -1
- package/dist/dev/dashboard-vite-config.js +17 -20
- package/dist/dev/dashboard-vite-config.js.map +1 -1
- package/dist/dev/dev-command.d.ts.map +1 -1
- package/dist/dev/dev-command.js +72 -55
- package/dist/dev/dev-command.js.map +1 -1
- package/dist/dev/dev-config.d.ts +3 -0
- package/dist/dev/dev-config.d.ts.map +1 -1
- package/dist/dev/dev-config.js +43 -13
- package/dist/dev/dev-config.js.map +1 -1
- package/dist/dev/dev-migrate.js +7 -11
- package/dist/dev/dev-migrate.js.map +1 -1
- package/dist/dev/dev-process.d.ts.map +1 -1
- package/dist/dev/dev-process.js +6 -10
- package/dist/dev/dev-process.js.map +1 -1
- package/dist/dev/dev-server.js +7 -9
- package/dist/dev/dev-server.js.map +1 -1
- package/dist/dev/dev-worker.js +5 -3
- package/dist/dev/dev-worker.js.map +1 -1
- package/dist/dev/local-services.d.ts.map +1 -1
- package/dist/dev/local-services.js +163 -106
- package/dist/dev/local-services.js.map +1 -1
- package/dist/dev/project-layout.d.ts.map +1 -1
- package/dist/dev/project-layout.js +12 -17
- package/dist/dev/project-layout.js.map +1 -1
- package/dist/dev/project-plugin-scope.d.ts +2 -0
- package/dist/dev/project-plugin-scope.d.ts.map +1 -0
- package/dist/dev/project-plugin-scope.js +38 -0
- package/dist/dev/project-plugin-scope.js.map +1 -0
- package/dist/entrypoint.js +2 -0
- package/dist/entrypoint.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/local-asset-server.d.ts.map +1 -1
- package/dist/local-asset-server.js +7 -13
- package/dist/local-asset-server.js.map +1 -1
- package/dist/local-cache-plugin.d.ts.map +1 -1
- package/dist/local-cache-plugin.js +20 -28
- package/dist/local-cache-plugin.js.map +1 -1
- package/dist/local-cache.d.ts.map +1 -1
- package/dist/local-cache.js +40 -55
- package/dist/local-cache.js.map +1 -1
- package/dist/local-core.d.ts.map +1 -1
- package/dist/local-core.js +3 -5
- package/dist/local-core.js.map +1 -1
- package/dist/local-dashboard-plugin.d.ts.map +1 -1
- package/dist/local-dashboard-plugin.js +6 -11
- package/dist/local-dashboard-plugin.js.map +1 -1
- package/dist/local-database.d.ts.map +1 -1
- package/dist/local-database.js +20 -23
- package/dist/local-database.js.map +1 -1
- package/dist/local-durable-execution-plugin.d.ts +12 -0
- package/dist/local-durable-execution-plugin.d.ts.map +1 -1
- package/dist/local-durable-execution-plugin.js +296 -24
- package/dist/local-durable-execution-plugin.js.map +1 -1
- package/dist/local-runtime-guard.d.ts +2 -0
- package/dist/local-runtime-guard.d.ts.map +1 -1
- package/dist/local-runtime-guard.js +40 -3
- package/dist/local-runtime-guard.js.map +1 -1
- package/dist/local-runtime.d.ts.map +1 -1
- package/dist/local-runtime.js +51 -48
- package/dist/local-runtime.js.map +1 -1
- package/package.json +16 -9
- package/dist/cli/commands/identity-context/login.d.ts +0 -2
- package/dist/cli/commands/identity-context/login.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/login.js +0 -158
- package/dist/cli/commands/identity-context/login.js.map +0 -1
- package/dist/cli/commands/identity-context/logout.d.ts +0 -2
- package/dist/cli/commands/identity-context/logout.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/logout.js +0 -11
- package/dist/cli/commands/identity-context/logout.js.map +0 -1
- package/dist/cli/commands/identity-context/org-switch.d.ts +0 -3
- package/dist/cli/commands/identity-context/org-switch.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/org-switch.js +0 -83
- package/dist/cli/commands/identity-context/org-switch.js.map +0 -1
- package/dist/cli/commands/identity-context/whoami.d.ts +0 -3
- package/dist/cli/commands/identity-context/whoami.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/whoami.js +0 -101
- package/dist/cli/commands/identity-context/whoami.js.map +0 -1
- package/dist/cli/lib/console-credential.d.ts +0 -55
- package/dist/cli/lib/console-credential.d.ts.map +0 -1
- package/dist/cli/lib/console-credential.js +0 -164
- package/dist/cli/lib/console-credential.js.map +0 -1
- package/dist/cli/lib/console-origins.d.ts +0 -30
- package/dist/cli/lib/console-origins.d.ts.map +0 -1
- package/dist/cli/lib/console-origins.js +0 -87
- package/dist/cli/lib/console-origins.js.map +0 -1
- package/dist/cli/lib/console-session-lock.d.ts +0 -39
- package/dist/cli/lib/console-session-lock.d.ts.map +0 -1
- package/dist/cli/lib/console-session-lock.js +0 -235
- package/dist/cli/lib/console-session-lock.js.map +0 -1
- package/dist/cli/lib/console-session.d.ts +0 -47
- package/dist/cli/lib/console-session.d.ts.map +0 -1
- package/dist/cli/lib/console-session.js +0 -235
- package/dist/cli/lib/console-session.js.map +0 -1
- package/dist/cli/lib/file-lock.d.ts +0 -23
- package/dist/cli/lib/file-lock.d.ts.map +0 -1
- package/dist/cli/lib/file-lock.js +0 -121
- package/dist/cli/lib/file-lock.js.map +0 -1
|
@@ -1,32 +1,304 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { CLOUD_PLUGIN_COMPATIBILITY, DurableWorkflowNotFoundError, durableWorkflowSteps, installCloudDurableWorkflows, listDurableWorkflowStatuses, readDurableWorkflowStatus, } from "@vendure/cloud-config";
|
|
2
5
|
import { PluginCommonModule, VendurePlugin } from "@vendure/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
6
|
+
const SCHEMA = "dbos";
|
|
7
|
+
const QUEUE = "vendure-cloud.tenant-workflows";
|
|
8
|
+
const APPLICATION_NAME = "vendure-dev";
|
|
9
|
+
// Duplicates `TERMINAL_WORKFLOW_STATUSES` and the query in
|
|
10
|
+
// `packages/cloud-runtime/src/durable-execution/unfinished-runs.ts`, which this published package
|
|
11
|
+
// cannot import. `local-durable-workflows.test.ts` fails when the status lists differ.
|
|
12
|
+
export const TERMINAL_WORKFLOW_STATUSES = [
|
|
13
|
+
"SUCCESS",
|
|
14
|
+
"ERROR",
|
|
15
|
+
"CANCELLED",
|
|
16
|
+
"MAX_RECOVERY_ATTEMPTS_EXCEEDED",
|
|
17
|
+
];
|
|
18
|
+
const UNFINISHED_RUNS_SQL = `
|
|
19
|
+
SELECT CASE WHEN COALESCE(class_name, '') = '' THEN name ELSE class_name || '.' || name END
|
|
20
|
+
AS workflow,
|
|
21
|
+
count(*)::int AS count
|
|
22
|
+
FROM ${SCHEMA}.workflow_status
|
|
23
|
+
WHERE (application_name = $1 OR application_name IS NULL)
|
|
24
|
+
AND status <> ALL ($2::text[])
|
|
25
|
+
GROUP BY 1`;
|
|
26
|
+
// Fixed so a restarted worker recovers the workflows the previous one left running.
|
|
27
|
+
const APPLICATION_VERSION = "local";
|
|
28
|
+
export class LocalDurableWorkflowError extends Error {
|
|
29
|
+
constructor(message, options) {
|
|
30
|
+
super(message, options);
|
|
31
|
+
this.name = "LocalDurableWorkflowError";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const SDK = "@dbos-inc/dbos-sdk";
|
|
35
|
+
// Resolved from this package. `durable-workflows.mdx` requires the project to install one copy, so
|
|
36
|
+
// the copy found here is the one the application registers its workflows with. A second copy is
|
|
37
|
+
// refused, because workflows registered on it would never run.
|
|
38
|
+
export function findDbosSdk(resolveHere, resolveFromProject) {
|
|
39
|
+
const here = resolveOrNull(resolveHere);
|
|
40
|
+
const project = resolveOrNull(resolveFromProject);
|
|
41
|
+
if (here === null) {
|
|
42
|
+
if (project === null)
|
|
43
|
+
return null;
|
|
44
|
+
throw new LocalDurableWorkflowError(`Vendure Cloud: this project installs \`${SDK}\` at ${project}, and \`@vendure/cloud\` cannot resolve it from where it is installed, so durable workflows cannot run. Install both in the same \`node_modules\`; with pnpm, set \`node-linker=hoisted\` in \`.npmrc\`.\n`);
|
|
45
|
+
}
|
|
46
|
+
if (project !== null && realpathSync(project) !== realpathSync(here)) {
|
|
47
|
+
throw new LocalDurableWorkflowError(`Vendure Cloud: this project resolves two copies of \`${SDK}\`, at ${project} and at ${here}. Workflows registered with the first would never run. Install one copy; with pnpm, set \`node-linker=hoisted\` in \`.npmrc\`.\n`);
|
|
48
|
+
}
|
|
49
|
+
return here;
|
|
50
|
+
}
|
|
51
|
+
function resolveOrNull(resolve) {
|
|
52
|
+
try {
|
|
53
|
+
return resolve(SDK);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const requireHere = createRequire(import.meta.url);
|
|
60
|
+
function sdkPath() {
|
|
61
|
+
return findDbosSdk(requireHere.resolve, createRequire(join(process.cwd(), "package.json")).resolve);
|
|
62
|
+
}
|
|
63
|
+
// Loading the SDK replaces `DBOS.setConfig` and `DBOS.launch` with refusals and keeps the originals
|
|
64
|
+
// for the worker's launch.
|
|
65
|
+
let sdk;
|
|
66
|
+
function loadSdk() {
|
|
67
|
+
if (sdk !== undefined)
|
|
68
|
+
return sdk;
|
|
69
|
+
const path = sdkPath();
|
|
70
|
+
if (path === null) {
|
|
71
|
+
sdk = null;
|
|
72
|
+
return sdk;
|
|
73
|
+
}
|
|
74
|
+
const module = requireHere(path);
|
|
75
|
+
const { DBOS } = module;
|
|
76
|
+
sdk = { module, setConfig: DBOS.setConfig, launch: DBOS.launch };
|
|
77
|
+
DBOS.setConfig = () => {
|
|
78
|
+
throw launcherRefusal("DBOS.setConfig()");
|
|
79
|
+
};
|
|
80
|
+
DBOS.launch = async () => {
|
|
81
|
+
throw launcherRefusal("DBOS.launch()");
|
|
82
|
+
};
|
|
83
|
+
return sdk;
|
|
84
|
+
}
|
|
85
|
+
// Called before the Cloud Config is loaded, so a launch at a module's top level fails at its call.
|
|
86
|
+
export function refuseOtherLocalDbosLaunchers() {
|
|
87
|
+
loadSdk();
|
|
88
|
+
}
|
|
89
|
+
// Resolves without loading, so the announcement patches nothing and agrees with the launch.
|
|
90
|
+
export function localDurableWorkflowsAvailable() {
|
|
91
|
+
return sdkPath() !== null;
|
|
92
|
+
}
|
|
93
|
+
function requireSdk() {
|
|
94
|
+
const loaded = loadSdk();
|
|
95
|
+
if (!loaded) {
|
|
96
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: durable workflows need `@dbos-inc/dbos-sdk`, and this project does not install it. Add it as a development dependency.\n");
|
|
97
|
+
}
|
|
98
|
+
return loaded.module;
|
|
99
|
+
}
|
|
100
|
+
// Duplicates `packages/cloud-runtime/src/durable-execution/dbos-ownership.ts`, which this published
|
|
101
|
+
// package cannot import.
|
|
102
|
+
function launcherRefusal(call) {
|
|
103
|
+
return new LocalDurableWorkflowError(`Vendure Cloud: ${call} was called by code in this application. Vendure Cloud configures and launches durable execution itself, in the local worker. Remove the call, or run the plugin that makes it in its Vendure Cloud hosted mode. Refusing to boot.\n`);
|
|
104
|
+
}
|
|
105
|
+
function systemDatabaseUrl(database) {
|
|
106
|
+
const user = encodeURIComponent(database.username);
|
|
107
|
+
const password = encodeURIComponent(database.password);
|
|
108
|
+
return `postgresql://${user}:${password}@${database.host}:${database.port}/${encodeURIComponent(database.database)}`;
|
|
109
|
+
}
|
|
110
|
+
class LocalDurableWorkflows {
|
|
111
|
+
database;
|
|
112
|
+
clientPromise;
|
|
113
|
+
// A client built against one database is kept until the application closes, so a second database
|
|
114
|
+
// while it is open is refused.
|
|
115
|
+
target(database) {
|
|
116
|
+
if (this.clientPromise &&
|
|
117
|
+
this.database &&
|
|
118
|
+
systemDatabaseUrl(this.database) !== systemDatabaseUrl(database)) {
|
|
119
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: this process composed the local runtime against a second database while durable workflows were in use on the first. Close the first application before composing another.\n");
|
|
120
|
+
}
|
|
121
|
+
this.database = database;
|
|
122
|
+
}
|
|
123
|
+
systemDatabaseUrl() {
|
|
124
|
+
if (!this.database) {
|
|
125
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: durable workflows were used before the local runtime composed its configuration, so there is no database to run them on.\n");
|
|
126
|
+
}
|
|
127
|
+
return systemDatabaseUrl(this.database);
|
|
128
|
+
}
|
|
129
|
+
async start(transaction, options, ...args) {
|
|
130
|
+
if (options.workflowId.trim() === "") {
|
|
131
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: a durable workflow needs an id of your own choosing, which is what stops a retried request starting a second one. Pass a value derived from the work itself.\n");
|
|
132
|
+
}
|
|
133
|
+
const client = await transactionClient(transaction);
|
|
134
|
+
await (await this.connect())
|
|
135
|
+
.enqueueInTransaction(client, {
|
|
136
|
+
queueName: QUEUE,
|
|
137
|
+
workflowName: options.workflowName,
|
|
138
|
+
...(options.workflowClassName ? { workflowClassName: options.workflowClassName } : {}),
|
|
139
|
+
...(options.workflowConfigName ? { workflowConfigName: options.workflowConfigName } : {}),
|
|
140
|
+
workflowID: options.workflowId,
|
|
141
|
+
appVersion: APPLICATION_VERSION,
|
|
142
|
+
}, ...args)
|
|
143
|
+
.catch(explainMissingSchema);
|
|
144
|
+
}
|
|
145
|
+
async send(transaction, workflowId, message, options = {}) {
|
|
146
|
+
const client = await transactionClient(transaction);
|
|
147
|
+
await (await this.connect())
|
|
148
|
+
.sendInTransaction(client, workflowId, message, options.topic, options.idempotencyKey)
|
|
149
|
+
.catch(explainMissingSchema);
|
|
150
|
+
}
|
|
151
|
+
async unfinishedRuns() {
|
|
152
|
+
const rows = await this.query(UNFINISHED_RUNS_SQL, [
|
|
153
|
+
APPLICATION_NAME,
|
|
154
|
+
[...TERMINAL_WORKFLOW_STATUSES],
|
|
155
|
+
]);
|
|
156
|
+
return Object.fromEntries(rows.map(({ workflow, count }) => [workflow, count]));
|
|
157
|
+
}
|
|
158
|
+
async retrieve(workflowId) {
|
|
159
|
+
return this.withDatabase((database) => readDurableWorkflowStatus(database, SCHEMA, APPLICATION_NAME, workflowId));
|
|
160
|
+
}
|
|
161
|
+
async steps(workflowId) {
|
|
162
|
+
return durableWorkflowSteps(await (await this.connect()).listWorkflowSteps(workflowId));
|
|
163
|
+
}
|
|
164
|
+
async event(workflowId, key, options = {}) {
|
|
165
|
+
return (await this.connect()).getEvent(workflowId, key, options);
|
|
166
|
+
}
|
|
167
|
+
// The SDK's handle waits for a row that never appears when no run has the id.
|
|
168
|
+
async result(workflowId) {
|
|
169
|
+
if (!(await this.retrieve(workflowId)))
|
|
170
|
+
throw new DurableWorkflowNotFoundError(workflowId);
|
|
171
|
+
return (await this.connect()).retrieveWorkflow(workflowId).getResult();
|
|
172
|
+
}
|
|
173
|
+
async list(filter = {}) {
|
|
174
|
+
return this.withDatabase((database) => listDurableWorkflowStatuses(database, SCHEMA, APPLICATION_NAME, filter));
|
|
175
|
+
}
|
|
176
|
+
// The SDK's cancel skips SUCCESS and ERROR only, so a run that finished any other way, or does
|
|
177
|
+
// not exist, is left alone here first. A run that recovery moves to MAX_RECOVERY_ATTEMPTS_EXCEEDED
|
|
178
|
+
// between the read and the update is still marked CANCELLED.
|
|
179
|
+
async cancel(workflowId, options = {}) {
|
|
180
|
+
const run = await this.retrieve(workflowId);
|
|
181
|
+
if (!run || TERMINAL_WORKFLOW_STATUSES.some((status) => status === run.status))
|
|
182
|
+
return;
|
|
183
|
+
await (await this.connect()).cancelWorkflow(workflowId, {
|
|
184
|
+
cancelChildren: options.cancelChildren ?? false,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
async query(sql, values) {
|
|
188
|
+
return this.withDatabase(async (database) => (await database.query(sql, values)).rows);
|
|
189
|
+
}
|
|
190
|
+
// `pg` is loaded here because the local runtime checks it is installed before composing.
|
|
191
|
+
async withDatabase(work) {
|
|
192
|
+
requireSdk();
|
|
193
|
+
const { Client } = requireHere("pg");
|
|
194
|
+
const client = new Client({ connectionString: this.systemDatabaseUrl() });
|
|
195
|
+
await client.connect();
|
|
196
|
+
try {
|
|
197
|
+
return await work(client).catch(explainMissingSchema);
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
await client.end();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Cached as a promise so two concurrent first submissions share one client.
|
|
204
|
+
async connect() {
|
|
205
|
+
if (this.clientPromise)
|
|
206
|
+
return this.clientPromise;
|
|
207
|
+
this.clientPromise = requireSdk().DBOSClient.create({
|
|
208
|
+
systemDatabaseUrl: this.systemDatabaseUrl(),
|
|
209
|
+
systemDatabaseSchemaName: SCHEMA,
|
|
210
|
+
applicationName: APPLICATION_NAME,
|
|
211
|
+
});
|
|
212
|
+
try {
|
|
213
|
+
return await this.clientPromise;
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
this.clientPromise = undefined;
|
|
217
|
+
throw error;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async close() {
|
|
221
|
+
const pending = this.clientPromise;
|
|
222
|
+
this.clientPromise = undefined;
|
|
223
|
+
const client = await pending?.catch(() => undefined);
|
|
224
|
+
await client?.destroy();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// The worker's first launch creates the `dbos` schema, so on a new database a submission made before
|
|
228
|
+
// it fails on a missing table (PostgreSQL code 42P01).
|
|
229
|
+
export function explainMissingSchema(error) {
|
|
230
|
+
if (typeof error === "object" && error !== null && Reflect.get(error, "code") === "42P01") {
|
|
231
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: the local worker has not launched durable execution on this database yet, so its workflow tables do not exist. Wait for the worker to start, then try again.\n", { cause: error });
|
|
232
|
+
}
|
|
233
|
+
throw error;
|
|
234
|
+
}
|
|
235
|
+
// Duplicates `packages/cloud-runtime/src/durable-execution/query-runner-client.ts`, which this
|
|
236
|
+
// published package cannot import.
|
|
237
|
+
// `QueryRunner.connect()` inside an open transaction returns the `pg` client already checked out
|
|
238
|
+
// for it, so the workflow row commits or rolls back with the caller's writes.
|
|
239
|
+
async function transactionClient(transaction) {
|
|
240
|
+
const queryRunner = transaction.queryRunner;
|
|
241
|
+
if (!queryRunner?.isTransactionActive) {
|
|
242
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: a durable workflow must be started or signalled inside an open transaction, so that the data it acts on and the workflow or its signal are committed together. Start or signal it with the entity manager of a transaction, such as `TransactionalConnection.getRepository(ctx, Entity).manager` inside `withTransaction`.\n");
|
|
243
|
+
}
|
|
244
|
+
const connection = await queryRunner.connect();
|
|
245
|
+
if (!isPgClient(connection)) {
|
|
246
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: the local database connection did not yield the PostgreSQL client a durable workflow is started on.\n");
|
|
247
|
+
}
|
|
248
|
+
return connection;
|
|
249
|
+
}
|
|
250
|
+
function isPgClient(value) {
|
|
251
|
+
if (typeof value !== "object" || value === null)
|
|
252
|
+
return false;
|
|
253
|
+
const candidate = value;
|
|
254
|
+
return typeof candidate.query === "function";
|
|
255
|
+
}
|
|
256
|
+
const host = new LocalDurableWorkflows();
|
|
257
|
+
let hostInstalled = false;
|
|
258
|
+
// Every run mode installs the host before composing, so a plugin's `configure()` finds it in
|
|
259
|
+
// `migrate` too.
|
|
260
|
+
export function installLocalDurableWorkflows(database) {
|
|
261
|
+
refuseOtherLocalDbosLaunchers();
|
|
262
|
+
if (!hostInstalled) {
|
|
263
|
+
installCloudDurableWorkflows(host);
|
|
264
|
+
hostInstalled = true;
|
|
265
|
+
}
|
|
266
|
+
host.target(database);
|
|
267
|
+
}
|
|
268
|
+
let launched = false;
|
|
269
|
+
// Called once the worker's bootstrap has resolved, after every plugin registered its workflows.
|
|
270
|
+
// Only the worker launches, so only it runs the engine's schema migrations. A project that does not
|
|
271
|
+
// install the SDK has no workflows to run.
|
|
272
|
+
export async function launchLocalDurableExecution() {
|
|
273
|
+
const loaded = loadSdk();
|
|
274
|
+
if (!loaded)
|
|
275
|
+
return;
|
|
276
|
+
const { DBOS } = loaded.module;
|
|
277
|
+
if (DBOS.isInitialized()) {
|
|
278
|
+
throw new LocalDurableWorkflowError("Vendure Cloud: durable execution was already launched by code in this application before Vendure Cloud launched it. Vendure Cloud configures and launches durable execution itself; remove the other launch. Refusing to boot.\n");
|
|
279
|
+
}
|
|
280
|
+
loaded.setConfig.call(DBOS, {
|
|
281
|
+
name: APPLICATION_NAME,
|
|
282
|
+
applicationVersion: APPLICATION_VERSION,
|
|
283
|
+
systemDatabaseUrl: host.systemDatabaseUrl(),
|
|
284
|
+
systemDatabaseSchemaName: SCHEMA,
|
|
285
|
+
});
|
|
286
|
+
await loaded.launch.call(DBOS);
|
|
287
|
+
launched = true;
|
|
288
|
+
await DBOS.registerQueue(QUEUE);
|
|
289
|
+
}
|
|
23
290
|
export class LocalDurableExecutionPlugin {
|
|
291
|
+
async onApplicationShutdown() {
|
|
292
|
+
if (launched) {
|
|
293
|
+
launched = false;
|
|
294
|
+
await requireSdk().DBOS.shutdown();
|
|
295
|
+
}
|
|
296
|
+
await host.close();
|
|
297
|
+
}
|
|
24
298
|
}
|
|
25
299
|
VendurePlugin({
|
|
26
300
|
imports: [PluginCommonModule],
|
|
27
|
-
// No entities,
|
|
28
|
-
// are created outside TypeORM's ledger, so a table declared on one side and not the other is a
|
|
29
|
-
// table nobody can write a migration for.
|
|
301
|
+
// No entities, as in the managed binding: the `dbos` schema is created outside TypeORM's ledger.
|
|
30
302
|
entities: [],
|
|
31
303
|
compatibility: CLOUD_PLUGIN_COMPATIBILITY,
|
|
32
304
|
})(LocalDurableExecutionPlugin);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-durable-execution-plugin.js","sourceRoot":"","sources":["../src/local-durable-execution-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"local-durable-execution-plugin.js","sourceRoot":"","sources":["../src/local-durable-execution-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
export declare const MANAGED_RUNTIME_ENV_NAMES: readonly ["VC_ENVIRONMENT_ID", "VC_VENDURE_CONFIG", "VC_SERVER_PORT", "VC_AWS_REGION", "VC_DATABASE_HOST", "VC_DATABASE_PORT", "VC_DATABASE_NAME", "VC_DATABASE_USER", "VC_SUPERADMIN_IDENTIFIER", "VC_SUPERADMIN_PASSWORD", "VC_ASSET_BUCKET_NAME", "VC_PLATFORM_HOSTNAME", "VC_CACHE_HOST", "VC_CACHE_PORT", "VC_CACHE_NAME", "VC_CACHE_USER", "VC_JOB_QUEUE_URL", "VC_WAKE_QUEUE_URL", "VC_WORKER_SERVICE_NAME", "VC_DURABLE_EXECUTION_ADMITTED", "VC_ARTIFACT_DIGEST"];
|
|
1
2
|
export declare function assertLocalRuntimeAllowed(environment: NodeJS.ProcessEnv): void;
|
|
3
|
+
export declare function isLoopbackHost(host: string): boolean;
|
|
2
4
|
//# sourceMappingURL=local-runtime-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime-guard.d.ts","sourceRoot":"","sources":["../src/local-runtime-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-runtime-guard.d.ts","sourceRoot":"","sources":["../src/local-runtime-guard.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,4cAsB5B,CAAC;AAEX,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAY9E;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpD"}
|
|
@@ -1,7 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
// The configuration a deployed VC Environment's runtime receives (ADR-0030). Not every `VC_*` name:
|
|
2
|
+
// a workspace's own `.env` sets `VC_*` ports for its compose services. `local-runtime-guard.test.ts`
|
|
3
|
+
// keeps this list equal to `CLOUD_RUNTIME_ENV` and `CLOUD_RUNTIME_OPTIONAL_ENV` in
|
|
4
|
+
// `packages/runtime-contract`, which this published package cannot depend on.
|
|
5
|
+
export const MANAGED_RUNTIME_ENV_NAMES = [
|
|
6
|
+
"VC_ENVIRONMENT_ID",
|
|
7
|
+
"VC_VENDURE_CONFIG",
|
|
8
|
+
"VC_SERVER_PORT",
|
|
9
|
+
"VC_AWS_REGION",
|
|
10
|
+
"VC_DATABASE_HOST",
|
|
11
|
+
"VC_DATABASE_PORT",
|
|
12
|
+
"VC_DATABASE_NAME",
|
|
13
|
+
"VC_DATABASE_USER",
|
|
14
|
+
"VC_SUPERADMIN_IDENTIFIER",
|
|
15
|
+
"VC_SUPERADMIN_PASSWORD",
|
|
16
|
+
"VC_ASSET_BUCKET_NAME",
|
|
17
|
+
"VC_PLATFORM_HOSTNAME",
|
|
18
|
+
"VC_CACHE_HOST",
|
|
19
|
+
"VC_CACHE_PORT",
|
|
20
|
+
"VC_CACHE_NAME",
|
|
21
|
+
"VC_CACHE_USER",
|
|
22
|
+
"VC_JOB_QUEUE_URL",
|
|
23
|
+
"VC_WAKE_QUEUE_URL",
|
|
24
|
+
"VC_WORKER_SERVICE_NAME",
|
|
25
|
+
"VC_DURABLE_EXECUTION_ADMITTED",
|
|
26
|
+
"VC_ARTIFACT_DIGEST",
|
|
27
|
+
];
|
|
2
28
|
export function assertLocalRuntimeAllowed(environment) {
|
|
3
|
-
|
|
29
|
+
const present = MANAGED_RUNTIME_ENV_NAMES.filter((name) => environment[name] !== undefined);
|
|
30
|
+
if (present.length === 0)
|
|
4
31
|
return;
|
|
5
|
-
throw new Error(
|
|
32
|
+
throw new Error([
|
|
33
|
+
"Vendure Cloud: managed configuration is present, but the platform runtime entrypoint is not running. Refusing to boot with local substitutes.",
|
|
34
|
+
` This process carries ${present.join(", ")}, which local substitutes do not accept.`,
|
|
35
|
+
" Unset them, or start a new terminal without them, and run the command again.",
|
|
36
|
+
"",
|
|
37
|
+
].join("\n"));
|
|
38
|
+
}
|
|
39
|
+
// A local substitute reaches only this machine. Any other host could be a deployed environment's
|
|
40
|
+
// database or cache, and connecting to it would let a development run write to it.
|
|
41
|
+
export function isLoopbackHost(host) {
|
|
42
|
+
return (host === "localhost" || host === "::1" || host === "[::1]" || /^127(\.\d{1,3}){3}$/.test(host));
|
|
6
43
|
}
|
|
7
44
|
//# sourceMappingURL=local-runtime-guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime-guard.js","sourceRoot":"","sources":["../src/local-runtime-guard.ts"],"names":[],"mappings":"AAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"local-runtime-guard.js","sourceRoot":"","sources":["../src/local-runtime-guard.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,qGAAqG;AACrG,mFAAmF;AACnF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,0BAA0B;IAC1B,wBAAwB;IACxB,sBAAsB;IACtB,sBAAsB;IACtB,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,wBAAwB;IACxB,+BAA+B;IAC/B,oBAAoB;CACZ,CAAC;AAEX,MAAM,UAAU,yBAAyB,CAAC,WAA8B;IACtE,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IAC5F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,IAAI,KAAK,CACb;QACE,+IAA+I;QAC/I,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C;QACtF,gFAAgF;QAChF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,CACL,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/F,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime.d.ts","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAWpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAKL,KAAK,aAAa,EAElB,SAAS,EACT,eAAe,EAEhB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,uBAAuB,EAG7B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-runtime.d.ts","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAWpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAKL,KAAK,aAAa,EAElB,SAAS,EACT,eAAe,EAEhB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,oBAAoB,EAI1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,uBAAuB,EAG7B,MAAM,qBAAqB,CAAC;AAa7B,MAAM,WAAW,mBAAmB;IAGlC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IAGnC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAG7B,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAGvC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,mBAAwB,GAChC,UAAU,CAAC,OAAO,SAAS,CAAC,CAE9B;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,mBAAwB,GAChC,UAAU,CAAC,OAAO,eAAe,CAAC,CAUpC;AAID,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,qBAAa,yBAA0B,SAAQ,KAAK;;CAOnD;AAED,qBAAa,yBAA0B,SAAQ,KAAK;;CAanD;AA6BD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,mBAAwB,GAChC,aAAa,CAiFf"}
|
package/dist/local-runtime.js
CHANGED
|
@@ -7,38 +7,43 @@ import { localCachePlugin } from "./local-cache-plugin.js";
|
|
|
7
7
|
import { assertLocalCacheDriverAvailable, describeLocalCache, resolveLocalCache, } from "./local-cache.js";
|
|
8
8
|
import { DEFAULT_VITE_DEV_SERVER_PORT, localDashboardPlugin } from "./local-dashboard-plugin.js";
|
|
9
9
|
import { assertLocalDatabaseDriverAvailable, resolveLocalDatabase, } from "./local-database.js";
|
|
10
|
-
import { LocalDurableExecutionPlugin } from "./local-durable-execution-plugin.js";
|
|
10
|
+
import { LocalDurableExecutionPlugin, installLocalDurableWorkflows, launchLocalDurableExecution, localDurableWorkflowsAvailable, } from "./local-durable-execution-plugin.js";
|
|
11
11
|
import { assertLocalRuntimeAllowed } from "./local-runtime-guard.js";
|
|
12
|
-
// Where the local runtime keeps the files it writes, relative to the working directory
|
|
13
|
-
//
|
|
14
|
-
// produce lands among the customer's own files.
|
|
12
|
+
// Where the local runtime keeps the files it writes, relative to the working directory, apart from
|
|
13
|
+
// the customer's own files.
|
|
15
14
|
const LOCAL_STATE_DIR = ".vendure-cloud";
|
|
16
15
|
export async function bootstrapLocalServer(handle, options = {}) {
|
|
17
16
|
return bootstrap(await composeWithDeclaredMigrations(handle, options));
|
|
18
17
|
}
|
|
19
18
|
export async function bootstrapLocalWorker(handle, options = {}) {
|
|
20
|
-
|
|
19
|
+
const worker = await bootstrapWorker(await composeWithDeclaredMigrations(handle, options));
|
|
20
|
+
try {
|
|
21
|
+
await launchLocalDurableExecution();
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
// The open app would otherwise keep the process alive, and the supervisor would not see it fail.
|
|
25
|
+
await worker.app.close();
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
return worker;
|
|
21
29
|
}
|
|
22
|
-
// The local `migrate` run mode.
|
|
23
|
-
//
|
|
30
|
+
// The local `migrate` run mode. It runs the application's migration chain and creates nothing
|
|
31
|
+
// outside it.
|
|
24
32
|
export async function runLocalMigrations(handle, options = {}) {
|
|
33
|
+
installDurableWorkflowHost(options);
|
|
25
34
|
const migrations = options.migrations ?? (await declaredMigrations(handle));
|
|
26
|
-
// Checked here
|
|
27
|
-
//
|
|
28
|
-
// already built is legitimate. This is the one run mode where an empty chain is actionable.
|
|
35
|
+
// Checked here, not during composition: a server booting against a database its migrations
|
|
36
|
+
// already built is legitimate.
|
|
29
37
|
if (migrations.length === 0) {
|
|
30
38
|
throw new NoDeclaredMigrationsError();
|
|
31
39
|
}
|
|
32
|
-
// `runMigrations` reports a failed migration by setting the exit code and returning
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
40
|
+
// `runMigrations` reports a failed migration by setting the exit code and returning
|
|
41
|
+
// (`packages/core/src/migrate.ts` at `@vendure/core@3.7.2` rethrows only under Vendure's own
|
|
42
|
+
// CLI). Without the check below, a chain that stopped part way returns normally and the caller
|
|
43
|
+
// carries on against a half-built schema.
|
|
36
44
|
//
|
|
37
|
-
// The exit code is
|
|
38
|
-
//
|
|
39
|
-
// — so the process still exits non-zero when nobody handles the failure. A supervisor that calls
|
|
40
|
-
// this in its own process and handles the failure would otherwise be left with a process marked
|
|
41
|
-
// as failed for something it had already dealt with.
|
|
45
|
+
// The exit code is restored so a supervisor that handles the thrown error is not left with a
|
|
46
|
+
// failed process.
|
|
42
47
|
const exitCodeBeforeMigrations = process.exitCode;
|
|
43
48
|
process.exitCode = undefined;
|
|
44
49
|
try {
|
|
@@ -69,10 +74,10 @@ export class NoDeclaredMigrationsError extends Error {
|
|
|
69
74
|
this.name = "NoDeclaredMigrationsError";
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
|
-
// Loading
|
|
73
|
-
//
|
|
74
|
-
// rather than a glob handed to TypeORM: the order is a property of the array.
|
|
77
|
+
// Loading migrations reads the filesystem and composition is synchronous, so they are split as in
|
|
78
|
+
// `createManagedRuntime`. ADR-0048 requires an array, since a glob does not fix the order.
|
|
75
79
|
async function composeWithDeclaredMigrations(handle, options) {
|
|
80
|
+
installDurableWorkflowHost(options);
|
|
76
81
|
if (options.migrations)
|
|
77
82
|
return composeLocalConfig(handle, options);
|
|
78
83
|
return composeLocalConfig(handle, {
|
|
@@ -80,13 +85,19 @@ async function composeWithDeclaredMigrations(handle, options) {
|
|
|
80
85
|
migrations: await declaredMigrations(handle),
|
|
81
86
|
});
|
|
82
87
|
}
|
|
88
|
+
// In the run modes and not in `composeLocalConfig`, so composing a configuration changes no
|
|
89
|
+
// process-wide state.
|
|
90
|
+
function installDurableWorkflowHost(options) {
|
|
91
|
+
assertLocalRuntimeAllowed(process.env);
|
|
92
|
+
installLocalDurableWorkflows(resolveLocalDatabase(options.database, process.env));
|
|
93
|
+
}
|
|
83
94
|
async function declaredMigrations(handle) {
|
|
84
95
|
const loaded = await readCloudConfig(handle).loadMigrations();
|
|
85
96
|
return loaded.map(({ migration }) => migration);
|
|
86
97
|
}
|
|
87
98
|
export function composeLocalConfig(handle, options = {}) {
|
|
88
|
-
// ADR-0043
|
|
89
|
-
//
|
|
99
|
+
// ADR-0043 fail-closed rule. Every substitute is composed through this function, and the run modes
|
|
100
|
+
// also check it before installing the durable workflow host.
|
|
90
101
|
assertLocalRuntimeAllowed(process.env);
|
|
91
102
|
assertLocalDatabaseDriverAvailable();
|
|
92
103
|
assertLocalCacheDriverAvailable();
|
|
@@ -95,24 +106,20 @@ export function composeLocalConfig(handle, options = {}) {
|
|
|
95
106
|
const assetUploadDir = resolve(options.assetUploadDir ?? `${LOCAL_STATE_DIR}/assets`);
|
|
96
107
|
const dashboardAppDir = resolve(options.dashboardAppDir ?? `${LOCAL_STATE_DIR}/dashboard`);
|
|
97
108
|
const viteDevServerPort = options.dashboardViteDevServerPort ?? DEFAULT_VITE_DEV_SERVER_PORT;
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
// managed runtime makes, so a route the platform would refuse is refused here too and a preset
|
|
101
|
-
// the platform would honour is honoured here.
|
|
109
|
+
// Read before composition, which drops the declaration markers from the array it hands core. The
|
|
110
|
+
// same calls as the managed runtime, so routes and presets are refused or honoured identically.
|
|
102
111
|
const config = readCloudConfig(handle).config;
|
|
103
112
|
const dashboard = resolveDashboardSettings(config);
|
|
104
113
|
const assets = resolveAssetServerSettings(config);
|
|
105
114
|
const substitutes = {
|
|
106
|
-
// A Valkey the server and
|
|
107
|
-
// `
|
|
108
|
-
//
|
|
109
|
-
// so those two tables would reach a managed runtime that never reads them (CLO-645).
|
|
115
|
+
// A Valkey shared by the server and worker. `DefaultCachePlugin` declares `CacheItem` and
|
|
116
|
+
// `CacheTag`; a migration generated here is the one a deploy applies, so those tables would
|
|
117
|
+
// reach a managed runtime that never reads them (CLO-645).
|
|
110
118
|
cache: localCachePlugin(cache),
|
|
111
|
-
// The job queue
|
|
112
|
-
//
|
|
119
|
+
// The job queue lives in the store's database. `JobRecord` is also declared by the managed
|
|
120
|
+
// runtime, so it is in the customer's migrations either way.
|
|
113
121
|
jobQueue: DefaultJobQueuePlugin.init({}),
|
|
114
|
-
// Vendure's
|
|
115
|
-
// sleeps. Nothing sleeps locally, so the default is the substitute rather than a stand-in.
|
|
122
|
+
// Vendure's scheduler. The managed runtime replaces it because its worker sleeps.
|
|
116
123
|
scheduler: DefaultSchedulerPlugin.init(),
|
|
117
124
|
dashboard: localDashboardPlugin({
|
|
118
125
|
route: dashboard.route,
|
|
@@ -120,8 +127,6 @@ export function composeLocalConfig(handle, options = {}) {
|
|
|
120
127
|
viteDevServerPort,
|
|
121
128
|
}),
|
|
122
129
|
assets: AssetServerPlugin.init(localAssetServerOptions(assets, assetUploadDir)),
|
|
123
|
-
// An empty module. Nothing can start a workflow in either runtime yet, and the plugin's own
|
|
124
|
-
// header says why and what it will do when something can.
|
|
125
130
|
durableExecution: LocalDurableExecutionPlugin,
|
|
126
131
|
};
|
|
127
132
|
const announcements = {
|
|
@@ -130,15 +135,15 @@ export function composeLocalConfig(handle, options = {}) {
|
|
|
130
135
|
scheduler: "Vendure's default scheduler, running in this process",
|
|
131
136
|
dashboard: `served at /${dashboard.route}, from a Vite development server on port ${viteDevServerPort} while one is listening and from ${dashboardAppDir} otherwise`,
|
|
132
137
|
assets: `served at /${CLOUD_ASSET_ROUTE}, stored in ${assetUploadDir}`,
|
|
133
|
-
durableExecution:
|
|
138
|
+
durableExecution: localDurableWorkflowsAvailable()
|
|
139
|
+
? "run by the worker, recorded in the dbos schema of the same database"
|
|
140
|
+
: "not run, because this project does not install @dbos-inc/dbos-sdk",
|
|
134
141
|
};
|
|
135
142
|
const values = {
|
|
136
143
|
...platformDefaultFieldValues(new DefaultSessionCacheStrategy()),
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
// anything that created the schema on the way to serving would leave nothing to generate.
|
|
141
|
-
// `migrations` is the customer's own chain, run here in the order a deploy runs it in.
|
|
144
|
+
// `synchronize: false` leaves the schema to the migration chain, so a diff against this
|
|
145
|
+
// database is a diff against what the migrations built. `migrations` is the customer's chain
|
|
146
|
+
// in deploy order.
|
|
142
147
|
dbConnectionOptions: {
|
|
143
148
|
type: "postgres",
|
|
144
149
|
host: database.host,
|
|
@@ -146,7 +151,6 @@ export function composeLocalConfig(handle, options = {}) {
|
|
|
146
151
|
database: database.database,
|
|
147
152
|
username: database.username,
|
|
148
153
|
password: database.password,
|
|
149
|
-
// Keep migration progress and failures visible without printing every SQL statement.
|
|
150
154
|
logging: ["error", "schema"],
|
|
151
155
|
synchronize: false,
|
|
152
156
|
migrations: [...(options.migrations ?? [])],
|
|
@@ -167,9 +171,8 @@ export function composeLocalConfig(handle, options = {}) {
|
|
|
167
171
|
vendurePlugin: VendurePlugin,
|
|
168
172
|
});
|
|
169
173
|
}
|
|
170
|
-
// One line per capability, read off the inventory
|
|
171
|
-
//
|
|
172
|
-
// because it is not one of the capabilities, and without its password because this is printed.
|
|
174
|
+
// One line per capability, read off the inventory so a new capability cannot reach the terminal
|
|
175
|
+
// unnamed. The database line omits the password.
|
|
173
176
|
function substituteAnnouncement(database, substitutes) {
|
|
174
177
|
return [
|
|
175
178
|
"Vendure Cloud local substitutes are active; no cloud infrastructure is in use.",
|