@cosmicdrift/kumiko-samples 0.385.0 → 0.387.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -57
- package/README.md +1 -1
- package/package.json +2 -2
- package/packages/bundled-features/package.json +2 -2
- package/packages/bundled-features/src/agent-tools/tool-catalog.ts +1 -1
- package/packages/bundled-features/src/agent-tools/tool-dispatch.ts +0 -2
- package/packages/bundled-features/src/audit/screens.ts +1 -1
- package/packages/bundled-features/src/auth-email-password/auth-user-row.ts +10 -10
- package/packages/bundled-features/src/auth-email-password/feature.ts +6 -6
- package/packages/bundled-features/src/auth-email-password/handlers/change-password.write.ts +3 -3
- package/packages/bundled-features/src/auth-email-password/handlers/confirm-token-flow.ts +5 -5
- package/packages/bundled-features/src/auth-email-password/handlers/invite-accept-with-login.write.ts +1 -1
- package/packages/bundled-features/src/auth-email-password/handlers/invite-accept.write.ts +18 -18
- package/packages/bundled-features/src/auth-email-password/handlers/invite-create.write.ts +12 -12
- package/packages/bundled-features/src/auth-email-password/handlers/invite-info.query.ts +1 -1
- package/packages/bundled-features/src/auth-email-password/handlers/invite-signup-complete.write.ts +24 -26
- package/packages/bundled-features/src/auth-email-password/handlers/login.write.ts +1 -1
- package/packages/bundled-features/src/auth-email-password/handlers/self-registration-status.query.ts +1 -1
- package/packages/bundled-features/src/auth-email-password/handlers/signup-confirm.write.ts +34 -37
- package/packages/bundled-features/src/auth-email-password/handlers/signup-request.write.ts +6 -7
- package/packages/bundled-features/src/auth-email-password/handlers/switch-tenant-mfa-gate.write.ts +1 -5
- package/packages/bundled-features/src/auth-email-password/index.ts +5 -5
- package/packages/bundled-features/src/auth-email-password/lockout-store.ts +1 -1
- package/packages/bundled-features/src/auth-email-password/seeding.ts +63 -66
- package/packages/bundled-features/src/auth-email-password/signup-token-store.ts +8 -8
- package/packages/bundled-features/src/auth-email-password/testing.ts +3 -3
- package/packages/bundled-features/src/auth-email-password/web/auth-client.ts +57 -57
- package/packages/bundled-features/src/auth-email-password/web/auth-form-primitives.tsx +14 -14
- package/packages/bundled-features/src/auth-email-password/web/auth-gate.tsx +15 -16
- package/packages/bundled-features/src/auth-email-password/web/client-plugin.ts +11 -12
- package/packages/bundled-features/src/auth-email-password/web/confirm-account-unlock-screen.tsx +1 -1
- package/packages/bundled-features/src/auth-email-password/web/constants.ts +3 -3
- package/packages/bundled-features/src/auth-email-password/web/default-topbar-actions.tsx +14 -14
- package/packages/bundled-features/src/auth-email-password/web/forgot-password-screen.tsx +11 -11
- package/packages/bundled-features/src/auth-email-password/web/index.ts +5 -5
- package/packages/bundled-features/src/auth-email-password/web/invite-accept-screen.tsx +17 -17
- package/packages/bundled-features/src/auth-email-password/web/login-screen.tsx +3 -4
- package/packages/bundled-features/src/auth-email-password/web/reset-password-screen.tsx +16 -17
- package/packages/bundled-features/src/auth-email-password/web/session.tsx +34 -34
- package/packages/bundled-features/src/auth-email-password/web/signup-complete-screen.tsx +3 -3
- package/packages/bundled-features/src/auth-email-password/web/signup-screen.tsx +14 -14
- package/packages/bundled-features/src/auth-email-password/web/tenant-switcher.tsx +26 -27
- package/packages/bundled-features/src/auth-email-password/web/use-shell-user.ts +12 -13
- package/packages/bundled-features/src/auth-email-password/web/user-menu.tsx +17 -18
- package/packages/bundled-features/src/auth-email-password/web/verify-email-screen.tsx +11 -12
- package/packages/bundled-features/src/auth-foundation/boot-checks.ts +4 -4
- package/packages/bundled-features/src/auth-foundation/resolve-anonymous-access.ts +4 -4
- package/packages/bundled-features/src/auth-foundation/types.ts +2 -2
- package/packages/bundled-features/src/auth-mfa/handlers/disable.write.ts +3 -3
- package/packages/bundled-features/src/auth-mfa/handlers/enable-confirm-preauth.write.ts +4 -4
- package/packages/bundled-features/src/auth-mfa/handlers/enable-confirm.write.ts +2 -2
- package/packages/bundled-features/src/auth-mfa/handlers/enable-start-preauth.write.ts +1 -1
- package/packages/bundled-features/src/auth-mfa/handlers/reencrypt.job.ts +1 -1
- package/packages/bundled-features/src/auth-mfa/handlers/regenerate-recovery.write.ts +5 -5
- package/packages/bundled-features/src/auth-mfa/handlers/verify.write.ts +1 -1
- package/packages/bundled-features/src/auth-mfa/token-secrets.ts +1 -1
- package/packages/bundled-features/src/auth-mfa/web/client-plugin.ts +2 -2
- package/packages/bundled-features/src/auth-mfa/web/i18n.ts +3 -3
- package/packages/bundled-features/src/auth-mfa/web/index.ts +4 -4
- package/packages/bundled-features/src/auth-mfa/web/mfa-client.ts +17 -16
- package/packages/bundled-features/src/auth-mfa/web/mfa-verify-screen.tsx +6 -6
- package/packages/bundled-features/src/billing-foundation/aggregate-id.ts +10 -11
- package/packages/bundled-features/src/billing-foundation/entities.ts +27 -27
- package/packages/bundled-features/src/billing-foundation/events.ts +22 -21
- package/packages/bundled-features/src/billing-foundation/feature.ts +42 -43
- package/packages/bundled-features/src/billing-foundation/get-subscription-for-tenant.ts +3 -5
- package/packages/bundled-features/src/billing-foundation/handlers/create-checkout-session.write.ts +18 -17
- package/packages/bundled-features/src/billing-foundation/handlers/create-portal-session.write.ts +11 -12
- package/packages/bundled-features/src/billing-foundation/handlers/list-subscriptions.query.ts +4 -4
- package/packages/bundled-features/src/billing-foundation/handlers/process-event.write.ts +20 -20
- package/packages/bundled-features/src/billing-foundation/projection.ts +38 -37
- package/packages/bundled-features/src/billing-foundation/subscription-tier-sync.ts +3 -3
- package/packages/bundled-features/src/billing-foundation/tenant-destroy-hook.ts +7 -8
- package/packages/bundled-features/src/billing-foundation/types.ts +64 -65
- package/packages/bundled-features/src/billing-foundation/web/billing-plans-panel.tsx +4 -4
- package/packages/bundled-features/src/billing-foundation/webhook-handler.ts +1 -1
- package/packages/bundled-features/src/cap-counter/aggregate-id.ts +8 -9
- package/packages/bundled-features/src/cap-counter/constants.ts +11 -12
- package/packages/bundled-features/src/cap-counter/enforce-cap.ts +64 -67
- package/packages/bundled-features/src/cap-counter/entity.ts +29 -29
- package/packages/bundled-features/src/cap-counter/feature.ts +34 -35
- package/packages/bundled-features/src/cap-counter/handlers/increment-rolling.write.ts +31 -31
- package/packages/bundled-features/src/cap-counter/handlers/mark-soft-warned.write.ts +4 -5
- package/packages/bundled-features/src/cap-counter/stock-cap-guard.ts +1 -1
- package/packages/bundled-features/src/cap-counter/with-cap-enforcement.ts +3 -5
- package/packages/bundled-features/src/cap-overview/handlers/caps-usage.query.ts +1 -3
- package/packages/bundled-features/src/cap-overview/handlers/tenant-caps-list.query.ts +1 -1
- package/packages/bundled-features/src/channel-email/smtp-transport.ts +34 -31
- package/packages/bundled-features/src/channel-in-app/handlers/unread-count.query.ts +3 -4
- package/packages/bundled-features/src/compliance-profiles/feature.ts +15 -16
- package/packages/bundled-features/src/compliance-profiles/handlers/for-tenant.query.ts +3 -6
- package/packages/bundled-features/src/compliance-profiles/handlers/list-profiles.query.ts +5 -5
- package/packages/bundled-features/src/compliance-profiles/handlers/needs-profile.query.ts +4 -4
- package/packages/bundled-features/src/compliance-profiles/handlers/set-profile.write.ts +13 -14
- package/packages/bundled-features/src/compliance-profiles/handlers/sub-processors.query.ts +9 -11
- package/packages/bundled-features/src/compliance-profiles/resolve-for-tenant.ts +7 -7
- package/packages/bundled-features/src/compliance-profiles/schema/profile-selection.ts +18 -23
- package/packages/bundled-features/src/compliance-profiles/seeding.ts +14 -15
- package/packages/bundled-features/src/compliance-profiles-ops/handlers/tenants-missing-profile.query.ts +3 -3
- package/packages/bundled-features/src/compliance-profiles-ops/index.ts +2 -2
- package/packages/bundled-features/src/config/handlers/readiness.query.ts +7 -7
- package/packages/bundled-features/src/config/handlers/reencrypt.job.ts +4 -5
- package/packages/bundled-features/src/config/handlers/set.write.ts +4 -4
- package/packages/bundled-features/src/config/resolver.ts +4 -4
- package/packages/bundled-features/src/config/table.ts +10 -10
- package/packages/bundled-features/src/config/write-helpers.ts +1 -1
- package/packages/bundled-features/src/crypto-shredding/handlers/forget-subject.write.ts +13 -12
- package/packages/bundled-features/src/custom-fields/aggregate-id.ts +16 -17
- package/packages/bundled-features/src/custom-fields/entity.ts +49 -47
- package/packages/bundled-features/src/custom-fields/events.ts +7 -8
- package/packages/bundled-features/src/custom-fields/feature.ts +70 -72
- package/packages/bundled-features/src/custom-fields/handlers/clear-custom-field.write.ts +9 -8
- package/packages/bundled-features/src/custom-fields/handlers/define-tenant-field.write.ts +28 -26
- package/packages/bundled-features/src/custom-fields/handlers/delete-system-field.write.ts +6 -7
- package/packages/bundled-features/src/custom-fields/handlers/delete-tenant-field.write.ts +12 -13
- package/packages/bundled-features/src/custom-fields/handlers/set-custom-field.write.ts +25 -28
- package/packages/bundled-features/src/custom-fields/handlers/update-tenant-field.write.ts +6 -6
- package/packages/bundled-features/src/custom-fields/lib/field-access.ts +2 -2
- package/packages/bundled-features/src/custom-fields/lib/parse-serialized-field.ts +1 -1
- package/packages/bundled-features/src/custom-fields/lib/quota.ts +1 -1
- package/packages/bundled-features/src/custom-fields/lib/value-schema.ts +10 -12
- package/packages/bundled-features/src/custom-fields/run-retention.ts +3 -3
- package/packages/bundled-features/src/custom-fields/schemas.ts +14 -14
- package/packages/bundled-features/src/custom-fields/web/client-plugin.tsx +2 -5
- package/packages/bundled-features/src/custom-fields/web/constants.ts +2 -2
- package/packages/bundled-features/src/custom-fields/web/custom-fields-form-section.tsx +26 -26
- package/packages/bundled-features/src/custom-fields/wire-for-entity.ts +65 -67
- package/packages/bundled-features/src/custom-fields/wire-user-data-rights.ts +3 -3
- package/packages/bundled-features/src/data-retention/_internal/parse-override.ts +2 -3
- package/packages/bundled-features/src/data-retention/feature.ts +11 -18
- package/packages/bundled-features/src/data-retention/handlers/policy-for.query.ts +6 -6
- package/packages/bundled-features/src/data-retention/keep-for.ts +17 -17
- package/packages/bundled-features/src/data-retention/override-schema.ts +13 -15
- package/packages/bundled-features/src/data-retention/presets.ts +18 -23
- package/packages/bundled-features/src/data-retention/resolve-for-tenant.ts +1 -1
- package/packages/bundled-features/src/data-retention/resolve-tenant-preset.ts +17 -16
- package/packages/bundled-features/src/data-retention/resolver.ts +33 -32
- package/packages/bundled-features/src/data-retention/run-retention-cleanup.ts +71 -58
- package/packages/bundled-features/src/data-retention/schema/tenant-retention-override.ts +13 -11
- package/packages/bundled-features/src/delivery/feature.ts +3 -3
- package/packages/bundled-features/src/delivery/handlers/log.query.ts +1 -1
- package/packages/bundled-features/src/delivery/tables.ts +9 -8
- package/packages/bundled-features/src/delivery/unsubscribe.ts +4 -4
- package/packages/bundled-features/src/delivery/upsert-preference.ts +3 -4
- package/packages/bundled-features/src/document-ingest-foundation/entity.ts +5 -5
- package/packages/bundled-features/src/document-ingest-foundation/events.ts +2 -2
- package/packages/bundled-features/src/document-ingest-foundation/feature.ts +2 -2
- package/packages/bundled-features/src/document-ingest-foundation/pages.ts +1 -1
- package/packages/bundled-features/src/document-ingest-foundation/tenant-destroy-hook.ts +4 -4
- package/packages/bundled-features/src/feature-toggles/compose-tier-resolver.ts +1 -1
- package/packages/bundled-features/src/feature-toggles/feature.ts +1 -1
- package/packages/bundled-features/src/feature-toggles/global-feature-state-table.ts +1 -1
- package/packages/bundled-features/src/feature-toggles/handlers/registered.query.ts +5 -5
- package/packages/bundled-features/src/feature-toggles/toggle-runtime.ts +1 -1
- package/packages/bundled-features/src/feature-toggles/toggle-sync-signal.ts +1 -1
- package/packages/bundled-features/src/feature-toggles/web/constants.ts +1 -1
- package/packages/bundled-features/src/file-derivatives/feature.ts +2 -2
- package/packages/bundled-features/src/file-derivatives/handlers/public-variant.query.ts +1 -1
- package/packages/bundled-features/src/file-derivatives/presets.ts +1 -1
- package/packages/bundled-features/src/file-foundation/feature.ts +6 -6
- package/packages/bundled-features/src/file-provider-inmemory/feature.ts +16 -16
- package/packages/bundled-features/src/file-provider-s3/feature.ts +16 -16
- package/packages/bundled-features/src/file-provider-s3/lib/s3-provider.ts +6 -6
- package/packages/bundled-features/src/files/feature.ts +6 -6
- package/packages/bundled-features/src/files-tenant-data/handlers/sweep-orphaned-derivatives.job.ts +5 -5
- package/packages/bundled-features/src/files-tenant-data/hooks.ts +24 -26
- package/packages/bundled-features/src/files-tenant-data/index.ts +1 -1
- package/packages/bundled-features/src/folders/feature.ts +1 -1
- package/packages/bundled-features/src/folders/web/folder-manager.tsx +2 -2
- package/packages/bundled-features/src/folders/web/tree.ts +5 -5
- package/packages/bundled-features/src/form-draft/db/queries/cleanup.ts +1 -1
- package/packages/bundled-features/src/form-draft/db/queries/owned-file-refs.ts +1 -1
- package/packages/bundled-features/src/form-draft/entity.ts +3 -3
- package/packages/bundled-features/src/form-draft/feature.ts +4 -5
- package/packages/bundled-features/src/form-draft/handlers/discard.write.ts +1 -1
- package/packages/bundled-features/src/form-draft/release-file-refs.ts +6 -6
- package/packages/bundled-features/src/form-draft/schemas.ts +3 -3
- package/packages/bundled-features/src/form-draft/web/constants.ts +0 -2
- package/packages/bundled-features/src/inbound-mail-foundation/aggregate-id.ts +19 -19
- package/packages/bundled-features/src/inbound-mail-foundation/connect-routes.ts +4 -3
- package/packages/bundled-features/src/inbound-mail-foundation/constants.ts +30 -33
- package/packages/bundled-features/src/inbound-mail-foundation/entities.ts +47 -48
- package/packages/bundled-features/src/inbound-mail-foundation/events.ts +54 -50
- package/packages/bundled-features/src/inbound-mail-foundation/feature.ts +39 -39
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/account-state.ts +8 -8
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/connect-account.write.ts +25 -26
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/disconnect-account.write.ts +7 -7
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/ingest-message.write.ts +50 -51
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/list-accounts.query.ts +8 -8
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/list-messages.query.ts +10 -10
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/scope-visibility.ts +3 -4
- package/packages/bundled-features/src/inbound-mail-foundation/handlers/update-account.write.ts +11 -11
- package/packages/bundled-features/src/inbound-mail-foundation/oauth-state.ts +16 -15
- package/packages/bundled-features/src/inbound-mail-foundation/projection.ts +31 -29
- package/packages/bundled-features/src/inbound-mail-foundation/provider-factory.ts +9 -9
- package/packages/bundled-features/src/inbound-mail-foundation/retention-sweep.ts +45 -41
- package/packages/bundled-features/src/inbound-mail-foundation/tenant-destroy-hook.ts +14 -16
- package/packages/bundled-features/src/inbound-mail-foundation/types.ts +66 -67
- package/packages/bundled-features/src/inbound-mail-foundation/watch-supervisor.ts +69 -68
- package/packages/bundled-features/src/inbound-provider-imap/credential-document.ts +13 -13
- package/packages/bundled-features/src/inbound-provider-imap/feature.ts +42 -40
- package/packages/bundled-features/src/inbound-provider-imap/imap-client.ts +20 -19
- package/packages/bundled-features/src/inbound-provider-inmemory/feature.ts +21 -21
- package/packages/bundled-features/src/jobs/db/queries/retention.ts +2 -2
- package/packages/bundled-features/src/jobs/db/queries/stale-run-sweep.ts +3 -3
- package/packages/bundled-features/src/jobs/events.ts +1 -1
- package/packages/bundled-features/src/jobs/feature.ts +6 -7
- package/packages/bundled-features/src/jobs/handlers/detail.query.ts +4 -4
- package/packages/bundled-features/src/jobs/handlers/list.query.ts +1 -1
- package/packages/bundled-features/src/jobs/handlers/projection-rebuild.job.ts +1 -1
- package/packages/bundled-features/src/jobs/handlers/reindex-entity.job.ts +1 -1
- package/packages/bundled-features/src/jobs/handlers/retry.write.ts +1 -1
- package/packages/bundled-features/src/jobs/job-instant.ts +1 -1
- package/packages/bundled-features/src/jobs/job-run-logger.ts +14 -15
- package/packages/bundled-features/src/jobs/job-run-table.ts +3 -3
- package/packages/bundled-features/src/jobs/screens.ts +1 -1
- package/packages/bundled-features/src/jobs/tenant-job-failure-table.ts +1 -1
- package/packages/bundled-features/src/jobs/tenant-job-run-table.ts +1 -1
- package/packages/bundled-features/src/ledger/entity.ts +5 -5
- package/packages/bundled-features/src/ledger/feature.ts +3 -3
- package/packages/bundled-features/src/ledger/handlers/confirm-schedule-period.write.ts +3 -3
- package/packages/bundled-features/src/ledger/recurring.ts +12 -12
- package/packages/bundled-features/src/ledger/schemas.ts +1 -1
- package/packages/bundled-features/src/ledger/web/constants.ts +2 -2
- package/packages/bundled-features/src/ledger/web/index.ts +7 -7
- package/packages/bundled-features/src/legal-pages/feature.ts +40 -41
- package/packages/bundled-features/src/legal-pages/markdown.ts +3 -3
- package/packages/bundled-features/src/legal-pages/web/client-plugin.ts +23 -24
- package/packages/bundled-features/src/legal-pages/web/index.ts +0 -2
- package/packages/bundled-features/src/mail-foundation/feature.ts +26 -27
- package/packages/bundled-features/src/mail-transport-inmemory/feature.ts +27 -28
- package/packages/bundled-features/src/mail-transport-smtp/feature.ts +20 -20
- package/packages/bundled-features/src/managed-pages/branding.ts +6 -6
- package/packages/bundled-features/src/managed-pages/feature.ts +62 -62
- package/packages/bundled-features/src/managed-pages/handlers/by-slug.query.ts +5 -6
- package/packages/bundled-features/src/managed-pages/handlers/by-tenant-published.query.ts +8 -8
- package/packages/bundled-features/src/managed-pages/handlers/set.write.ts +5 -7
- package/packages/bundled-features/src/managed-pages/screens/page-screens.ts +11 -11
- package/packages/bundled-features/src/managed-pages/seeding.ts +8 -8
- package/packages/bundled-features/src/managed-pages/table.ts +16 -15
- package/packages/bundled-features/src/managed-pages/web/client-plugin.tsx +6 -6
- package/packages/bundled-features/src/managed-pages/web/i18n.ts +1 -1
- package/packages/bundled-features/src/notes-history/entity.ts +4 -4
- package/packages/bundled-features/src/notes-history/feature.ts +2 -2
- package/packages/bundled-features/src/notes-history-user-data/hooks.ts +1 -1
- package/packages/bundled-features/src/page-render/layout.ts +9 -9
- package/packages/bundled-features/src/page-render/markdown.ts +11 -11
- package/packages/bundled-features/src/page-render/security-headers.ts +7 -6
- package/packages/bundled-features/src/personal-access-tokens/feature.ts +5 -5
- package/packages/bundled-features/src/personal-access-tokens/roles.ts +2 -2
- package/packages/bundled-features/src/readiness/handlers/status.query.ts +3 -3
- package/packages/bundled-features/src/renderer-foundation/api.ts +12 -13
- package/packages/bundled-features/src/renderer-foundation/constants.ts +2 -2
- package/packages/bundled-features/src/renderer-foundation/feature.ts +7 -7
- package/packages/bundled-features/src/renderer-foundation/types.ts +11 -12
- package/packages/bundled-features/src/secrets/feature.ts +9 -9
- package/packages/bundled-features/src/secrets/web/constants.ts +2 -2
- package/packages/bundled-features/src/seo/feature.ts +3 -3
- package/packages/bundled-features/src/sessions/constants.ts +1 -1
- package/packages/bundled-features/src/sessions/feature.ts +9 -9
- package/packages/bundled-features/src/sessions/handlers/revoke-all-for-user.write.ts +2 -2
- package/packages/bundled-features/src/sessions/handlers/revoke-all-others.write.ts +2 -2
- package/packages/bundled-features/src/sessions/handlers/revoke.write.ts +1 -1
- package/packages/bundled-features/src/sessions/schema/user-session.ts +4 -4
- package/packages/bundled-features/src/sessions/screens.ts +2 -2
- package/packages/bundled-features/src/sessions/session-callbacks.ts +2 -2
- package/packages/bundled-features/src/sessions/session-revoked-event.ts +2 -2
- package/packages/bundled-features/src/shared/assert-no-where-rule-in-ownership-write.ts +1 -1
- package/packages/bundled-features/src/shared/decrypt-stored-pii.ts +1 -1
- package/packages/bundled-features/src/shared/encrypt-for-direct-write.ts +1 -1
- package/packages/bundled-features/src/shared/map-with-concurrency.ts +5 -4
- package/packages/bundled-features/src/shared/parent-visibility.ts +2 -2
- package/packages/bundled-features/src/shared/password-hashing.ts +1 -1
- package/packages/bundled-features/src/shared/signup-handover.ts +1 -2
- package/packages/bundled-features/src/shared/single-use-token-store.ts +1 -1
- package/packages/bundled-features/src/subscription-mollie/constants.ts +15 -17
- package/packages/bundled-features/src/subscription-mollie/feature.ts +41 -42
- package/packages/bundled-features/src/subscription-mollie/index.ts +3 -3
- package/packages/bundled-features/src/subscription-mollie/plugin-methods.ts +17 -16
- package/packages/bundled-features/src/subscription-mollie/verify-webhook.ts +34 -34
- package/packages/bundled-features/src/subscription-stripe/constants.ts +4 -6
- package/packages/bundled-features/src/subscription-stripe/feature.ts +44 -43
- package/packages/bundled-features/src/subscription-stripe/index.ts +6 -6
- package/packages/bundled-features/src/subscription-stripe/plugin-methods.ts +22 -27
- package/packages/bundled-features/src/subscription-stripe/runtime.ts +2 -2
- package/packages/bundled-features/src/subscription-stripe/verify-webhook.ts +62 -64
- package/packages/bundled-features/src/tags/feature.ts +3 -3
- package/packages/bundled-features/src/tags/screens.ts +1 -1
- package/packages/bundled-features/src/template-resolver/api.ts +10 -10
- package/packages/bundled-features/src/template-resolver/handlers/find-by-id.query.ts +5 -5
- package/packages/bundled-features/src/template-resolver/handlers/list.query.ts +1 -1
- package/packages/bundled-features/src/template-resolver/handlers/shared.ts +2 -2
- package/packages/bundled-features/src/template-resolver/handlers/template-write.ts +3 -3
- package/packages/bundled-features/src/template-resolver/handlers/upsert-system.write.ts +3 -4
- package/packages/bundled-features/src/template-resolver/handlers/upsert-tenant.write.ts +4 -5
- package/packages/bundled-features/src/template-resolver/seeding.ts +4 -4
- package/packages/bundled-features/src/template-resolver/table.ts +13 -14
- package/packages/bundled-features/src/template-resolver/web/client-plugin.tsx +2 -2
- package/packages/bundled-features/src/tenant/feature.ts +7 -7
- package/packages/bundled-features/src/tenant/handlers/member-directory.query.ts +1 -1
- package/packages/bundled-features/src/tenant/handlers/members.query.ts +1 -1
- package/packages/bundled-features/src/tenant/handlers/memberships.query.ts +1 -1
- package/packages/bundled-features/src/tenant/handlers/team-list.query.ts +1 -1
- package/packages/bundled-features/src/tenant/handlers/tenant-directory.query.ts +1 -1
- package/packages/bundled-features/src/tenant/invitation-table.ts +37 -40
- package/packages/bundled-features/src/tenant/membership-table.ts +3 -3
- package/packages/bundled-features/src/tenant/schema/tenant.ts +7 -9
- package/packages/bundled-features/src/tenant/screens.ts +1 -1
- package/packages/bundled-features/src/tenant/seeding.ts +19 -18
- package/packages/bundled-features/src/tenant/testing.ts +5 -6
- package/packages/bundled-features/src/tenant/web/constants.ts +2 -2
- package/packages/bundled-features/src/tenant-handover/events.ts +5 -7
- package/packages/bundled-features/src/tenant-handover/feature.ts +1 -1
- package/packages/bundled-features/src/tenant-handover/grant.ts +1 -1
- package/packages/bundled-features/src/tenant-handover/handlers/claim.write.ts +1 -1
- package/packages/bundled-features/src/tenant-handover/move-entity-graph.ts +8 -9
- package/packages/bundled-features/src/tenant-handover/signup-handover-provider.ts +1 -2
- package/packages/bundled-features/src/tenant-handover/transfer-graph.ts +4 -5
- package/packages/bundled-features/src/tenant-lifecycle/boot-checks.ts +1 -1
- package/packages/bundled-features/src/tenant-lifecycle/feature.ts +1 -1
- package/packages/bundled-features/src/tenant-lifecycle/run-tenant-destroy.ts +2 -2
- package/packages/bundled-features/src/tenant-lifecycle/stages.ts +1 -1
- package/packages/bundled-features/src/tenant-settings/constants.ts +1 -1
- package/packages/bundled-features/src/tenant-settings/tenant-defaults.ts +12 -5
- package/packages/bundled-features/src/tier-engine/aggregate-id.ts +15 -16
- package/packages/bundled-features/src/tier-engine/compose-app.ts +14 -14
- package/packages/bundled-features/src/tier-engine/entity.ts +18 -19
- package/packages/bundled-features/src/tier-engine/feature.ts +88 -87
- package/packages/bundled-features/src/tier-engine/handlers/active-tier.query.ts +6 -7
- package/packages/bundled-features/src/tier-engine/handlers/get-tenant-tier.query.ts +4 -4
- package/packages/bundled-features/src/tier-engine/handlers/set-tenant-tier.write.ts +8 -8
- package/packages/bundled-features/src/tier-engine/tier-resolver.ts +2 -2
- package/packages/bundled-features/src/tier-engine/trial.ts +13 -13
- package/packages/bundled-features/src/tier-engine/web/index.ts +4 -4
- package/packages/bundled-features/src/user/db/queries/stream-tenant-backfill.ts +8 -8
- package/packages/bundled-features/src/user/handlers/create.write.ts +4 -4
- package/packages/bundled-features/src/user/schema/user.ts +45 -44
- package/packages/bundled-features/src/user/seeding.ts +40 -40
- package/packages/bundled-features/src/user/testing.ts +3 -3
- package/packages/bundled-features/src/user-data-rights/audit-download.ts +27 -28
- package/packages/bundled-features/src/user-data-rights/boot-checks.ts +1 -1
- package/packages/bundled-features/src/user-data-rights/deletion-token.ts +1 -1
- package/packages/bundled-features/src/user-data-rights/feature.ts +112 -113
- package/packages/bundled-features/src/user-data-rights/handlers/cancel-deletion.write.ts +9 -9
- package/packages/bundled-features/src/user-data-rights/handlers/confirm-deletion-by-token.write.ts +8 -8
- package/packages/bundled-features/src/user-data-rights/handlers/download-by-job.query.ts +29 -30
- package/packages/bundled-features/src/user-data-rights/handlers/download-by-token.query.ts +40 -42
- package/packages/bundled-features/src/user-data-rights/handlers/export-status.query.ts +8 -9
- package/packages/bundled-features/src/user-data-rights/handlers/lift-restriction.write.ts +7 -8
- package/packages/bundled-features/src/user-data-rights/handlers/list-download-attempts.query.ts +2 -2
- package/packages/bundled-features/src/user-data-rights/handlers/my-audit-log.query.ts +4 -4
- package/packages/bundled-features/src/user-data-rights/handlers/request-deletion-by-email.write.ts +30 -29
- package/packages/bundled-features/src/user-data-rights/handlers/request-deletion.write.ts +15 -18
- package/packages/bundled-features/src/user-data-rights/handlers/request-export.write.ts +42 -41
- package/packages/bundled-features/src/user-data-rights/handlers/restrict-account.write.ts +22 -19
- package/packages/bundled-features/src/user-data-rights/handlers/run-forget-cleanup.write.ts +8 -8
- package/packages/bundled-features/src/user-data-rights/index.ts +8 -10
- package/packages/bundled-features/src/user-data-rights/lib/default-mailers.ts +3 -3
- package/packages/bundled-features/src/user-data-rights/lib/update-user-lifecycle.ts +24 -27
- package/packages/bundled-features/src/user-data-rights/run-export-jobs.ts +166 -276
- package/packages/bundled-features/src/user-data-rights/run-forget-cleanup.ts +85 -107
- package/packages/bundled-features/src/user-data-rights/run-user-export.ts +67 -69
- package/packages/bundled-features/src/user-data-rights/schema/download-attempt.ts +11 -11
- package/packages/bundled-features/src/user-data-rights/schema/download-token.ts +37 -41
- package/packages/bundled-features/src/user-data-rights/schema/export-job.ts +65 -67
- package/packages/bundled-features/src/user-data-rights/token-helpers.ts +21 -25
- package/packages/bundled-features/src/user-data-rights/web/client-plugin.tsx +6 -6
- package/packages/bundled-features/src/user-data-rights/web/confirm-deletion-screen.tsx +6 -5
- package/packages/bundled-features/src/user-data-rights/web/constants.ts +1 -1
- package/packages/bundled-features/src/user-data-rights/web/index.ts +5 -5
- package/packages/bundled-features/src/user-data-rights/web/privacy-center-screen.tsx +14 -13
- package/packages/bundled-features/src/user-data-rights/web/public-deletion-gate.tsx +13 -12
- package/packages/bundled-features/src/user-data-rights/web/request-deletion-screen.tsx +6 -6
- package/packages/bundled-features/src/user-data-rights/zip-path.ts +41 -40
- package/packages/bundled-features/src/user-data-rights-defaults/feature.ts +15 -15
- package/packages/bundled-features/src/user-data-rights-defaults/hooks/delivery-attempt.userdata-hook.ts +3 -5
- package/packages/bundled-features/src/user-data-rights-defaults/hooks/file-ref.userdata-hook.ts +45 -51
- package/packages/bundled-features/src/user-data-rights-defaults/hooks/job-run.userdata-hook.ts +2 -2
- package/packages/bundled-features/src/user-data-rights-defaults/hooks/notification-preference.userdata-hook.ts +1 -1
- package/packages/bundled-features/src/user-data-rights-defaults/hooks/user-session.userdata-hook.ts +3 -3
- package/packages/bundled-features/src/user-data-rights-defaults/hooks/user.userdata-hook.ts +32 -31
- package/packages/bundled-features/src/user-profile/handlers/change-email.write.ts +13 -13
- package/packages/bundled-features/src/user-profile/index.ts +3 -3
- package/packages/bundled-features/src/user-profile/web/client-plugin.ts +1 -1
- package/packages/bundled-features/src/user-profile/web/constants.ts +1 -1
- package/packages/bundled-features/src/user-profile/web/profile-screen.tsx +1 -1
- package/packages/bundled-features/src/workflow-runner/aggregate-id.ts +1 -1
- package/packages/bundled-features/src/workflow-runner/event-subscriber.ts +4 -5
- package/packages/bundled-features/src/workflow-runner/event-trigger.ts +4 -15
- package/packages/bundled-features/src/workflow-runner/feature.ts +2 -2
- package/packages/bundled-features/src/workflow-runner/handlers/resume-run.write.ts +4 -4
- package/packages/bundled-features/src/workflow-runner/pending-projection.ts +6 -7
- package/packages/bundled-features/src/workflow-runner/runner.ts +6 -6
- package/packages/bundled-features/src/workflow-runner/tables.ts +6 -6
- package/packages/bundled-features/src/workflow-runner/workflow-registry.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Deliberately no i18n export: the server barrel must remain compilable by server samples
|
|
2
|
+
// without a JSX tsconfig (i18n pulls in kumiko-renderer → .tsx). Translations are provided
|
|
3
|
+
// through ./web (userProfileClient).
|
|
4
4
|
|
|
5
5
|
export { createUserProfileFeature, type UserProfileFeatureOptions } from "./feature.ts";
|
|
6
6
|
export {
|
|
@@ -25,7 +25,7 @@ export type UserProfileClientFeature = {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
// Supplies the ChangeEmail/ChangePassword extension components for the
|
|
28
|
-
// declarative `profile` projectionDetail screen (
|
|
28
|
+
// declarative `profile` projectionDetail screen (../feature.ts,
|
|
29
29
|
// registered there server-side) plus the default translations. Apps add it
|
|
30
30
|
// via createKumikoApp({ clientFeatures: [userProfileClient()] }) and place
|
|
31
31
|
// the screen (id "profile") via r.nav — the screen itself has no r.nav of
|
|
@@ -5,7 +5,7 @@ export const USER_PROFILE_FEATURE = "user-profile" as const;
|
|
|
5
5
|
|
|
6
6
|
export const PROFILE_SCREEN_ID = "profile" as const;
|
|
7
7
|
|
|
8
|
-
// EditExtensionSection `__component` markers
|
|
8
|
+
// EditExtensionSection `__component` markers — change-password and
|
|
9
9
|
// change-email stay React components (re-auth flows a declarative action
|
|
10
10
|
// can't express); deletion moved to declarative fields/actions on the screen
|
|
11
11
|
// itself (feature.ts), same split as user-data-rights' privacy-center.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Change-password and change-email sections for the declarative `profile`
|
|
2
|
-
// projectionDetail screen (
|
|
2
|
+
// projectionDetail screen (../feature.ts). Both keep re-auth flows
|
|
3
3
|
// a declarative action can't express, so they stay React `EditExtensionSection`
|
|
4
4
|
// components; account deletion moved to declarative fields/actions on the
|
|
5
5
|
// screen itself — same split as user-data-rights' privacy-center
|
|
@@ -12,7 +12,7 @@ const WORKFLOW_RUN_NAMESPACE = "1f8a6c3e-7d2b-4a91-9e3f-5c8b2a41d6f0";
|
|
|
12
12
|
* race on `expectedVersion` and have the loser fail the unique constraint
|
|
13
13
|
* instead of silently double-running. It does NOT dedup sequential
|
|
14
14
|
* re-triggers of the same key — those land as version 2, 3, ... on the same
|
|
15
|
-
* stream and each starts its own run; that's out of scope
|
|
15
|
+
* stream and each starts its own run; that's out of scope.
|
|
16
16
|
*/
|
|
17
17
|
// @wrapper-known uuid-domain
|
|
18
18
|
export function workflowRunAggregateId(workflowName: string, key: string): string {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// event-subscriber — wakes up pending waitForEvent suspensions when their
|
|
2
|
-
// awaited domain event arrives (
|
|
3
|
-
// workflow-resume-loop.md).
|
|
2
|
+
// awaited domain event arrives (in workflow-resume-loop.md).
|
|
4
3
|
//
|
|
5
4
|
// registerEventTrigger (event-trigger.ts) calls registerEventWakeup for
|
|
6
5
|
// every workflow it registers, building ONE MultiStreamProjection PER
|
|
@@ -17,12 +16,12 @@
|
|
|
17
16
|
// already in hand, has no such hazard — same reasoning event-trigger.ts
|
|
18
17
|
// already applies to the run-start MSP.
|
|
19
18
|
//
|
|
20
|
-
// This subscriber never resumes a run itself (
|
|
19
|
+
// This subscriber never resumes a run itself (in workflow-resume-loop.md):
|
|
21
20
|
// the MultiStreamApplyContext it runs in has no callFeature/runStepList
|
|
22
21
|
// access, only unsafeAppendEvent/loadAggregate. It writes triggerEventType
|
|
23
22
|
// + triggerEventRef + wakeAt=now() onto the matching pending row(s); the
|
|
24
|
-
// existing resume-due-runs job
|
|
25
|
-
// cron tick — the
|
|
23
|
+
// existing resume-due-runs job picks the row up on its next
|
|
24
|
+
// cron tick — the resume path remains unchanged.
|
|
26
25
|
|
|
27
26
|
import { selectMany, updateMany } from "@cosmicdrift/kumiko-framework/db";
|
|
28
27
|
import type {
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
WORKFLOW_AGGREGATE_TYPE,
|
|
27
27
|
WORKFLOW_RUN_FAILED_TYPE,
|
|
28
28
|
WorkflowStepError,
|
|
29
|
+
walkStepInstances,
|
|
29
30
|
} from "@cosmicdrift/kumiko-framework/engine";
|
|
30
31
|
import { createFallbackLogger } from "@cosmicdrift/kumiko-framework/logging";
|
|
31
32
|
import { workflowRunAggregateId } from "./aggregate-id.ts";
|
|
@@ -51,18 +52,6 @@ const STEP_KINDS_NEEDING_HANDLER_CONTEXT: ReadonlySet<string> = new Set([
|
|
|
51
52
|
"unsafeProjectionDelete",
|
|
52
53
|
]);
|
|
53
54
|
|
|
54
|
-
function* walkStepInstances(steps: readonly StepInstance[]): Generator<StepInstance, void, void> {
|
|
55
|
-
for (const step of steps) {
|
|
56
|
-
yield step;
|
|
57
|
-
const { args } = step;
|
|
58
|
-
if (typeof args !== "object" || args === null) continue;
|
|
59
|
-
for (const path of getStep(step.kind)?.subPaths ?? []) {
|
|
60
|
-
const nested: unknown = path in args ? Reflect.get(args, path) : undefined;
|
|
61
|
-
if (Array.isArray(nested)) yield* walkStepInstances(nested);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
55
|
export function assertEventTriggerStepsSupported(workflow: WorkflowDefinition): void {
|
|
67
56
|
let steps: readonly StepInstance[];
|
|
68
57
|
try {
|
|
@@ -80,7 +69,7 @@ export function assertEventTriggerStepsSupported(workflow: WorkflowDefinition):
|
|
|
80
69
|
{ cause: error },
|
|
81
70
|
);
|
|
82
71
|
}
|
|
83
|
-
for (const step of walkStepInstances(steps)) {
|
|
72
|
+
for (const step of walkStepInstances(steps, `workflow "${workflow.name}" eventTrigger`)) {
|
|
84
73
|
if (getStep(step.kind) === undefined) {
|
|
85
74
|
throw new Error(`Workflow "${workflow.name}" uses unknown step kind "${step.kind}"`);
|
|
86
75
|
}
|
|
@@ -95,13 +84,13 @@ export function assertEventTriggerStepsSupported(workflow: WorkflowDefinition):
|
|
|
95
84
|
|
|
96
85
|
export function registerEventTrigger(r: FeatureRegistrar, workflow: WorkflowDefinition): void {
|
|
97
86
|
// Populate the workflow-registry unconditionally, before the event-trigger
|
|
98
|
-
// guard below — resume-run
|
|
87
|
+
// guard below — resume-run looks workflows up by
|
|
99
88
|
// name regardless of trigger kind, and a cron-triggered workflow that never
|
|
100
89
|
// reaches the MSP branch still needs to be resumable.
|
|
101
90
|
registerWorkflow(workflow);
|
|
102
91
|
|
|
103
92
|
// Independent of trigger.kind — a cron-triggered workflow can still have
|
|
104
|
-
// waitForEvent steps in its pipeline
|
|
93
|
+
// waitForEvent steps in its pipeline.
|
|
105
94
|
registerEventWakeup(r, workflow);
|
|
106
95
|
|
|
107
96
|
// skip: cron-triggered workflows have no domain event to project off — they
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
// `workflowRunnerFeature` documents that dependency and reserves the
|
|
10
10
|
// picker/manifest slot.
|
|
11
11
|
//
|
|
12
|
-
// It also registers the resume loop
|
|
13
|
-
// - the workflow_run_pending MSP
|
|
12
|
+
// It also registers the resume loop:
|
|
13
|
+
// - the workflow_run_pending MSP materialises suspended
|
|
14
14
|
// wait/waitForEvent/retry steps into a pending-set table
|
|
15
15
|
// - the `resume-due-runs` cron job (perTenant) scans that table for
|
|
16
16
|
// `wakeAt < now()` rows and dispatches `resume-run` per row — the job
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// resume-run — wakes one suspended workflow step. Dispatched by the
|
|
2
|
-
// resume-due-runs job
|
|
2
|
+
// resume-due-runs job, never called directly by a
|
|
3
3
|
// user — r.systemScope() + access: { roles: [SYSTEM_ROLE] } enforce that.
|
|
4
4
|
//
|
|
5
5
|
// The job does nothing but SELECT + dispatch; all resume logic lives here,
|
|
6
6
|
// adapted from samples/recipes/workflow-engine/src/resume-loop.ts:
|
|
7
|
-
// 1.
|
|
7
|
+
// 1. Fingerprint check FIRST — before claiming, before any pipeline
|
|
8
8
|
// work. A changed workflow definition fails loud (WORKFLOW_RUN_FAILED,
|
|
9
9
|
// reason "workflow_definition_changed"), never a silent skip.
|
|
10
10
|
// 2. Claim via a savepoint-scoped WORKFLOW_RESUMED append (ctx.tryAppendEvent,
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
// shows up here in its shredded form, and an unloadable one (archived
|
|
24
24
|
// stream) fails the run. The pending row's own
|
|
25
25
|
// triggerEventType/triggerEventRef columns are a DIFFERENT thing: for a
|
|
26
|
-
// waitForEvent suspension they point at the AWAITED event the
|
|
27
|
-
//
|
|
26
|
+
// waitForEvent suspension they point at the AWAITED event the event-subscriber
|
|
27
|
+
// matched (NULL until then, and NULL forever on a
|
|
28
28
|
// timeout-without-a-match). That event's payload becomes the resumed
|
|
29
29
|
// pipeline's result for the skipped waitForEvent step itself (see
|
|
30
30
|
// resultKey on steps/wait-for-event.ts) — pre-seeded into stepsAcc below so
|
|
@@ -4,13 +4,12 @@
|
|
|
4
4
|
// Insert (upsert, for idempotent at-least-once redelivery) on every
|
|
5
5
|
// suspension: wait, waitForEvent, retry. Delete on WORKFLOW_RESUMED or a
|
|
6
6
|
// terminal run outcome (completed/failed) — a run only ever has one row
|
|
7
|
-
// pending at a time (
|
|
8
|
-
//
|
|
7
|
+
// pending at a time (a later suspension always targets a fresh stepIndex,
|
|
8
|
+
// since the prior one was resumed away first), so deleting by
|
|
9
9
|
// (tenantId, runId) alone is exact.
|
|
10
10
|
//
|
|
11
|
-
// No resume logic here —
|
|
12
|
-
//
|
|
13
|
-
// the rows.
|
|
11
|
+
// No resume logic here — the job that reads this table and dispatches the
|
|
12
|
+
// actual resume is separate. This projection only writes the rows.
|
|
14
13
|
|
|
15
14
|
import type { DbRunner } from "@cosmicdrift/kumiko-framework/db";
|
|
16
15
|
import { deleteMany, fetchOne, upsertOnConflict } from "@cosmicdrift/kumiko-framework/db";
|
|
@@ -81,8 +80,8 @@ async function upsertPending(tx: DbRunner, row: PendingRow): Promise<void> {
|
|
|
81
80
|
workflowRunPendingTable,
|
|
82
81
|
{
|
|
83
82
|
...row,
|
|
84
|
-
//
|
|
85
|
-
// arrives —
|
|
83
|
+
// The event-subscriber writes these when the awaited event
|
|
84
|
+
// arrives — they are never touched here, on insert or update.
|
|
86
85
|
triggerEventType: null,
|
|
87
86
|
triggerEventRef: null,
|
|
88
87
|
triggerPayload: null,
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// pipeline until first suspension or completion, and writing run-completed.
|
|
3
3
|
//
|
|
4
4
|
// wait / retry / waitForEvent suspensions are all resumable — the
|
|
5
|
-
// resume-due-runs job + resume-run handler
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
5
|
+
// resume-due-runs job + resume-run handler wake wait/retry via a plain
|
|
6
|
+
// wakeAt timeout; waitForEvent additionally gets woken early by the
|
|
7
|
+
// event-subscriber (event-subscriber.ts) when its awaited event arrives,
|
|
8
|
+
// and by the same wakeAt timeout otherwise (D1's `wakeAt ?? timeoutAt`).
|
|
9
|
+
// startAndRunWorkflow returns a silent "suspended" outcome for all three
|
|
10
|
+
// instead of throwing.
|
|
11
11
|
|
|
12
12
|
import type {
|
|
13
13
|
HandlerContext,
|
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
} from "@cosmicdrift/kumiko-framework/db";
|
|
13
13
|
|
|
14
14
|
// workflow_run_pending — one row per currently-suspended workflow step.
|
|
15
|
-
// Read-side of the resume loop
|
|
15
|
+
// Read-side of the resume loop: the wait /
|
|
16
16
|
// waitForEvent / retry steps already write their suspension onto the
|
|
17
17
|
// workflow-run event stream, but scanning kumiko_events for due runs
|
|
18
18
|
// doesn't scale (see samples/recipes/workflow-engine/postgres-resume-loop.ts,
|
|
19
19
|
// which does exactly that). This table is kept in sync by
|
|
20
|
-
// pending-projection.ts's MultiStreamProjection so
|
|
20
|
+
// pending-projection.ts's MultiStreamProjection so the resume job can
|
|
21
21
|
// do an indexed `wakeAt < now()` scan instead.
|
|
22
22
|
//
|
|
23
23
|
// **Unmanaged table** — same reasoning as delivery/tables.ts'
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
// key only, see aggregate-id.ts), so two tenants triggering the same
|
|
32
32
|
// workflow with the same idempotencyKey get the SAME run_id. Without
|
|
33
33
|
// tenant_id in the key, a same-stepIndex suspension from tenant B would
|
|
34
|
-
// upsert onto tenant A's row and silently steal it
|
|
34
|
+
// upsert onto tenant A's row and silently steal it.
|
|
35
35
|
export const workflowRunPendingTable = pgTable(
|
|
36
36
|
"workflow_run_pending",
|
|
37
37
|
{
|
|
@@ -45,14 +45,14 @@ export const workflowRunPendingTable = pgTable(
|
|
|
45
45
|
// which step suspended.
|
|
46
46
|
wakeAt: instant("wake_at").notNull(),
|
|
47
47
|
retryAttempt: integer("retry_attempt"),
|
|
48
|
-
//
|
|
48
|
+
// Snapshot fingerprint — compares this against the current
|
|
49
49
|
// workflow definition's fingerprint before resuming.
|
|
50
50
|
definitionFingerprint: text("definition_fingerprint"),
|
|
51
51
|
// Set only for waitForEvent suspensions; NULL for wait/retry.
|
|
52
52
|
waitEventType: text("wait_event_type"),
|
|
53
53
|
matchExpr: jsonb("match_expr"),
|
|
54
|
-
// Written by the
|
|
55
|
-
// arrives — always NULL
|
|
54
|
+
// Written by the event subscriber when the awaited event
|
|
55
|
+
// arrives — always NULL initially. The row points at the awaited event
|
|
56
56
|
// ({ eventId, aggregateId, version }); resume-run re-reads it from the
|
|
57
57
|
// event store, so erasing the event also covers the workflow.
|
|
58
58
|
triggerEventType: text("trigger_event_type"),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// workflow-registry — process-local lookup from workflow name to its
|
|
2
2
|
// WorkflowDefinition. registerEventTrigger populates it at feature-
|
|
3
|
-
// registration time; resume-run
|
|
3
|
+
// registration time; resume-run is the only reader — it has
|
|
4
4
|
// nothing but a workflow name on the pending row and needs the live
|
|
5
5
|
// definition to rebuild the pipeline + recompute the Q7 fingerprint.
|
|
6
6
|
//
|