@etohq/workflows-module 0.0.1-next-20260318155517

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 (35) hide show
  1. package/README.md +16 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +19 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/models/index.d.ts +5 -0
  7. package/dist/models/index.d.ts.map +1 -0
  8. package/dist/models/index.js +21 -0
  9. package/dist/models/index.js.map +1 -0
  10. package/dist/models/workflow-definition.d.ts +26 -0
  11. package/dist/models/workflow-definition.d.ts.map +1 -0
  12. package/dist/models/workflow-definition.js +47 -0
  13. package/dist/models/workflow-definition.js.map +1 -0
  14. package/dist/models/workflow-log.d.ts +13 -0
  15. package/dist/models/workflow-log.d.ts.map +1 -0
  16. package/dist/models/workflow-log.js +30 -0
  17. package/dist/models/workflow-log.js.map +1 -0
  18. package/dist/models/workflow-runtime.d.ts +20 -0
  19. package/dist/models/workflow-runtime.d.ts.map +1 -0
  20. package/dist/models/workflow-runtime.js +43 -0
  21. package/dist/models/workflow-runtime.js.map +1 -0
  22. package/dist/models/workflow-token.d.ts +22 -0
  23. package/dist/models/workflow-token.d.ts.map +1 -0
  24. package/dist/models/workflow-token.js +38 -0
  25. package/dist/models/workflow-token.js.map +1 -0
  26. package/dist/services/index.d.ts +2 -0
  27. package/dist/services/index.d.ts.map +1 -0
  28. package/dist/services/index.js +18 -0
  29. package/dist/services/index.js.map +1 -0
  30. package/dist/services/workflows-module.service.d.ts +19 -0
  31. package/dist/services/workflows-module.service.d.ts.map +1 -0
  32. package/dist/services/workflows-module.service.js +9 -0
  33. package/dist/services/workflows-module.service.js.map +1 -0
  34. package/dist/tsconfig.tsbuildinfo +1 -0
  35. package/package.json +32 -0
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # `@etohq/workflows-module`
2
+
3
+ Persistence models and a module service for workflows runtime state.
4
+
5
+ This package contains DML models (Mikro-ORM entities via Eto DML) and a module service
6
+ implemented using `EtoService`.
7
+
8
+ ## What It Stores
9
+ - workflow definitions
10
+ - workflow runtime state
11
+ - workflow tokens
12
+ - workflow logs
13
+
14
+ ## What It Does Not Do
15
+ - orchestration and cross-module business logic (belongs in `packages/flows`)
16
+
@@ -0,0 +1,3 @@
1
+ export * from "./models";
2
+ export * from "./services";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./models"), exports);
18
+ __exportStar(require("./services"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,6CAA0B"}
@@ -0,0 +1,5 @@
1
+ export * from "./workflow-definition";
2
+ export * from "./workflow-runtime";
3
+ export * from "./workflow-token";
4
+ export * from "./workflow-log";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./workflow-definition"), exports);
18
+ __exportStar(require("./workflow-runtime"), exports);
19
+ __exportStar(require("./workflow-token"), exports);
20
+ __exportStar(require("./workflow-log"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,qDAAkC;AAClC,mDAAgC;AAChC,iDAA8B"}
@@ -0,0 +1,26 @@
1
+ export declare const WorkflowDefinition: import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
3
+ tenant_id: import("@etohq/framework/utils").TextProperty;
4
+ cross_env_key: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
5
+ name: import("@etohq/framework/utils").TextProperty;
6
+ display_name: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
7
+ review_machine_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
8
+ variant: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
9
+ version: import("@etohq/framework/utils").NumberProperty;
10
+ workflow_type: import("@etohq/framework/utils").TextProperty;
11
+ entity_type: import("@etohq/framework/utils").TextProperty;
12
+ definition_type: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
13
+ definition: import("@etohq/framework/utils").JSONProperty;
14
+ extensions: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
15
+ context_schema: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
16
+ documents_schema: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
17
+ config: import("@etohq/framework/utils").JSONProperty;
18
+ initial_state: import("@etohq/framework/utils").TextProperty;
19
+ persist_states: import("@etohq/framework/utils").ArrayProperty;
20
+ submit_states: import("@etohq/framework/utils").ArrayProperty;
21
+ final_states: import("@etohq/framework/utils").ArrayProperty;
22
+ is_public: import("@etohq/framework/utils").BooleanProperty;
23
+ is_active: import("@etohq/framework/utils").BooleanProperty;
24
+ description: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
25
+ }>, "WorkflowDefinition">;
26
+ //# sourceMappingURL=workflow-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-definition.d.ts","sourceRoot":"","sources":["../../src/models/workflow-definition.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;yBAiD3B,CAAA"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowDefinition = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ exports.WorkflowDefinition = utils_1.model
6
+ .define("WorkflowDefinition", {
7
+ id: utils_1.model.id({ prefix: "wfd" }).primaryKey(),
8
+ tenant_id: utils_1.model.text(),
9
+ cross_env_key: utils_1.model.text().nullable(),
10
+ name: utils_1.model.text(),
11
+ display_name: utils_1.model.text().nullable(),
12
+ review_machine_id: utils_1.model.text().nullable(),
13
+ variant: utils_1.model.text().nullable(),
14
+ version: utils_1.model.number().default(1),
15
+ workflow_type: utils_1.model.text(),
16
+ entity_type: utils_1.model.text(),
17
+ definition_type: utils_1.model.text().nullable(),
18
+ definition: utils_1.model.json(),
19
+ extensions: utils_1.model.json().nullable(),
20
+ context_schema: utils_1.model.json().nullable(),
21
+ documents_schema: utils_1.model.json().nullable(),
22
+ config: utils_1.model.json().default({}),
23
+ initial_state: utils_1.model.text().default("idle"),
24
+ persist_states: utils_1.model.array().default([]),
25
+ submit_states: utils_1.model.array().default([]),
26
+ final_states: utils_1.model.array().default([]),
27
+ is_public: utils_1.model.boolean().default(false),
28
+ is_active: utils_1.model.boolean().default(true),
29
+ description: utils_1.model.text().nullable(),
30
+ })
31
+ .indexes([
32
+ {
33
+ name: "IDX_workflow_def_tenant_name_version",
34
+ on: ["tenant_id", "name", "version"],
35
+ unique: true,
36
+ },
37
+ {
38
+ name: "IDX_workflow_def_tenant_cross_env_key",
39
+ on: ["tenant_id", "cross_env_key"],
40
+ unique: true,
41
+ },
42
+ {
43
+ name: "IDX_workflow_def_type",
44
+ on: ["workflow_type"],
45
+ },
46
+ ]);
47
+ //# sourceMappingURL=workflow-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-definition.js","sourceRoot":"","sources":["../../src/models/workflow-definition.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAEjC,QAAA,kBAAkB,GAAG,aAAK;KACpC,MAAM,CAAC,oBAAoB,EAAE;IAC5B,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE;IAE5C,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE;IAEvB,aAAa,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAEtC,IAAI,EAAE,aAAK,CAAC,IAAI,EAAE;IAClB,YAAY,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACrC,iBAAiB,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,aAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAElC,aAAa,EAAE,aAAK,CAAC,IAAI,EAAE;IAC3B,WAAW,EAAE,aAAK,CAAC,IAAI,EAAE;IACzB,eAAe,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAExC,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE;IACxB,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhC,aAAa,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC3C,cAAc,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,aAAa,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,YAAY,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEvC,SAAS,EAAE,aAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,SAAS,EAAE,aAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAExC,WAAW,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,OAAO,CAAC;IACP;QACE,IAAI,EAAE,sCAAsC;QAC5C,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC;QACpC,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,uCAAuC;QAC7C,EAAE,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;QAClC,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,EAAE,EAAE,CAAC,eAAe,CAAC;KACtB;CACF,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ export declare const WorkflowLog: import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
3
+ tenant_id: import("@etohq/framework/utils").TextProperty;
4
+ workflow_runtime_id: import("@etohq/framework/utils").TextProperty;
5
+ type: import("@etohq/framework/utils").EnumProperty<["EVENT_RECEIVED", "STATE_TRANSITION", "PLUGIN_INVOCATION", "CONTEXT_CHANGED", "ERROR", "INFO"]>;
6
+ metadata: import("@etohq/framework/utils").NullableModifier<Record<string, unknown>, import("@etohq/framework/utils").JSONProperty>;
7
+ from_state: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
8
+ to_state: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
9
+ message: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
10
+ event_name: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
11
+ plugin_name: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
12
+ }>, "WorkflowLog">;
13
+ //# sourceMappingURL=workflow-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-log.d.ts","sourceRoot":"","sources":["../../src/models/workflow-log.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;kBA6BpB,CAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowLog = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ exports.WorkflowLog = utils_1.model
6
+ .define("WorkflowLog", {
7
+ id: utils_1.model.id({ prefix: "wfl" }).primaryKey(),
8
+ tenant_id: utils_1.model.text(),
9
+ workflow_runtime_id: utils_1.model.text(),
10
+ type: utils_1.model.enum([
11
+ "EVENT_RECEIVED",
12
+ "STATE_TRANSITION",
13
+ "PLUGIN_INVOCATION",
14
+ "CONTEXT_CHANGED",
15
+ "ERROR",
16
+ "INFO",
17
+ ]),
18
+ metadata: utils_1.model.json().nullable(),
19
+ from_state: utils_1.model.text().nullable(),
20
+ to_state: utils_1.model.text().nullable(),
21
+ message: utils_1.model.text().nullable(),
22
+ event_name: utils_1.model.text().nullable(),
23
+ plugin_name: utils_1.model.text().nullable(),
24
+ })
25
+ .indexes([
26
+ { name: "IDX_workflow_log_runtime", on: ["workflow_runtime_id"] },
27
+ { name: "IDX_workflow_log_type", on: ["type"] },
28
+ { name: "IDX_workflow_log_tenant", on: ["tenant_id"] },
29
+ ]);
30
+ //# sourceMappingURL=workflow-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-log.js","sourceRoot":"","sources":["../../src/models/workflow-log.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAEjC,QAAA,WAAW,GAAG,aAAK;KAC7B,MAAM,CAAC,aAAa,EAAE;IACrB,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE;IAE5C,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE;IACvB,mBAAmB,EAAE,aAAK,CAAC,IAAI,EAAE;IAEjC,IAAI,EAAE,aAAK,CAAC,IAAI,CAAC;QACf,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;QACjB,OAAO;QACP,MAAM;KACP,CAAC;IAEF,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAEjC,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAEjC,OAAO,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,OAAO,CAAC;IACP,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;CACvD,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ export declare const WorkflowRuntime: import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
3
+ tenant_id: import("@etohq/framework/utils").TextProperty;
4
+ workflow_definition_id: import("@etohq/framework/utils").TextProperty;
5
+ workflow_definition_version: import("@etohq/framework/utils").NullableModifier<number, import("@etohq/framework/utils").NumberProperty>;
6
+ entity_id: import("@etohq/framework/utils").TextProperty;
7
+ parent_runtime_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
8
+ current_state: import("@etohq/framework/utils").TextProperty;
9
+ status: import("@etohq/framework/utils").EnumProperty<["active", "completed", "failed", "paused"]>;
10
+ context: import("@etohq/framework/utils").JSONProperty;
11
+ config: import("@etohq/framework/utils").JSONProperty;
12
+ assignee_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
13
+ actor_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
14
+ assigned_at: import("@etohq/framework/utils").NullableModifier<Date, import("@etohq/framework/utils").DateTimeProperty>;
15
+ resolved_at: import("@etohq/framework/utils").NullableModifier<Date, import("@etohq/framework/utils").DateTimeProperty>;
16
+ resolution_reason: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
17
+ tags: import("@etohq/framework/utils").ArrayProperty;
18
+ metadata: import("@etohq/framework/utils").JSONProperty;
19
+ }>, "WorkflowRuntime">;
20
+ //# sourceMappingURL=workflow-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-runtime.d.ts","sourceRoot":"","sources":["../../src/models/workflow-runtime.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;sBA4CxB,CAAA"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowRuntime = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ exports.WorkflowRuntime = utils_1.model
6
+ .define("WorkflowRuntime", {
7
+ id: utils_1.model.id({ prefix: "wfr" }).primaryKey(),
8
+ tenant_id: utils_1.model.text(),
9
+ workflow_definition_id: utils_1.model.text(),
10
+ workflow_definition_version: utils_1.model.number().nullable(),
11
+ entity_id: utils_1.model.text(),
12
+ parent_runtime_id: utils_1.model.text().nullable(),
13
+ current_state: utils_1.model.text(),
14
+ status: utils_1.model.enum(["active", "completed", "failed", "paused"]).default("active"),
15
+ context: utils_1.model.json().default({}),
16
+ config: utils_1.model.json().default({}),
17
+ assignee_id: utils_1.model.text().nullable(),
18
+ actor_id: utils_1.model.text().nullable(),
19
+ assigned_at: utils_1.model.dateTime().nullable(),
20
+ resolved_at: utils_1.model.dateTime().nullable(),
21
+ resolution_reason: utils_1.model.text().nullable(),
22
+ tags: utils_1.model.array().default([]),
23
+ metadata: utils_1.model.json().default({}),
24
+ })
25
+ .indexes([
26
+ {
27
+ name: "IDX_workflow_runtime_tenant_entity",
28
+ on: ["tenant_id", "entity_id"],
29
+ },
30
+ {
31
+ name: "IDX_workflow_runtime_definition",
32
+ on: ["workflow_definition_id"],
33
+ },
34
+ {
35
+ name: "IDX_workflow_runtime_status",
36
+ on: ["status"],
37
+ },
38
+ {
39
+ name: "IDX_workflow_runtime_parent",
40
+ on: ["parent_runtime_id"],
41
+ },
42
+ ]);
43
+ //# sourceMappingURL=workflow-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-runtime.js","sourceRoot":"","sources":["../../src/models/workflow-runtime.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAEjC,QAAA,eAAe,GAAG,aAAK;KACjC,MAAM,CAAC,iBAAiB,EAAE;IACzB,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE;IAE5C,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE;IAEvB,sBAAsB,EAAE,aAAK,CAAC,IAAI,EAAE;IACpC,2BAA2B,EAAE,aAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtD,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE;IACvB,iBAAiB,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAE1C,aAAa,EAAE,aAAK,CAAC,IAAI,EAAE;IAC3B,MAAM,EAAE,aAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEjF,OAAO,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,MAAM,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEhC,WAAW,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,aAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAExC,WAAW,EAAE,aAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,iBAAiB,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAE1C,IAAI,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,QAAQ,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACnC,CAAC;KACD,OAAO,CAAC;IACP;QACE,IAAI,EAAE,oCAAoC;QAC1C,EAAE,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,EAAE,EAAE,CAAC,wBAAwB,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,EAAE,EAAE,CAAC,QAAQ,CAAC;KACf;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,EAAE,EAAE,CAAC,mBAAmB,CAAC;KAC1B;CACF,CAAC,CAAA"}
@@ -0,0 +1,22 @@
1
+ export declare const WorkflowToken: import("@etohq/framework/utils").DmlEntity<import("@etohq/framework/utils").DMLEntitySchemaBuilder<{
2
+ id: import("@etohq/framework/utils").PrimaryKeyModifier<string, import("@etohq/framework/utils").IdProperty>;
3
+ tenant_id: import("@etohq/framework/utils").TextProperty;
4
+ token: import("@etohq/framework/utils").TextProperty;
5
+ workflow_runtime_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
6
+ lead_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
7
+ entity_id: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
8
+ token_type: import("@etohq/framework/utils").TextProperty;
9
+ expires_at: import("@etohq/framework/utils").DateTimeProperty;
10
+ allowed_actions: import("@etohq/framework/utils").ArrayProperty;
11
+ allowed_document_types: import("@etohq/framework/utils").ArrayProperty;
12
+ used_count: import("@etohq/framework/utils").NumberProperty;
13
+ max_uses: import("@etohq/framework/utils").NumberProperty;
14
+ last_used_at: import("@etohq/framework/utils").NullableModifier<Date, import("@etohq/framework/utils").DateTimeProperty>;
15
+ ip_restrictions: import("@etohq/framework/utils").ArrayProperty;
16
+ user_agent_hash: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
17
+ is_active: import("@etohq/framework/utils").BooleanProperty;
18
+ revoked_at: import("@etohq/framework/utils").NullableModifier<Date, import("@etohq/framework/utils").DateTimeProperty>;
19
+ revoked_reason: import("@etohq/framework/utils").NullableModifier<string, import("@etohq/framework/utils").TextProperty>;
20
+ token_metadata: import("@etohq/framework/utils").JSONProperty;
21
+ }>, "WorkflowToken">;
22
+ //# sourceMappingURL=workflow-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-token.d.ts","sourceRoot":"","sources":["../../src/models/workflow-token.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;oBA0CtB,CAAA"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowToken = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ exports.WorkflowToken = utils_1.model
6
+ .define("WorkflowToken", {
7
+ id: utils_1.model.id({ prefix: "wft" }).primaryKey(),
8
+ tenant_id: utils_1.model.text(),
9
+ token: utils_1.model.text(),
10
+ workflow_runtime_id: utils_1.model.text().nullable(),
11
+ lead_id: utils_1.model.text().nullable(),
12
+ entity_id: utils_1.model.text().nullable(),
13
+ token_type: utils_1.model.text(),
14
+ expires_at: utils_1.model.dateTime(),
15
+ allowed_actions: utils_1.model.array().default([]),
16
+ allowed_document_types: utils_1.model.array().default([]),
17
+ used_count: utils_1.model.number().default(0),
18
+ max_uses: utils_1.model.number().default(1),
19
+ last_used_at: utils_1.model.dateTime().nullable(),
20
+ ip_restrictions: utils_1.model.array().default([]),
21
+ user_agent_hash: utils_1.model.text().nullable(),
22
+ is_active: utils_1.model.boolean().default(true),
23
+ revoked_at: utils_1.model.dateTime().nullable(),
24
+ revoked_reason: utils_1.model.text().nullable(),
25
+ token_metadata: utils_1.model.json().default({}),
26
+ })
27
+ .indexes([
28
+ {
29
+ name: "IDX_workflow_token_tenant_token",
30
+ on: ["tenant_id", "token"],
31
+ unique: true,
32
+ },
33
+ {
34
+ name: "IDX_workflow_token_type_active",
35
+ on: ["token_type", "is_active"],
36
+ },
37
+ ]);
38
+ //# sourceMappingURL=workflow-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-token.js","sourceRoot":"","sources":["../../src/models/workflow-token.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAEjC,QAAA,aAAa,GAAG,aAAK;KAC/B,MAAM,CAAC,eAAe,EAAE;IACvB,EAAE,EAAE,aAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE;IAE5C,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE;IAEvB,KAAK,EAAE,aAAK,CAAC,IAAI,EAAE;IAEnB,mBAAmB,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC5C,OAAO,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAElC,UAAU,EAAE,aAAK,CAAC,IAAI,EAAE;IAExB,UAAU,EAAE,aAAK,CAAC,QAAQ,EAAE;IAE5B,eAAe,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,sBAAsB,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEjD,UAAU,EAAE,aAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,QAAQ,EAAE,aAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,YAAY,EAAE,aAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAEzC,eAAe,EAAE,aAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,eAAe,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAExC,SAAS,EAAE,aAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,UAAU,EAAE,aAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,cAAc,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAEvC,cAAc,EAAE,aAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC;KACD,OAAO,CAAC;IACP;QACE,IAAI,EAAE,iCAAiC;QACvC,EAAE,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;QAC1B,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,EAAE,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;KAChC;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./workflows-module.service";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./workflows-module.service"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C"}
@@ -0,0 +1,19 @@
1
+ import type { IWorkflowsModuleService, WorkflowDefinitionDTO, WorkflowRuntimeDTO, WorkflowLogDTO, WorkflowTokenDTO } from "@etohq/workflows-types";
2
+ declare const WorkflowsModuleService_base: import("@etohq/framework/utils").EtoServiceReturnType<{
3
+ WorkflowDefinition: {
4
+ dto: WorkflowDefinitionDTO;
5
+ };
6
+ WorkflowRuntime: {
7
+ dto: WorkflowRuntimeDTO;
8
+ };
9
+ WorkflowToken: {
10
+ dto: WorkflowTokenDTO;
11
+ };
12
+ WorkflowLog: {
13
+ dto: WorkflowLogDTO;
14
+ };
15
+ }>;
16
+ export declare class WorkflowsModuleService extends WorkflowsModuleService_base implements IWorkflowsModuleService {
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=workflows-module.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows-module.service.d.ts","sourceRoot":"","sources":["../../src/services/workflows-module.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;;wBAKP;QAAE,GAAG,EAAE,qBAAqB,CAAA;KAAE;qBACjC;QAAE,GAAG,EAAE,kBAAkB,CAAA;KAAE;mBAC7B;QAAE,GAAG,EAAE,gBAAgB,CAAA;KAAE;iBAC3B;QAAE,GAAG,EAAE,cAAc,CAAA;KAAE;;AALxC,qBAAa,sBACX,SAAQ,2BAMR,YAAW,uBAAuB;CAAG"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowsModuleService = void 0;
4
+ const utils_1 = require("@etohq/framework/utils");
5
+ const models_1 = require("../models");
6
+ class WorkflowsModuleService extends (0, utils_1.EtoService)({ WorkflowDefinition: models_1.WorkflowDefinition, WorkflowRuntime: models_1.WorkflowRuntime, WorkflowToken: models_1.WorkflowToken, WorkflowLog: models_1.WorkflowLog }) {
7
+ }
8
+ exports.WorkflowsModuleService = WorkflowsModuleService;
9
+ //# sourceMappingURL=workflows-module.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows-module.service.js","sourceRoot":"","sources":["../../src/services/workflows-module.service.ts"],"names":[],"mappings":";;;AAAA,kDAAmD;AAQnD,sCAA2F;AAE3F,MAAa,sBACX,SAAQ,IAAA,kBAAU,EAKf,EAAE,kBAAkB,EAAlB,2BAAkB,EAAE,eAAe,EAAf,wBAAe,EAAE,aAAa,EAAb,sBAAa,EAAE,WAAW,EAAX,oBAAW,EAAE,CAAC;CAClC;AAPvC,wDAOuC"}
@@ -0,0 +1 @@
1
+ {"root":["../src/index.ts","../src/models/index.ts","../src/models/workflow-definition.ts","../src/models/workflow-log.ts","../src/models/workflow-runtime.ts","../src/models/workflow-token.ts","../src/services/index.ts","../src/services/workflows-module.service.ts"],"version":"5.8.3"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@etohq/workflows-module",
3
+ "version": "0.0.1-next-20260318155517",
4
+ "description": "Eto Workflows module (definition/runtime/token registry + orchestration hooks)",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "dependencies": {
18
+ "@etohq/framework": "1.5.5-next-20260317140633",
19
+ "@etohq/utils": "1.5.5-next-20260317140633",
20
+ "@etohq/workflows-types": "0.0.1-next-20260318155517"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "22.10.5",
24
+ "rimraf": "5.0.2",
25
+ "typescript": "5.8.3"
26
+ },
27
+ "scripts": {
28
+ "build": "rimraf dist && tsc --build",
29
+ "watch": "tsc --build --watch",
30
+ "test": "exit 0"
31
+ }
32
+ }