@rytass/bpm-core-nestjs-module 0.3.0 → 0.5.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/CHANGELOG.md +44 -0
- package/eslint.config.mjs +20 -0
- package/jest.config.cts +15 -0
- package/package.json +2 -2
- package/project.json +58 -0
- package/src/lib/attachment/attachment-options.spec.ts +45 -0
- package/src/lib/attachment/attachment-options.ts +130 -0
- package/src/lib/attachment/attachment-storage.provider.spec.ts +79 -0
- package/src/lib/attachment/attachment-storage.provider.ts +60 -0
- package/src/lib/attachment/{attachment-storage.token.d.ts → attachment-storage.token.ts} +3 -1
- package/src/lib/attachment/attachment.controller.ts +39 -0
- package/src/lib/attachment/attachment.entity.ts +59 -0
- package/src/lib/attachment/attachment.module.ts +149 -0
- package/src/lib/attachment/attachment.mutations.ts +22 -0
- package/src/lib/attachment/attachment.queries.ts +65 -0
- package/src/lib/attachment/attachment.service.spec.ts +319 -0
- package/src/lib/attachment/attachment.service.ts +477 -0
- package/src/lib/attachment/dto/upload-attachment.input.ts +60 -0
- package/src/lib/bpm/bpm-root.module.spec.ts +138 -0
- package/src/lib/bpm/bpm-root.module.ts +320 -0
- package/src/lib/bpm-auth/bpm-auth-context.extractor.ts +106 -0
- package/src/lib/bpm-auth/bpm-auth-context.ts +40 -0
- package/src/lib/bpm-auth/bpm-auth.authorization.ts +80 -0
- package/src/lib/bpm-auth/bpm-auth.decorators.ts +19 -0
- package/src/lib/bpm-auth/bpm-auth.guard.ts +31 -0
- package/src/lib/bpm-auth/bpm-auth.module.spec.ts +106 -0
- package/src/lib/bpm-auth/bpm-auth.module.ts +69 -0
- package/src/lib/bpm-auth/bpm-auth.options.ts +21 -0
- package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.ts +55 -0
- package/src/lib/common/filters/all-exceptions.filter.ts +138 -0
- package/src/lib/common/iso-duration.ts +31 -0
- package/src/lib/condition/condition.module.ts +8 -0
- package/src/lib/condition/condition.service.spec.ts +50 -0
- package/src/lib/condition/condition.service.ts +141 -0
- package/src/lib/database/data-source.ts +7 -0
- package/src/lib/database/migration-runner.ts +26 -0
- package/src/lib/database/reconcile-legacy-migrations.ts +87 -0
- package/src/lib/database/typeorm.config.ts +217 -0
- package/src/lib/delegation/delegation-rule.entity.ts +84 -0
- package/src/lib/delegation/delegation.enums.ts +21 -0
- package/src/lib/delegation/delegation.module.ts +14 -0
- package/src/lib/delegation/delegation.mutations.ts +92 -0
- package/src/lib/delegation/delegation.queries.ts +111 -0
- package/src/lib/delegation/delegation.service.spec.ts +295 -0
- package/src/lib/delegation/delegation.service.ts +482 -0
- package/src/lib/delegation/dto/delegation-rule.input.ts +125 -0
- package/src/lib/form/dto/form-definition.input.ts +90 -0
- package/src/lib/form/form-definition-version.entity.ts +66 -0
- package/src/lib/form/form-definition.entity.ts +54 -0
- package/src/lib/form/form-schema-lint.object.ts +10 -0
- package/src/lib/form/form-schema.validator.spec.ts +180 -0
- package/src/lib/form/form-schema.validator.ts +538 -0
- package/src/lib/form/form.enums.ts +20 -0
- package/src/lib/form/form.module.ts +19 -0
- package/src/lib/form/form.mutations.ts +73 -0
- package/src/lib/form/form.queries.ts +72 -0
- package/src/lib/form/form.service.spec.ts +371 -0
- package/src/lib/form/form.service.ts +607 -0
- package/src/lib/identity/identity-options.ts +41 -0
- package/src/lib/identity/identity.module.ts +96 -0
- package/src/lib/identity/identity.queries.ts +61 -0
- package/src/lib/identity/identity.service.spec.ts +328 -0
- package/src/lib/identity/identity.service.ts +277 -0
- package/src/lib/identity/member-base.adapter.spec.ts +122 -0
- package/src/lib/identity/member-base.adapter.ts +302 -0
- package/src/lib/identity/member-metadata-cache.entity.ts +27 -0
- package/src/lib/identity/{member-not-found.exception.d.ts → member-not-found.exception.ts} +8 -3
- package/src/lib/identity/member-profile.object.ts +28 -0
- package/src/lib/identity/member-resolver.interface.ts +140 -0
- package/src/lib/migrations/0000000000001-enable-postgres-extensions.ts +14 -0
- package/src/lib/migrations/{0000000001000-identity-organization-foundation.js → 0000000001000-identity-organization-foundation.ts} +38 -29
- package/src/lib/migrations/{0000000002000-form-builder-foundation.js → 0000000002000-form-builder-foundation.ts} +22 -21
- package/src/lib/migrations/{0000000003000-approval-template-foundation.js → 0000000003000-approval-template-foundation.ts} +24 -21
- package/src/lib/migrations/{0000000004000-workflow-engine-foundation.js → 0000000004000-workflow-engine-foundation.ts} +46 -34
- package/src/lib/migrations/{0000000005000-delegation-rules.js → 0000000005000-delegation-rules.ts} +20 -19
- package/src/lib/migrations/{0000000006000-notifications-sla.js → 0000000006000-notifications-sla.ts} +26 -23
- package/src/lib/migrations/{0000000007000-signatures-attachments.js → 0000000007000-signatures-attachments.ts} +28 -27
- package/src/lib/migrations/{0000000008000-approval-template-categories.js → 0000000008000-approval-template-categories.ts} +28 -25
- package/src/lib/migrations/{0000000009000-task-candidates.js → 0000000009000-task-candidates.ts} +26 -23
- package/src/lib/migrations/{0000000010000-notification-delivery-state.js → 0000000010000-notification-delivery-state.ts} +16 -17
- package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.ts +19 -0
- package/src/lib/migrations/0000000012000-notification-sla-idempotency.ts +22 -0
- package/src/lib/migrations/0000000013000-workflow-query-indexes.ts +113 -0
- package/src/lib/migrations/0000000014000-notification-resolution.ts +29 -0
- package/src/lib/migrations/{0000000015000-backfill-stale-notification-resolution.js → 0000000015000-backfill-stale-notification-resolution.ts} +15 -16
- package/src/lib/migrations/{0000000016000-archive-parallel-form-drafts.js → 0000000016000-archive-parallel-form-drafts.ts} +15 -16
- package/src/lib/migrations/{0000000017000-adhoc-directives.js → 0000000017000-adhoc-directives.ts} +18 -19
- package/src/lib/migrations/index.ts +59 -0
- package/src/lib/notification/dto/notification-preference.input.ts +46 -0
- package/src/lib/notification/notification-delivery-scheduler.service.ts +69 -0
- package/src/lib/notification/notification-delivery.service.spec.ts +315 -0
- package/src/lib/notification/notification-delivery.service.ts +339 -0
- package/src/lib/notification/notification-dispatcher.token.ts +13 -0
- package/src/lib/notification/notification-options.module.ts +67 -0
- package/src/lib/notification/notification-options.spec.ts +93 -0
- package/src/lib/notification/notification-options.ts +452 -0
- package/src/lib/notification/notification-preference.entity.ts +35 -0
- package/src/lib/notification/notification-sla-scheduler.service.ts +66 -0
- package/src/lib/notification/notification-template.spec.ts +33 -0
- package/src/lib/notification/notification-template.ts +97 -0
- package/src/lib/notification/notification.entity.ts +129 -0
- package/src/lib/notification/notification.enums.ts +64 -0
- package/src/lib/notification/notification.module.ts +37 -0
- package/src/lib/notification/notification.mutations.ts +47 -0
- package/src/lib/notification/notification.queries.ts +64 -0
- package/src/lib/notification/notification.service.spec.ts +412 -0
- package/src/lib/notification/notification.service.ts +1129 -0
- package/src/lib/organization/dto/manager-resolution.input.ts +91 -0
- package/src/lib/organization/dto/membership.input.ts +77 -0
- package/src/lib/organization/dto/org-unit.input.ts +96 -0
- package/src/lib/organization/dto/position.input.ts +50 -0
- package/src/lib/organization/json-metadata.ts +15 -0
- package/src/lib/organization/manager-resolution.entity.ts +44 -0
- package/src/lib/organization/membership.entity.ts +50 -0
- package/src/lib/organization/org-unit-tree-commit-result.object.ts +8 -0
- package/src/lib/organization/org-unit.entity.ts +53 -0
- package/src/lib/organization/organization-summary.object.ts +16 -0
- package/src/lib/organization/organization.enums.ts +19 -0
- package/src/lib/organization/organization.module.ts +27 -0
- package/src/lib/organization/organization.mutations.ts +115 -0
- package/src/lib/organization/organization.queries.ts +191 -0
- package/src/lib/organization/organization.service.spec.ts +835 -0
- package/src/lib/organization/organization.service.ts +1245 -0
- package/src/lib/organization/position.entity.ts +39 -0
- package/src/lib/organization/resolved-manager.object.ts +10 -0
- package/src/lib/signature/signature-options.spec.ts +60 -0
- package/src/lib/signature/signature-options.ts +120 -0
- package/src/lib/signature/signature-verification.object.ts +16 -0
- package/src/lib/signature/signature.entity.ts +62 -0
- package/src/lib/signature/signature.module.ts +80 -0
- package/src/lib/signature/signature.queries.ts +37 -0
- package/src/lib/signature/signature.service.spec.ts +134 -0
- package/src/lib/signature/signature.service.ts +205 -0
- package/src/lib/template/approval-template-category.entity.ts +40 -0
- package/src/lib/template/approval-template-version.entity.ts +82 -0
- package/src/lib/template/approval-template.entity.ts +64 -0
- package/src/lib/template/compose-approval-template.object.ts +23 -0
- package/src/lib/template/compose-template.mutations.ts +22 -0
- package/src/lib/template/dto/approval-template.input.ts +147 -0
- package/src/lib/template/dto/compose-approval-template.input.ts +80 -0
- package/src/lib/template/template.enums.ts +30 -0
- package/src/lib/template/template.module.ts +33 -0
- package/src/lib/template/template.mutations.ts +106 -0
- package/src/lib/template/template.queries.ts +119 -0
- package/src/lib/template/template.service.spec.ts +822 -0
- package/src/lib/template/template.service.ts +1082 -0
- package/src/lib/template/workflow-definition.validator.spec.ts +595 -0
- package/src/lib/template/workflow-definition.validator.ts +539 -0
- package/src/lib/testing/cel-js.jest.ts +46 -0
- package/src/lib/workflow-engine/activity-log.entity.ts +48 -0
- package/src/lib/workflow-engine/adhoc-directive.entity.ts +90 -0
- package/src/lib/workflow-engine/adhoc.enums.ts +42 -0
- package/src/lib/workflow-engine/approval-instance-page-info.object.ts +22 -0
- package/src/lib/workflow-engine/approval-instance.entity.ts +86 -0
- package/src/lib/workflow-engine/dto/adhoc-notification.input.ts +18 -0
- package/src/lib/workflow-engine/dto/adhoc-target.input.ts +52 -0
- package/src/lib/workflow-engine/dto/cancel-approval-instance.input.ts +18 -0
- package/src/lib/workflow-engine/dto/decide-task.input.ts +33 -0
- package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.ts +22 -0
- package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.ts +22 -0
- package/src/lib/workflow-engine/dto/submit-approval-instance.input.ts +27 -0
- package/src/lib/workflow-engine/task-candidate.entity.ts +56 -0
- package/src/lib/workflow-engine/task-decision.entity.ts +43 -0
- package/src/lib/workflow-engine/task.entity.ts +102 -0
- package/src/lib/workflow-engine/workflow-condition-evaluator.ts +168 -0
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.ts +22 -0
- package/src/lib/workflow-engine/workflow-dry-run.object.ts +58 -0
- package/src/lib/workflow-engine/workflow-engine.enums.ts +102 -0
- package/src/lib/workflow-engine/workflow-engine.module.ts +77 -0
- package/src/lib/workflow-engine/workflow-engine.mutations.ts +193 -0
- package/src/lib/workflow-engine/workflow-engine.queries.ts +241 -0
- package/src/lib/workflow-engine/workflow-engine.service.spec.ts +3345 -0
- package/src/lib/workflow-engine/workflow-engine.service.ts +6022 -0
- package/src/lib/workflow-engine/{workflow-engine.tokens.d.ts → workflow-engine.tokens.ts} +9 -3
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.ts +69 -0
- package/src/lib/workflow-engine/workflow-token.entity.ts +40 -0
- package/tsconfig.json +24 -0
- package/tsconfig.lib.json +16 -0
- package/tsconfig.spec.json +16 -0
- package/src/index.js +0 -18
- package/src/index.js.map +0 -1
- package/src/lib/attachment/attachment-options.d.ts +0 -44
- package/src/lib/attachment/attachment-options.js +0 -62
- package/src/lib/attachment/attachment-options.js.map +0 -1
- package/src/lib/attachment/attachment-storage.provider.d.ts +0 -4
- package/src/lib/attachment/attachment-storage.provider.js +0 -35
- package/src/lib/attachment/attachment-storage.provider.js.map +0 -1
- package/src/lib/attachment/attachment-storage.token.js +0 -5
- package/src/lib/attachment/attachment-storage.token.js.map +0 -1
- package/src/lib/attachment/attachment.controller.d.ts +0 -8
- package/src/lib/attachment/attachment.controller.js +0 -38
- package/src/lib/attachment/attachment.controller.js.map +0 -1
- package/src/lib/attachment/attachment.entity.d.ts +0 -14
- package/src/lib/attachment/attachment.entity.js +0 -74
- package/src/lib/attachment/attachment.entity.js.map +0 -1
- package/src/lib/attachment/attachment.module.d.ts +0 -27
- package/src/lib/attachment/attachment.module.js +0 -103
- package/src/lib/attachment/attachment.module.js.map +0 -1
- package/src/lib/attachment/attachment.mutations.d.ts +0 -8
- package/src/lib/attachment/attachment.mutations.js +0 -35
- package/src/lib/attachment/attachment.mutations.js.map +0 -1
- package/src/lib/attachment/attachment.queries.d.ts +0 -9
- package/src/lib/attachment/attachment.queries.js +0 -78
- package/src/lib/attachment/attachment.queries.js.map +0 -1
- package/src/lib/attachment/attachment.service.d.ts +0 -49
- package/src/lib/attachment/attachment.service.js +0 -276
- package/src/lib/attachment/attachment.service.js.map +0 -1
- package/src/lib/attachment/dto/upload-attachment.input.d.ts +0 -11
- package/src/lib/attachment/dto/upload-attachment.input.js +0 -68
- package/src/lib/attachment/dto/upload-attachment.input.js.map +0 -1
- package/src/lib/attachment/index.js +0 -9
- package/src/lib/attachment/index.js.map +0 -1
- package/src/lib/bpm/bpm-root.module.d.ts +0 -155
- package/src/lib/bpm/bpm-root.module.js +0 -170
- package/src/lib/bpm/bpm-root.module.js.map +0 -1
- package/src/lib/bpm/index.js +0 -5
- package/src/lib/bpm/index.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth-context.d.ts +0 -24
- package/src/lib/bpm-auth/bpm-auth-context.extractor.d.ts +0 -4
- package/src/lib/bpm-auth/bpm-auth-context.extractor.js +0 -69
- package/src/lib/bpm-auth/bpm-auth-context.extractor.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth-context.js +0 -15
- package/src/lib/bpm-auth/bpm-auth-context.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth.authorization.d.ts +0 -12
- package/src/lib/bpm-auth/bpm-auth.authorization.js +0 -67
- package/src/lib/bpm-auth/bpm-auth.authorization.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth.decorators.d.ts +0 -3
- package/src/lib/bpm-auth/bpm-auth.decorators.js +0 -11
- package/src/lib/bpm-auth/bpm-auth.decorators.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth.guard.d.ts +0 -7
- package/src/lib/bpm-auth/bpm-auth.guard.js +0 -24
- package/src/lib/bpm-auth/bpm-auth.guard.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth.module.d.ts +0 -6
- package/src/lib/bpm-auth/bpm-auth.module.js +0 -69
- package/src/lib/bpm-auth/bpm-auth.module.js.map +0 -1
- package/src/lib/bpm-auth/bpm-auth.options.d.ts +0 -11
- package/src/lib/bpm-auth/bpm-auth.options.js +0 -3
- package/src/lib/bpm-auth/bpm-auth.options.js.map +0 -1
- package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.d.ts +0 -10
- package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.js +0 -40
- package/src/lib/bpm-auth/configurable-bpm-auth-context.accessor.js.map +0 -1
- package/src/lib/bpm-auth/index.js +0 -10
- package/src/lib/bpm-auth/index.js.map +0 -1
- package/src/lib/common/filters/all-exceptions.filter.d.ts +0 -25
- package/src/lib/common/filters/all-exceptions.filter.js +0 -93
- package/src/lib/common/filters/all-exceptions.filter.js.map +0 -1
- package/src/lib/common/index.js +0 -5
- package/src/lib/common/index.js.map +0 -1
- package/src/lib/common/iso-duration.d.ts +0 -1
- package/src/lib/common/iso-duration.js +0 -27
- package/src/lib/common/iso-duration.js.map +0 -1
- package/src/lib/condition/condition.module.d.ts +0 -2
- package/src/lib/condition/condition.module.js +0 -16
- package/src/lib/condition/condition.module.js.map +0 -1
- package/src/lib/condition/condition.service.d.ts +0 -16
- package/src/lib/condition/condition.service.js +0 -82
- package/src/lib/condition/condition.service.js.map +0 -1
- package/src/lib/condition/index.js +0 -6
- package/src/lib/condition/index.js.map +0 -1
- package/src/lib/database/data-source.d.ts +0 -4
- package/src/lib/database/data-source.js +0 -7
- package/src/lib/database/data-source.js.map +0 -1
- package/src/lib/database/index.js +0 -6
- package/src/lib/database/index.js.map +0 -1
- package/src/lib/database/migration-runner.d.ts +0 -1
- package/src/lib/database/migration-runner.js +0 -25
- package/src/lib/database/migration-runner.js.map +0 -1
- package/src/lib/database/reconcile-legacy-migrations.d.ts +0 -13
- package/src/lib/database/reconcile-legacy-migrations.js +0 -70
- package/src/lib/database/reconcile-legacy-migrations.js.map +0 -1
- package/src/lib/database/typeorm.config.d.ts +0 -14
- package/src/lib/database/typeorm.config.js +0 -135
- package/src/lib/database/typeorm.config.js.map +0 -1
- package/src/lib/delegation/delegation-rule.entity.d.ts +0 -19
- package/src/lib/delegation/delegation-rule.entity.js +0 -99
- package/src/lib/delegation/delegation-rule.entity.js.map +0 -1
- package/src/lib/delegation/delegation.enums.d.ts +0 -10
- package/src/lib/delegation/delegation.enums.js +0 -23
- package/src/lib/delegation/delegation.enums.js.map +0 -1
- package/src/lib/delegation/delegation.module.d.ts +0 -2
- package/src/lib/delegation/delegation.module.js +0 -22
- package/src/lib/delegation/delegation.module.js.map +0 -1
- package/src/lib/delegation/delegation.mutations.d.ts +0 -11
- package/src/lib/delegation/delegation.mutations.js +0 -87
- package/src/lib/delegation/delegation.mutations.js.map +0 -1
- package/src/lib/delegation/delegation.queries.d.ts +0 -10
- package/src/lib/delegation/delegation.queries.js +0 -91
- package/src/lib/delegation/delegation.queries.js.map +0 -1
- package/src/lib/delegation/delegation.service.d.ts +0 -56
- package/src/lib/delegation/delegation.service.js +0 -268
- package/src/lib/delegation/delegation.service.js.map +0 -1
- package/src/lib/delegation/dto/delegation-rule.input.d.ts +0 -24
- package/src/lib/delegation/dto/delegation-rule.input.js +0 -143
- package/src/lib/delegation/dto/delegation-rule.input.js.map +0 -1
- package/src/lib/delegation/index.js +0 -9
- package/src/lib/delegation/index.js.map +0 -1
- package/src/lib/form/dto/form-definition.input.d.ts +0 -26
- package/src/lib/form/dto/form-definition.input.js +0 -126
- package/src/lib/form/dto/form-definition.input.js.map +0 -1
- package/src/lib/form/form-definition-version.entity.d.ts +0 -17
- package/src/lib/form/form-definition-version.entity.js +0 -84
- package/src/lib/form/form-definition-version.entity.js.map +0 -1
- package/src/lib/form/form-definition.entity.d.ts +0 -13
- package/src/lib/form/form-definition.entity.js +0 -66
- package/src/lib/form/form-definition.entity.js.map +0 -1
- package/src/lib/form/form-schema-lint.object.d.ts +0 -4
- package/src/lib/form/form-schema-lint.object.js +0 -20
- package/src/lib/form/form-schema-lint.object.js.map +0 -1
- package/src/lib/form/form-schema.validator.d.ts +0 -13
- package/src/lib/form/form-schema.validator.js +0 -354
- package/src/lib/form/form-schema.validator.js.map +0 -1
- package/src/lib/form/form.enums.d.ts +0 -9
- package/src/lib/form/form.enums.js +0 -22
- package/src/lib/form/form.enums.js.map +0 -1
- package/src/lib/form/form.module.d.ts +0 -2
- package/src/lib/form/form.module.js +0 -27
- package/src/lib/form/form.module.js.map +0 -1
- package/src/lib/form/form.mutations.d.ts +0 -14
- package/src/lib/form/form.mutations.js +0 -89
- package/src/lib/form/form.mutations.js.map +0 -1
- package/src/lib/form/form.queries.d.ts +0 -16
- package/src/lib/form/form.queries.js +0 -96
- package/src/lib/form/form.queries.js.map +0 -1
- package/src/lib/form/form.service.d.ts +0 -49
- package/src/lib/form/form.service.js +0 -346
- package/src/lib/form/form.service.js.map +0 -1
- package/src/lib/form/index.js +0 -12
- package/src/lib/form/index.js.map +0 -1
- package/src/lib/identity/identity-options.d.ts +0 -13
- package/src/lib/identity/identity-options.js +0 -20
- package/src/lib/identity/identity-options.js.map +0 -1
- package/src/lib/identity/identity.module.d.ts +0 -17
- package/src/lib/identity/identity.module.js +0 -65
- package/src/lib/identity/identity.module.js.map +0 -1
- package/src/lib/identity/identity.queries.d.ts +0 -12
- package/src/lib/identity/identity.queries.js +0 -79
- package/src/lib/identity/identity.queries.js.map +0 -1
- package/src/lib/identity/identity.service.d.ts +0 -22
- package/src/lib/identity/identity.service.js +0 -141
- package/src/lib/identity/identity.service.js.map +0 -1
- package/src/lib/identity/index.js +0 -8
- package/src/lib/identity/index.js.map +0 -1
- package/src/lib/identity/member-base.adapter.d.ts +0 -95
- package/src/lib/identity/member-base.adapter.js +0 -137
- package/src/lib/identity/member-base.adapter.js.map +0 -1
- package/src/lib/identity/member-metadata-cache.entity.d.ts +0 -8
- package/src/lib/identity/member-metadata-cache.entity.js +0 -39
- package/src/lib/identity/member-metadata-cache.entity.js.map +0 -1
- package/src/lib/identity/member-not-found.exception.js +0 -26
- package/src/lib/identity/member-not-found.exception.js.map +0 -1
- package/src/lib/identity/member-profile.object.d.ts +0 -8
- package/src/lib/identity/member-profile.object.js +0 -37
- package/src/lib/identity/member-profile.object.js.map +0 -1
- package/src/lib/identity/member-resolver.interface.d.ts +0 -79
- package/src/lib/identity/member-resolver.interface.js +0 -19
- package/src/lib/identity/member-resolver.interface.js.map +0 -1
- package/src/lib/migrations/0000000000001-enable-postgres-extensions.d.ts +0 -6
- package/src/lib/migrations/0000000000001-enable-postgres-extensions.js +0 -17
- package/src/lib/migrations/0000000000001-enable-postgres-extensions.js.map +0 -1
- package/src/lib/migrations/0000000001000-identity-organization-foundation.d.ts +0 -6
- package/src/lib/migrations/0000000001000-identity-organization-foundation.js.map +0 -1
- package/src/lib/migrations/0000000002000-form-builder-foundation.d.ts +0 -6
- package/src/lib/migrations/0000000002000-form-builder-foundation.js.map +0 -1
- package/src/lib/migrations/0000000003000-approval-template-foundation.d.ts +0 -6
- package/src/lib/migrations/0000000003000-approval-template-foundation.js.map +0 -1
- package/src/lib/migrations/0000000004000-workflow-engine-foundation.d.ts +0 -6
- package/src/lib/migrations/0000000004000-workflow-engine-foundation.js.map +0 -1
- package/src/lib/migrations/0000000005000-delegation-rules.d.ts +0 -6
- package/src/lib/migrations/0000000005000-delegation-rules.js.map +0 -1
- package/src/lib/migrations/0000000006000-notifications-sla.d.ts +0 -6
- package/src/lib/migrations/0000000006000-notifications-sla.js.map +0 -1
- package/src/lib/migrations/0000000007000-signatures-attachments.d.ts +0 -6
- package/src/lib/migrations/0000000007000-signatures-attachments.js.map +0 -1
- package/src/lib/migrations/0000000008000-approval-template-categories.d.ts +0 -6
- package/src/lib/migrations/0000000008000-approval-template-categories.js.map +0 -1
- package/src/lib/migrations/0000000009000-task-candidates.d.ts +0 -6
- package/src/lib/migrations/0000000009000-task-candidates.js.map +0 -1
- package/src/lib/migrations/0000000010000-notification-delivery-state.d.ts +0 -6
- package/src/lib/migrations/0000000010000-notification-delivery-state.js.map +0 -1
- package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.d.ts +0 -6
- package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js +0 -22
- package/src/lib/migrations/0000000011000-remove-attachment-encryption-key.js.map +0 -1
- package/src/lib/migrations/0000000012000-notification-sla-idempotency.d.ts +0 -6
- package/src/lib/migrations/0000000012000-notification-sla-idempotency.js +0 -21
- package/src/lib/migrations/0000000012000-notification-sla-idempotency.js.map +0 -1
- package/src/lib/migrations/0000000013000-workflow-query-indexes.d.ts +0 -6
- package/src/lib/migrations/0000000013000-workflow-query-indexes.js +0 -80
- package/src/lib/migrations/0000000013000-workflow-query-indexes.js.map +0 -1
- package/src/lib/migrations/0000000014000-notification-resolution.d.ts +0 -6
- package/src/lib/migrations/0000000014000-notification-resolution.js +0 -30
- package/src/lib/migrations/0000000014000-notification-resolution.js.map +0 -1
- package/src/lib/migrations/0000000015000-backfill-stale-notification-resolution.d.ts +0 -15
- package/src/lib/migrations/0000000015000-backfill-stale-notification-resolution.js.map +0 -1
- package/src/lib/migrations/0000000016000-archive-parallel-form-drafts.d.ts +0 -15
- package/src/lib/migrations/0000000016000-archive-parallel-form-drafts.js.map +0 -1
- package/src/lib/migrations/0000000017000-adhoc-directives.d.ts +0 -6
- package/src/lib/migrations/0000000017000-adhoc-directives.js.map +0 -1
- package/src/lib/migrations/index.d.ts +0 -20
- package/src/lib/migrations/index.js +0 -61
- package/src/lib/migrations/index.js.map +0 -1
- package/src/lib/notification/dto/notification-preference.input.d.ts +0 -9
- package/src/lib/notification/dto/notification-preference.input.js +0 -53
- package/src/lib/notification/dto/notification-preference.input.js.map +0 -1
- package/src/lib/notification/index.js +0 -11
- package/src/lib/notification/index.js.map +0 -1
- package/src/lib/notification/notification-delivery-scheduler.service.d.ts +0 -13
- package/src/lib/notification/notification-delivery-scheduler.service.js +0 -53
- package/src/lib/notification/notification-delivery-scheduler.service.js.map +0 -1
- package/src/lib/notification/notification-delivery.service.d.ts +0 -23
- package/src/lib/notification/notification-delivery.service.js +0 -245
- package/src/lib/notification/notification-delivery.service.js.map +0 -1
- package/src/lib/notification/notification-dispatcher.token.d.ts +0 -7
- package/src/lib/notification/notification-dispatcher.token.js +0 -5
- package/src/lib/notification/notification-dispatcher.token.js.map +0 -1
- package/src/lib/notification/notification-options.d.ts +0 -215
- package/src/lib/notification/notification-options.js +0 -128
- package/src/lib/notification/notification-options.js.map +0 -1
- package/src/lib/notification/notification-options.module.d.ts +0 -23
- package/src/lib/notification/notification-options.module.js +0 -41
- package/src/lib/notification/notification-options.module.js.map +0 -1
- package/src/lib/notification/notification-preference.entity.d.ts +0 -10
- package/src/lib/notification/notification-preference.entity.js +0 -50
- package/src/lib/notification/notification-preference.entity.js.map +0 -1
- package/src/lib/notification/notification-sla-scheduler.service.d.ts +0 -13
- package/src/lib/notification/notification-sla-scheduler.service.js +0 -51
- package/src/lib/notification/notification-sla-scheduler.service.js.map +0 -1
- package/src/lib/notification/notification-template.d.ts +0 -13
- package/src/lib/notification/notification-template.js +0 -61
- package/src/lib/notification/notification-template.js.map +0 -1
- package/src/lib/notification/notification.entity.d.ts +0 -31
- package/src/lib/notification/notification.entity.js +0 -149
- package/src/lib/notification/notification.entity.js.map +0 -1
- package/src/lib/notification/notification.enums.d.ts +0 -38
- package/src/lib/notification/notification.enums.js +0 -63
- package/src/lib/notification/notification.enums.js.map +0 -1
- package/src/lib/notification/notification.module.d.ts +0 -2
- package/src/lib/notification/notification.module.js +0 -45
- package/src/lib/notification/notification.module.js.map +0 -1
- package/src/lib/notification/notification.mutations.d.ts +0 -11
- package/src/lib/notification/notification.mutations.js +0 -64
- package/src/lib/notification/notification.mutations.js.map +0 -1
- package/src/lib/notification/notification.queries.d.ts +0 -11
- package/src/lib/notification/notification.queries.js +0 -77
- package/src/lib/notification/notification.queries.js.map +0 -1
- package/src/lib/notification/notification.service.d.ts +0 -121
- package/src/lib/notification/notification.service.js +0 -713
- package/src/lib/notification/notification.service.js.map +0 -1
- package/src/lib/organization/dto/manager-resolution.input.d.ts +0 -18
- package/src/lib/organization/dto/manager-resolution.input.js +0 -107
- package/src/lib/organization/dto/manager-resolution.input.js.map +0 -1
- package/src/lib/organization/dto/membership.input.d.ts +0 -16
- package/src/lib/organization/dto/membership.input.js +0 -99
- package/src/lib/organization/dto/membership.input.js.map +0 -1
- package/src/lib/organization/dto/org-unit.input.d.ts +0 -24
- package/src/lib/organization/dto/org-unit.input.js +0 -119
- package/src/lib/organization/dto/org-unit.input.js.map +0 -1
- package/src/lib/organization/dto/position.input.d.ts +0 -13
- package/src/lib/organization/dto/position.input.js +0 -70
- package/src/lib/organization/dto/position.input.js.map +0 -1
- package/src/lib/organization/index.js +0 -16
- package/src/lib/organization/index.js.map +0 -1
- package/src/lib/organization/json-metadata.d.ts +0 -1
- package/src/lib/organization/json-metadata.js +0 -14
- package/src/lib/organization/json-metadata.js.map +0 -1
- package/src/lib/organization/manager-resolution.entity.d.ts +0 -11
- package/src/lib/organization/manager-resolution.entity.js +0 -55
- package/src/lib/organization/manager-resolution.entity.js.map +0 -1
- package/src/lib/organization/membership.entity.d.ts +0 -11
- package/src/lib/organization/membership.entity.js +0 -60
- package/src/lib/organization/membership.entity.js.map +0 -1
- package/src/lib/organization/org-unit-tree-commit-result.object.d.ts +0 -4
- package/src/lib/organization/org-unit-tree-commit-result.object.js +0 -17
- package/src/lib/organization/org-unit-tree-commit-result.object.js.map +0 -1
- package/src/lib/organization/org-unit.entity.d.ts +0 -13
- package/src/lib/organization/org-unit.entity.js +0 -64
- package/src/lib/organization/org-unit.entity.js.map +0 -1
- package/src/lib/organization/organization-summary.object.d.ts +0 -6
- package/src/lib/organization/organization-summary.object.js +0 -28
- package/src/lib/organization/organization-summary.object.js.map +0 -1
- package/src/lib/organization/organization.enums.d.ts +0 -11
- package/src/lib/organization/organization.enums.js +0 -22
- package/src/lib/organization/organization.enums.js.map +0 -1
- package/src/lib/organization/organization.module.d.ts +0 -2
- package/src/lib/organization/organization.module.js +0 -35
- package/src/lib/organization/organization.module.js.map +0 -1
- package/src/lib/organization/organization.mutations.d.ts +0 -26
- package/src/lib/organization/organization.mutations.js +0 -148
- package/src/lib/organization/organization.mutations.js.map +0 -1
- package/src/lib/organization/organization.queries.d.ts +0 -23
- package/src/lib/organization/organization.queries.js +0 -202
- package/src/lib/organization/organization.queries.js.map +0 -1
- package/src/lib/organization/organization.service.d.ts +0 -102
- package/src/lib/organization/organization.service.js +0 -751
- package/src/lib/organization/organization.service.js.map +0 -1
- package/src/lib/organization/position.entity.d.ts +0 -9
- package/src/lib/organization/position.entity.js +0 -48
- package/src/lib/organization/position.entity.js.map +0 -1
- package/src/lib/organization/resolved-manager.object.d.ts +0 -4
- package/src/lib/organization/resolved-manager.object.js +0 -20
- package/src/lib/organization/resolved-manager.object.js.map +0 -1
- package/src/lib/signature/index.js +0 -8
- package/src/lib/signature/index.js.map +0 -1
- package/src/lib/signature/signature-options.d.ts +0 -33
- package/src/lib/signature/signature-options.js +0 -51
- package/src/lib/signature/signature-options.js.map +0 -1
- package/src/lib/signature/signature-verification.object.d.ts +0 -6
- package/src/lib/signature/signature-verification.object.js +0 -28
- package/src/lib/signature/signature-verification.object.js.map +0 -1
- package/src/lib/signature/signature.entity.d.ts +0 -16
- package/src/lib/signature/signature.entity.js +0 -88
- package/src/lib/signature/signature.entity.js.map +0 -1
- package/src/lib/signature/signature.module.d.ts +0 -11
- package/src/lib/signature/signature.module.js +0 -60
- package/src/lib/signature/signature.module.js.map +0 -1
- package/src/lib/signature/signature.queries.d.ts +0 -11
- package/src/lib/signature/signature.queries.js +0 -46
- package/src/lib/signature/signature.queries.js.map +0 -1
- package/src/lib/signature/signature.service.d.ts +0 -25
- package/src/lib/signature/signature.service.js +0 -124
- package/src/lib/signature/signature.service.js.map +0 -1
- package/src/lib/template/approval-template-category.entity.d.ts +0 -9
- package/src/lib/template/approval-template-category.entity.js +0 -49
- package/src/lib/template/approval-template-category.entity.js.map +0 -1
- package/src/lib/template/approval-template-version.entity.d.ts +0 -21
- package/src/lib/template/approval-template-version.entity.js +0 -106
- package/src/lib/template/approval-template-version.entity.js.map +0 -1
- package/src/lib/template/approval-template.entity.d.ts +0 -14
- package/src/lib/template/approval-template.entity.js +0 -74
- package/src/lib/template/approval-template.entity.js.map +0 -1
- package/src/lib/template/compose-approval-template.object.d.ts +0 -11
- package/src/lib/template/compose-approval-template.object.js +0 -36
- package/src/lib/template/compose-approval-template.object.js.map +0 -1
- package/src/lib/template/compose-template.mutations.d.ts +0 -8
- package/src/lib/template/compose-template.mutations.js +0 -32
- package/src/lib/template/compose-template.mutations.js.map +0 -1
- package/src/lib/template/dto/approval-template.input.d.ts +0 -36
- package/src/lib/template/dto/approval-template.input.js +0 -187
- package/src/lib/template/dto/approval-template.input.js.map +0 -1
- package/src/lib/template/dto/compose-approval-template.input.d.ts +0 -17
- package/src/lib/template/dto/compose-approval-template.input.js +0 -99
- package/src/lib/template/dto/compose-approval-template.input.js.map +0 -1
- package/src/lib/template/index.js +0 -14
- package/src/lib/template/index.js.map +0 -1
- package/src/lib/template/template.enums.d.ts +0 -14
- package/src/lib/template/template.enums.js +0 -31
- package/src/lib/template/template.enums.js.map +0 -1
- package/src/lib/template/template.module.d.ts +0 -2
- package/src/lib/template/template.module.js +0 -41
- package/src/lib/template/template.module.js.map +0 -1
- package/src/lib/template/template.mutations.d.ts +0 -20
- package/src/lib/template/template.mutations.js +0 -139
- package/src/lib/template/template.mutations.js.map +0 -1
- package/src/lib/template/template.queries.d.ts +0 -16
- package/src/lib/template/template.queries.js +0 -133
- package/src/lib/template/template.queries.js.map +0 -1
- package/src/lib/template/template.service.d.ts +0 -83
- package/src/lib/template/template.service.js +0 -654
- package/src/lib/template/template.service.js.map +0 -1
- package/src/lib/template/workflow-definition.validator.d.ts +0 -9
- package/src/lib/template/workflow-definition.validator.js +0 -362
- package/src/lib/template/workflow-definition.validator.js.map +0 -1
- package/src/lib/testing/cel-js.jest.d.ts +0 -15
- package/src/lib/testing/cel-js.jest.js +0 -27
- package/src/lib/testing/cel-js.jest.js.map +0 -1
- package/src/lib/workflow-engine/activity-log.entity.d.ts +0 -12
- package/src/lib/workflow-engine/activity-log.entity.js +0 -62
- package/src/lib/workflow-engine/activity-log.entity.js.map +0 -1
- package/src/lib/workflow-engine/adhoc-directive.entity.d.ts +0 -31
- package/src/lib/workflow-engine/adhoc-directive.entity.js +0 -105
- package/src/lib/workflow-engine/adhoc-directive.entity.js.map +0 -1
- package/src/lib/workflow-engine/adhoc.enums.d.ts +0 -21
- package/src/lib/workflow-engine/adhoc.enums.js +0 -42
- package/src/lib/workflow-engine/adhoc.enums.js.map +0 -1
- package/src/lib/workflow-engine/approval-instance-page-info.object.d.ts +0 -8
- package/src/lib/workflow-engine/approval-instance-page-info.object.js +0 -36
- package/src/lib/workflow-engine/approval-instance-page-info.object.js.map +0 -1
- package/src/lib/workflow-engine/approval-instance.entity.d.ts +0 -22
- package/src/lib/workflow-engine/approval-instance.entity.js +0 -113
- package/src/lib/workflow-engine/approval-instance.entity.js.map +0 -1
- package/src/lib/workflow-engine/dto/adhoc-notification.input.d.ts +0 -6
- package/src/lib/workflow-engine/dto/adhoc-notification.input.js +0 -28
- package/src/lib/workflow-engine/dto/adhoc-notification.input.js.map +0 -1
- package/src/lib/workflow-engine/dto/adhoc-target.input.d.ts +0 -16
- package/src/lib/workflow-engine/dto/adhoc-target.input.js +0 -61
- package/src/lib/workflow-engine/dto/adhoc-target.input.js.map +0 -1
- package/src/lib/workflow-engine/dto/cancel-approval-instance.input.d.ts +0 -5
- package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js +0 -29
- package/src/lib/workflow-engine/dto/cancel-approval-instance.input.js.map +0 -1
- package/src/lib/workflow-engine/dto/decide-task.input.d.ts +0 -9
- package/src/lib/workflow-engine/dto/decide-task.input.js +0 -47
- package/src/lib/workflow-engine/dto/decide-task.input.js.map +0 -1
- package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.d.ts +0 -6
- package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js +0 -34
- package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js.map +0 -1
- package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.d.ts +0 -6
- package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js +0 -34
- package/src/lib/workflow-engine/dto/resubmit-approval-instance.input.js.map +0 -1
- package/src/lib/workflow-engine/dto/submit-approval-instance.input.d.ts +0 -7
- package/src/lib/workflow-engine/dto/submit-approval-instance.input.js +0 -40
- package/src/lib/workflow-engine/dto/submit-approval-instance.input.js.map +0 -1
- package/src/lib/workflow-engine/index.js +0 -28
- package/src/lib/workflow-engine/index.js.map +0 -1
- package/src/lib/workflow-engine/task-candidate.entity.d.ts +0 -14
- package/src/lib/workflow-engine/task-candidate.entity.js +0 -72
- package/src/lib/workflow-engine/task-candidate.entity.js.map +0 -1
- package/src/lib/workflow-engine/task-decision.entity.d.ts +0 -12
- package/src/lib/workflow-engine/task-decision.entity.js +0 -60
- package/src/lib/workflow-engine/task-decision.entity.js.map +0 -1
- package/src/lib/workflow-engine/task.entity.d.ts +0 -25
- package/src/lib/workflow-engine/task.entity.js +0 -130
- package/src/lib/workflow-engine/task.entity.js.map +0 -1
- package/src/lib/workflow-engine/workflow-condition-evaluator.d.ts +0 -5
- package/src/lib/workflow-engine/workflow-condition-evaluator.js +0 -107
- package/src/lib/workflow-engine/workflow-condition-evaluator.js.map +0 -1
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.d.ts +0 -8
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.js +0 -36
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.js.map +0 -1
- package/src/lib/workflow-engine/workflow-dry-run.object.d.ts +0 -21
- package/src/lib/workflow-engine/workflow-dry-run.object.js +0 -86
- package/src/lib/workflow-engine/workflow-dry-run.object.js.map +0 -1
- package/src/lib/workflow-engine/workflow-engine.enums.d.ts +0 -61
- package/src/lib/workflow-engine/workflow-engine.enums.js +0 -98
- package/src/lib/workflow-engine/workflow-engine.enums.js.map +0 -1
- package/src/lib/workflow-engine/workflow-engine.module.d.ts +0 -9
- package/src/lib/workflow-engine/workflow-engine.module.js +0 -78
- package/src/lib/workflow-engine/workflow-engine.module.js.map +0 -1
- package/src/lib/workflow-engine/workflow-engine.mutations.d.ts +0 -29
- package/src/lib/workflow-engine/workflow-engine.mutations.js +0 -218
- package/src/lib/workflow-engine/workflow-engine.mutations.js.map +0 -1
- package/src/lib/workflow-engine/workflow-engine.queries.d.ts +0 -31
- package/src/lib/workflow-engine/workflow-engine.queries.js +0 -237
- package/src/lib/workflow-engine/workflow-engine.queries.js.map +0 -1
- package/src/lib/workflow-engine/workflow-engine.service.d.ts +0 -188
- package/src/lib/workflow-engine/workflow-engine.service.js +0 -3561
- package/src/lib/workflow-engine/workflow-engine.service.js.map +0 -1
- package/src/lib/workflow-engine/workflow-engine.tokens.js +0 -5
- package/src/lib/workflow-engine/workflow-engine.tokens.js.map +0 -1
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.d.ts +0 -18
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +0 -39
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +0 -1
- package/src/lib/workflow-engine/workflow-token.entity.d.ts +0 -10
- package/src/lib/workflow-engine/workflow-token.entity.js +0 -50
- package/src/lib/workflow-engine/workflow-token.entity.js.map +0 -1
- /package/src/{index.d.ts → index.ts} +0 -0
- /package/src/lib/attachment/{index.d.ts → index.ts} +0 -0
- /package/src/lib/bpm/{index.d.ts → index.ts} +0 -0
- /package/src/lib/bpm-auth/{index.d.ts → index.ts} +0 -0
- /package/src/lib/common/{index.d.ts → index.ts} +0 -0
- /package/src/lib/condition/{index.d.ts → index.ts} +0 -0
- /package/src/lib/database/{index.d.ts → index.ts} +0 -0
- /package/src/lib/delegation/{index.d.ts → index.ts} +0 -0
- /package/src/lib/form/{index.d.ts → index.ts} +0 -0
- /package/src/lib/identity/{index.d.ts → index.ts} +0 -0
- /package/src/lib/notification/{index.d.ts → index.ts} +0 -0
- /package/src/lib/organization/{index.d.ts → index.ts} +0 -0
- /package/src/lib/signature/{index.d.ts → index.ts} +0 -0
- /package/src/lib/template/{index.d.ts → index.ts} +0 -0
- /package/src/lib/workflow-engine/{index.d.ts → index.ts} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Field, ID, ObjectType } from '@nestjs/graphql';
|
|
2
|
+
import { Column, Entity, PrimaryGeneratedColumn, Unique } from 'typeorm';
|
|
3
|
+
import { MemberMetadata } from '@rytass/bpm-core-shared';
|
|
4
|
+
|
|
5
|
+
@Entity('member_metadata_cache')
|
|
6
|
+
@Unique(['memberId'])
|
|
7
|
+
@ObjectType('MemberMetadataCache')
|
|
8
|
+
export class MemberMetadataCacheEntity {
|
|
9
|
+
@PrimaryGeneratedColumn('uuid')
|
|
10
|
+
@Field(() => ID)
|
|
11
|
+
id!: string;
|
|
12
|
+
|
|
13
|
+
@Column('text', { name: 'member_id' })
|
|
14
|
+
@Field()
|
|
15
|
+
memberId!: string;
|
|
16
|
+
|
|
17
|
+
@Column('jsonb')
|
|
18
|
+
metadata!: MemberMetadata;
|
|
19
|
+
|
|
20
|
+
@Column('timestamptz', { name: 'fetched_at' })
|
|
21
|
+
@Field()
|
|
22
|
+
fetchedAt!: Date;
|
|
23
|
+
|
|
24
|
+
@Column('timestamptz', { name: 'expires_at' })
|
|
25
|
+
@Field()
|
|
26
|
+
expiresAt!: Date;
|
|
27
|
+
}
|
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
* Hosts may throw any `Error` subclass; this class is provided as a
|
|
13
13
|
* recommended default so error messages stay consistent in BPM's logs.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export class MemberNotFoundException extends Error {
|
|
16
|
+
readonly memberId: string;
|
|
17
|
+
|
|
18
|
+
constructor(memberId: string, message?: string) {
|
|
19
|
+
super(message ?? `BPM member not found: ${memberId}`);
|
|
20
|
+
this.name = 'MemberNotFoundException';
|
|
21
|
+
this.memberId = memberId;
|
|
22
|
+
}
|
|
18
23
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Field, ID, ObjectType } from '@nestjs/graphql';
|
|
2
|
+
import { MemberMetadata } from '@rytass/bpm-core-shared';
|
|
3
|
+
|
|
4
|
+
@ObjectType('MemberProfile')
|
|
5
|
+
export class MemberProfileObject {
|
|
6
|
+
@Field(() => ID)
|
|
7
|
+
memberId!: string;
|
|
8
|
+
|
|
9
|
+
@Field()
|
|
10
|
+
name!: string;
|
|
11
|
+
|
|
12
|
+
@Field()
|
|
13
|
+
email!: string;
|
|
14
|
+
|
|
15
|
+
@Field()
|
|
16
|
+
customFieldsJson!: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function toMemberProfileObject(
|
|
20
|
+
metadata: MemberMetadata,
|
|
21
|
+
): MemberProfileObject {
|
|
22
|
+
return {
|
|
23
|
+
customFieldsJson: JSON.stringify(metadata.customFields),
|
|
24
|
+
email: metadata.email,
|
|
25
|
+
memberId: metadata.memberId,
|
|
26
|
+
name: metadata.name,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { MemberMetadata } from '@rytass/bpm-core-shared';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Injection token for the host-provided `BPMMemberResolver`.
|
|
5
|
+
*
|
|
6
|
+
* Hosts must register a provider under this token through
|
|
7
|
+
* `BPMRootModuleOptions.memberResolverProvider`. BPM resolvers and
|
|
8
|
+
* services look up display names, emails, and approver candidates via
|
|
9
|
+
* this token without coupling to any specific identity backend.
|
|
10
|
+
*/
|
|
11
|
+
export const BPM_MEMBER_RESOLVER = Symbol('BPM_MEMBER_RESOLVER');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use {@link BPM_MEMBER_RESOLVER}. Kept as a backwards-compatible
|
|
15
|
+
* alias for hosts that adopted the original name. To be removed in a future
|
|
16
|
+
* major release.
|
|
17
|
+
*/
|
|
18
|
+
export const MEMBER_RESOLVER = BPM_MEMBER_RESOLVER;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Contract host applications must implement so BPM can resolve member
|
|
22
|
+
* profiles, approver candidates, and search results.
|
|
23
|
+
*
|
|
24
|
+
* BPM never reads the host's user table directly — it only knows
|
|
25
|
+
* `memberId` strings and asks this resolver for any additional information.
|
|
26
|
+
*
|
|
27
|
+
* ## Caching
|
|
28
|
+
*
|
|
29
|
+
* BPM caches resolver responses in the `member_metadata_cache` table
|
|
30
|
+
* with a configurable TTL (`identityOptions.memberMetadataCacheTtlMs`,
|
|
31
|
+
* default 5 minutes — `IDENTITY_MEMBER_METADATA_CACHE_TTL_MS_DEFAULT`).
|
|
32
|
+
* Hosts do **not** need to add their own cache layer for the common
|
|
33
|
+
* case; implementations may layer additional caching if they have a
|
|
34
|
+
* faster source of truth (e.g. an in-process LRU over a remote auth
|
|
35
|
+
* service). The two layers do not coordinate — BPM's row-level cache
|
|
36
|
+
* is invalidated only by TTL expiry, never by host signals.
|
|
37
|
+
*
|
|
38
|
+
* ## Unknown-id contract (the two methods diverge intentionally)
|
|
39
|
+
*
|
|
40
|
+
* - `resolve(id)` is the **single-id, must-succeed** form. Throw
|
|
41
|
+
* `MemberNotFoundException` (or any error) when `memberId` is unknown
|
|
42
|
+
* — the caller is asking about one specific member and a partial
|
|
43
|
+
* answer is meaningless. BPM surfaces the error as a GraphQL
|
|
44
|
+
* `errors[]` entry on the originating query.
|
|
45
|
+
* - `resolveMany(ids)` is the **batched, partial-success** form BPM
|
|
46
|
+
* prefers when many ids are needed (e.g. resolving the assignee list
|
|
47
|
+
* on a task page). Implementations should **omit** unknown ids from
|
|
48
|
+
* the returned `Map` rather than throwing; BPM treats missing entries
|
|
49
|
+
* as deleted/anonymized members and renders a placeholder. Throwing
|
|
50
|
+
* here aborts the entire batch and fails the GraphQL query — almost
|
|
51
|
+
* never the right choice.
|
|
52
|
+
* - `search(text)` is the **member-picker** contract: an optional,
|
|
53
|
+
* non-paginated fuzzy search that returns up to ~50 best matches. When
|
|
54
|
+
* omitted, BPM's `searchMembers` GraphQL query returns an empty array
|
|
55
|
+
* (the picker UI degrades to id-only entry). It is **not** meant to
|
|
56
|
+
* back a full member-directory listing page — see `searchPaged`.
|
|
57
|
+
* - `searchPaged(text, { page, pageSize })` is the optional **directory
|
|
58
|
+
* listing** contract. When implemented, BPM delegates pagination and
|
|
59
|
+
* total counting to the host (typically DB-level `LIMIT/OFFSET` + `COUNT`)
|
|
60
|
+
* instead of fetching everything through `search` and paginating in
|
|
61
|
+
* memory. This is what the admin members list (`admin/users`) needs to
|
|
62
|
+
* page through a directory larger than `search`'s ~50-row cap and to
|
|
63
|
+
* report an accurate total. When omitted, BPM falls back to
|
|
64
|
+
* `search`-and-slice, so the listing page is capped by whatever `search`
|
|
65
|
+
* returns (backwards-compatible with pre-0.5.0 hosts).
|
|
66
|
+
*
|
|
67
|
+
* Implementations may de-duplicate within a single call freely.
|
|
68
|
+
*/
|
|
69
|
+
export interface BPMMemberResolver {
|
|
70
|
+
/**
|
|
71
|
+
* Single-id lookup. **Throw** (e.g. `MemberNotFoundException`) when
|
|
72
|
+
* the id is unknown — BPM surfaces the error to the caller. Result is
|
|
73
|
+
* row-cached by BPM with TTL `identityOptions.memberMetadataCacheTtlMs`.
|
|
74
|
+
*/
|
|
75
|
+
resolve(memberId: string): Promise<MemberMetadata>;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Batched lookup. **Omit** unknown ids from the returned `Map`
|
|
79
|
+
* (do not throw) — BPM renders missing entries as deleted/anonymized
|
|
80
|
+
* members. Cached per-id under the same TTL as `resolve`.
|
|
81
|
+
*/
|
|
82
|
+
resolveMany(
|
|
83
|
+
memberIds: readonly string[],
|
|
84
|
+
): Promise<ReadonlyMap<string, MemberMetadata>>;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Optional **member-picker** free-text search. Return up to ~50 best
|
|
88
|
+
* matches; BPM does not paginate the result. Omit the method entirely
|
|
89
|
+
* to disable member-picker search. This contract is intentionally
|
|
90
|
+
* non-paginated — to back a full directory listing page implement
|
|
91
|
+
* {@link BPMMemberResolver.searchPaged} instead.
|
|
92
|
+
*/
|
|
93
|
+
search?(searchText: string): Promise<readonly MemberMetadata[]>;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Optional **directory-listing** paged search. When present, BPM
|
|
97
|
+
* delegates both pagination and total counting to the host — the
|
|
98
|
+
* host is expected to page at the source (e.g. DB `LIMIT/OFFSET`) and
|
|
99
|
+
* return an accurate `total` — bypassing the `search`-and-slice-in-
|
|
100
|
+
* memory path that caps the listing at `search`'s ~50 rows.
|
|
101
|
+
*
|
|
102
|
+
* `page` is 1-based and `pageSize` is the number of rows per page;
|
|
103
|
+
* BPM normalizes and clamps both before calling (see the identity
|
|
104
|
+
* service pagination defaults). BPM row-caches the returned `items`
|
|
105
|
+
* under the same TTL as `resolve`/`resolveMany`, but never caches the
|
|
106
|
+
* page query itself. Omit the method to keep the pre-0.5.0
|
|
107
|
+
* `search`-backed behavior.
|
|
108
|
+
*/
|
|
109
|
+
searchPaged?(
|
|
110
|
+
searchText: string,
|
|
111
|
+
options: BPMMemberSearchPageOptions,
|
|
112
|
+
): Promise<BPMMemberSearchPage>;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Pagination request passed to {@link BPMMemberResolver.searchPaged}.
|
|
117
|
+
* `page` is 1-based; `pageSize` is the page length. BPM normalizes both
|
|
118
|
+
* to sane, clamped values before delegating, so hosts can trust them.
|
|
119
|
+
*/
|
|
120
|
+
export interface BPMMemberSearchPageOptions {
|
|
121
|
+
readonly page: number;
|
|
122
|
+
readonly pageSize: number;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* A single page of member search results returned by
|
|
127
|
+
* {@link BPMMemberResolver.searchPaged}. `items` is the requested slice
|
|
128
|
+
* (already limited to `pageSize`); `total` is the full unpaginated match
|
|
129
|
+
* count used by the `memberCount` GraphQL query.
|
|
130
|
+
*/
|
|
131
|
+
export interface BPMMemberSearchPage {
|
|
132
|
+
readonly items: readonly MemberMetadata[];
|
|
133
|
+
readonly total: number;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* @deprecated Use {@link BPMMemberResolver}. Kept as a backwards-compatible
|
|
138
|
+
* alias.
|
|
139
|
+
*/
|
|
140
|
+
export type MemberResolver = BPMMemberResolver;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
export class EnablePostgresExtensions0000000000001 implements MigrationInterface {
|
|
4
|
+
readonly name = 'EnablePostgresExtensions0000000000001';
|
|
5
|
+
|
|
6
|
+
async up(queryRunner: QueryRunner): Promise<void> {
|
|
7
|
+
await queryRunner.query('CREATE EXTENSION IF NOT EXISTS "uuid-ossp"');
|
|
8
|
+
await queryRunner.query('CREATE EXTENSION IF NOT EXISTS "ltree"');
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async down(queryRunner: QueryRunner): Promise<void> {
|
|
12
|
+
await queryRunner.query('DROP EXTENSION IF EXISTS "ltree"');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async up(queryRunner) {
|
|
9
|
-
await queryRunner.query(`
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
export class IdentityOrganizationFoundation0000000001000 implements MigrationInterface {
|
|
4
|
+
readonly name = 'IdentityOrganizationFoundation0000000001000';
|
|
5
|
+
|
|
6
|
+
async up(queryRunner: QueryRunner): Promise<void> {
|
|
7
|
+
await queryRunner.query(`
|
|
10
8
|
CREATE TABLE IF NOT EXISTS member_metadata_cache (
|
|
11
9
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
12
10
|
member_id text NOT NULL UNIQUE,
|
|
@@ -15,7 +13,8 @@ class IdentityOrganizationFoundation0000000001000 {
|
|
|
15
13
|
expires_at timestamptz NOT NULL
|
|
16
14
|
)
|
|
17
15
|
`);
|
|
18
|
-
|
|
16
|
+
|
|
17
|
+
await queryRunner.query(`
|
|
19
18
|
CREATE TABLE IF NOT EXISTS org_units (
|
|
20
19
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
21
20
|
parent_id uuid NULL REFERENCES org_units(id),
|
|
@@ -29,14 +28,19 @@ class IdentityOrganizationFoundation0000000001000 {
|
|
|
29
28
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
30
29
|
)
|
|
31
30
|
`);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
await queryRunner.query(
|
|
32
|
+
'CREATE INDEX IF NOT EXISTS idx_org_units_parent_id ON org_units(parent_id)',
|
|
33
|
+
);
|
|
34
|
+
await queryRunner.query(
|
|
35
|
+
'CREATE INDEX IF NOT EXISTS idx_org_units_path_gist ON org_units USING gist(path)',
|
|
36
|
+
);
|
|
37
|
+
await queryRunner.query(`
|
|
35
38
|
CREATE INDEX IF NOT EXISTS idx_org_units_not_deleted
|
|
36
39
|
ON org_units(deleted_at)
|
|
37
40
|
WHERE deleted_at IS NULL
|
|
38
41
|
`);
|
|
39
|
-
|
|
42
|
+
|
|
43
|
+
await queryRunner.query(`
|
|
40
44
|
CREATE TABLE IF NOT EXISTS positions (
|
|
41
45
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
42
46
|
code text NOT NULL UNIQUE,
|
|
@@ -47,7 +51,8 @@ class IdentityOrganizationFoundation0000000001000 {
|
|
|
47
51
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
48
52
|
)
|
|
49
53
|
`);
|
|
50
|
-
|
|
54
|
+
|
|
55
|
+
await queryRunner.query(`
|
|
51
56
|
CREATE TABLE IF NOT EXISTS memberships (
|
|
52
57
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
53
58
|
member_id text NOT NULL,
|
|
@@ -66,9 +71,14 @@ class IdentityOrganizationFoundation0000000001000 {
|
|
|
66
71
|
)
|
|
67
72
|
)
|
|
68
73
|
`);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
await queryRunner.query(
|
|
75
|
+
'CREATE INDEX IF NOT EXISTS idx_memberships_member_id ON memberships(member_id)',
|
|
76
|
+
);
|
|
77
|
+
await queryRunner.query(
|
|
78
|
+
'CREATE INDEX IF NOT EXISTS idx_memberships_org_unit_id ON memberships(org_unit_id)',
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
await queryRunner.query(`
|
|
72
82
|
CREATE TABLE IF NOT EXISTS manager_resolutions (
|
|
73
83
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
74
84
|
scope_type text NOT NULL,
|
|
@@ -80,18 +90,17 @@ class IdentityOrganizationFoundation0000000001000 {
|
|
|
80
90
|
created_at timestamptz NOT NULL DEFAULT now()
|
|
81
91
|
)
|
|
82
92
|
`);
|
|
83
|
-
|
|
93
|
+
await queryRunner.query(`
|
|
84
94
|
CREATE INDEX IF NOT EXISTS idx_manager_resolutions_scope
|
|
85
95
|
ON manager_resolutions(scope_type, scope_id)
|
|
86
96
|
`);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
async down(queryRunner: QueryRunner): Promise<void> {
|
|
100
|
+
await queryRunner.query('DROP TABLE IF EXISTS manager_resolutions');
|
|
101
|
+
await queryRunner.query('DROP TABLE IF EXISTS memberships');
|
|
102
|
+
await queryRunner.query('DROP TABLE IF EXISTS positions');
|
|
103
|
+
await queryRunner.query('DROP TABLE IF EXISTS org_units');
|
|
104
|
+
await queryRunner.query('DROP TABLE IF EXISTS member_metadata_cache');
|
|
105
|
+
}
|
|
95
106
|
}
|
|
96
|
-
exports.IdentityOrganizationFoundation0000000001000 = IdentityOrganizationFoundation0000000001000;
|
|
97
|
-
//# sourceMappingURL=0000000001000-identity-organization-foundation.js.map
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async up(queryRunner) {
|
|
9
|
-
await queryRunner.query(`
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
export class FormBuilderFoundation0000000002000 implements MigrationInterface {
|
|
4
|
+
readonly name = 'FormBuilderFoundation0000000002000';
|
|
5
|
+
|
|
6
|
+
async up(queryRunner: QueryRunner): Promise<void> {
|
|
7
|
+
await queryRunner.query(`
|
|
10
8
|
CREATE TABLE IF NOT EXISTS form_definitions (
|
|
11
9
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
12
10
|
name text NOT NULL,
|
|
@@ -18,7 +16,8 @@ class FormBuilderFoundation0000000002000 {
|
|
|
18
16
|
created_by_member_id text NULL
|
|
19
17
|
)
|
|
20
18
|
`);
|
|
21
|
-
|
|
19
|
+
|
|
20
|
+
await queryRunner.query(`
|
|
22
21
|
CREATE TABLE IF NOT EXISTS form_definition_versions (
|
|
23
22
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
24
23
|
form_definition_id uuid NOT NULL REFERENCES form_definitions(id),
|
|
@@ -37,30 +36,32 @@ class FormBuilderFoundation0000000002000 {
|
|
|
37
36
|
)
|
|
38
37
|
)
|
|
39
38
|
`);
|
|
40
|
-
|
|
39
|
+
|
|
40
|
+
await queryRunner.query(`
|
|
41
41
|
ALTER TABLE form_definitions
|
|
42
42
|
ADD CONSTRAINT fk_form_definitions_current_version
|
|
43
43
|
FOREIGN KEY (current_version_id)
|
|
44
44
|
REFERENCES form_definition_versions(id)
|
|
45
45
|
`);
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
await queryRunner.query(`
|
|
47
48
|
CREATE INDEX IF NOT EXISTS idx_form_definition_versions_definition_status
|
|
48
49
|
ON form_definition_versions(form_definition_id, status)
|
|
49
50
|
`);
|
|
50
|
-
|
|
51
|
+
|
|
52
|
+
await queryRunner.query(`
|
|
51
53
|
CREATE INDEX IF NOT EXISTS idx_form_definitions_not_deleted
|
|
52
54
|
ON form_definitions(deleted_at)
|
|
53
55
|
WHERE deleted_at IS NULL
|
|
54
56
|
`);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
async down(queryRunner: QueryRunner): Promise<void> {
|
|
60
|
+
await queryRunner.query(`
|
|
58
61
|
ALTER TABLE form_definitions
|
|
59
62
|
DROP CONSTRAINT IF EXISTS fk_form_definitions_current_version
|
|
60
63
|
`);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
await queryRunner.query('DROP TABLE IF EXISTS form_definition_versions');
|
|
65
|
+
await queryRunner.query('DROP TABLE IF EXISTS form_definitions');
|
|
66
|
+
}
|
|
64
67
|
}
|
|
65
|
-
exports.FormBuilderFoundation0000000002000 = FormBuilderFoundation0000000002000;
|
|
66
|
-
//# sourceMappingURL=0000000002000-form-builder-foundation.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
export class ApprovalTemplateFoundation0000000003000
|
|
4
|
+
implements MigrationInterface
|
|
5
|
+
{
|
|
6
|
+
readonly name = 'ApprovalTemplateFoundation0000000003000';
|
|
7
|
+
|
|
8
|
+
async up(queryRunner: QueryRunner): Promise<void> {
|
|
9
|
+
await queryRunner.query(`
|
|
10
10
|
CREATE TABLE IF NOT EXISTS approval_templates (
|
|
11
11
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
12
12
|
name text NOT NULL,
|
|
@@ -19,7 +19,8 @@ class ApprovalTemplateFoundation0000000003000 {
|
|
|
19
19
|
created_by_member_id text NULL
|
|
20
20
|
)
|
|
21
21
|
`);
|
|
22
|
-
|
|
22
|
+
|
|
23
|
+
await queryRunner.query(`
|
|
23
24
|
CREATE TABLE IF NOT EXISTS approval_template_versions (
|
|
24
25
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
25
26
|
template_id uuid NOT NULL REFERENCES approval_templates(id),
|
|
@@ -41,30 +42,32 @@ class ApprovalTemplateFoundation0000000003000 {
|
|
|
41
42
|
)
|
|
42
43
|
)
|
|
43
44
|
`);
|
|
44
|
-
|
|
45
|
+
|
|
46
|
+
await queryRunner.query(`
|
|
45
47
|
ALTER TABLE approval_templates
|
|
46
48
|
ADD CONSTRAINT fk_approval_templates_current_version
|
|
47
49
|
FOREIGN KEY (current_version_id)
|
|
48
50
|
REFERENCES approval_template_versions(id)
|
|
49
51
|
`);
|
|
50
|
-
|
|
52
|
+
|
|
53
|
+
await queryRunner.query(`
|
|
51
54
|
CREATE INDEX IF NOT EXISTS idx_approval_template_versions_template_status
|
|
52
55
|
ON approval_template_versions(template_id, status)
|
|
53
56
|
`);
|
|
54
|
-
|
|
57
|
+
|
|
58
|
+
await queryRunner.query(`
|
|
55
59
|
CREATE INDEX IF NOT EXISTS idx_approval_templates_not_deleted
|
|
56
60
|
ON approval_templates(deleted_at)
|
|
57
61
|
WHERE deleted_at IS NULL
|
|
58
62
|
`);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async down(queryRunner: QueryRunner): Promise<void> {
|
|
66
|
+
await queryRunner.query(`
|
|
62
67
|
ALTER TABLE approval_templates
|
|
63
68
|
DROP CONSTRAINT IF EXISTS fk_approval_templates_current_version
|
|
64
69
|
`);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
await queryRunner.query('DROP TABLE IF EXISTS approval_template_versions');
|
|
71
|
+
await queryRunner.query('DROP TABLE IF EXISTS approval_templates');
|
|
72
|
+
}
|
|
68
73
|
}
|
|
69
|
-
exports.ApprovalTemplateFoundation0000000003000 = ApprovalTemplateFoundation0000000003000;
|
|
70
|
-
//# sourceMappingURL=0000000003000-approval-template-foundation.js.map
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async up(queryRunner) {
|
|
9
|
-
await queryRunner.query(`
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
export class WorkflowEngineFoundation0000000004000 implements MigrationInterface {
|
|
4
|
+
readonly name = 'WorkflowEngineFoundation0000000004000';
|
|
5
|
+
|
|
6
|
+
async up(queryRunner: QueryRunner): Promise<void> {
|
|
7
|
+
await queryRunner.query(`
|
|
10
8
|
CREATE TABLE IF NOT EXISTS approval_instances (
|
|
11
9
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
12
10
|
template_id uuid NOT NULL REFERENCES approval_templates(id),
|
|
@@ -24,7 +22,8 @@ class WorkflowEngineFoundation0000000004000 {
|
|
|
24
22
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
25
23
|
)
|
|
26
24
|
`);
|
|
27
|
-
|
|
25
|
+
|
|
26
|
+
await queryRunner.query(`
|
|
28
27
|
CREATE TABLE IF NOT EXISTS workflow_tokens (
|
|
29
28
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
30
29
|
instance_id uuid NOT NULL REFERENCES approval_instances(id),
|
|
@@ -35,7 +34,8 @@ class WorkflowEngineFoundation0000000004000 {
|
|
|
35
34
|
consumed_at timestamptz NULL
|
|
36
35
|
)
|
|
37
36
|
`);
|
|
38
|
-
|
|
37
|
+
|
|
38
|
+
await queryRunner.query(`
|
|
39
39
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
40
40
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
41
41
|
instance_id uuid NOT NULL REFERENCES approval_instances(id),
|
|
@@ -51,7 +51,8 @@ class WorkflowEngineFoundation0000000004000 {
|
|
|
51
51
|
completed_at timestamptz NULL
|
|
52
52
|
)
|
|
53
53
|
`);
|
|
54
|
-
|
|
54
|
+
|
|
55
|
+
await queryRunner.query(`
|
|
55
56
|
CREATE TABLE IF NOT EXISTS task_decisions (
|
|
56
57
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
57
58
|
task_id uuid NOT NULL REFERENCES tasks(id),
|
|
@@ -64,7 +65,8 @@ class WorkflowEngineFoundation0000000004000 {
|
|
|
64
65
|
decided_at timestamptz NOT NULL
|
|
65
66
|
)
|
|
66
67
|
`);
|
|
67
|
-
|
|
68
|
+
|
|
69
|
+
await queryRunner.query(`
|
|
68
70
|
CREATE TABLE IF NOT EXISTS activity_logs (
|
|
69
71
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
70
72
|
instance_id uuid NOT NULL REFERENCES approval_instances(id),
|
|
@@ -76,59 +78,69 @@ class WorkflowEngineFoundation0000000004000 {
|
|
|
76
78
|
created_at timestamptz NOT NULL DEFAULT now()
|
|
77
79
|
)
|
|
78
80
|
`);
|
|
79
|
-
|
|
81
|
+
|
|
82
|
+
await queryRunner.query(`
|
|
80
83
|
CREATE INDEX IF NOT EXISTS idx_approval_instances_initiator_state
|
|
81
84
|
ON approval_instances(initiator_member_id, state)
|
|
82
85
|
`);
|
|
83
|
-
|
|
86
|
+
|
|
87
|
+
await queryRunner.query(`
|
|
84
88
|
CREATE INDEX IF NOT EXISTS idx_approval_instances_template_state
|
|
85
89
|
ON approval_instances(template_id, state)
|
|
86
90
|
`);
|
|
87
|
-
|
|
91
|
+
|
|
92
|
+
await queryRunner.query(`
|
|
88
93
|
CREATE INDEX IF NOT EXISTS idx_approval_instances_state_started
|
|
89
94
|
ON approval_instances(state, started_at)
|
|
90
95
|
`);
|
|
91
|
-
|
|
96
|
+
|
|
97
|
+
await queryRunner.query(`
|
|
92
98
|
CREATE INDEX IF NOT EXISTS idx_workflow_tokens_instance_status
|
|
93
99
|
ON workflow_tokens(instance_id, status)
|
|
94
100
|
`);
|
|
95
|
-
|
|
101
|
+
|
|
102
|
+
await queryRunner.query(`
|
|
96
103
|
CREATE INDEX IF NOT EXISTS idx_tasks_assignee_status
|
|
97
104
|
ON tasks(assignee_member_id, status)
|
|
98
105
|
`);
|
|
99
|
-
|
|
106
|
+
|
|
107
|
+
await queryRunner.query(`
|
|
100
108
|
CREATE INDEX IF NOT EXISTS idx_tasks_instance_node
|
|
101
109
|
ON tasks(instance_id, node_id)
|
|
102
110
|
`);
|
|
103
|
-
|
|
111
|
+
|
|
112
|
+
await queryRunner.query(`
|
|
104
113
|
CREATE INDEX IF NOT EXISTS idx_tasks_sla_due
|
|
105
114
|
ON tasks(sla_due_at)
|
|
106
115
|
WHERE sla_due_at IS NOT NULL AND status IN ('PENDING', 'IN_PROGRESS')
|
|
107
116
|
`);
|
|
108
|
-
|
|
117
|
+
|
|
118
|
+
await queryRunner.query(`
|
|
109
119
|
CREATE INDEX IF NOT EXISTS idx_task_decisions_task
|
|
110
120
|
ON task_decisions(task_id)
|
|
111
121
|
`);
|
|
112
|
-
|
|
122
|
+
|
|
123
|
+
await queryRunner.query(`
|
|
113
124
|
CREATE INDEX IF NOT EXISTS idx_task_decisions_decider
|
|
114
125
|
ON task_decisions(decided_by_member_id, decided_at)
|
|
115
126
|
`);
|
|
116
|
-
|
|
127
|
+
|
|
128
|
+
await queryRunner.query(`
|
|
117
129
|
CREATE INDEX IF NOT EXISTS idx_activity_logs_instance_created
|
|
118
130
|
ON activity_logs(instance_id, created_at)
|
|
119
131
|
`);
|
|
120
|
-
|
|
132
|
+
|
|
133
|
+
await queryRunner.query(`
|
|
121
134
|
CREATE INDEX IF NOT EXISTS idx_activity_logs_actor_created
|
|
122
135
|
ON activity_logs(actor_member_id, created_at)
|
|
123
136
|
`);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
async down(queryRunner: QueryRunner): Promise<void> {
|
|
140
|
+
await queryRunner.query('DROP TABLE IF EXISTS activity_logs');
|
|
141
|
+
await queryRunner.query('DROP TABLE IF EXISTS task_decisions');
|
|
142
|
+
await queryRunner.query('DROP TABLE IF EXISTS tasks');
|
|
143
|
+
await queryRunner.query('DROP TABLE IF EXISTS workflow_tokens');
|
|
144
|
+
await queryRunner.query('DROP TABLE IF EXISTS approval_instances');
|
|
145
|
+
}
|
|
132
146
|
}
|
|
133
|
-
exports.WorkflowEngineFoundation0000000004000 = WorkflowEngineFoundation0000000004000;
|
|
134
|
-
//# sourceMappingURL=0000000004000-workflow-engine-foundation.js.map
|