@venturialstd/workflow 0.1.156 → 0.1.157

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.
Files changed (88) hide show
  1. package/README.md +238 -238
  2. package/dist/dtos/create-workflow-job.dto.d.ts +10 -0
  3. package/dist/dtos/create-workflow-job.dto.d.ts.map +1 -0
  4. package/dist/dtos/create-workflow-job.dto.js +58 -0
  5. package/dist/dtos/create-workflow-job.dto.js.map +1 -0
  6. package/dist/dtos/index.d.ts +2 -0
  7. package/dist/dtos/index.d.ts.map +1 -1
  8. package/dist/dtos/index.js +2 -0
  9. package/dist/dtos/index.js.map +1 -1
  10. package/dist/dtos/update-workflow-job.dto.d.ts +8 -0
  11. package/dist/dtos/update-workflow-job.dto.d.ts.map +1 -0
  12. package/dist/dtos/update-workflow-job.dto.js +46 -0
  13. package/dist/dtos/update-workflow-job.dto.js.map +1 -0
  14. package/dist/entities/workflow-job.entity.d.ts +17 -0
  15. package/dist/entities/workflow-job.entity.d.ts.map +1 -0
  16. package/dist/entities/workflow-job.entity.js +108 -0
  17. package/dist/entities/workflow-job.entity.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/modules/index.d.ts +1 -0
  23. package/dist/modules/index.d.ts.map +1 -1
  24. package/dist/modules/index.js +5 -1
  25. package/dist/modules/index.js.map +1 -1
  26. package/dist/modules/jobs/adapters/ioredis-lock.adapter.d.ts +4 -0
  27. package/dist/modules/jobs/adapters/ioredis-lock.adapter.d.ts.map +1 -0
  28. package/dist/modules/jobs/adapters/ioredis-lock.adapter.js +33 -0
  29. package/dist/modules/jobs/adapters/ioredis-lock.adapter.js.map +1 -0
  30. package/dist/modules/jobs/controllers/workflow-job.controller.d.ts +21 -0
  31. package/dist/modules/jobs/controllers/workflow-job.controller.d.ts.map +1 -0
  32. package/dist/modules/jobs/controllers/workflow-job.controller.js +130 -0
  33. package/dist/modules/jobs/controllers/workflow-job.controller.js.map +1 -0
  34. package/dist/modules/jobs/jobs-nest.module.d.ts +25 -0
  35. package/dist/modules/jobs/jobs-nest.module.d.ts.map +1 -0
  36. package/dist/modules/jobs/jobs-nest.module.js +188 -0
  37. package/dist/modules/jobs/jobs-nest.module.js.map +1 -0
  38. package/dist/modules/jobs/processors/workflow-job.processor.d.ts +28 -0
  39. package/dist/modules/jobs/processors/workflow-job.processor.d.ts.map +1 -0
  40. package/dist/modules/jobs/processors/workflow-job.processor.js +147 -0
  41. package/dist/modules/jobs/processors/workflow-job.processor.js.map +1 -0
  42. package/dist/modules/jobs/services/distributed-lock.service.d.ts +15 -0
  43. package/dist/modules/jobs/services/distributed-lock.service.d.ts.map +1 -0
  44. package/dist/modules/jobs/services/distributed-lock.service.js +49 -0
  45. package/dist/modules/jobs/services/distributed-lock.service.js.map +1 -0
  46. package/dist/modules/jobs/services/index.d.ts +4 -0
  47. package/dist/modules/jobs/services/index.d.ts.map +1 -0
  48. package/dist/modules/jobs/services/index.js +20 -0
  49. package/dist/modules/jobs/services/index.js.map +1 -0
  50. package/dist/modules/jobs/services/job-scheduler.service.d.ts +38 -0
  51. package/dist/modules/jobs/services/job-scheduler.service.d.ts.map +1 -0
  52. package/dist/modules/jobs/services/job-scheduler.service.js +112 -0
  53. package/dist/modules/jobs/services/job-scheduler.service.js.map +1 -0
  54. package/dist/modules/jobs/services/workflow-job.service.d.ts +26 -0
  55. package/dist/modules/jobs/services/workflow-job.service.d.ts.map +1 -0
  56. package/dist/modules/jobs/services/workflow-job.service.js +148 -0
  57. package/dist/modules/jobs/services/workflow-job.service.js.map +1 -0
  58. package/dist/modules/schedule/schedule-nest.module.d.ts +7 -0
  59. package/dist/modules/schedule/schedule-nest.module.d.ts.map +1 -0
  60. package/dist/modules/schedule/schedule-nest.module.js +36 -0
  61. package/dist/modules/schedule/schedule-nest.module.js.map +1 -0
  62. package/dist/modules/schedule/schedule.module.d.ts +3 -0
  63. package/dist/modules/schedule/schedule.module.d.ts.map +1 -0
  64. package/dist/modules/schedule/schedule.module.js +14 -0
  65. package/dist/modules/schedule/schedule.module.js.map +1 -0
  66. package/dist/modules/schedule/services/index.d.ts +2 -0
  67. package/dist/modules/schedule/services/index.d.ts.map +1 -0
  68. package/dist/modules/schedule/services/index.js +18 -0
  69. package/dist/modules/schedule/services/index.js.map +1 -0
  70. package/dist/modules/schedule/services/schedule-trigger.service.d.ts +13 -0
  71. package/dist/modules/schedule/services/schedule-trigger.service.d.ts.map +1 -0
  72. package/dist/modules/schedule/services/schedule-trigger.service.js +95 -0
  73. package/dist/modules/schedule/services/schedule-trigger.service.js.map +1 -0
  74. package/dist/modules/schedule/triggers/index.d.ts +2 -0
  75. package/dist/modules/schedule/triggers/index.d.ts.map +1 -0
  76. package/dist/modules/schedule/triggers/index.js +18 -0
  77. package/dist/modules/schedule/triggers/index.js.map +1 -0
  78. package/dist/modules/schedule/triggers/schedule.trigger.d.ts +9 -0
  79. package/dist/modules/schedule/triggers/schedule.trigger.d.ts.map +1 -0
  80. package/dist/modules/schedule/triggers/schedule.trigger.js +102 -0
  81. package/dist/modules/schedule/triggers/schedule.trigger.js.map +1 -0
  82. package/dist/services/workflow-bulk-credential.service.d.ts.map +1 -1
  83. package/dist/services/workflow-bulk-credential.service.js +15 -1
  84. package/dist/services/workflow-bulk-credential.service.js.map +1 -1
  85. package/dist/workflow-core.module.d.ts.map +1 -1
  86. package/dist/workflow-core.module.js +2 -0
  87. package/dist/workflow-core.module.js.map +1 -1
  88. package/package.json +118 -115
