@solidxai/core 0.1.13-beta.0 → 0.1.13-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controllers/workflow-definition.controller.d.ts +38 -0
- package/dist/controllers/workflow-definition.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-definition.controller.js +272 -0
- package/dist/controllers/workflow-definition.controller.js.map +1 -0
- package/dist/controllers/workflow-execution-artifact.controller.d.ts +24 -0
- package/dist/controllers/workflow-execution-artifact.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-execution-artifact.controller.js +179 -0
- package/dist/controllers/workflow-execution-artifact.controller.js.map +1 -0
- package/dist/controllers/workflow-execution-log.controller.d.ts +24 -0
- package/dist/controllers/workflow-execution-log.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-execution-log.controller.js +179 -0
- package/dist/controllers/workflow-execution-log.controller.js.map +1 -0
- package/dist/controllers/workflow-execution.controller.d.ts +29 -0
- package/dist/controllers/workflow-execution.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-execution.controller.js +227 -0
- package/dist/controllers/workflow-execution.controller.js.map +1 -0
- package/dist/controllers/workflow-secret.controller.d.ts +24 -0
- package/dist/controllers/workflow-secret.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-secret.controller.js +179 -0
- package/dist/controllers/workflow-secret.controller.js.map +1 -0
- package/dist/controllers/workflow-step-execution.controller.d.ts +24 -0
- package/dist/controllers/workflow-step-execution.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-step-execution.controller.js +179 -0
- package/dist/controllers/workflow-step-execution.controller.js.map +1 -0
- package/dist/controllers/workflow-trigger-execution.controller.d.ts +24 -0
- package/dist/controllers/workflow-trigger-execution.controller.d.ts.map +1 -0
- package/dist/controllers/workflow-trigger-execution.controller.js +179 -0
- package/dist/controllers/workflow-trigger-execution.controller.js.map +1 -0
- package/dist/decorators/workflow-node-provider.decorator.d.ts +4 -0
- package/dist/decorators/workflow-node-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/workflow-node-provider.decorator.js +13 -0
- package/dist/decorators/workflow-node-provider.decorator.js.map +1 -0
- package/dist/dtos/create-workflow-definition.dto.d.ts +14 -0
- package/dist/dtos/create-workflow-definition.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-definition.dto.js +92 -0
- package/dist/dtos/create-workflow-definition.dto.js.map +1 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.d.ts +22 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.js +139 -0
- package/dist/dtos/create-workflow-execution-artifact.dto.js.map +1 -0
- package/dist/dtos/create-workflow-execution-log.dto.d.ts +18 -0
- package/dist/dtos/create-workflow-execution-log.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-execution-log.dto.js +116 -0
- package/dist/dtos/create-workflow-execution-log.dto.js.map +1 -0
- package/dist/dtos/create-workflow-execution.dto.d.ts +33 -0
- package/dist/dtos/create-workflow-execution.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-execution.dto.js +186 -0
- package/dist/dtos/create-workflow-execution.dto.js.map +1 -0
- package/dist/dtos/create-workflow-secret.dto.d.ts +11 -0
- package/dist/dtos/create-workflow-secret.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-secret.dto.js +74 -0
- package/dist/dtos/create-workflow-secret.dto.js.map +1 -0
- package/dist/dtos/create-workflow-step-execution.dto.d.ts +27 -0
- package/dist/dtos/create-workflow-step-execution.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-step-execution.dto.js +171 -0
- package/dist/dtos/create-workflow-step-execution.dto.js.map +1 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.d.ts +25 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.d.ts.map +1 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.js +158 -0
- package/dist/dtos/create-workflow-trigger-execution.dto.js.map +1 -0
- package/dist/dtos/execute-workflow.dto.d.ts +7 -0
- package/dist/dtos/execute-workflow.dto.d.ts.map +1 -0
- package/dist/dtos/execute-workflow.dto.js +11 -0
- package/dist/dtos/execute-workflow.dto.js.map +1 -0
- package/dist/dtos/update-workflow-definition.dto.d.ts +15 -0
- package/dist/dtos/update-workflow-definition.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-definition.dto.js +97 -0
- package/dist/dtos/update-workflow-definition.dto.js.map +1 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.d.ts +23 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.js +143 -0
- package/dist/dtos/update-workflow-execution-artifact.dto.js.map +1 -0
- package/dist/dtos/update-workflow-execution-log.dto.d.ts +19 -0
- package/dist/dtos/update-workflow-execution-log.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-execution-log.dto.js +121 -0
- package/dist/dtos/update-workflow-execution-log.dto.js.map +1 -0
- package/dist/dtos/update-workflow-execution.dto.d.ts +34 -0
- package/dist/dtos/update-workflow-execution.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-execution.dto.js +190 -0
- package/dist/dtos/update-workflow-execution.dto.js.map +1 -0
- package/dist/dtos/update-workflow-secret.dto.d.ts +12 -0
- package/dist/dtos/update-workflow-secret.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-secret.dto.js +80 -0
- package/dist/dtos/update-workflow-secret.dto.js.map +1 -0
- package/dist/dtos/update-workflow-step-execution.dto.d.ts +28 -0
- package/dist/dtos/update-workflow-step-execution.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-step-execution.dto.js +175 -0
- package/dist/dtos/update-workflow-step-execution.dto.js.map +1 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.d.ts +26 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.d.ts.map +1 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.js +163 -0
- package/dist/dtos/update-workflow-trigger-execution.dto.js.map +1 -0
- package/dist/dtos/validate-workflow-definition.dto.d.ts +4 -0
- package/dist/dtos/validate-workflow-definition.dto.d.ts.map +1 -0
- package/dist/dtos/validate-workflow-definition.dto.js +11 -0
- package/dist/dtos/validate-workflow-definition.dto.js.map +1 -0
- package/dist/entities/saved-filters.entity.js +3 -3
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/workflow-definition.entity.d.ts +15 -0
- package/dist/entities/workflow-definition.entity.d.ts.map +1 -0
- package/dist/entities/workflow-definition.entity.js +77 -0
- package/dist/entities/workflow-definition.entity.js.map +1 -0
- package/dist/entities/workflow-execution-artifact.entity.d.ts +23 -0
- package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -0
- package/dist/entities/workflow-execution-artifact.entity.js +113 -0
- package/dist/entities/workflow-execution-artifact.entity.js.map +1 -0
- package/dist/entities/workflow-execution-log.entity.d.ts +19 -0
- package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -0
- package/dist/entities/workflow-execution-log.entity.js +95 -0
- package/dist/entities/workflow-execution-log.entity.js.map +1 -0
- package/dist/entities/workflow-execution.entity.d.ts +28 -0
- package/dist/entities/workflow-execution.entity.d.ts.map +1 -0
- package/dist/entities/workflow-execution.entity.js +124 -0
- package/dist/entities/workflow-execution.entity.js.map +1 -0
- package/dist/entities/workflow-secret.entity.d.ts +12 -0
- package/dist/entities/workflow-secret.entity.d.ts.map +1 -0
- package/dist/entities/workflow-secret.entity.js +66 -0
- package/dist/entities/workflow-secret.entity.js.map +1 -0
- package/dist/entities/workflow-step-execution.entity.d.ts +28 -0
- package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -0
- package/dist/entities/workflow-step-execution.entity.js +138 -0
- package/dist/entities/workflow-step-execution.entity.js.map +1 -0
- package/dist/entities/workflow-trigger-execution.entity.d.ts +26 -0
- package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -0
- package/dist/entities/workflow-trigger-execution.entity.js +127 -0
- package/dist/entities/workflow-trigger-execution.entity.js.map +1 -0
- package/dist/factories/sms.factory.d.ts.map +1 -1
- package/dist/factories/sms.factory.js +4 -1
- package/dist/factories/sms.factory.js.map +1 -1
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/workflow-node-handler.interface.d.ts +5 -0
- package/dist/interfaces/workflow-node-handler.interface.d.ts.map +1 -0
- package/dist/interfaces/workflow-node-handler.interface.js +3 -0
- package/dist/interfaces/workflow-node-handler.interface.js.map +1 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts +12 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.js +39 -0
- package/dist/jobs/database/workflow-execution-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.js +10 -0
- package/dist/jobs/database/workflow-execution-queue-options-database.js.map +1 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts +19 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.js +55 -0
- package/dist/jobs/database/workflow-execution-subscriber-database.service.js.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts +12 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js +39 -0
- package/dist/jobs/rabbitmq/workflow-execution-publisher.service.js.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts +8 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.js +10 -0
- package/dist/jobs/rabbitmq/workflow-execution-queue-options.js.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts +17 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js +52 -0
- package/dist/jobs/rabbitmq/workflow-execution-subscriber.service.js.map +1 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts +12 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.d.ts.map +1 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.js +39 -0
- package/dist/jobs/redis/workflow-execution-publisher-redis.service.js.map +1 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts +8 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.d.ts.map +1 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.js +10 -0
- package/dist/jobs/redis/workflow-execution-queue-options-redis.js.map +1 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts +17 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.d.ts.map +1 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js +52 -0
- package/dist/jobs/redis/workflow-execution-subscriber-redis.service.js.map +1 -0
- package/dist/repository/workflow-definition.repository.d.ts +12 -0
- package/dist/repository/workflow-definition.repository.d.ts.map +1 -0
- package/dist/repository/workflow-definition.repository.js +39 -0
- package/dist/repository/workflow-definition.repository.js.map +1 -0
- package/dist/repository/workflow-execution-artifact.repository.d.ts +12 -0
- package/dist/repository/workflow-execution-artifact.repository.d.ts.map +1 -0
- package/dist/repository/workflow-execution-artifact.repository.js +39 -0
- package/dist/repository/workflow-execution-artifact.repository.js.map +1 -0
- package/dist/repository/workflow-execution-log.repository.d.ts +12 -0
- package/dist/repository/workflow-execution-log.repository.d.ts.map +1 -0
- package/dist/repository/workflow-execution-log.repository.js +39 -0
- package/dist/repository/workflow-execution-log.repository.js.map +1 -0
- package/dist/repository/workflow-execution.repository.d.ts +12 -0
- package/dist/repository/workflow-execution.repository.d.ts.map +1 -0
- package/dist/repository/workflow-execution.repository.js +39 -0
- package/dist/repository/workflow-execution.repository.js.map +1 -0
- package/dist/repository/workflow-secret.repository.d.ts +12 -0
- package/dist/repository/workflow-secret.repository.d.ts.map +1 -0
- package/dist/repository/workflow-secret.repository.js +39 -0
- package/dist/repository/workflow-secret.repository.js.map +1 -0
- package/dist/repository/workflow-step-execution.repository.d.ts +12 -0
- package/dist/repository/workflow-step-execution.repository.d.ts.map +1 -0
- package/dist/repository/workflow-step-execution.repository.js +39 -0
- package/dist/repository/workflow-step-execution.repository.js.map +1 -0
- package/dist/repository/workflow-trigger-execution.repository.d.ts +12 -0
- package/dist/repository/workflow-trigger-execution.repository.d.ts.map +1 -0
- package/dist/repository/workflow-trigger-execution.repository.js +39 -0
- package/dist/repository/workflow-trigger-execution.repository.js.map +1 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts +6 -0
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +141 -0
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +11437 -5567
- package/dist/services/workflow/nodes/for-each.node.d.ts +6 -0
- package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/for-each.node.js +95 -0
- package/dist/services/workflow/nodes/for-each.node.js.map +1 -0
- package/dist/services/workflow/nodes/http-request.node.d.ts +13 -0
- package/dist/services/workflow/nodes/http-request.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/http-request.node.js +549 -0
- package/dist/services/workflow/nodes/http-request.node.js.map +1 -0
- package/dist/services/workflow/nodes/if.node.d.ts +6 -0
- package/dist/services/workflow/nodes/if.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/if.node.js +93 -0
- package/dist/services/workflow/nodes/if.node.js.map +1 -0
- package/dist/services/workflow/nodes/log-write.node.d.ts +6 -0
- package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/log-write.node.js +229 -0
- package/dist/services/workflow/nodes/log-write.node.js.map +1 -0
- package/dist/services/workflow/nodes/parallel.node.d.ts +6 -0
- package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/parallel.node.js +76 -0
- package/dist/services/workflow/nodes/parallel.node.js.map +1 -0
- package/dist/services/workflow/nodes/runtime-python.node.d.ts +13 -0
- package/dist/services/workflow/nodes/runtime-python.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/runtime-python.node.js +522 -0
- package/dist/services/workflow/nodes/runtime-python.node.js.map +1 -0
- package/dist/services/workflow/nodes/sequential.node.d.ts +6 -0
- package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/sequential.node.js +61 -0
- package/dist/services/workflow/nodes/sequential.node.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.d.ts +25 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.js +143 -0
- package/dist/services/workflow/nodes/solidx-api.helpers.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts +48 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.js +475 -0
- package/dist/services/workflow/nodes/solidx-crud.nodes.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-login.node.d.ts +6 -0
- package/dist/services/workflow/nodes/solidx-login.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-login.node.js +208 -0
- package/dist/services/workflow/nodes/solidx-login.node.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.d.ts +11 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.js +437 -0
- package/dist/services/workflow/nodes/solidx-send-email.node.js.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts +10 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.js +347 -0
- package/dist/services/workflow/nodes/solidx-send-sms.node.js.map +1 -0
- package/dist/services/workflow/nodes/switch.node.d.ts +7 -0
- package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -0
- package/dist/services/workflow/nodes/switch.node.js +113 -0
- package/dist/services/workflow/nodes/switch.node.js.map +1 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts +19 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.js +187 -0
- package/dist/services/workflow/workflow-definition-metadata-sync.service.js.map +1 -0
- package/dist/services/workflow/workflow-definition-validator.service.d.ts +13 -0
- package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-definition-validator.service.js +163 -0
- package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -0
- package/dist/services/workflow/workflow-execution-writer.service.d.ts +26 -0
- package/dist/services/workflow/workflow-execution-writer.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-execution-writer.service.js +191 -0
- package/dist/services/workflow/workflow-execution-writer.service.js.map +1 -0
- package/dist/services/workflow/workflow-expression.service.d.ts +14 -0
- package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-expression.service.js +152 -0
- package/dist/services/workflow/workflow-expression.service.js.map +1 -0
- package/dist/services/workflow/workflow-invocation.service.d.ts +11 -0
- package/dist/services/workflow/workflow-invocation.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-invocation.service.js +37 -0
- package/dist/services/workflow/workflow-invocation.service.js.map +1 -0
- package/dist/services/workflow/workflow-node-registry.service.d.ts +18 -0
- package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-node-registry.service.js +110 -0
- package/dist/services/workflow/workflow-node-registry.service.js.map +1 -0
- package/dist/services/workflow/workflow-runtime.service.d.ts +53 -0
- package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -0
- package/dist/services/workflow/workflow-runtime.service.js +541 -0
- package/dist/services/workflow/workflow-runtime.service.js.map +1 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts +10 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.d.ts.map +1 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.js +37 -0
- package/dist/services/workflow/workflow-scheduled-trigger.job.js.map +1 -0
- package/dist/services/workflow-definition.service.d.ts +52 -0
- package/dist/services/workflow-definition.service.d.ts.map +1 -0
- package/dist/services/workflow-definition.service.js +251 -0
- package/dist/services/workflow-definition.service.js.map +1 -0
- package/dist/services/workflow-execution-artifact.service.d.ts +12 -0
- package/dist/services/workflow-execution-artifact.service.d.ts.map +1 -0
- package/dist/services/workflow-execution-artifact.service.js +38 -0
- package/dist/services/workflow-execution-artifact.service.js.map +1 -0
- package/dist/services/workflow-execution-log.service.d.ts +12 -0
- package/dist/services/workflow-execution-log.service.d.ts.map +1 -0
- package/dist/services/workflow-execution-log.service.js +38 -0
- package/dist/services/workflow-execution-log.service.js.map +1 -0
- package/dist/services/workflow-execution.service.d.ts +12 -0
- package/dist/services/workflow-execution.service.d.ts.map +1 -0
- package/dist/services/workflow-execution.service.js +38 -0
- package/dist/services/workflow-execution.service.js.map +1 -0
- package/dist/services/workflow-secret.service.d.ts +25 -0
- package/dist/services/workflow-secret.service.d.ts.map +1 -0
- package/dist/services/workflow-secret.service.js +152 -0
- package/dist/services/workflow-secret.service.js.map +1 -0
- package/dist/services/workflow-step-execution.service.d.ts +12 -0
- package/dist/services/workflow-step-execution.service.d.ts.map +1 -0
- package/dist/services/workflow-step-execution.service.js +38 -0
- package/dist/services/workflow-step-execution.service.js.map +1 -0
- package/dist/services/workflow-trigger-execution.service.d.ts +12 -0
- package/dist/services/workflow-trigger-execution.service.d.ts.map +1 -0
- package/dist/services/workflow-trigger-execution.service.js +38 -0
- package/dist/services/workflow-trigger-execution.service.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +117 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/transformers/empty-string-to-null-transformer.d.ts +4 -0
- package/dist/transformers/empty-string-to-null-transformer.d.ts.map +1 -0
- package/dist/transformers/empty-string-to-null-transformer.js +12 -0
- package/dist/transformers/empty-string-to-null-transformer.js.map +1 -0
- package/dist/types/workflow-dsl.types.d.ts +277 -0
- package/dist/types/workflow-dsl.types.d.ts.map +1 -0
- package/dist/types/workflow-dsl.types.js +3 -0
- package/dist/types/workflow-dsl.types.js.map +1 -0
- package/dist/types/workflow-execution-queue.types.d.ts +4 -0
- package/dist/types/workflow-execution-queue.types.d.ts.map +1 -0
- package/dist/types/workflow-execution-queue.types.js +3 -0
- package/dist/types/workflow-execution-queue.types.js.map +1 -0
- package/package.json +3 -2
- package/src/controllers/workflow-definition.controller.ts +141 -0
- package/src/controllers/workflow-execution-artifact.controller.ts +93 -0
- package/src/controllers/workflow-execution-log.controller.ts +93 -0
- package/src/controllers/workflow-execution.controller.ts +126 -0
- package/src/controllers/workflow-secret.controller.ts +90 -0
- package/src/controllers/workflow-step-execution.controller.ts +93 -0
- package/src/controllers/workflow-trigger-execution.controller.ts +93 -0
- package/src/decorators/workflow-node-provider.decorator.ts +14 -0
- package/src/dtos/create-workflow-definition.dto.ts +60 -0
- package/src/dtos/create-workflow-execution-artifact.dto.ts +99 -0
- package/src/dtos/create-workflow-execution-log.dto.ts +80 -0
- package/src/dtos/create-workflow-execution.dto.ts +137 -0
- package/src/dtos/create-workflow-secret.dto.ts +44 -0
- package/src/dtos/create-workflow-step-execution.dto.ts +123 -0
- package/src/dtos/create-workflow-trigger-execution.dto.ts +114 -0
- package/src/dtos/execute-workflow.dto.ts +6 -0
- package/src/dtos/update-workflow-definition.dto.ts +67 -0
- package/src/dtos/update-workflow-execution-artifact.dto.ts +105 -0
- package/src/dtos/update-workflow-execution-log.dto.ts +87 -0
- package/src/dtos/update-workflow-execution.dto.ts +144 -0
- package/src/dtos/update-workflow-secret.dto.ts +53 -0
- package/src/dtos/update-workflow-step-execution.dto.ts +132 -0
- package/src/dtos/update-workflow-trigger-execution.dto.ts +122 -0
- package/src/dtos/validate-workflow-definition.dto.ts +3 -0
- package/src/entities/saved-filters.entity.ts +3 -3
- package/src/entities/workflow-definition.entity.ts +43 -0
- package/src/entities/workflow-execution-artifact.entity.ts +72 -0
- package/src/entities/workflow-execution-log.entity.ts +58 -0
- package/src/entities/workflow-execution.entity.ts +82 -0
- package/src/entities/workflow-secret.entity.ts +33 -0
- package/src/entities/workflow-step-execution.entity.ts +88 -0
- package/src/entities/workflow-trigger-execution.entity.ts +82 -0
- package/src/factories/sms.factory.ts +4 -1
- package/src/index.ts +54 -0
- package/src/interfaces/workflow-node-handler.interface.ts +10 -0
- package/src/jobs/database/workflow-execution-publisher-database.service.ts +24 -0
- package/src/jobs/database/workflow-execution-queue-options-database.ts +9 -0
- package/src/jobs/database/workflow-execution-subscriber-database.service.ts +44 -0
- package/src/jobs/rabbitmq/workflow-execution-publisher.service.ts +24 -0
- package/src/jobs/rabbitmq/workflow-execution-queue-options.ts +9 -0
- package/src/jobs/rabbitmq/workflow-execution-subscriber.service.ts +42 -0
- package/src/jobs/redis/workflow-execution-publisher-redis.service.ts +24 -0
- package/src/jobs/redis/workflow-execution-queue-options-redis.ts +9 -0
- package/src/jobs/redis/workflow-execution-subscriber-redis.service.ts +42 -0
- package/src/repository/workflow-definition.repository.ts +19 -0
- package/src/repository/workflow-execution-artifact.repository.ts +19 -0
- package/src/repository/workflow-execution-log.repository.ts +19 -0
- package/src/repository/workflow-execution.repository.ts +19 -0
- package/src/repository/workflow-secret.repository.ts +19 -0
- package/src/repository/workflow-step-execution.repository.ts +19 -0
- package/src/repository/workflow-trigger-execution.repository.ts +19 -0
- package/src/seeders/module-metadata-seeder.service.ts +166 -4
- package/src/seeders/seed-data/solid-core-metadata.json +11437 -5567
- package/src/services/workflow/nodes/for-each.node.ts +97 -0
- package/src/services/workflow/nodes/http-request.node.ts +624 -0
- package/src/services/workflow/nodes/if.node.ts +93 -0
- package/src/services/workflow/nodes/log-write.node.ts +232 -0
- package/src/services/workflow/nodes/parallel.node.ts +81 -0
- package/src/services/workflow/nodes/runtime-python.node.ts +571 -0
- package/src/services/workflow/nodes/sequential.node.ts +58 -0
- package/src/services/workflow/nodes/solidx-api.helpers.ts +205 -0
- package/src/services/workflow/nodes/solidx-crud.nodes.ts +511 -0
- package/src/services/workflow/nodes/solidx-login.node.ts +222 -0
- package/src/services/workflow/nodes/solidx-send-email.node.ts +489 -0
- package/src/services/workflow/nodes/solidx-send-sms.node.ts +377 -0
- package/src/services/workflow/nodes/switch.node.ts +125 -0
- package/src/services/workflow/workflow-definition-metadata-sync.service.ts +196 -0
- package/src/services/workflow/workflow-definition-validator.service.ts +223 -0
- package/src/services/workflow/workflow-execution-writer.service.ts +244 -0
- package/src/services/workflow/workflow-expression.service.ts +175 -0
- package/src/services/workflow/workflow-invocation.service.ts +39 -0
- package/src/services/workflow/workflow-node-registry.service.ts +141 -0
- package/src/services/workflow/workflow-runtime.service.ts +699 -0
- package/src/services/workflow/workflow-scheduled-trigger.job.ts +33 -0
- package/src/services/workflow-definition.service.ts +293 -0
- package/src/services/workflow-execution-artifact.service.ts +20 -0
- package/src/services/workflow-execution-log.service.ts +20 -0
- package/src/services/workflow-execution.service.ts +20 -0
- package/src/services/workflow-secret.service.ts +161 -0
- package/src/services/workflow-step-execution.service.ts +20 -0
- package/src/services/workflow-trigger-execution.service.ts +20 -0
- package/src/solid-core.module.ts +124 -0
- package/src/transformers/empty-string-to-null-transformer.ts +11 -0
- package/src/types/workflow-dsl.types.ts +987 -0
- package/src/types/workflow-execution-queue.types.ts +3 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable, Logger } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import { QueueMessage } from '../../interfaces/mq';
|
|
4
|
+
import { QueuesModuleOptions } from '../../interfaces';
|
|
5
|
+
import { WorkflowExecutionQueuePayload } from '../../types/workflow-execution-queue.types';
|
|
6
|
+
import { MqMessageQueueService } from '../../services/mq-message-queue.service';
|
|
7
|
+
import { MqMessageService } from '../../services/mq-message.service';
|
|
8
|
+
import { RedisSubscriber } from '../../services/queues/redis-subscriber.service';
|
|
9
|
+
import { WorkflowRuntimeService } from '../../services/workflow/workflow-runtime.service';
|
|
10
|
+
import workflowExecutionQueueOptions from './workflow-execution-queue-options-redis';
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class WorkflowExecutionSubscriberRedis extends RedisSubscriber<WorkflowExecutionQueuePayload> {
|
|
14
|
+
private readonly workflowExecutionLogger = new Logger(WorkflowExecutionSubscriberRedis.name);
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
readonly mqMessageService: MqMessageService,
|
|
18
|
+
readonly mqMessageQueueService: MqMessageQueueService,
|
|
19
|
+
private readonly workflowRuntimeService: WorkflowRuntimeService,
|
|
20
|
+
) {
|
|
21
|
+
super(mqMessageService, mqMessageQueueService);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
options(): QueuesModuleOptions {
|
|
25
|
+
return {
|
|
26
|
+
...workflowExecutionQueueOptions,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async subscribe(message: QueueMessage<WorkflowExecutionQueuePayload>) {
|
|
31
|
+
const payload = message.payload;
|
|
32
|
+
this.workflowExecutionLogger.log(
|
|
33
|
+
`Processing queued workflow execution message ${message.messageId ?? '<unknown>'}.`,
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
if (payload.executionId !== undefined && payload.executionId !== null) {
|
|
37
|
+
return this.workflowRuntimeService.executeEnqueuedExecution(payload.executionId);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
throw new Error('Workflow execution queue payload must include executionId.');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowDefinition } from '../entities/workflow-definition.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowDefinitionRepository extends SolidBaseRepository<WorkflowDefinition> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowDefinition, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowExecutionArtifact } from '../entities/workflow-execution-artifact.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowExecutionArtifactRepository extends SolidBaseRepository<WorkflowExecutionArtifact> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowExecutionArtifact, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowExecutionLog } from '../entities/workflow-execution-log.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowExecutionLogRepository extends SolidBaseRepository<WorkflowExecutionLog> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowExecutionLog, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowExecution } from '../entities/workflow-execution.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowExecutionRepository extends SolidBaseRepository<WorkflowExecution> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowExecution, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowSecret } from '../entities/workflow-secret.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowSecretRepository extends SolidBaseRepository<WorkflowSecret> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowSecret, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowStepExecution } from '../entities/workflow-step-execution.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowStepExecutionRepository extends SolidBaseRepository<WorkflowStepExecution> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowStepExecution, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { SecurityRuleRepository } from './security-rule.repository';
|
|
3
|
+
import { SolidBaseRepository } from './solid-base.repository';
|
|
4
|
+
import { RequestContextService } from 'src/services/request-context.service';
|
|
5
|
+
import { DataSource } from 'typeorm';
|
|
6
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
7
|
+
import { WorkflowTriggerExecution } from '../entities/workflow-trigger-execution.entity';
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class WorkflowTriggerExecutionRepository extends SolidBaseRepository<WorkflowTriggerExecution> {
|
|
11
|
+
constructor(
|
|
12
|
+
@InjectDataSource("default")
|
|
13
|
+
readonly dataSource: DataSource,
|
|
14
|
+
readonly requestContextService: RequestContextService,
|
|
15
|
+
readonly securityRuleRepository: SecurityRuleRepository,
|
|
16
|
+
) {
|
|
17
|
+
super(WorkflowTriggerExecution, dataSource, requestContextService, securityRuleRepository);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -3,6 +3,7 @@ import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import * as os from 'os';
|
|
5
5
|
import * as path from 'path';
|
|
6
|
+
import { createHash } from 'crypto';
|
|
6
7
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
8
|
|
|
8
9
|
import { CreateEmailTemplateDto } from 'src/dtos/create-email-template.dto';
|
|
@@ -66,6 +67,7 @@ import { FieldMetadata } from 'src/entities/field-metadata.entity';
|
|
|
66
67
|
import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
67
68
|
import { PermissionMetadata } from 'src/entities/permission-metadata.entity';
|
|
68
69
|
import { ViewMetadata } from 'src/entities/view-metadata.entity';
|
|
70
|
+
import { WorkflowDefinition } from 'src/entities/workflow-definition.entity';
|
|
69
71
|
import { EventDetails, EventType, ModuleMetadataSeederEventPayload } from 'src/interfaces';
|
|
70
72
|
|
|
71
73
|
/**
|
|
@@ -236,10 +238,15 @@ export class ModuleMetadataSeederService {
|
|
|
236
238
|
const moduleModelFieldCounts = await this.timeOperation('seed-module-model-fields', () => this.seedModuleModelFields(moduleMetadata), { moduleName: moduleMetadata.name, component: 'module-model-fields' });
|
|
237
239
|
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
|
|
238
240
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
241
|
+
currentStep = 'seedWorkflowDefinitions';
|
|
242
|
+
this.logger.log(`Seeding Workflow Definitions`);
|
|
243
|
+
const workflowDefinitionCounts = await this.timeOperation('seed-workflow-definitions', () => this.seedWorkflowDefinitions(moduleMetadata, overallMetadata), { moduleName: moduleMetadata.name, component: 'workflow-definitions' });
|
|
244
|
+
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Workflow Definitions', workflowDefinitionCounts)}`);
|
|
245
|
+
|
|
246
|
+
currentStep = 'seedLocales';
|
|
247
|
+
this.logger.log(`Seeding Locales`);
|
|
248
|
+
const localeCounts = await this.seedLocales(overallMetadata);
|
|
249
|
+
console.log(`${this.formatSeedResult(moduleMetadata.name, 'Locales', localeCounts)}`);
|
|
243
250
|
|
|
244
251
|
currentStep = 'seedPermissions';
|
|
245
252
|
this.logger.log(`Seeding Permissions`);
|
|
@@ -550,6 +557,28 @@ export class ModuleMetadataSeederService {
|
|
|
550
557
|
return { pruned, upserted: savedFilters.length };
|
|
551
558
|
}
|
|
552
559
|
|
|
560
|
+
private async seedWorkflowDefinitions(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any): Promise<{ pruned: number; upserted: number }> {
|
|
561
|
+
const workflowDefinitions = this.getSeedArray<any>(overallMetadata?.workflowDefinitions)
|
|
562
|
+
.map((definition) => ({
|
|
563
|
+
...definition,
|
|
564
|
+
moduleUserKey: definition.moduleUserKey ?? moduleMetadata.name,
|
|
565
|
+
definitionYaml: this.resolveSeedFileBackedWorkflowDefinitionYaml(definition.definitionYaml, overallMetadata?.__seedFilePath),
|
|
566
|
+
}));
|
|
567
|
+
const pruned = this.enablePruning ? await this.timeOperation('prune-workflow-definitions', () => this.pruneWorkflowDefinitions(workflowDefinitions, moduleMetadata.name), {
|
|
568
|
+
moduleName: moduleMetadata.name,
|
|
569
|
+
component: 'workflow-definitions',
|
|
570
|
+
serviceCall: 'pruneWorkflowDefinitions',
|
|
571
|
+
}) : 0;
|
|
572
|
+
if (workflowDefinitions.length > 0) {
|
|
573
|
+
await this.timeOperation('handle-workflow-definitions', () => this.handleSeedWorkflowDefinitions(workflowDefinitions), {
|
|
574
|
+
moduleName: moduleMetadata.name,
|
|
575
|
+
component: 'workflow-definitions',
|
|
576
|
+
serviceCall: 'handleSeedWorkflowDefinitions',
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
return { pruned, upserted: workflowDefinitions.length };
|
|
580
|
+
}
|
|
581
|
+
|
|
553
582
|
private async seedListOfValues(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any): Promise<{ pruned: number; upserted: number }> {
|
|
554
583
|
const listOfValues = this.getSeedArray<CreateListOfValuesDto>(overallMetadata?.listOfValues);
|
|
555
584
|
const pruned = this.enablePruning ? await this.timeOperation('prune-list-of-values', () => this.pruneListOfValues(listOfValues, moduleMetadata.name), {
|
|
@@ -785,6 +814,7 @@ export class ModuleMetadataSeederService {
|
|
|
785
814
|
|
|
786
815
|
if (fs.existsSync(fullPath)) {
|
|
787
816
|
const overallMetadata = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
|
|
817
|
+
overallMetadata.__seedFilePath = fullPath;
|
|
788
818
|
seedDataFiles.push(overallMetadata);
|
|
789
819
|
}
|
|
790
820
|
}
|
|
@@ -792,6 +822,28 @@ export class ModuleMetadataSeederService {
|
|
|
792
822
|
return seedDataFiles;
|
|
793
823
|
}
|
|
794
824
|
|
|
825
|
+
private resolveSeedFileBackedWorkflowDefinitionYaml(definitionYaml: string, seedFilePath?: string): string {
|
|
826
|
+
if (typeof definitionYaml !== 'string' || !definitionYaml.startsWith('file:')) {
|
|
827
|
+
return definitionYaml;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
if (!seedFilePath) {
|
|
831
|
+
throw new Error(`Cannot resolve workflow definition YAML file reference "${definitionYaml}" because the seed file path is unavailable.`);
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
const relativePath = definitionYaml.slice('file:'.length).trim();
|
|
835
|
+
if (!relativePath) {
|
|
836
|
+
throw new Error(`Cannot resolve workflow definition YAML file reference "${definitionYaml}" because no relative path was provided.`);
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
const resolvedPath = path.resolve(path.dirname(seedFilePath), relativePath);
|
|
840
|
+
if (!fs.existsSync(resolvedPath)) {
|
|
841
|
+
throw new Error(`Workflow definition YAML file "${resolvedPath}" referenced from "${seedFilePath}" does not exist.`);
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
return fs.readFileSync(resolvedPath, 'utf-8');
|
|
845
|
+
}
|
|
846
|
+
|
|
795
847
|
// OK
|
|
796
848
|
private async seedGlobalMetadata() {
|
|
797
849
|
this.logger.log(`Seeding Permissions`);
|
|
@@ -2147,6 +2199,52 @@ export class ModuleMetadataSeederService {
|
|
|
2147
2199
|
}
|
|
2148
2200
|
}
|
|
2149
2201
|
|
|
2202
|
+
private async handleSeedWorkflowDefinitions(workflowDefinitions: any[]) {
|
|
2203
|
+
if (!workflowDefinitions || workflowDefinitions.length === 0) {
|
|
2204
|
+
this.logger.debug(`No workflow definitions found to seed`);
|
|
2205
|
+
return;
|
|
2206
|
+
}
|
|
2207
|
+
|
|
2208
|
+
const repo = this.dataSource.getRepository(WorkflowDefinition);
|
|
2209
|
+
for (const definition of workflowDefinitions) {
|
|
2210
|
+
const moduleMetadata = await this.getModuleByUserKeyCached(definition.moduleUserKey, {
|
|
2211
|
+
moduleName: definition.moduleUserKey,
|
|
2212
|
+
component: 'workflow-definitions',
|
|
2213
|
+
details: `module=${definition.moduleUserKey}`,
|
|
2214
|
+
});
|
|
2215
|
+
|
|
2216
|
+
if (!moduleMetadata) {
|
|
2217
|
+
throw new Error(`Cannot seed workflow definition "${definition.key}": module metadata "${definition.moduleUserKey}" was not found.`);
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
const existing = await repo.findOne({
|
|
2221
|
+
where: {
|
|
2222
|
+
key: definition.key,
|
|
2223
|
+
} as any,
|
|
2224
|
+
});
|
|
2225
|
+
const payload = repo.create({
|
|
2226
|
+
...existing,
|
|
2227
|
+
key: definition.key,
|
|
2228
|
+
moduleMetadata,
|
|
2229
|
+
displayName: definition.displayName,
|
|
2230
|
+
namespace: definition.namespace,
|
|
2231
|
+
description: definition.description,
|
|
2232
|
+
status: definition.status ?? 'active',
|
|
2233
|
+
definitionVersion: definition.definitionVersion,
|
|
2234
|
+
definitionChecksum: this.workflowDefinitionChecksum(definition.definitionYaml),
|
|
2235
|
+
definitionYaml: definition.definitionYaml,
|
|
2236
|
+
tags: definition.tags,
|
|
2237
|
+
});
|
|
2238
|
+
|
|
2239
|
+
await this.timeOperation('workflow-definition-save', () => repo.save(payload), {
|
|
2240
|
+
moduleName: definition.moduleUserKey,
|
|
2241
|
+
component: 'workflow-definitions',
|
|
2242
|
+
serviceCall: 'workflowDefinitionRepository.save',
|
|
2243
|
+
details: `workflow=${definition.key}`,
|
|
2244
|
+
});
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2150
2248
|
private async handleSeedLocales(localesDto: CreateLocaleDto[]) {
|
|
2151
2249
|
if (!localesDto || localesDto.length === 0) {
|
|
2152
2250
|
this.logger.debug(`No locales found to seed`);
|
|
@@ -2396,6 +2494,49 @@ export class ModuleMetadataSeederService {
|
|
|
2396
2494
|
return 0;
|
|
2397
2495
|
}
|
|
2398
2496
|
|
|
2497
|
+
private async pruneWorkflowDefinitions(workflowDefinitionsDto: any[] | undefined, moduleName?: string): Promise<number> {
|
|
2498
|
+
if (!moduleName) {
|
|
2499
|
+
this.logger.warn(`Skipping workflow definition prune: missing module name in metadata.`);
|
|
2500
|
+
return 0;
|
|
2501
|
+
}
|
|
2502
|
+
const workflowDefinitions = workflowDefinitionsDto ?? [];
|
|
2503
|
+
|
|
2504
|
+
const module = await this.getModuleByUserKeyCached(moduleName, {
|
|
2505
|
+
moduleName,
|
|
2506
|
+
component: 'workflow-definitions',
|
|
2507
|
+
details: `module=${moduleName}`,
|
|
2508
|
+
});
|
|
2509
|
+
if (!module) {
|
|
2510
|
+
this.logger.warn(`Skipping workflow definition prune: module not found for ${moduleName}.`);
|
|
2511
|
+
return 0;
|
|
2512
|
+
}
|
|
2513
|
+
|
|
2514
|
+
const workflowKeys = [...new Set(workflowDefinitions.map(dto => dto.key).filter(Boolean))];
|
|
2515
|
+
const repo = this.dataSource.getRepository(WorkflowDefinition);
|
|
2516
|
+
const idsToDeleteQuery = repo
|
|
2517
|
+
.createQueryBuilder('workflowDefinition')
|
|
2518
|
+
.select('workflowDefinition.id', 'id')
|
|
2519
|
+
.innerJoin('workflowDefinition.moduleMetadata', 'moduleMetadata')
|
|
2520
|
+
.where('moduleMetadata.id = :moduleId', { moduleId: module.id });
|
|
2521
|
+
|
|
2522
|
+
if (workflowKeys.length > 0) {
|
|
2523
|
+
idsToDeleteQuery.andWhere('workflowDefinition.key NOT IN (:...workflowKeys)', { workflowKeys });
|
|
2524
|
+
}
|
|
2525
|
+
|
|
2526
|
+
const rows = await idsToDeleteQuery.getRawMany();
|
|
2527
|
+
const ids = rows.map((row) => row.id);
|
|
2528
|
+
if (ids.length > 0) {
|
|
2529
|
+
const result = await repo
|
|
2530
|
+
.createQueryBuilder()
|
|
2531
|
+
.delete()
|
|
2532
|
+
.from(WorkflowDefinition)
|
|
2533
|
+
.whereInIds(ids)
|
|
2534
|
+
.execute();
|
|
2535
|
+
return result.affected ?? 0;
|
|
2536
|
+
}
|
|
2537
|
+
return 0;
|
|
2538
|
+
}
|
|
2539
|
+
|
|
2399
2540
|
private async pruneListOfValues(listOfValuesDto: CreateListOfValuesDto[] | undefined, moduleName?: string): Promise<number> {
|
|
2400
2541
|
if (!moduleName) {
|
|
2401
2542
|
this.logger.warn(`Skipping list of values prune: missing module name in metadata.`);
|
|
@@ -2824,4 +2965,25 @@ export class ModuleMetadataSeederService {
|
|
|
2824
2965
|
return `✔ [${moduleName}] ${label} seeded (upserted ${counts.upserted})`;
|
|
2825
2966
|
}
|
|
2826
2967
|
|
|
2968
|
+
private workflowDefinitionChecksum(value: any): string {
|
|
2969
|
+
return createHash('sha256')
|
|
2970
|
+
.update(typeof value === 'string' ? value : this.stableStringify(value))
|
|
2971
|
+
.digest('hex');
|
|
2972
|
+
}
|
|
2973
|
+
|
|
2974
|
+
private stableStringify(value: any): string {
|
|
2975
|
+
if (Array.isArray(value)) {
|
|
2976
|
+
return `[${value.map((entry) => this.stableStringify(entry)).join(',')}]`;
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2979
|
+
if (value && typeof value === 'object') {
|
|
2980
|
+
return `{${Object.keys(value)
|
|
2981
|
+
.sort()
|
|
2982
|
+
.map((key) => `${JSON.stringify(key)}:${this.stableStringify(value[key])}`)
|
|
2983
|
+
.join(',')}}`;
|
|
2984
|
+
}
|
|
2985
|
+
|
|
2986
|
+
return JSON.stringify(value);
|
|
2987
|
+
}
|
|
2988
|
+
|
|
2827
2989
|
}
|