rez_core 5.0.181 → 6.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/.claude/settings.local.json +26 -0
- package/.idea/250218_nodejs_core.iml +8 -11
- package/.idea/codeStyles/Project.xml +58 -58
- package/.idea/codeStyles/codeStyleConfig.xml +4 -4
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +1 -1
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +7 -7
- package/.idea/prettier.xml +5 -5
- package/.idea/vcs.xml +5 -5
- package/.prettierrc +3 -3
- package/README.md +99 -99
- package/dist/module/auth/guards/role.guard.js +3 -3
- package/dist/module/enterprise/controller/enterprise.controller.d.ts +12 -0
- package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
- package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
- package/dist/module/enterprise/controller/organization.controller.d.ts +11 -1
- package/dist/module/enterprise/controller/organization.controller.js +62 -2
- package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
- package/dist/module/enterprise/enterprise.module.js +2 -1
- package/dist/module/enterprise/enterprise.module.js.map +1 -1
- package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
- package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
- package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization.entity.d.ts +1 -17
- package/dist/module/enterprise/entity/organization.entity.js +4 -72
- package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
- package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -2
- package/dist/module/enterprise/repository/enterprise.repository.js +9 -4
- package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
- package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
- package/dist/module/enterprise/service/enterprise.service.js +4 -4
- package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
- package/dist/module/enterprise/service/organization.service.d.ts +2 -2
- package/dist/module/enterprise/service/organization.service.js +97 -20
- package/dist/module/enterprise/service/organization.service.js.map +1 -1
- package/dist/module/filter/entity/saved-filter-master.entity.d.ts +1 -0
- package/dist/module/filter/entity/saved-filter-master.entity.js +4 -0
- package/dist/module/filter/entity/saved-filter-master.entity.js.map +1 -1
- package/dist/module/filter/repository/saved-filter.repository.js +2 -0
- package/dist/module/filter/repository/saved-filter.repository.js.map +1 -1
- package/dist/module/filter/service/filter.service.js +19 -19
- package/dist/module/integration/examples/usage.example.js +9 -9
- package/dist/module/meta/repository/attribute-master.repository.js +8 -8
- package/dist/module/meta/service/entity-dynamic.service.js +16 -16
- package/dist/module/meta/service/media-data.service.js +6 -6
- package/dist/module/meta/service/resolver.service.js +11 -11
- package/dist/module/module/repository/menu.repository.js +4 -4
- package/dist/module/notification/service/notification.service.js +6 -6
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/workflow/repository/action.repository.js +2 -2
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +2 -2
- package/dist/module/workflow/service/action.service.js +5 -5
- package/dist/module/workflow/service/entity-modification.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +8 -8
- package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
- package/dist/table.config.d.ts +1 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/service/reflection-helper.service.js +2 -2
- package/docs/modules/event-driven-integration-design.md +91 -91
- package/docs/modules/integration.md +250 -250
- package/eslint.config.mjs +34 -34
- package/nest-cli.json +14 -14
- package/package.json +125 -125
- package/server.log +850 -0
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +68 -68
- package/src/app.service.ts +8 -8
- package/src/config/bull.config.ts +69 -69
- package/src/config/config.module.ts +17 -17
- package/src/config/database.config.ts +48 -48
- package/src/constant/global.constant.ts +67 -67
- package/src/core.module.ts +94 -94
- package/src/decorators/roles.decorator.ts +7 -7
- package/src/dtos/response.dto.ts +6 -6
- package/src/dtos/response.ts +5 -5
- package/src/index.ts +1 -1
- package/src/module/auth/auth.module.ts +49 -49
- package/src/module/auth/controller/auth.controller.ts +28 -28
- package/src/module/auth/guards/google-auth.guard.ts +9 -9
- package/src/module/auth/guards/jwt.guard.ts +22 -22
- package/src/module/auth/guards/role.guard.ts +68 -68
- package/src/module/auth/services/auth.service.ts +56 -56
- package/src/module/auth/services/jwt.service.ts +11 -11
- package/src/module/auth/strategies/google.strategy.ts +54 -54
- package/src/module/auth/strategies/jwt.strategy.ts +58 -58
- package/src/module/auth/strategies/local.strategy.ts +13 -13
- package/src/module/dashboard/controller/dashboard.controller.ts +38 -38
- package/src/module/dashboard/dashboard.module.ts +21 -21
- package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
- package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
- package/src/module/dashboard/repository/dashboard.repository.ts +49 -49
- package/src/module/dashboard/service/dashboard.service.ts +72 -72
- package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
- package/src/module/enterprise/controller/organization.controller.ts +93 -36
- package/src/module/enterprise/enterprise.module.ts +46 -45
- package/src/module/enterprise/entity/enterprise.entity.ts +31 -37
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
- package/src/module/enterprise/entity/organization.entity.ts +40 -92
- package/src/module/enterprise/repository/enterprise.repository.ts +39 -31
- package/src/module/enterprise/repository/organization.repository.ts +26 -26
- package/src/module/enterprise/repository/school.repository.ts +272 -272
- package/src/module/enterprise/service/brand.service.ts +5 -5
- package/src/module/enterprise/service/enterprise.service.ts +22 -16
- package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
- package/src/module/enterprise/service/organization.service.ts +262 -145
- package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
- package/src/module/entity_json/entity/entityJson.entity.ts +39 -39
- package/src/module/entity_json/entity_json.module.ts +18 -18
- package/src/module/entity_json/service/entityJson.repository.ts +37 -37
- package/src/module/entity_json/service/entity_json.service.ts +241 -241
- package/src/module/export/controller/export.controller.ts +83 -83
- package/src/module/export/export.module.ts +14 -14
- package/src/module/export/service/export.service.ts +105 -105
- package/src/module/filter/controller/filter.controller.ts +87 -87
- package/src/module/filter/dto/filter-request.dto.ts +39 -39
- package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
- package/src/module/filter/entity/saved-filter-master.entity.ts +35 -32
- package/src/module/filter/filter.module.ts +33 -33
- package/src/module/filter/repository/saved-filter.repository.ts +247 -258
- package/src/module/filter/repository/saved.filter-detail.repository.ts +19 -19
- package/src/module/filter/service/filter-evaluator.service.ts +82 -82
- package/src/module/filter/service/filter.service.ts +1316 -1316
- package/src/module/filter/service/saved-filter.service.ts +164 -164
- package/src/module/ics/controller/ics.controller.ts +21 -21
- package/src/module/ics/dto/ics.dto.ts +55 -55
- package/src/module/ics/ics.module.ts +13 -13
- package/src/module/ics/service/ics.service.ts +57 -57
- package/src/module/integration/controller/calender-event.controller.ts +31 -31
- package/src/module/integration/controller/integration.controller.ts +662 -662
- package/src/module/integration/controller/wrapper.controller.ts +37 -37
- package/src/module/integration/dto/create-config.dto.ts +526 -526
- package/src/module/integration/entity/integration-config.entity.ts +112 -112
- package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
- package/src/module/integration/entity/integration-source.entity.ts +17 -17
- package/src/module/integration/entity/user-integration.entity.ts +71 -71
- package/src/module/integration/examples/usage.example.ts +338 -338
- package/src/module/integration/factories/base.factory.ts +7 -7
- package/src/module/integration/factories/email.factory.ts +49 -49
- package/src/module/integration/factories/integration.factory.ts +121 -121
- package/src/module/integration/factories/sms.factory.ts +51 -51
- package/src/module/integration/factories/telephone.factory.ts +41 -41
- package/src/module/integration/factories/whatsapp.factory.ts +56 -56
- package/src/module/integration/integration.module.ts +110 -110
- package/src/module/integration/service/calendar-event.service.ts +118 -118
- package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
- package/src/module/integration/service/integration-queue.service.ts +229 -229
- package/src/module/integration/service/integration.service.ts +2634 -2634
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +753 -753
- package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
- package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
- package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
- package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
- package/src/module/integration/strategies/integration.strategy.ts +97 -97
- package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
- package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
- package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
- package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
- package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
- package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
- package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
- package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
- package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
- package/src/module/layout/controller/layout.controller.ts +47 -47
- package/src/module/layout/entity/header-items.entity.ts +28 -28
- package/src/module/layout/entity/header-section.entity.ts +19 -19
- package/src/module/layout/layout.module.ts +21 -21
- package/src/module/layout/repository/header-items.repository.ts +18 -18
- package/src/module/layout/repository/header-section.repository.ts +22 -22
- package/src/module/layout/service/header-section.service.ts +25 -25
- package/src/module/layout_preference/controller/layout_preference.controller.ts +76 -76
- package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
- package/src/module/layout_preference/layout_preference.module.ts +22 -22
- package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
- package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
- package/src/module/lead/controller/lead.controller.ts +30 -30
- package/src/module/lead/lead.module.ts +14 -14
- package/src/module/lead/repository/lead.repository.ts +41 -41
- package/src/module/lead/service/lead.service.ts +54 -54
- package/src/module/linked_attributes/controller/linked_attributes.controller.ts +37 -37
- package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
- package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
- package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
- package/src/module/linked_attributes/service/linked_attributes.service.ts +73 -73
- package/src/module/listmaster/controller/list-master.controller.ts +230 -230
- package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
- package/src/module/listmaster/entity/list-master.entity.ts +33 -33
- package/src/module/listmaster/listmaster.module.ts +46 -46
- package/src/module/listmaster/repository/list-master-items.repository.ts +173 -173
- package/src/module/listmaster/repository/list-master.repository.ts +56 -56
- package/src/module/listmaster/service/list-master-engine.ts +19 -19
- package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
- package/src/module/listmaster/service/list-master-item.service.ts +280 -280
- package/src/module/listmaster/service/list-master-registry.ts +15 -15
- package/src/module/listmaster/service/list-master.service.ts +527 -527
- package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
- package/src/module/mapper/controller/mapper.controller.ts +20 -20
- package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
- package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
- package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
- package/src/module/mapper/entity/mapper.entity.ts +16 -16
- package/src/module/mapper/mapper.module.ts +35 -35
- package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
- package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
- package/src/module/mapper/repository/mapper.repository.ts +32 -32
- package/src/module/mapper/service/field-mapper.service.ts +269 -269
- package/src/module/mapper/service/mapper.service.ts +80 -80
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +484 -484
- package/src/module/meta/controller/app-master.controller.ts +38 -38
- package/src/module/meta/controller/attribute-master.controller.ts +84 -84
- package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
- package/src/module/meta/controller/entity-master.controller.ts +41 -41
- package/src/module/meta/controller/entity-relation.controller.ts +36 -36
- package/src/module/meta/controller/entity.controller.ts +308 -308
- package/src/module/meta/controller/entity.public.controller.ts +75 -75
- package/src/module/meta/controller/media.controller.ts +135 -135
- package/src/module/meta/controller/meta.controller.ts +101 -101
- package/src/module/meta/controller/view-master.controller.ts +79 -79
- package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
- package/src/module/meta/dto/entity-tab.dto.ts +4 -4
- package/src/module/meta/dto/entity-table.dto.ts +12 -12
- package/src/module/meta/entity/app-master.entity.ts +37 -37
- package/src/module/meta/entity/attribute-master.entity.ts +92 -92
- package/src/module/meta/entity/base-entity.entity.ts +75 -75
- package/src/module/meta/entity/entity-master.entity.ts +85 -85
- package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
- package/src/module/meta/entity/entity-relation.entity.ts +23 -23
- package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
- package/src/module/meta/entity/entity-table.entity.ts +50 -50
- package/src/module/meta/entity/media-data.entity.ts +32 -32
- package/src/module/meta/entity/preference.entity.ts +62 -62
- package/src/module/meta/entity/view-master.entity.ts +41 -41
- package/src/module/meta/entity.module.ts +165 -165
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +164 -164
- package/src/module/meta/repository/entity-attribute-update.repository.ts +48 -48
- package/src/module/meta/repository/entity-master.repository.ts +120 -120
- package/src/module/meta/repository/entity-relation.repository.ts +22 -22
- package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
- package/src/module/meta/repository/entity-table.repository.ts +53 -53
- package/src/module/meta/repository/media-data.repository.ts +50 -50
- package/src/module/meta/repository/preference.repository.ts +20 -20
- package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
- package/src/module/meta/repository/view-master.repository.ts +42 -42
- package/src/module/meta/service/app-master.service.ts +37 -37
- package/src/module/meta/service/attribute-master.service.ts +132 -132
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-attribute-update.service.ts +26 -26
- package/src/module/meta/service/entity-dynamic.service.ts +824 -824
- package/src/module/meta/service/entity-master.service.ts +171 -171
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +74 -74
- package/src/module/meta/service/entity-service-impl.service.ts +388 -388
- package/src/module/meta/service/entity-table-column.service.ts +26 -26
- package/src/module/meta/service/entity-table.service.ts +157 -157
- package/src/module/meta/service/entity-validation.service.ts +188 -188
- package/src/module/meta/service/entity.service.ts +49 -49
- package/src/module/meta/service/field-group.service.ts +103 -103
- package/src/module/meta/service/media-data.service.ts +591 -591
- package/src/module/meta/service/populate-meta.service.ts +222 -222
- package/src/module/meta/service/preference.service.ts +16 -16
- package/src/module/meta/service/resolver.service.ts +280 -280
- package/src/module/meta/service/section-master.service.ts +104 -104
- package/src/module/meta/service/update-form-json.service.ts +22 -22
- package/src/module/meta/service/user-app-mapping.service.ts +17 -17
- package/src/module/meta/service/view-master.service.ts +127 -127
- package/src/module/microservice-client/microservice-clients.module.ts +13 -13
- package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
- package/src/module/microservice-client/service/microservice-clients.ts +4 -4
- package/src/module/module/controller/menu.controller.ts +15 -15
- package/src/module/module/controller/module-access.controller.ts +133 -133
- package/src/module/module/entity/menu.entity.ts +43 -43
- package/src/module/module/entity/module-access.entity.ts +25 -25
- package/src/module/module/entity/module-action.entity.ts +17 -17
- package/src/module/module/entity/module.entity.ts +52 -52
- package/src/module/module/module.module.ts +42 -42
- package/src/module/module/repository/menu.repository.ts +186 -186
- package/src/module/module/repository/module-access.repository.ts +344 -344
- package/src/module/module/service/menu.service.ts +82 -82
- package/src/module/module/service/module-access.service.ts +189 -189
- package/src/module/notification/controller/notification.controller.ts +58 -58
- package/src/module/notification/controller/otp.controller.ts +117 -117
- package/src/module/notification/entity/notification.entity.ts +26 -26
- package/src/module/notification/entity/otp.entity.ts +28 -28
- package/src/module/notification/firebase-admin.config.ts +22 -22
- package/src/module/notification/notification.module.ts +69 -69
- package/src/module/notification/repository/otp.repository.ts +27 -27
- package/src/module/notification/service/email.service.ts +127 -127
- package/src/module/notification/service/notification.service.ts +164 -164
- package/src/module/notification/service/otp.service.ts +133 -133
- package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
- package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
- package/src/module/third-party-module/service/api-registry.service.ts +13 -13
- package/src/module/third-party-module/third-party.module.ts +12 -12
- package/src/module/user/controller/login.controller.ts +198 -198
- package/src/module/user/controller/user.controller.ts +40 -40
- package/src/module/user/dto/create-user.dto.ts +62 -62
- package/src/module/user/dto/update-user.dto.ts +4 -4
- package/src/module/user/entity/role.entity.ts +33 -33
- package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
- package/src/module/user/entity/user-session.entity.ts +73 -73
- package/src/module/user/entity/user.entity.ts +62 -62
- package/src/module/user/repository/role.repository.ts +96 -96
- package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
- package/src/module/user/repository/user.repository.ts +50 -50
- package/src/module/user/repository/userSession.repository.ts +33 -33
- package/src/module/user/service/login.service.ts +326 -326
- package/src/module/user/service/role.service.ts +197 -197
- package/src/module/user/service/user-role-mapping.service.ts +98 -98
- package/src/module/user/service/user-session.service.ts +200 -200
- package/src/module/user/service/user.service.ts +368 -368
- package/src/module/user/user.module.ts +65 -65
- package/src/module/workflow/controller/action-category.controller.ts +54 -54
- package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
- package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
- package/src/module/workflow/controller/action.controller.ts +111 -111
- package/src/module/workflow/controller/activity-log.controller.ts +55 -55
- package/src/module/workflow/controller/comm-template.controller.ts +43 -43
- package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
- package/src/module/workflow/controller/form-master.controller.ts +43 -43
- package/src/module/workflow/controller/stage-group.controller.ts +49 -49
- package/src/module/workflow/controller/stage.controller.ts +51 -51
- package/src/module/workflow/controller/task.controller.ts +77 -77
- package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
- package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
- package/src/module/workflow/controller/workflow.controller.ts +67 -67
- package/src/module/workflow/entity/action-category.entity.ts +38 -38
- package/src/module/workflow/entity/action-data.entity.ts +55 -55
- package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
- package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/action.entity.ts +53 -53
- package/src/module/workflow/entity/activity-log.entity.ts +43 -43
- package/src/module/workflow/entity/comm-template.entity.ts +43 -43
- package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
- package/src/module/workflow/entity/form.entity.ts +25 -25
- package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/stage-group.entity.ts +23 -23
- package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
- package/src/module/workflow/entity/stage.entity.ts +20 -20
- package/src/module/workflow/entity/task-data.entity.ts +88 -88
- package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
- package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
- package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
- package/src/module/workflow/entity/workflow.entity.ts +20 -20
- package/src/module/workflow/repository/action-category.repository.ts +79 -79
- package/src/module/workflow/repository/action-data.repository.ts +347 -347
- package/src/module/workflow/repository/action.repository.ts +339 -339
- package/src/module/workflow/repository/activity-log.repository.ts +148 -148
- package/src/module/workflow/repository/comm-template.repository.ts +157 -157
- package/src/module/workflow/repository/form-master.repository.ts +50 -50
- package/src/module/workflow/repository/stage-group.repository.ts +186 -186
- package/src/module/workflow/repository/stage-movement.repository.ts +217 -217
- package/src/module/workflow/repository/stage.repository.ts +160 -160
- package/src/module/workflow/repository/task.repository.ts +154 -154
- package/src/module/workflow/repository/workflow.repository.ts +42 -42
- package/src/module/workflow/service/action-category.service.ts +33 -33
- package/src/module/workflow/service/action-data.service.ts +62 -62
- package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
- package/src/module/workflow/service/action-template-mapping.service.ts +137 -137
- package/src/module/workflow/service/action.service.ts +302 -302
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +181 -181
- package/src/module/workflow/service/entity-modification.service.ts +61 -61
- package/src/module/workflow/service/form-master.service.ts +35 -35
- package/src/module/workflow/service/populate-workflow.service.ts +320 -320
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +325 -325
- package/src/module/workflow/service/stage.service.ts +197 -197
- package/src/module/workflow/service/task.service.ts +551 -551
- package/src/module/workflow/service/workflow-list-master.service.ts +68 -68
- package/src/module/workflow/service/workflow-meta.service.ts +640 -640
- package/src/module/workflow/service/workflow.service.ts +213 -213
- package/src/module/workflow/workflow.module.ts +180 -180
- package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
- package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
- package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
- package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
- package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
- package/src/module/workflow-automation/interface/action.interface.ts +5 -5
- package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
- package/src/module/workflow-automation/service/schedule-handler.service.ts +168 -168
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +219 -219
- package/src/module/workflow-automation/service/workflow-automation.service.ts +476 -476
- package/src/module/workflow-automation/workflow-automation.module.ts +54 -54
- package/src/module/workflow-schedule/INSTALLATION.md +244 -244
- package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
- package/src/module/workflow-schedule/README.md +422 -422
- package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
- package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +253 -253
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
- package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
- package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
- package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
- package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
- package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
- package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
- package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
- package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
- package/src/module/workflow-schedule/processors/schedule.processor.ts +620 -620
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +597 -597
- package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
- package/src/resources/dev.properties.yaml +31 -31
- package/src/resources/local.properties.yaml +27 -27
- package/src/resources/properties.module.ts +12 -12
- package/src/resources/properties.yaml.ts +11 -11
- package/src/resources/uat.properties.yaml +31 -31
- package/src/table.config.ts +133 -133
- package/src/utils/dto/excel-data.dto.ts +14 -14
- package/src/utils/dto/excelsheet-data.dto.ts +5 -5
- package/src/utils/service/base64util.service.ts +18 -18
- package/src/utils/service/clockIDGenUtil.service.ts +21 -21
- package/src/utils/service/codeGenerator.service.ts +22 -22
- package/src/utils/service/dateUtil.service.ts +17 -17
- package/src/utils/service/encryptUtil.service.ts +97 -97
- package/src/utils/service/excel-helper.service.ts +72 -72
- package/src/utils/service/excelUtil.service.ts +15 -15
- package/src/utils/service/file-util.service.ts +11 -11
- package/src/utils/service/json-util.service.ts +23 -23
- package/src/utils/service/loggingUtil.service.ts +88 -88
- package/src/utils/service/reflection-helper.service.ts +62 -62
- package/src/utils/service/wbsCodeGen.service.ts +8 -8
- package/src/utils/utils.module.ts +27 -27
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +24 -24
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { forwardRef, Module } from '@nestjs/common';
|
|
2
|
-
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
3
|
-
import { DiscoveryModule } from '@nestjs/core';
|
|
4
|
-
import { WorkflowAutomation } from './entity/workflow-automation.entity';
|
|
5
|
-
import { WorkflowAutomationController } from './controller/workflow-automation.controller';
|
|
6
|
-
import { WorkflowAutomationEngineService } from './service/workflow-automation-engine.service';
|
|
7
|
-
import { FilterModule } from '../filter/filter.module';
|
|
8
|
-
import { WorkflowAutomationService } from './service/workflow-automation.service';
|
|
9
|
-
import { WorkflowAutomationActionEntity } from './entity/workflow-automation-action.entity';
|
|
10
|
-
import { EntityModule } from '../meta/entity.module';
|
|
11
|
-
import { ActionRegistryService } from './service/action-registery.service';
|
|
12
|
-
import { ScheduleHandlerService } from './service/schedule-handler.service';
|
|
13
|
-
import { ScheduledWorkflow } from '../workflow-schedule/entities/scheduled-workflow.entity';
|
|
14
|
-
import { WorkflowExecutionLog } from '../workflow-schedule/entities/workflow-execution-log.entity';
|
|
15
|
-
import {EntityMaster} from "../meta/entity/entity-master.entity";
|
|
16
|
-
import { ListMasterData } from '../listmaster/entity/list-master.entity';
|
|
17
|
-
import { ActionCategory } from '../workflow/entity/action-category.entity';
|
|
18
|
-
import { WorkflowScheduleModule } from '../workflow-schedule/workflow-schedule.module';
|
|
19
|
-
|
|
20
|
-
@Module({
|
|
21
|
-
imports: [
|
|
22
|
-
TypeOrmModule.forFeature([
|
|
23
|
-
WorkflowAutomation,
|
|
24
|
-
WorkflowAutomationActionEntity,
|
|
25
|
-
ScheduledWorkflow, // 👈 Required by WorkflowAutomationService
|
|
26
|
-
WorkflowExecutionLog, // 👈 May be used by services
|
|
27
|
-
EntityMaster,
|
|
28
|
-
ListMasterData,
|
|
29
|
-
ActionCategory
|
|
30
|
-
]),
|
|
31
|
-
FilterModule,
|
|
32
|
-
forwardRef(() => EntityModule),
|
|
33
|
-
DiscoveryModule, // 👈 enables provider scanning
|
|
34
|
-
],
|
|
35
|
-
providers: [
|
|
36
|
-
WorkflowAutomationEngineService,
|
|
37
|
-
{
|
|
38
|
-
provide: 'WorkflowAutomationService',
|
|
39
|
-
useClass: WorkflowAutomationService,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
provide: 'ScheduleHandlerService',
|
|
43
|
-
useClass: ScheduleHandlerService,
|
|
44
|
-
},
|
|
45
|
-
ActionRegistryService, // 👈 auto-registers actions
|
|
46
|
-
],
|
|
47
|
-
exports: [
|
|
48
|
-
WorkflowAutomationEngineService,
|
|
49
|
-
'WorkflowAutomationService',
|
|
50
|
-
'ScheduleHandlerService',
|
|
51
|
-
],
|
|
52
|
-
controllers: [WorkflowAutomationController],
|
|
53
|
-
})
|
|
54
|
-
export class WorkflowAutomationModule {}
|
|
1
|
+
import { forwardRef, Module } from '@nestjs/common';
|
|
2
|
+
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
3
|
+
import { DiscoveryModule } from '@nestjs/core';
|
|
4
|
+
import { WorkflowAutomation } from './entity/workflow-automation.entity';
|
|
5
|
+
import { WorkflowAutomationController } from './controller/workflow-automation.controller';
|
|
6
|
+
import { WorkflowAutomationEngineService } from './service/workflow-automation-engine.service';
|
|
7
|
+
import { FilterModule } from '../filter/filter.module';
|
|
8
|
+
import { WorkflowAutomationService } from './service/workflow-automation.service';
|
|
9
|
+
import { WorkflowAutomationActionEntity } from './entity/workflow-automation-action.entity';
|
|
10
|
+
import { EntityModule } from '../meta/entity.module';
|
|
11
|
+
import { ActionRegistryService } from './service/action-registery.service';
|
|
12
|
+
import { ScheduleHandlerService } from './service/schedule-handler.service';
|
|
13
|
+
import { ScheduledWorkflow } from '../workflow-schedule/entities/scheduled-workflow.entity';
|
|
14
|
+
import { WorkflowExecutionLog } from '../workflow-schedule/entities/workflow-execution-log.entity';
|
|
15
|
+
import {EntityMaster} from "../meta/entity/entity-master.entity";
|
|
16
|
+
import { ListMasterData } from '../listmaster/entity/list-master.entity';
|
|
17
|
+
import { ActionCategory } from '../workflow/entity/action-category.entity';
|
|
18
|
+
import { WorkflowScheduleModule } from '../workflow-schedule/workflow-schedule.module';
|
|
19
|
+
|
|
20
|
+
@Module({
|
|
21
|
+
imports: [
|
|
22
|
+
TypeOrmModule.forFeature([
|
|
23
|
+
WorkflowAutomation,
|
|
24
|
+
WorkflowAutomationActionEntity,
|
|
25
|
+
ScheduledWorkflow, // 👈 Required by WorkflowAutomationService
|
|
26
|
+
WorkflowExecutionLog, // 👈 May be used by services
|
|
27
|
+
EntityMaster,
|
|
28
|
+
ListMasterData,
|
|
29
|
+
ActionCategory
|
|
30
|
+
]),
|
|
31
|
+
FilterModule,
|
|
32
|
+
forwardRef(() => EntityModule),
|
|
33
|
+
DiscoveryModule, // 👈 enables provider scanning
|
|
34
|
+
],
|
|
35
|
+
providers: [
|
|
36
|
+
WorkflowAutomationEngineService,
|
|
37
|
+
{
|
|
38
|
+
provide: 'WorkflowAutomationService',
|
|
39
|
+
useClass: WorkflowAutomationService,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
provide: 'ScheduleHandlerService',
|
|
43
|
+
useClass: ScheduleHandlerService,
|
|
44
|
+
},
|
|
45
|
+
ActionRegistryService, // 👈 auto-registers actions
|
|
46
|
+
],
|
|
47
|
+
exports: [
|
|
48
|
+
WorkflowAutomationEngineService,
|
|
49
|
+
'WorkflowAutomationService',
|
|
50
|
+
'ScheduleHandlerService',
|
|
51
|
+
],
|
|
52
|
+
controllers: [WorkflowAutomationController],
|
|
53
|
+
})
|
|
54
|
+
export class WorkflowAutomationModule {}
|
|
@@ -1,244 +1,244 @@
|
|
|
1
|
-
# Workflow Schedule Module - Installation Guide
|
|
2
|
-
|
|
3
|
-
## Quick Start
|
|
4
|
-
|
|
5
|
-
### Step 1: Install Dependencies
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @nestjs/bull bull redis cron-parser
|
|
9
|
-
npm install --save-dev @types/bull
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
**Note:** `cron-parser` includes its own TypeScript definitions, so no `@types` package is needed.
|
|
13
|
-
|
|
14
|
-
### Step 2: Setup Redis
|
|
15
|
-
|
|
16
|
-
#### Option A: Using Docker (Recommended)
|
|
17
|
-
```bash
|
|
18
|
-
docker run -d \
|
|
19
|
-
--name redis-workflow \
|
|
20
|
-
-p 6379:6379 \
|
|
21
|
-
redis:latest
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
#### Option B: Local Installation
|
|
25
|
-
**macOS:**
|
|
26
|
-
```bash
|
|
27
|
-
brew install redis
|
|
28
|
-
brew services start redis
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Ubuntu/Debian:**
|
|
32
|
-
```bash
|
|
33
|
-
sudo apt-get install redis-server
|
|
34
|
-
sudo systemctl start redis-server
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Windows:**
|
|
38
|
-
Download from: https://redis.io/download
|
|
39
|
-
|
|
40
|
-
### Step 3: Configure Environment Variables
|
|
41
|
-
|
|
42
|
-
Add to your `.env` file:
|
|
43
|
-
|
|
44
|
-
```env
|
|
45
|
-
# Redis Configuration
|
|
46
|
-
REDIS_HOST=localhost
|
|
47
|
-
REDIS_PORT=6379
|
|
48
|
-
REDIS_PASSWORD=
|
|
49
|
-
REDIS_DB=0
|
|
50
|
-
|
|
51
|
-
# Existing Database Configuration (verify these)
|
|
52
|
-
DB_HOST=13.234.25.234
|
|
53
|
-
DB_PORT=3306
|
|
54
|
-
DB_USER=root
|
|
55
|
-
DB_PASS=Rezolut@123
|
|
56
|
-
DB_NAME=core
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Step 4: Verify Redis Connection
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# Test Redis connection
|
|
63
|
-
redis-cli ping
|
|
64
|
-
# Should respond: PONG
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Step 5: Run Database Migrations
|
|
68
|
-
|
|
69
|
-
The module requires three migrations to be run:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
# Using TypeORM CLI (recommended)
|
|
73
|
-
npx ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:run -d src/config/database.config.ts
|
|
74
|
-
|
|
75
|
-
# Or create a migration script in package.json:
|
|
76
|
-
# "migration:run": "typeorm migration:run -d src/config/database.config.ts"
|
|
77
|
-
# Then run:
|
|
78
|
-
npm run migration:run
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Migrations will create:**
|
|
82
|
-
1. ✅ `workflow_type` column in `cr_wf_master` table
|
|
83
|
-
2. ✅ `cr_wf_scheduled_workflow` table with indexes
|
|
84
|
-
3. ✅ `cr_wf_execution_log` table with indexes
|
|
85
|
-
|
|
86
|
-
### Step 6: Start Your Application
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
npm run start:dev
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Step 7: Verify Installation
|
|
93
|
-
|
|
94
|
-
Check the console logs for:
|
|
95
|
-
```
|
|
96
|
-
[Nest] INFO [BullModule] Bull queues registered
|
|
97
|
-
[Nest] INFO [WorkflowScheduleModule] Workflow Schedule Module initialized
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Quick Test
|
|
101
|
-
|
|
102
|
-
### Create Your First Schedule
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
curl -X POST http://localhost:3000/workflow-schedule/create \
|
|
106
|
-
-H "Content-Type: application/json" \
|
|
107
|
-
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
|
|
108
|
-
-d '{
|
|
109
|
-
"workflow_id": 1,
|
|
110
|
-
"name": "Test Schedule",
|
|
111
|
-
"cron_expression": "*/5 * * * *",
|
|
112
|
-
"timezone": "Asia/Kolkata",
|
|
113
|
-
"actions": []
|
|
114
|
-
}'
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### List All Schedules
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
curl -X GET http://localhost:3000/workflow-schedule/list \
|
|
121
|
-
-H "Authorization: Bearer YOUR_JWT_TOKEN"
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Troubleshooting
|
|
125
|
-
|
|
126
|
-
### Issue: Cannot connect to Redis
|
|
127
|
-
|
|
128
|
-
**Solution:**
|
|
129
|
-
```bash
|
|
130
|
-
# Check if Redis is running
|
|
131
|
-
redis-cli ping
|
|
132
|
-
|
|
133
|
-
# If not running, start Redis
|
|
134
|
-
docker start redis-workflow
|
|
135
|
-
# or
|
|
136
|
-
brew services start redis
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Issue: Migration fails with "Table already exists"
|
|
140
|
-
|
|
141
|
-
**Solution:**
|
|
142
|
-
Migrations check if tables exist before creating them. If you see this message, the tables are already present. You can safely ignore it.
|
|
143
|
-
|
|
144
|
-
### Issue: Jobs are not processing
|
|
145
|
-
|
|
146
|
-
**Checklist:**
|
|
147
|
-
- [ ] Redis is running and accessible
|
|
148
|
-
- [ ] Schedule status is `ACTIVE`
|
|
149
|
-
- [ ] Schedule `is_enabled` is `true`
|
|
150
|
-
- [ ] Cron expression is valid
|
|
151
|
-
- [ ] Application has restarted after creating the schedule
|
|
152
|
-
|
|
153
|
-
**Verify:**
|
|
154
|
-
```bash
|
|
155
|
-
# Check Redis keys
|
|
156
|
-
redis-cli KEYS "bull:workflow-schedule:*"
|
|
157
|
-
|
|
158
|
-
# Should show keys if jobs are queued
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Issue: TypeScript errors after installation
|
|
162
|
-
|
|
163
|
-
**Solution:**
|
|
164
|
-
```bash
|
|
165
|
-
# Clear node_modules and reinstall
|
|
166
|
-
rm -rf node_modules package-lock.json
|
|
167
|
-
npm install
|
|
168
|
-
|
|
169
|
-
# Restart your IDE/editor
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Verify Bull Queue Dashboard (Optional)
|
|
173
|
-
|
|
174
|
-
Install Bull Board for visual queue monitoring:
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
npm install @bull-board/express @bull-board/api
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Add to your `main.ts`:
|
|
181
|
-
```typescript
|
|
182
|
-
import { createBullBoard } from '@bull-board/api';
|
|
183
|
-
import { BullAdapter } from '@bull-board/api/bullAdapter';
|
|
184
|
-
import { ExpressAdapter } from '@bull-board/express';
|
|
185
|
-
|
|
186
|
-
// Get queue from your app
|
|
187
|
-
const schedulerQueue = app.get('BullQueue_workflow-schedule');
|
|
188
|
-
|
|
189
|
-
const serverAdapter = new ExpressAdapter();
|
|
190
|
-
createBullBoard({
|
|
191
|
-
queues: [new BullAdapter(schedulerQueue)],
|
|
192
|
-
serverAdapter,
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
serverAdapter.setBasePath('/admin/queues');
|
|
196
|
-
app.use('/admin/queues', serverAdapter.getRouter());
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Then access: `http://localhost:3000/admin/queues`
|
|
200
|
-
|
|
201
|
-
## Package Versions
|
|
202
|
-
|
|
203
|
-
Tested with:
|
|
204
|
-
```json
|
|
205
|
-
{
|
|
206
|
-
"@nestjs/bull": "^10.0.0",
|
|
207
|
-
"@nestjs/common": "^11.0.0",
|
|
208
|
-
"@nestjs/core": "^11.0.0",
|
|
209
|
-
"bull": "^4.12.0",
|
|
210
|
-
"redis": "^4.6.0",
|
|
211
|
-
"cron-parser": "^4.9.0"
|
|
212
|
-
}
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## Production Checklist
|
|
216
|
-
|
|
217
|
-
Before deploying to production:
|
|
218
|
-
|
|
219
|
-
- [ ] Configure Redis with persistence
|
|
220
|
-
- [ ] Set up Redis password authentication
|
|
221
|
-
- [ ] Configure appropriate retry strategies
|
|
222
|
-
- [ ] Set up monitoring and alerting
|
|
223
|
-
- [ ] Configure log retention policies
|
|
224
|
-
- [ ] Test failover scenarios
|
|
225
|
-
- [ ] Set up backup for scheduled workflow configurations
|
|
226
|
-
- [ ] Document schedule ownership and purpose
|
|
227
|
-
- [ ] Configure rate limiting if needed
|
|
228
|
-
- [ ] Set up Redis clustering for high availability
|
|
229
|
-
|
|
230
|
-
## Next Steps
|
|
231
|
-
|
|
232
|
-
1. Read the full [README.md](./README.md) for API documentation
|
|
233
|
-
2. Test the 9 API endpoints
|
|
234
|
-
3. Create your first scheduled workflow
|
|
235
|
-
4. Monitor execution logs
|
|
236
|
-
5. Set up Bull Board for visual monitoring
|
|
237
|
-
|
|
238
|
-
## Support
|
|
239
|
-
|
|
240
|
-
If you encounter issues:
|
|
241
|
-
1. Check application logs
|
|
242
|
-
2. Verify Redis connectivity
|
|
243
|
-
3. Ensure migrations ran successfully
|
|
244
|
-
4. Review the [README.md](./README.md) troubleshooting section
|
|
1
|
+
# Workflow Schedule Module - Installation Guide
|
|
2
|
+
|
|
3
|
+
## Quick Start
|
|
4
|
+
|
|
5
|
+
### Step 1: Install Dependencies
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @nestjs/bull bull redis cron-parser
|
|
9
|
+
npm install --save-dev @types/bull
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
**Note:** `cron-parser` includes its own TypeScript definitions, so no `@types` package is needed.
|
|
13
|
+
|
|
14
|
+
### Step 2: Setup Redis
|
|
15
|
+
|
|
16
|
+
#### Option A: Using Docker (Recommended)
|
|
17
|
+
```bash
|
|
18
|
+
docker run -d \
|
|
19
|
+
--name redis-workflow \
|
|
20
|
+
-p 6379:6379 \
|
|
21
|
+
redis:latest
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
#### Option B: Local Installation
|
|
25
|
+
**macOS:**
|
|
26
|
+
```bash
|
|
27
|
+
brew install redis
|
|
28
|
+
brew services start redis
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Ubuntu/Debian:**
|
|
32
|
+
```bash
|
|
33
|
+
sudo apt-get install redis-server
|
|
34
|
+
sudo systemctl start redis-server
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Windows:**
|
|
38
|
+
Download from: https://redis.io/download
|
|
39
|
+
|
|
40
|
+
### Step 3: Configure Environment Variables
|
|
41
|
+
|
|
42
|
+
Add to your `.env` file:
|
|
43
|
+
|
|
44
|
+
```env
|
|
45
|
+
# Redis Configuration
|
|
46
|
+
REDIS_HOST=localhost
|
|
47
|
+
REDIS_PORT=6379
|
|
48
|
+
REDIS_PASSWORD=
|
|
49
|
+
REDIS_DB=0
|
|
50
|
+
|
|
51
|
+
# Existing Database Configuration (verify these)
|
|
52
|
+
DB_HOST=13.234.25.234
|
|
53
|
+
DB_PORT=3306
|
|
54
|
+
DB_USER=root
|
|
55
|
+
DB_PASS=Rezolut@123
|
|
56
|
+
DB_NAME=core
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 4: Verify Redis Connection
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Test Redis connection
|
|
63
|
+
redis-cli ping
|
|
64
|
+
# Should respond: PONG
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 5: Run Database Migrations
|
|
68
|
+
|
|
69
|
+
The module requires three migrations to be run:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Using TypeORM CLI (recommended)
|
|
73
|
+
npx ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:run -d src/config/database.config.ts
|
|
74
|
+
|
|
75
|
+
# Or create a migration script in package.json:
|
|
76
|
+
# "migration:run": "typeorm migration:run -d src/config/database.config.ts"
|
|
77
|
+
# Then run:
|
|
78
|
+
npm run migration:run
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Migrations will create:**
|
|
82
|
+
1. ✅ `workflow_type` column in `cr_wf_master` table
|
|
83
|
+
2. ✅ `cr_wf_scheduled_workflow` table with indexes
|
|
84
|
+
3. ✅ `cr_wf_execution_log` table with indexes
|
|
85
|
+
|
|
86
|
+
### Step 6: Start Your Application
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm run start:dev
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 7: Verify Installation
|
|
93
|
+
|
|
94
|
+
Check the console logs for:
|
|
95
|
+
```
|
|
96
|
+
[Nest] INFO [BullModule] Bull queues registered
|
|
97
|
+
[Nest] INFO [WorkflowScheduleModule] Workflow Schedule Module initialized
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Quick Test
|
|
101
|
+
|
|
102
|
+
### Create Your First Schedule
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
curl -X POST http://localhost:3000/workflow-schedule/create \
|
|
106
|
+
-H "Content-Type: application/json" \
|
|
107
|
+
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
|
|
108
|
+
-d '{
|
|
109
|
+
"workflow_id": 1,
|
|
110
|
+
"name": "Test Schedule",
|
|
111
|
+
"cron_expression": "*/5 * * * *",
|
|
112
|
+
"timezone": "Asia/Kolkata",
|
|
113
|
+
"actions": []
|
|
114
|
+
}'
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### List All Schedules
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
curl -X GET http://localhost:3000/workflow-schedule/list \
|
|
121
|
+
-H "Authorization: Bearer YOUR_JWT_TOKEN"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Troubleshooting
|
|
125
|
+
|
|
126
|
+
### Issue: Cannot connect to Redis
|
|
127
|
+
|
|
128
|
+
**Solution:**
|
|
129
|
+
```bash
|
|
130
|
+
# Check if Redis is running
|
|
131
|
+
redis-cli ping
|
|
132
|
+
|
|
133
|
+
# If not running, start Redis
|
|
134
|
+
docker start redis-workflow
|
|
135
|
+
# or
|
|
136
|
+
brew services start redis
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Issue: Migration fails with "Table already exists"
|
|
140
|
+
|
|
141
|
+
**Solution:**
|
|
142
|
+
Migrations check if tables exist before creating them. If you see this message, the tables are already present. You can safely ignore it.
|
|
143
|
+
|
|
144
|
+
### Issue: Jobs are not processing
|
|
145
|
+
|
|
146
|
+
**Checklist:**
|
|
147
|
+
- [ ] Redis is running and accessible
|
|
148
|
+
- [ ] Schedule status is `ACTIVE`
|
|
149
|
+
- [ ] Schedule `is_enabled` is `true`
|
|
150
|
+
- [ ] Cron expression is valid
|
|
151
|
+
- [ ] Application has restarted after creating the schedule
|
|
152
|
+
|
|
153
|
+
**Verify:**
|
|
154
|
+
```bash
|
|
155
|
+
# Check Redis keys
|
|
156
|
+
redis-cli KEYS "bull:workflow-schedule:*"
|
|
157
|
+
|
|
158
|
+
# Should show keys if jobs are queued
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Issue: TypeScript errors after installation
|
|
162
|
+
|
|
163
|
+
**Solution:**
|
|
164
|
+
```bash
|
|
165
|
+
# Clear node_modules and reinstall
|
|
166
|
+
rm -rf node_modules package-lock.json
|
|
167
|
+
npm install
|
|
168
|
+
|
|
169
|
+
# Restart your IDE/editor
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Verify Bull Queue Dashboard (Optional)
|
|
173
|
+
|
|
174
|
+
Install Bull Board for visual queue monitoring:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npm install @bull-board/express @bull-board/api
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Add to your `main.ts`:
|
|
181
|
+
```typescript
|
|
182
|
+
import { createBullBoard } from '@bull-board/api';
|
|
183
|
+
import { BullAdapter } from '@bull-board/api/bullAdapter';
|
|
184
|
+
import { ExpressAdapter } from '@bull-board/express';
|
|
185
|
+
|
|
186
|
+
// Get queue from your app
|
|
187
|
+
const schedulerQueue = app.get('BullQueue_workflow-schedule');
|
|
188
|
+
|
|
189
|
+
const serverAdapter = new ExpressAdapter();
|
|
190
|
+
createBullBoard({
|
|
191
|
+
queues: [new BullAdapter(schedulerQueue)],
|
|
192
|
+
serverAdapter,
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
serverAdapter.setBasePath('/admin/queues');
|
|
196
|
+
app.use('/admin/queues', serverAdapter.getRouter());
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Then access: `http://localhost:3000/admin/queues`
|
|
200
|
+
|
|
201
|
+
## Package Versions
|
|
202
|
+
|
|
203
|
+
Tested with:
|
|
204
|
+
```json
|
|
205
|
+
{
|
|
206
|
+
"@nestjs/bull": "^10.0.0",
|
|
207
|
+
"@nestjs/common": "^11.0.0",
|
|
208
|
+
"@nestjs/core": "^11.0.0",
|
|
209
|
+
"bull": "^4.12.0",
|
|
210
|
+
"redis": "^4.6.0",
|
|
211
|
+
"cron-parser": "^4.9.0"
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Production Checklist
|
|
216
|
+
|
|
217
|
+
Before deploying to production:
|
|
218
|
+
|
|
219
|
+
- [ ] Configure Redis with persistence
|
|
220
|
+
- [ ] Set up Redis password authentication
|
|
221
|
+
- [ ] Configure appropriate retry strategies
|
|
222
|
+
- [ ] Set up monitoring and alerting
|
|
223
|
+
- [ ] Configure log retention policies
|
|
224
|
+
- [ ] Test failover scenarios
|
|
225
|
+
- [ ] Set up backup for scheduled workflow configurations
|
|
226
|
+
- [ ] Document schedule ownership and purpose
|
|
227
|
+
- [ ] Configure rate limiting if needed
|
|
228
|
+
- [ ] Set up Redis clustering for high availability
|
|
229
|
+
|
|
230
|
+
## Next Steps
|
|
231
|
+
|
|
232
|
+
1. Read the full [README.md](./README.md) for API documentation
|
|
233
|
+
2. Test the 9 API endpoints
|
|
234
|
+
3. Create your first scheduled workflow
|
|
235
|
+
4. Monitor execution logs
|
|
236
|
+
5. Set up Bull Board for visual monitoring
|
|
237
|
+
|
|
238
|
+
## Support
|
|
239
|
+
|
|
240
|
+
If you encounter issues:
|
|
241
|
+
1. Check application logs
|
|
242
|
+
2. Verify Redis connectivity
|
|
243
|
+
3. Ensure migrations ran successfully
|
|
244
|
+
4. Review the [README.md](./README.md) troubleshooting section
|