@forestadmin/workflow-executor 1.4.1 → 1.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/README.md
CHANGED
|
@@ -27,6 +27,11 @@ npm install -g @forestadmin/workflow-executor
|
|
|
27
27
|
| `POLLING_INTERVAL_S` | — | `30` | Poll cadence for pending steps |
|
|
28
28
|
| `STOP_TIMEOUT_S` | — | `30` | Graceful shutdown deadline |
|
|
29
29
|
|
|
30
|
+
> **Database schema** — On Postgres, the executor keeps its table and its migration
|
|
31
|
+
> registry in a dedicated `forest` schema (created automatically). It is therefore
|
|
32
|
+
> safe to point `DATABASE_URL` at a database shared with your agent/server: nothing
|
|
33
|
+
> is created in `public`.
|
|
34
|
+
|
|
30
35
|
Optional AI configuration (all-or-nothing — falls back to server AI if any is missing):
|
|
31
36
|
|
|
32
37
|
| Variable | Description |
|
|
@@ -161,7 +161,7 @@ function buildDatabaseExecutor(options) {
|
|
|
161
161
|
const sequelize = uri ? new sequelize_1.Sequelize(uri, mergedOptions) : new sequelize_1.Sequelize(mergedOptions);
|
|
162
162
|
const runner = new runner_1.default({
|
|
163
163
|
...deps,
|
|
164
|
-
runStore: new database_store_1.default({ sequelize }),
|
|
164
|
+
runStore: new database_store_1.default({ sequelize, schema: mergedOptions.schema }),
|
|
165
165
|
});
|
|
166
166
|
const server = new executor_http_server_1.default({
|
|
167
167
|
port: options.httpPort,
|
|
@@ -172,4 +172,4 @@ function buildDatabaseExecutor(options) {
|
|
|
172
172
|
});
|
|
173
173
|
return createWorkflowExecutor(runner, server, deps.logger);
|
|
174
174
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtd29ya2Zsb3ctZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtd29ya2Zsb3ctZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUF1TUEsc0RBaUJDO0FBRUQsc0RBMEJDO0FBL09ELHdFQUFxRjtBQUNyRix5Q0FBc0M7QUFFdEMsaUdBQXNFO0FBQ3RFLHFGQUEyRDtBQUMzRCx1R0FBMkU7QUFDM0UsK0VBQTREO0FBQzVELHlHQUE4RTtBQUM5RSwySUFBOEc7QUFDOUcscUZBQTJEO0FBQzNELHlDQU9vQjtBQUNwQix1RkFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtFQUF5QztBQUN6Qyw2RUFBb0Q7QUFDcEQsK0VBQXFEO0FBRXJELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBZ0M3QiwyRkFBMkY7QUFDM0YsNkZBQTZGO0FBQzdGLFNBQVMsaUJBQWlCLENBQUMsS0FBeUIsRUFBRSxRQUFnQjtJQUNwRSxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQzdGLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLE9BQXdCO0lBQ3ZELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksb0NBQXlCLENBQUM7SUFDN0UsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFBLHdCQUFtQixFQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksK0JBQW9CLENBQUMsQ0FBQztJQUVsRyxNQUFNLFlBQVksR0FBRyxJQUFJLHFDQUF3QixDQUFDO1FBQ2hELFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixlQUFlO1FBQ2YsTUFBTTtLQUNQLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxH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
|
|
@@ -4,10 +4,15 @@ import type { StepExecutionData } from '../types/step-execution-data';
|
|
|
4
4
|
import type { Sequelize } from 'sequelize';
|
|
5
5
|
export interface DatabaseStoreOptions {
|
|
6
6
|
sequelize: Sequelize;
|
|
7
|
+
schema?: string;
|
|
7
8
|
}
|
|
8
9
|
export default class DatabaseStore implements RunStore {
|
|
9
10
|
private readonly sequelize;
|
|
11
|
+
private readonly configuredSchema?;
|
|
10
12
|
constructor(options: DatabaseStoreOptions);
|
|
13
|
+
private get schema();
|
|
14
|
+
private get tableId();
|
|
15
|
+
private get tableReference();
|
|
11
16
|
init(logger?: Logger): Promise<void>;
|
|
12
17
|
getStepExecutions(runId: string): Promise<StepExecutionData[]>;
|
|
13
18
|
saveStepExecution(runId: string, stepExecution: StepExecutionData): Promise<void>;
|
|
@@ -4,17 +4,31 @@ const sequelize_1 = require("sequelize");
|
|
|
4
4
|
const umzug_1 = require("umzug");
|
|
5
5
|
const errors_1 = require("../errors");
|
|
6
6
|
const TABLE_NAME = 'workflow_step_executions';
|
|
7
|
+
const DEFAULT_SCHEMA = 'forest';
|
|
7
8
|
class DatabaseStore {
|
|
8
9
|
constructor(options) {
|
|
9
10
|
this.sequelize = options.sequelize;
|
|
11
|
+
this.configuredSchema = options.schema;
|
|
12
|
+
}
|
|
13
|
+
get schema() {
|
|
14
|
+
if (this.sequelize.getDialect() === 'sqlite')
|
|
15
|
+
return undefined;
|
|
16
|
+
return this.configuredSchema || DEFAULT_SCHEMA;
|
|
17
|
+
}
|
|
18
|
+
get tableId() {
|
|
19
|
+
return this.schema ? { tableName: TABLE_NAME, schema: this.schema } : TABLE_NAME;
|
|
20
|
+
}
|
|
21
|
+
get tableReference() {
|
|
22
|
+
return this.schema ? `"${this.schema}"."${TABLE_NAME}"` : `"${TABLE_NAME}"`;
|
|
10
23
|
}
|
|
11
24
|
async init(logger) {
|
|
25
|
+
const { schema, tableId } = this;
|
|
12
26
|
const umzug = new umzug_1.Umzug({
|
|
13
27
|
migrations: [
|
|
14
28
|
{
|
|
15
29
|
name: '001_create_workflow_step_executions',
|
|
16
30
|
up: async ({ context }) => {
|
|
17
|
-
await context.createTable(
|
|
31
|
+
await context.createTable(tableId, {
|
|
18
32
|
id: {
|
|
19
33
|
type: sequelize_1.DataTypes.INTEGER,
|
|
20
34
|
primaryKey: true,
|
|
@@ -47,23 +61,29 @@ class DatabaseStore {
|
|
|
47
61
|
field: 'updated_at',
|
|
48
62
|
},
|
|
49
63
|
});
|
|
50
|
-
await context.addIndex(
|
|
51
|
-
await context.addIndex(
|
|
64
|
+
await context.addIndex(tableId, ['run_id'], { name: 'idx_run_id' });
|
|
65
|
+
await context.addIndex(tableId, ['run_id', 'step_index'], {
|
|
52
66
|
unique: true,
|
|
53
67
|
name: 'idx_run_id_step_index',
|
|
54
68
|
});
|
|
55
69
|
},
|
|
56
70
|
down: async ({ context }) => {
|
|
57
|
-
await context.dropTable(
|
|
71
|
+
await context.dropTable(tableId);
|
|
58
72
|
},
|
|
59
73
|
},
|
|
60
74
|
],
|
|
61
75
|
context: this.sequelize.getQueryInterface(),
|
|
62
|
-
storage: new umzug_1.SequelizeStorage({
|
|
76
|
+
storage: new umzug_1.SequelizeStorage({
|
|
77
|
+
sequelize: this.sequelize,
|
|
78
|
+
...(schema ? { schema } : {}),
|
|
79
|
+
}),
|
|
63
80
|
logger: undefined,
|
|
64
81
|
});
|
|
65
82
|
return this.callPort('init', async () => {
|
|
66
83
|
try {
|
|
84
|
+
if (schema) {
|
|
85
|
+
await this.sequelize.query(`CREATE SCHEMA IF NOT EXISTS "${schema}"`);
|
|
86
|
+
}
|
|
67
87
|
await umzug.up();
|
|
68
88
|
}
|
|
69
89
|
catch (error) {
|
|
@@ -76,7 +96,7 @@ class DatabaseStore {
|
|
|
76
96
|
}
|
|
77
97
|
async getStepExecutions(runId) {
|
|
78
98
|
return this.callPort('getStepExecutions', async () => {
|
|
79
|
-
const [rows] = await this.sequelize.query(`SELECT data FROM ${
|
|
99
|
+
const [rows] = await this.sequelize.query(`SELECT data FROM ${this.tableReference} WHERE run_id = :runId ORDER BY step_index ASC`, { replacements: { runId } });
|
|
80
100
|
return rows.map(row => typeof row.data === 'string' ? JSON.parse(row.data) : row.data);
|
|
81
101
|
});
|
|
82
102
|
}
|
|
@@ -87,8 +107,8 @@ class DatabaseStore {
|
|
|
87
107
|
const data = JSON.stringify(stepExecution);
|
|
88
108
|
const replacements = { runId, stepIndex: stepExecution.stepIndex, data, now };
|
|
89
109
|
// Delete + insert in transaction: dialect-agnostic upsert (avoids ON CONFLICT / ON DUPLICATE)
|
|
90
|
-
await this.sequelize.query(`DELETE FROM ${
|
|
91
|
-
await this.sequelize.query(`INSERT INTO ${
|
|
110
|
+
await this.sequelize.query(`DELETE FROM ${this.tableReference} WHERE run_id = :runId AND step_index = :stepIndex`, { replacements, transaction });
|
|
111
|
+
await this.sequelize.query(`INSERT INTO ${this.tableReference} (run_id, step_index, data, created_at, updated_at) VALUES (:runId, :stepIndex, :data, :now, :now)`, { replacements, transaction });
|
|
92
112
|
});
|
|
93
113
|
});
|
|
94
114
|
}
|
|
@@ -116,4 +136,4 @@ class DatabaseStore {
|
|
|
116
136
|
}
|
|
117
137
|
}
|
|
118
138
|
exports.default = DatabaseStore;
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2Utc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmVzL2RhdGFiYXNlLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EseUNBQXNDO0FBQ3RDLGlDQUFnRDtBQUVoRCxzQ0FBMEY7QUFFMUYsTUFBTSxVQUFVLEdBQUcsMEJBQTBCLENBQUM7QUFDOUMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDO0FBT2hDLE1BQXFCLGFBQWE7SUFLaEMsWUFBWSxPQUE2QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVksTUFBTTtRQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEtBQUssUUFBUTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRS9ELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLGNBQWMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUNuRixDQUFDO0lBRUQsSUFBWSxjQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDO0lBQzlFLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQWU7UUFDeEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFakMsTUFBTSxLQUFLLEdBQUcsSUFB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
|