package/README.md CHANGED
@@ -1,238 +1,238 @@
1
- # Workflow Module
2
-
3
- A comprehensive workflow management module for Venturial that handles workflow creation, execution, and session management.
4
-
5
- ## Features
6
-
7
- - **Workflow Management**: Create, update, and manage workflows with nodes and edges
8
- - **Node Types**: Support for multiple node types (Chatbot, AI, Conditional, Twilio)
9
- - **Execution Tracking**: Track workflow executions with status and data
10
- - **Session Management**: Persistent sessions for multi-step workflows
11
- - **Execution Modes**: Support for single-run and persistent session workflows
12
-
13
- ## Installation
14
-
15
- ```bash
16
- npm install @venturialstd/workflow
17
- ```
18
-
19
- ## Entities
20
-
21
- ### Workflow
22
- Main workflow entity containing:
23
- - `name`: Workflow name
24
- - `active`: Whether the workflow is active
25
- - `executionMode`: `single` or `persistent`
26
- - `status`: `active`, `inactive`, or `draft`
27
- - Relationships to nodes, edges, executions, and sessions
28
-
29
- ### WorkflowNode
30
- Represents a node in the workflow:
31
- - `nodeId`: ReactFlow node identifier
32
- - `type`: Node type (chatbot, ai, conditional, twilio)
33
- - `actionType`: Specific trigger or action identifier
34
- - `properties`: Node-specific properties (JSONB)
35
- - `position`: Node position on canvas (x, y)
36
-
37
- ### WorkflowEdge
38
- Represents connections between nodes:
39
- - `edgeId`: ReactFlow edge identifier
40
- - `source`: Source node ID
41
- - `target`: Target node ID
42
- - `sourceHandle` / `targetHandle`: Handle identifiers
43
-
44
- ### WorkflowExecution
45
- Tracks individual workflow runs:
46
- - `status`: `pending`, `running`, `completed`, `failed`, `cancelled`
47
- - `sessionId`: Optional session ID for persistent workflows
48
- - `currentNodeId`: Current node being executed
49
- - `inputData` / `outputData` / `errorData`: Execution data
50
-
51
- ### WorkflowSession
52
- Manages persistent workflow sessions:
53
- - `userId`: Optional user identifier
54
- - `externalId`: External identifier (phone, email, etc.)
55
- - `currentNodeId`: Current node in session
56
- - `context`: Session context/variables (JSONB)
57
- - `history`: Array of node execution history
58
-
59
- ### WorkflowModuleCredential
60
- Stores credentials for workflow modules:
61
- - `moduleId`: Module identifier (e.g., 'twilio', 'ai')
62
- - `name`: User-defined name for this credential set
63
- - `credentials`: Encrypted credential values (JSONB)
64
- - `organizationId`: Optional organization scope
65
- - `userId`: Optional user scope
66
- - `isActive`: Whether the credential is active
67
-
68
- ## Services
69
-
70
- All services extend `TypeOrmCrudService` and provide CRUD operations via `@dataui/crud`.
71
-
72
- ### WorkflowService
73
- - `getWorkflowsByOrganization(organizationId)`
74
- - `getActiveWorkflows(organizationId?)`
75
- - `activateWorkflow(workflowId)`
76
- - `deactivateWorkflow(workflowId)`
77
- - `getWorkflowWithNodesAndEdges(workflowId)`
78
-
79
- ### WorkflowNodeService
80
- - `getNodesByWorkflowId(workflowId)`
81
- - `getNodeByNodeId(workflowId, nodeId)`
82
- - `updateNodeProperties(id, properties)`
83
- - `updateNodePosition(id, position)`
84
-
85
- ### WorkflowEdgeService
86
- - `getEdgesByWorkflowId(workflowId)`
87
- - `getEdgeByEdgeId(workflowId, edgeId)`
88
- - `getEdgesBySourceNode(workflowId, sourceNodeId)`
89
- - `getEdgesByTargetNode(workflowId, targetNodeId)`
90
-
91
- ### WorkflowExecutionService
92
- - `getExecutionsByWorkflowId(workflowId)`
93
- - `getExecutionsBySessionId(sessionId)`
94
- - `getActiveExecutions(workflowId?)`
95
- - `startExecution(executionId)`
96
- - `completeExecution(executionId, outputData?)`
97
- - `failExecution(executionId, errorMessage, errorData?)`
98
- - `updateCurrentNode(executionId, currentNodeId)`
99
-
100
- ### WorkflowSessionService
101
- - `getSessionsByWorkflowId(workflowId)`
102
- - `getActiveSessions(workflowId?)`
103
- - `getSessionByExternalId(workflowId, externalId)`
104
- - `getSessionByUserId(workflowId, userId)`
105
- - `updateSessionContext(sessionId, context)`
106
- - `addToSessionHistory(sessionId, nodeId, data?)`
107
- - `deactivateSession(sessionId)`
108
-
109
- ### WorkflowModuleCredentialService
110
- - `getCredentialsByModule(moduleId, organizationId?, userId?)`
111
- - `getCredentialByName(moduleId, name, organizationId?, userId?)`
112
- - `getActiveCredentials(moduleId, organizationId?)`
113
- - `updateCredential(id, credentials)`
114
- - `activateCredential(id)`
115
- - `deactivateCredential(id)`
116
-
117
- ## Usage
118
-
119
- ### Import the Module
120
-
121
- ```typescript
122
- import { WorkflowModule } from '@venturialstd/workflow';
123
-
124
- @Module({
125
- imports: [WorkflowModule],
126
- })
127
- export class AppModule {}
128
- ```
129
-
130
- ### Use Services
131
-
132
- ```typescript
133
- import { WorkflowService } from '@venturialstd/workflow';
134
-
135
- @Injectable()
136
- export class MyService {
137
- constructor(private workflowService: WorkflowService) {}
138
-
139
- async createWorkflow(data: CreateWorkflowDto) {
140
- return this.workflowService.create(data);
141
- }
142
- }
143
- ```
144
-
145
- ## Constants
146
-
147
- ### Execution Modes
148
- - `EXECUTION_MODE.SINGLE`: One-time execution
149
- - `EXECUTION_MODE.PERSISTENT`: Maintains session state
150
-
151
- ### Node Types
152
- - `NODE_TYPE.CHATBOT`
153
- - `NODE_TYPE.AI`
154
- - `NODE_TYPE.CONDITIONAL`
155
- - `NODE_TYPE.TWILIO`
156
-
157
- ### Node Categories
158
- - `NODE_CATEGORY.TRIGGER`
159
- - `NODE_CATEGORY.ACTION`
160
-
161
- ### Workflow Status
162
- - `WORKFLOW_STATUS.ACTIVE`
163
- - `WORKFLOW_STATUS.INACTIVE`
164
- - `WORKFLOW_STATUS.DRAFT`
165
-
166
- ### Execution Status
167
- - `EXECUTION_STATUS.PENDING`
168
- - `EXECUTION_STATUS.RUNNING`
169
- - `EXECUTION_STATUS.COMPLETED`
170
- - `EXECUTION_STATUS.FAILED`
171
- - `EXECUTION_STATUS.CANCELLED`
172
-
173
- ## DTOs
174
-
175
- All DTOs follow the `Create*Dto` pattern:
176
- - `CreateWorkflowDto`
177
- - `CreateWorkflowNodeDto`
178
- - `CreateWorkflowEdgeDto`
179
- - `CreateWorkflowExecutionDto`
180
- - `CreateWorkflowSessionDto`
181
- - `CreateWorkflowModuleCredentialDto`
182
- - `UpdateWorkflowModuleCredentialDto`
183
-
184
- ## Database Schema
185
-
186
- The module uses PostgreSQL with JSONB columns for flexible data storage:
187
- - Node properties stored as JSONB
188
- - Edge data stored as JSONB
189
- - Execution input/output/error data as JSONB
190
- - Session context and history as JSONB
191
- - Module credentials stored as JSONB (should be encrypted at application level)
192
-
193
- ## Module Credentials
194
-
195
- Each module can define required credential fields. Users can create multiple credential sets per module:
196
-
197
- ### Defining Credential Fields in Modules
198
-
199
- Modules can define `credentialFields` in their module definition:
200
-
201
- ```typescript
202
- credentialFields: [
203
- {
204
- id: 'apiKey',
205
- name: 'API Key',
206
- description: 'API key for the service',
207
- type: FIELD_TYPE.STRING,
208
- validation: { required: true },
209
- sensitive: true, // Will be encrypted/masked
210
- required: true,
211
- },
212
- ]
213
- ```
214
-
215
- ### Managing Credentials
216
-
217
- ```typescript
218
- // Create credentials for a module
219
- const credential = await credentialService.create({
220
- moduleId: 'twilio',
221
- name: 'Production Twilio',
222
- credentials: {
223
- accountSid: 'AC...',
224
- authToken: '...',
225
- },
226
- organizationId: 'org-123',
227
- });
228
-
229
- // Get all credentials for a module
230
- const credentials = await credentialService.getCredentialsByModule(
231
- 'twilio',
232
- 'org-123'
233
- );
234
- ```
235
-
236
- ## License
237
-
238
- Part of the Venturial Core NPM package.
1
+ # Workflow Module
2
+
3
+ A comprehensive workflow management module for Venturial that handles workflow creation, execution, and session management.
4
+
5
+ ## Features
6
+
7
+ - **Workflow Management**: Create, update, and manage workflows with nodes and edges
8
+ - **Node Types**: Support for multiple node types (Chatbot, AI, Conditional, Twilio)
9
+ - **Execution Tracking**: Track workflow executions with status and data
10
+ - **Session Management**: Persistent sessions for multi-step workflows
11
+ - **Execution Modes**: Support for single-run and persistent session workflows
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @venturialstd/workflow
17
+ ```
18
+
19
+ ## Entities
20
+
21
+ ### Workflow
22
+ Main workflow entity containing:
23
+ - `name`: Workflow name
24
+ - `active`: Whether the workflow is active
25
+ - `executionMode`: `single` or `persistent`
26
+ - `status`: `active`, `inactive`, or `draft`
27
+ - Relationships to nodes, edges, executions, and sessions
28
+
29
+ ### WorkflowNode
30
+ Represents a node in the workflow:
31
+ - `nodeId`: ReactFlow node identifier
32
+ - `type`: Node type (chatbot, ai, conditional, twilio)
33
+ - `actionType`: Specific trigger or action identifier
34
+ - `properties`: Node-specific properties (JSONB)
35
+ - `position`: Node position on canvas (x, y)
36
+
37
+ ### WorkflowEdge
38
+ Represents connections between nodes:
39
+ - `edgeId`: ReactFlow edge identifier
40
+ - `source`: Source node ID
41
+ - `target`: Target node ID
42
+ - `sourceHandle` / `targetHandle`: Handle identifiers
43
+
44
+ ### WorkflowExecution
45
+ Tracks individual workflow runs:
46
+ - `status`: `pending`, `running`, `completed`, `failed`, `cancelled`
47
+ - `sessionId`: Optional session ID for persistent workflows
48
+ - `currentNodeId`: Current node being executed
49
+ - `inputData` / `outputData` / `errorData`: Execution data
50
+
51
+ ### WorkflowSession
52
+ Manages persistent workflow sessions:
53
+ - `userId`: Optional user identifier
54
+ - `externalId`: External identifier (phone, email, etc.)
55
+ - `currentNodeId`: Current node in session
56
+ - `context`: Session context/variables (JSONB)
57
+ - `history`: Array of node execution history
58
+
59
+ ### WorkflowModuleCredential
60
+ Stores credentials for workflow modules:
61
+ - `moduleId`: Module identifier (e.g., 'twilio', 'ai')
62
+ - `name`: User-defined name for this credential set
63
+ - `credentials`: Encrypted credential values (JSONB)
64
+ - `organizationId`: Optional organization scope
65
+ - `userId`: Optional user scope
66
+ - `isActive`: Whether the credential is active
67
+
68
+ ## Services
69
+
70
+ All services extend `TypeOrmCrudService` and provide CRUD operations via `@dataui/crud`.
71
+
72
+ ### WorkflowService
73
+ - `getWorkflowsByOrganization(organizationId)`
74
+ - `getActiveWorkflows(organizationId?)`
75
+ - `activateWorkflow(workflowId)`
76
+ - `deactivateWorkflow(workflowId)`
77
+ - `getWorkflowWithNodesAndEdges(workflowId)`
78
+
79
+ ### WorkflowNodeService
80
+ - `getNodesByWorkflowId(workflowId)`
81
+ - `getNodeByNodeId(workflowId, nodeId)`
82
+ - `updateNodeProperties(id, properties)`
83
+ - `updateNodePosition(id, position)`
84
+
85
+ ### WorkflowEdgeService
86
+ - `getEdgesByWorkflowId(workflowId)`
87
+ - `getEdgeByEdgeId(workflowId, edgeId)`
88
+ - `getEdgesBySourceNode(workflowId, sourceNodeId)`
89
+ - `getEdgesByTargetNode(workflowId, targetNodeId)`
90
+
91
+ ### WorkflowExecutionService
92
+ - `getExecutionsByWorkflowId(workflowId)`
93
+ - `getExecutionsBySessionId(sessionId)`
94
+ - `getActiveExecutions(workflowId?)`
95
+ - `startExecution(executionId)`
96
+ - `completeExecution(executionId, outputData?)`
97
+ - `failExecution(executionId, errorMessage, errorData?)`
98
+ - `updateCurrentNode(executionId, currentNodeId)`
99
+
100
+ ### WorkflowSessionService
101
+ - `getSessionsByWorkflowId(workflowId)`
102
+ - `getActiveSessions(workflowId?)`
103
+ - `getSessionByExternalId(workflowId, externalId)`
104
+ - `getSessionByUserId(workflowId, userId)`
105
+ - `updateSessionContext(sessionId, context)`
106
+ - `addToSessionHistory(sessionId, nodeId, data?)`
107
+ - `deactivateSession(sessionId)`
108
+
109
+ ### WorkflowModuleCredentialService
110
+ - `getCredentialsByModule(moduleId, organizationId?, userId?)`
111
+ - `getCredentialByName(moduleId, name, organizationId?, userId?)`
112
+ - `getActiveCredentials(moduleId, organizationId?)`
113
+ - `updateCredential(id, credentials)`
114
+ - `activateCredential(id)`
115
+ - `deactivateCredential(id)`
116
+
117
+ ## Usage
118
+
119
+ ### Import the Module
120
+
121
+ ```typescript
122
+ import { WorkflowModule } from '@venturialstd/workflow';
123
+
124
+ @Module({
125
+ imports: [WorkflowModule],
126
+ })
127
+ export class AppModule {}
128
+ ```
129
+
130
+ ### Use Services
131
+
132
+ ```typescript
133
+ import { WorkflowService } from '@venturialstd/workflow';
134
+
135
+ @Injectable()
136
+ export class MyService {
137
+ constructor(private workflowService: WorkflowService) {}
138
+
139
+ async createWorkflow(data: CreateWorkflowDto) {
140
+ return this.workflowService.create(data);
141
+ }
142
+ }
143
+ ```
144
+
145
+ ## Constants
146
+
147
+ ### Execution Modes
148
+ - `EXECUTION_MODE.SINGLE`: One-time execution
149
+ - `EXECUTION_MODE.PERSISTENT`: Maintains session state
150
+
151
+ ### Node Types
152
+ - `NODE_TYPE.CHATBOT`
153
+ - `NODE_TYPE.AI`
154
+ - `NODE_TYPE.CONDITIONAL`
155
+ - `NODE_TYPE.TWILIO`
156
+
157
+ ### Node Categories
158
+ - `NODE_CATEGORY.TRIGGER`
159
+ - `NODE_CATEGORY.ACTION`
160
+
161
+ ### Workflow Status
162
+ - `WORKFLOW_STATUS.ACTIVE`
163
+ - `WORKFLOW_STATUS.INACTIVE`
164
+ - `WORKFLOW_STATUS.DRAFT`
165
+
166
+ ### Execution Status
167
+ - `EXECUTION_STATUS.PENDING`
168
+ - `EXECUTION_STATUS.RUNNING`
169
+ - `EXECUTION_STATUS.COMPLETED`
170
+ - `EXECUTION_STATUS.FAILED`
171
+ - `EXECUTION_STATUS.CANCELLED`
172
+
173
+ ## DTOs
174
+
175
+ All DTOs follow the `Create*Dto` pattern:
176
+ - `CreateWorkflowDto`
177
+ - `CreateWorkflowNodeDto`
178
+ - `CreateWorkflowEdgeDto`
179
+ - `CreateWorkflowExecutionDto`
180
+ - `CreateWorkflowSessionDto`
181
+ - `CreateWorkflowModuleCredentialDto`
182
+ - `UpdateWorkflowModuleCredentialDto`
183
+
184
+ ## Database Schema
185
+
186
+ The module uses PostgreSQL with JSONB columns for flexible data storage:
187
+ - Node properties stored as JSONB
188
+ - Edge data stored as JSONB
189
+ - Execution input/output/error data as JSONB
190
+ - Session context and history as JSONB
191
+ - Module credentials stored as JSONB (should be encrypted at application level)
192
+
193
+ ## Module Credentials
194
+
195
+ Each module can define required credential fields. Users can create multiple credential sets per module:
196
+
197
+ ### Defining Credential Fields in Modules
198
+
199
+ Modules can define `credentialFields` in their module definition:
200
+
201
+ ```typescript
202
+ credentialFields: [
203
+ {
204
+ id: 'apiKey',
205
+ name: 'API Key',
206
+ description: 'API key for the service',
207
+ type: FIELD_TYPE.STRING,
208
+ validation: { required: true },
209
+ sensitive: true, // Will be encrypted/masked
210
+ required: true,
211
+ },
212
+ ]
213
+ ```
214
+
215
+ ### Managing Credentials
216
+
217
+ ```typescript
218
+ // Create credentials for a module
219
+ const credential = await credentialService.create({
220
+ moduleId: 'twilio',
221
+ name: 'Production Twilio',
222
+ credentials: {
223
+ accountSid: 'AC...',
224
+ authToken: '...',
225
+ },
226
+ organizationId: 'org-123',
227
+ });
228
+
229
+ // Get all credentials for a module
230
+ const credentials = await credentialService.getCredentialsByModule(
231
+ 'twilio',
232
+ 'org-123'
233
+ );
234
+ ```
235
+
236
+ ## License
237
+
238
+ Part of the Venturial Core NPM package.
@@ -0,0 +1,10 @@
1
+ export declare class CreateWorkflowJobDto {
2
+ workflowId: string;
3
+ triggerNodeId?: string;
4
+ name: string;
5
+ cronExpression: string;
6
+ timezone?: string;
7
+ isActive?: boolean;
8
+ payload?: Record<string, unknown>;
9
+ }
10
+ //# sourceMappingURL=create-workflow-job.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-workflow-job.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-workflow-job.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;IAG/B,UAAU,EAAE,MAAM,CAAC;IAInB,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB,IAAI,EAAE,MAAM,CAAC;IAIb,cAAc,EAAE,MAAM,CAAC;IAIvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateWorkflowJobDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class CreateWorkflowJobDto {
15
+ workflowId;
16
+ triggerNodeId;
17
+ name;
18
+ cronExpression;
19
+ timezone;
20
+ isActive;
21
+ payload;
22
+ }
23
+ exports.CreateWorkflowJobDto = CreateWorkflowJobDto;
24
+ __decorate([
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.IsNotEmpty)(),
27
+ __metadata("design:type", String)
28
+ ], CreateWorkflowJobDto.prototype, "workflowId", void 0);
29
+ __decorate([
30
+ (0, class_validator_1.IsString)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ __metadata("design:type", String)
33
+ ], CreateWorkflowJobDto.prototype, "triggerNodeId", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsString)(),
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ __metadata("design:type", String)
38
+ ], CreateWorkflowJobDto.prototype, "name", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsString)(),
41
+ (0, class_validator_1.IsNotEmpty)(),
42
+ __metadata("design:type", String)
43
+ ], CreateWorkflowJobDto.prototype, "cronExpression", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsString)(),
46
+ (0, class_validator_1.IsOptional)(),
47
+ __metadata("design:type", String)
48
+ ], CreateWorkflowJobDto.prototype, "timezone", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsBoolean)(),
51
+ (0, class_validator_1.IsOptional)(),
52
+ __metadata("design:type", Boolean)
53
+ ], CreateWorkflowJobDto.prototype, "isActive", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsOptional)(),
56
+ __metadata("design:type", Object)
57
+ ], CreateWorkflowJobDto.prototype, "payload", void 0);
58
+ //# sourceMappingURL=create-workflow-job.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-workflow-job.dto.js","sourceRoot":"","sources":["../../src/dtos/create-workflow-job.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA8E;AAE9E,MAAa,oBAAoB;IAG/B,UAAU,CAAS;IAInB,aAAa,CAAU;IAIvB,IAAI,CAAS;IAIb,cAAc,CAAS;IAIvB,QAAQ,CAAU;IAIlB,QAAQ,CAAW;IAGnB,OAAO,CAA2B;CACnC;AA3BD,oDA2BC;AAxBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACM;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2DACU;AAIvB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACA;AAIb;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACU;AAIvB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACK;AAIlB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;sDACM;AAGnB;IADC,IAAA,4BAAU,GAAE;;qDACqB"}
@@ -2,6 +2,8 @@ export * from './apply-bulk-credential-updates.dto';
2
2
  export * from './create-workflow.dto';
3
3
  export * from './create-workflow-edge.dto';
4
4
  export * from './create-workflow-execution.dto';
5
+ export * from './create-workflow-job.dto';
6
+ export * from './update-workflow-job.dto';
5
7
  export * from './create-workflow-module.dto';
6
8
  export * from './create-workflow-module-credential.dto';
7
9
  export * from './create-workflow-node.dto';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dtos/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dtos/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC"}
@@ -18,6 +18,8 @@ __exportStar(require("./apply-bulk-credential-updates.dto"), exports);
18
18
  __exportStar(require("./create-workflow.dto"), exports);
19
19
  __exportStar(require("./create-workflow-edge.dto"), exports);
20
20
  __exportStar(require("./create-workflow-execution.dto"), exports);
21
+ __exportStar(require("./create-workflow-job.dto"), exports);
22
+ __exportStar(require("./update-workflow-job.dto"), exports);
21
23
  __exportStar(require("./create-workflow-module.dto"), exports);
22
24
  __exportStar(require("./create-workflow-module-credential.dto"), exports);
23
25
  __exportStar(require("./create-workflow-node.dto"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,wDAAsC;AACtC,6DAA2C;AAC3C,kEAAgD;AAChD,+DAA6C;AAC7C,0EAAwD;AACxD,6DAA2C;AAC3C,uEAAqD;AACrD,gEAA8C;AAC9C,gEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,wDAAsC;AACtC,6DAA2C;AAC3C,kEAAgD;AAChD,4DAA0C;AAC1C,4DAA0C;AAC1C,+DAA6C;AAC7C,0EAAwD;AACxD,6DAA2C;AAC3C,uEAAqD;AACrD,gEAA8C;AAC9C,gEAA8C"}
@@ -0,0 +1,8 @@
1
+ export declare class UpdateWorkflowJobDto {
2
+ name?: string;
3
+ cronExpression?: string;
4
+ timezone?: string;
5
+ isActive?: boolean;
6
+ payload?: Record<string, unknown>;
7
+ }
8
+ //# sourceMappingURL=update-workflow-job.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-workflow-job.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-workflow-job.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,oBAAoB;IAG/B,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateWorkflowJobDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class UpdateWorkflowJobDto {
15
+ name;
16
+ cronExpression;
17
+ timezone;
18
+ isActive;
19
+ payload;
20
+ }
21
+ exports.UpdateWorkflowJobDto = UpdateWorkflowJobDto;
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.IsOptional)(),
25
+ __metadata("design:type", String)
26
+ ], UpdateWorkflowJobDto.prototype, "name", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.IsOptional)(),
30
+ __metadata("design:type", String)
31
+ ], UpdateWorkflowJobDto.prototype, "cronExpression", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsOptional)(),
35
+ __metadata("design:type", String)
36
+ ], UpdateWorkflowJobDto.prototype, "timezone", void 0);
37
+ __decorate([
38
+ (0, class_validator_1.IsBoolean)(),
39
+ (0, class_validator_1.IsOptional)(),
40
+ __metadata("design:type", Boolean)
41
+ ], UpdateWorkflowJobDto.prototype, "isActive", void 0);
42
+ __decorate([
43
+ (0, class_validator_1.IsOptional)(),
44
+ __metadata("design:type", Object)
45
+ ], UpdateWorkflowJobDto.prototype, "payload", void 0);
46
+ //# sourceMappingURL=update-workflow-job.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-workflow-job.dto.js","sourceRoot":"","sources":["../../src/dtos/update-workflow-job.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkE;AAElE,MAAa,oBAAoB;IAG/B,IAAI,CAAU;IAId,cAAc,CAAU;IAIxB,QAAQ,CAAU;IAIlB,QAAQ,CAAW;IAGnB,OAAO,CAA2B;CACnC;AAnBD,oDAmBC;AAhBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACC;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACW;AAIxB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACK;AAIlB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;sDACM;AAGnB;IADC,IAAA,4BAAU,GAAE;;qDACqB"}
@@ -0,0 +1,17 @@
1
+ import { WorkflowNode } from './workflow-node.entity';
2
+ export declare class WorkflowJob {
3
+ id: string;
4
+ workflowId: string;
5
+ triggerNodeId?: string;
6
+ triggerNode?: WorkflowNode;
7
+ name: string;
8
+ cronExpression: string;
9
+ timezone: string;
10
+ isActive: boolean;
11
+ payload?: Record<string, unknown>;
12
+ lastExecutedAt?: Date;
13
+ nextExecutionAt?: Date;
14
+ createdAt: Date;
15
+ updatedAt: Date;
16
+ }
17
+ //# sourceMappingURL=workflow-job.entity.d.ts.map