@t4h.framework/dev 0.0.0-experimental-20260905070749 → 0.0.0-experimental-20260905073434
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/CHANGELOG.md +5 -4
- package/README.md +10 -8
- package/dist/AppProcess.js +2 -1
- package/dist/AppProcess.js.map +1 -1
- package/dist/Server.d.ts +0 -4
- package/dist/Server.js +5 -6
- package/dist/Server.js.map +1 -1
- package/dist/constants/server.d.ts +1 -0
- package/dist/constants/server.js +1 -0
- package/dist/constants/server.js.map +1 -1
- package/dist/http/create-app.js +74 -23
- package/dist/http/create-app.js.map +1 -1
- package/dist/models/WorkflowRun.d.ts +2 -0
- package/dist/models/WorkflowRun.js +2 -0
- package/dist/models/WorkflowRun.js.map +1 -1
- package/dist/models/WorkflowRunActivity.d.ts +3 -0
- package/dist/models/WorkflowRunActivity.js +2 -0
- package/dist/models/WorkflowRunActivity.js.map +1 -1
- package/dist/repositories/WorkflowRun.repository.d.ts +18 -3
- package/dist/repositories/WorkflowRun.repository.js +57 -15
- package/dist/repositories/WorkflowRun.repository.js.map +1 -1
- package/dist/repositories/WorkflowRunActivity.repository.d.ts +8 -0
- package/dist/repositories/WorkflowRunActivity.repository.js +24 -4
- package/dist/repositories/WorkflowRunActivity.repository.js.map +1 -1
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.d.ts +14 -1
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js +64 -24
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js.map +1 -1
- package/dist/services/Database.service.js +2 -0
- package/dist/services/Database.service.js.map +1 -1
- package/dist/services/WorkflowRunEvents.service.d.ts +11 -0
- package/dist/services/WorkflowRunEvents.service.js +42 -0
- package/dist/services/WorkflowRunEvents.service.js.map +1 -0
- package/dist/services/WorkflowRunFacade.service.d.ts +69 -33
- package/dist/services/WorkflowRunFacade.service.js +30 -2
- package/dist/services/WorkflowRunFacade.service.js.map +1 -1
- package/dist/tools/format-routes.js +1 -0
- package/dist/tools/format-routes.js.map +1 -1
- package/dist/tools/to-workflow-run-activity-output.d.ts +24 -0
- package/dist/tools/to-workflow-run-activity-output.js +18 -0
- package/dist/tools/to-workflow-run-activity-output.js.map +1 -0
- package/dist/tools/to-workflow-run-output.d.ts +12 -0
- package/dist/tools/to-workflow-run-output.js +13 -0
- package/dist/tools/to-workflow-run-output.js.map +1 -0
- package/dist/transport/AppProcessJsonRpc.js +27 -9
- package/dist/transport/AppProcessJsonRpc.js.map +1 -1
- package/dist/use-cases/CreateWorkflowRun.usecase.d.ts +3 -1
- package/dist/use-cases/CreateWorkflowRun.usecase.js +9 -2
- package/dist/use-cases/CreateWorkflowRun.usecase.js.map +1 -1
- package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js +4 -1
- package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js.map +1 -1
- package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.js +12 -5
- package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.js.map +1 -1
- package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.d.ts +3 -1
- package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js +12 -3
- package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js.map +1 -1
- package/dist/use-cases/NextTickWorkflowRun.usecase.d.ts +4 -1
- package/dist/use-cases/NextTickWorkflowRun.usecase.js +20 -7
- package/dist/use-cases/NextTickWorkflowRun.usecase.js.map +1 -1
- package/dist/use-cases/WorkflowRunActivityFind.usecase.d.ts +34 -0
- package/dist/use-cases/WorkflowRunActivityFind.usecase.js +49 -0
- package/dist/use-cases/WorkflowRunActivityFind.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunActivityFindById.usecase.d.ts +34 -0
- package/dist/use-cases/WorkflowRunActivityFindById.usecase.js +60 -0
- package/dist/use-cases/WorkflowRunActivityFindById.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.d.ts +24 -0
- package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.js +56 -0
- package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunFind.usecase.d.ts +1 -15
- package/dist/use-cases/WorkflowRunFind.usecase.js +1 -13
- package/dist/use-cases/WorkflowRunFind.usecase.js.map +1 -1
- package/dist/use-cases/WorkflowRunFindById.usecase.d.ts +2 -34
- package/dist/use-cases/WorkflowRunFindById.usecase.js +3 -40
- package/dist/use-cases/WorkflowRunFindById.usecase.js.map +1 -1
- package/dist/workers/app-process.js +9 -0
- package/dist/workers/app-process.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @t4h.framework/dev
|
|
2
2
|
|
|
3
|
-
## 0.0.0-experimental-
|
|
3
|
+
## 0.0.0-experimental-20260905073434
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
### Patch Changes
|
|
10
10
|
|
|
11
|
-
- Updated dependencies [[`
|
|
12
|
-
- @t4h.framework/
|
|
13
|
-
- @t4h.framework/
|
|
11
|
+
- Updated dependencies [[`a3696b4`](https://github.com/tech4humans-brasil/framework/commit/a3696b48b48598eda9e51c53538a6086abe36018), [`a3696b4`](https://github.com/tech4humans-brasil/framework/commit/a3696b48b48598eda9e51c53538a6086abe36018), [`45182d4`](https://github.com/tech4humans-brasil/framework/commit/45182d4a27c86353747646aa9b70a39bc4c56610)]:
|
|
12
|
+
- @t4h.framework/vite-panel-plugin@0.0.0-experimental-20260905073434
|
|
13
|
+
- @t4h.framework/http@0.0.0-experimental-20260905073434
|
|
14
|
+
- @t4h.framework/oidc@0.0.0-experimental-20260905073434
|
|
14
15
|
|
|
15
16
|
## 0.14.2
|
|
16
17
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ When you run `framework dev` (via `@t4h.framework/cli`), this package powers the
|
|
|
9
9
|
1. **TypeScript watch** — compiles your app on every change.
|
|
10
10
|
2. **App process** — forks a child Node process that loads your compiled `App` and runs the workflow engine on an in-memory SQLite database.
|
|
11
11
|
3. **HTTP server** — a [Hono](https://hono.dev) app that exposes your workflows (create runs, advance pending activities), enforces the workflow authorization and adds `/_dev` routes for tooling.
|
|
12
|
-
4. **Vite** — a Vite dev server in middleware mode serves
|
|
12
|
+
4. **Vite** — a Vite dev server in middleware mode serves the built-in panel and anything else that is not an API route.
|
|
13
13
|
5. **Dev claims** — provides local implementations for ORM, HTTP, file system, cache, SMTP, and more.
|
|
14
14
|
|
|
15
15
|
```mermaid
|
|
@@ -128,14 +128,16 @@ Every `/projects` route requires an authorization: the workflow `authorization`
|
|
|
128
128
|
|--------|-------|-------------|
|
|
129
129
|
| `GET` | `/_dev/manifest` | App manifest |
|
|
130
130
|
| `GET` | `/_dev/state` | `{ state: 'idle' \| 'starting' \| 'ready' \| 'exited' }` |
|
|
131
|
-
| `GET` | `/_dev/runs?status=&workflow=&limit=&offset=` | `{ count, runs }` newest first |
|
|
132
|
-
| `GET` | `/_dev/runs/:id` | Run with activities
|
|
131
|
+
| `GET` | `/_dev/runs?status=&workflow=&id=&parentRunId=&parentActivityId=&rootOnly=&createdAfter=&createdBefore=&limit=&offset=` | `{ count, runs }` newest first; `id` is a prefix, `rootOnly=true` hides child runs, `createdAfter`/`createdBefore` are epoch milliseconds |
|
|
132
|
+
| `GET` | `/_dev/runs/:id` | Run with activities (each with its child runs and pendings), logs and `rejectedActivityId` (framework tagged JSON) |
|
|
133
133
|
| `GET` | `/_dev/activities/waiting` | Async activities waiting for an advance |
|
|
134
|
-
| `
|
|
135
|
-
| `
|
|
136
|
-
| `GET` | `/_dev/events` | SSE: `manifest`, `build:status`, `build:fail`, `app:exit` |
|
|
134
|
+
| `POST` | `/_dev/workflows/:workflowId/runs` | Starts a run without authorization; body is the input, answers `201 { id }` |
|
|
135
|
+
| `POST` | `/_dev/activities/:activityId/advance` | Advances a pending async activity without authorization; body is `{ payload }` |
|
|
136
|
+
| `GET` | `/_dev/events` | SSE: `manifest`, `build:status`, `build:fail`, `app:exit`, `run:created`, `run:updated` |
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
`run:created` and `run:updated` carry the run summary (the same object `/_dev/runs` lists); updates of one run are coalesced, so a tick that writes several rows produces one event.
|
|
139
|
+
|
|
140
|
+
Everything else is handed to Vite, which serves the panel that ships with this package: open the base URL to browse the workflows and start runs from their schema, follow runs live with the execution trace of each one (activities as a waterfall, child runs nested, input, output, duration, logs, the activity that failed) and advance waiting activities. Plugins from the project's `vite.config.*` (or `vite.plugins`) are served by the same Vite.
|
|
139
141
|
|
|
140
142
|
## State
|
|
141
143
|
|
|
@@ -177,7 +179,7 @@ await server.down()
|
|
|
177
179
|
| `down()` | Stops the watch, the app process, Vite and the HTTP server. |
|
|
178
180
|
| `manifest` | Current app manifest or `null`. |
|
|
179
181
|
| `address` | Listening address (throws before `up()`). |
|
|
180
|
-
| events | `manifest`, `build:status`, `build:fail`, `app:exit`, `error`. |
|
|
182
|
+
| events | `manifest`, `build:status`, `build:fail`, `app:exit`, `run:created`, `run:updated`, `error`. |
|
|
181
183
|
|
|
182
184
|
`vite: false` disables Vite; `vite.root` / `vite.configFile` point at another Vite project. The server logs the listening URL, build output and the routes of every workflow through `logger` (default `console`, `false` to silence). A manifest with a workflow that has no authorization (and no app default) emits `error` with a `WorkflowAuthorizationMissingError`; `framework dev` exits with code 1 in that case.
|
|
183
185
|
|
package/dist/AppProcess.js
CHANGED
|
@@ -3,7 +3,7 @@ import { EventEmitter } from 'node:events';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { styleText } from 'node:util';
|
|
5
5
|
import Type from 'typebox';
|
|
6
|
-
import { APP_KILL_TIMEOUT_IN_MS, APP_READY_TIMEOUT_IN_MS, } from './constants/server.js';
|
|
6
|
+
import { APP_KILL_TIMEOUT_IN_MS, APP_READY_TIMEOUT_IN_MS, WORKFLOW_RUN_EVENTS, } from './constants/server.js';
|
|
7
7
|
import { JSONRPCClient } from './models/JSONRPCClient.js';
|
|
8
8
|
import { JSONRPCServer, JSONRPCServerMethod } from './models/JSONRPCServer.js';
|
|
9
9
|
export class AppProcessNotReadyError extends Error {
|
|
@@ -28,6 +28,7 @@ export class AppProcess extends EventEmitter {
|
|
|
28
28
|
this.forkProcess = forkProcess;
|
|
29
29
|
this.server = new JSONRPCServer([
|
|
30
30
|
new JSONRPCServerMethod('manifest', { schema: [Type.Any()] }, (manifest) => this.onManifest(manifest)),
|
|
31
|
+
...WORKFLOW_RUN_EVENTS.map(event => new JSONRPCServerMethod(event, { schema: [Type.Any()] }, (payload) => void this.emit(event, payload))),
|
|
31
32
|
], message => {
|
|
32
33
|
this.child?.send(message);
|
|
33
34
|
});
|
package/dist/AppProcess.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppProcess.js","sourceRoot":"","sources":["../src/AppProcess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAqB,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAGrC,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"AppProcess.js","sourceRoot":"","sources":["../src/AppProcess.ts"],"names":[],"mappings":"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"}
|
package/dist/Server.d.ts
CHANGED
|
@@ -37,9 +37,5 @@ export declare class Server extends EventEmitter {
|
|
|
37
37
|
up(): Promise<ServerAddress>;
|
|
38
38
|
down(): Promise<void>;
|
|
39
39
|
private onTsBuildSuccess;
|
|
40
|
-
/**
|
|
41
|
-
* Vite only serves the UI (a panel plugin from the project's vite.config or
|
|
42
|
-
* from `vite.plugins`); the API never goes through it.
|
|
43
|
-
*/
|
|
44
40
|
private createVite;
|
|
45
41
|
}
|
package/dist/Server.js
CHANGED
|
@@ -5,7 +5,7 @@ import { pathToFileURL } from 'node:url';
|
|
|
5
5
|
import { styleText } from 'node:util';
|
|
6
6
|
import { getRequestListener } from '@hono/node-server';
|
|
7
7
|
import { AppProcess } from './AppProcess.js';
|
|
8
|
-
import { DEFAULT_HOST, DEFAULT_PORT, DEV_ROUTES_PREFIX, PROJECTS_ROUTES_PREFIX, } from './constants/server.js';
|
|
8
|
+
import { DEFAULT_HOST, DEFAULT_PORT, DEV_ROUTES_PREFIX, PROJECTS_ROUTES_PREFIX, WORKFLOW_RUN_EVENTS, } from './constants/server.js';
|
|
9
9
|
import { createApp } from './http/create-app.js';
|
|
10
10
|
import { WorkflowAuthorizationMissingError } from './models/WorkflowAuthorizationMissingError.js';
|
|
11
11
|
import { formatRoutes } from './tools/format-routes.js';
|
|
@@ -43,6 +43,8 @@ export class Server extends EventEmitter {
|
|
|
43
43
|
}));
|
|
44
44
|
this.emit('app:exit', code);
|
|
45
45
|
});
|
|
46
|
+
for (const event of WORKFLOW_RUN_EVENTS)
|
|
47
|
+
this.appProcess.on(event, payload => this.emit(event, payload));
|
|
46
48
|
}
|
|
47
49
|
get manifest() {
|
|
48
50
|
return this.appProcess.manifest;
|
|
@@ -151,18 +153,15 @@ export class Server extends EventEmitter {
|
|
|
151
153
|
routes: this.routes,
|
|
152
154
|
}));
|
|
153
155
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Vite only serves the UI (a panel plugin from the project's vite.config or
|
|
156
|
-
* from `vite.plugins`); the API never goes through it.
|
|
157
|
-
*/
|
|
158
156
|
async createVite(httpServer, projectDir, { root = projectDir, configFile, plugins }) {
|
|
159
157
|
const { createServer } = await import('vite');
|
|
158
|
+
const { default: panel } = await import('@t4h.framework/vite-panel-plugin');
|
|
160
159
|
return createServer({
|
|
161
160
|
root,
|
|
162
161
|
configFile,
|
|
163
162
|
appType: 'custom',
|
|
164
163
|
server: { middlewareMode: true, hmr: { server: httpServer } },
|
|
165
|
-
plugins,
|
|
164
|
+
plugins: [panel(), ...(plugins ?? [])],
|
|
166
165
|
});
|
|
167
166
|
}
|
|
168
167
|
}
|
package/dist/Server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,OAAO,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,3 +6,4 @@ export declare const APP_KILL_TIMEOUT_IN_MS = 5000;
|
|
|
6
6
|
export declare const SSE_HEARTBEAT_INTERVAL_IN_MS = 15000;
|
|
7
7
|
export declare const PROJECTS_ROUTES_PREFIX = "/projects";
|
|
8
8
|
export declare const DEV_ROUTES_PREFIX = "/_dev";
|
|
9
|
+
export declare const WORKFLOW_RUN_EVENTS: readonly ["run:created", "run:updated"];
|
package/dist/constants/server.js
CHANGED
|
@@ -6,4 +6,5 @@ export const APP_KILL_TIMEOUT_IN_MS = 5_000;
|
|
|
6
6
|
export const SSE_HEARTBEAT_INTERVAL_IN_MS = 15_000;
|
|
7
7
|
export const PROJECTS_ROUTES_PREFIX = '/projects';
|
|
8
8
|
export const DEV_ROUTES_PREFIX = '/_dev';
|
|
9
|
+
export const WORKFLOW_RUN_EVENTS = ['run:created', 'run:updated'];
|
|
9
10
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/constants/server.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAA;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAA;AAEvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAA;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAE3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;AAElD,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAA;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/constants/server.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAA;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAA;AAEvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAA;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAE3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAA;AAElD,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAA;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAA;AAExC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAAa,EAAE,aAAa,CAAU,CAAA"}
|
package/dist/http/create-app.js
CHANGED
|
@@ -6,18 +6,64 @@ import { errorHandler } from './middlewares/error-handler.middleware.js';
|
|
|
6
6
|
import { projectManifest, } from './middlewares/project-manifest.middleware.js';
|
|
7
7
|
import { readJsonBody, } from './middlewares/read-json-body.middleware.js';
|
|
8
8
|
import { workflowAuthorization, } from './middlewares/workflow-authorization.middleware.js';
|
|
9
|
-
import { DEV_ROUTES_PREFIX, SSE_HEARTBEAT_INTERVAL_IN_MS, } from '../constants/server.js';
|
|
9
|
+
import { DEV_ROUTES_PREFIX, SSE_HEARTBEAT_INTERVAL_IN_MS, WORKFLOW_RUN_EVENTS, } from '../constants/server.js';
|
|
10
10
|
const WORKFLOW_PATH = '/projects/:projectId/workflows/:workflowId';
|
|
11
|
-
const SERVER_EVENTS = [
|
|
11
|
+
const SERVER_EVENTS = [
|
|
12
|
+
'manifest',
|
|
13
|
+
'build:status',
|
|
14
|
+
'build:fail',
|
|
15
|
+
'app:exit',
|
|
16
|
+
...WORKFLOW_RUN_EVENTS,
|
|
17
|
+
];
|
|
18
|
+
const FIND_QUERY_STRINGS = [
|
|
19
|
+
'status',
|
|
20
|
+
'workflow',
|
|
21
|
+
'id',
|
|
22
|
+
'parentRunId',
|
|
23
|
+
'parentActivityId',
|
|
24
|
+
];
|
|
25
|
+
const PAGE_QUERY_INTEGERS = ['limit', 'offset'];
|
|
26
|
+
const MAX_LIMIT = 50;
|
|
27
|
+
const FIND_QUERY_INTEGERS = [
|
|
28
|
+
'createdAfter',
|
|
29
|
+
'createdBefore',
|
|
30
|
+
...PAGE_QUERY_INTEGERS,
|
|
31
|
+
];
|
|
32
|
+
function toIntegers(query, names) {
|
|
33
|
+
const result = {};
|
|
34
|
+
for (const name of names) {
|
|
35
|
+
const value = Number.parseInt(query[name] ?? '', 10);
|
|
36
|
+
if (Number.isFinite(value))
|
|
37
|
+
result[name] = value;
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
function checkPage(page) {
|
|
42
|
+
if (page.limit !== undefined && (page.limit < 1 || page.limit > MAX_LIMIT))
|
|
43
|
+
throw toHttpError(400, `limit must be between 1 and ${MAX_LIMIT}`);
|
|
44
|
+
if (page.offset !== undefined && page.offset < 0)
|
|
45
|
+
throw toHttpError(400, 'offset must be 0 or more');
|
|
46
|
+
}
|
|
47
|
+
function toPageQuery(query) {
|
|
48
|
+
const page = toIntegers(query, PAGE_QUERY_INTEGERS);
|
|
49
|
+
checkPage(page);
|
|
50
|
+
return page;
|
|
51
|
+
}
|
|
12
52
|
function toFindQuery(query) {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
53
|
+
const result = toIntegers(query, FIND_QUERY_INTEGERS);
|
|
54
|
+
checkPage(result);
|
|
55
|
+
for (const name of FIND_QUERY_STRINGS)
|
|
56
|
+
if (query[name])
|
|
57
|
+
result[name] = query[name];
|
|
58
|
+
if (query.rootOnly !== undefined)
|
|
59
|
+
result.rootOnly = query.rootOnly === 'true';
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
function toAdvancePayload(body) {
|
|
63
|
+
if (body !== undefined &&
|
|
64
|
+
(typeof body !== 'object' || body === null || Array.isArray(body)))
|
|
65
|
+
throw toHttpError(400, 'Body must be an object');
|
|
66
|
+
return body?.payload;
|
|
21
67
|
}
|
|
22
68
|
export function createApp({ appProcess, events, projectDir, }) {
|
|
23
69
|
const app = new Hono();
|
|
@@ -36,11 +82,7 @@ export function createApp({ appProcess, events, projectDir, }) {
|
|
|
36
82
|
return context.json({ id }, 201);
|
|
37
83
|
});
|
|
38
84
|
app.patch(`${WORKFLOW_PATH}/runs/:runId/activities/:activityId`, readJsonBody, manifest, authorization, async (context) => {
|
|
39
|
-
const
|
|
40
|
-
if (body !== undefined &&
|
|
41
|
-
(typeof body !== 'object' || body === null || Array.isArray(body)))
|
|
42
|
-
throw toHttpError(400, 'Body must be an object');
|
|
43
|
-
const payload = body?.payload;
|
|
85
|
+
const payload = toAdvancePayload(context.get('body'));
|
|
44
86
|
const activity = await appProcess.call('workflow.async-activities.advance', context.req.param('activityId'), payload);
|
|
45
87
|
return context.json({
|
|
46
88
|
id: activity.id,
|
|
@@ -53,14 +95,23 @@ export function createApp({ appProcess, events, projectDir, }) {
|
|
|
53
95
|
dev.get('/state', context => context.json({ state: appProcess.state }));
|
|
54
96
|
dev.get('/runs', async (context) => context.json(await appProcess.call('workflow.runs.find', toFindQuery(context.req.query()))));
|
|
55
97
|
dev.get('/runs/:id', async (context) => context.json(await appProcess.call('workflow.runs.findById', context.req.param('id'))));
|
|
56
|
-
dev.get('/activities
|
|
57
|
-
dev.get('/
|
|
58
|
-
dev.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
await appProcess.call('
|
|
63
|
-
return context.
|
|
98
|
+
dev.get('/runs/:id/activities', async (context) => context.json(await appProcess.call('workflow.runs.activities.find', context.req.param('id'), toPageQuery(context.req.query()))));
|
|
99
|
+
dev.get('/runs/:id/activities/:activityId/pendings', async (context) => context.json(await appProcess.call('workflow.runs.activities.pendings.find', context.req.param('id'), context.req.param('activityId'), toPageQuery(context.req.query()))));
|
|
100
|
+
dev.get('/runs/:id/activities/:activityId', async (context) => context.json(await appProcess.call('workflow.runs.activities.findById', context.req.param('id'), context.req.param('activityId'))));
|
|
101
|
+
dev.get('/runs/:id/logs', async (context) => context.json(await appProcess.call('workflow.runs.logs.find', context.req.param('id'), toPageQuery(context.req.query()))));
|
|
102
|
+
dev.get('/activities/waiting', async (context) => context.json(await appProcess.call('workflow.async-activities.waiting.list', toPageQuery(context.req.query()))));
|
|
103
|
+
dev.post('/workflows/:workflowId/runs', readJsonBody, async (context) => {
|
|
104
|
+
const { id } = await appProcess.call('workflow.run', context.req.param('workflowId'), context.get('body'));
|
|
105
|
+
return context.json({ id }, 201);
|
|
106
|
+
});
|
|
107
|
+
dev.post('/activities/:activityId/advance', readJsonBody, async (context) => {
|
|
108
|
+
const payload = toAdvancePayload(context.get('body'));
|
|
109
|
+
const activity = await appProcess.call('workflow.async-activities.advance', context.req.param('activityId'), payload);
|
|
110
|
+
return context.json({
|
|
111
|
+
id: activity.id,
|
|
112
|
+
type: activity.type,
|
|
113
|
+
status: activity.status,
|
|
114
|
+
});
|
|
64
115
|
});
|
|
65
116
|
dev.get('/events', context => streamSSE(context, async (stream) => {
|
|
66
117
|
const send = (event, data) => stream.writeSSE({ event, data: JSON.stringify(data ?? null) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/http/create-app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA;AACxE,OAAO,EACL,eAAe,GAEhB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,YAAY,GAEb,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,qBAAqB,GAEtB,MAAM,oDAAoD,CAAA;AAC3D,OAAO,EACL,iBAAiB,EACjB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"create-app.js","sourceRoot":"","sources":["../../src/http/create-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export interface WorkflowRunOptions {
|
|
|
8
8
|
status?: WorkflowRunStatus;
|
|
9
9
|
output?: unknown;
|
|
10
10
|
rejectedReason?: WorkflowRunRejectedReason;
|
|
11
|
+
rejectedActivityId?: string;
|
|
11
12
|
parentWorkflowRunId?: string;
|
|
12
13
|
parentWorkflowRunActivityId?: string;
|
|
13
14
|
batchIndex?: number;
|
|
@@ -22,6 +23,7 @@ export declare class WorkflowRun {
|
|
|
22
23
|
readonly status: WorkflowRunStatus;
|
|
23
24
|
readonly output: unknown;
|
|
24
25
|
readonly rejectedReason: WorkflowRunRejectedReason | undefined;
|
|
26
|
+
readonly rejectedActivityId: string | undefined;
|
|
25
27
|
readonly parentWorkflowRunId: string | undefined;
|
|
26
28
|
readonly parentWorkflowRunActivityId: string | undefined;
|
|
27
29
|
readonly batchIndex: number | undefined;
|
|
@@ -6,6 +6,7 @@ export class WorkflowRun {
|
|
|
6
6
|
status;
|
|
7
7
|
output;
|
|
8
8
|
rejectedReason;
|
|
9
|
+
rejectedActivityId;
|
|
9
10
|
parentWorkflowRunId;
|
|
10
11
|
parentWorkflowRunActivityId;
|
|
11
12
|
batchIndex;
|
|
@@ -19,6 +20,7 @@ export class WorkflowRun {
|
|
|
19
20
|
this.status = options.status ?? 'running';
|
|
20
21
|
this.output = options.output;
|
|
21
22
|
this.rejectedReason = options.rejectedReason;
|
|
23
|
+
this.rejectedActivityId = options.rejectedActivityId;
|
|
22
24
|
this.parentWorkflowRunId = options.parentWorkflowRunId;
|
|
23
25
|
this.parentWorkflowRunActivityId = options.parentWorkflowRunActivityId;
|
|
24
26
|
this.batchIndex = options.batchIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowRun.js","sourceRoot":"","sources":["../../src/models/WorkflowRun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkflowRun.js","sourceRoot":"","sources":["../../src/models/WorkflowRun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAuB/B,MAAM,OAAO,WAAW;IACN,EAAE,CAAQ;IACV,QAAQ,CAAQ;IAChB,KAAK,CAAS;IACd,MAAM,CAAmB;IACzB,MAAM,CAAS;IACf,cAAc,CAAuC;IACrD,kBAAkB,CAAoB;IACtC,mBAAmB,CAAoB;IACvC,2BAA2B,CAAoB;IAC/C,UAAU,CAAoB;IAC9B,SAAS,CAAoB;IAC7B,SAAS,CAAM;IACf,SAAS,CAAM;IAE/B,YACE,QAAgB,EAChB,KAAc,EACd,UAA8B,EAAE;QAEhC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAA;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAA;QACtD,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;QACtE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAA;QAChD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAA;IACtD,CAAC;CACF"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { AsyncActivityResultPending, type ActivityConstructor, type AnyActivity } from '@t4h.framework/core';
|
|
2
2
|
import type Type from 'typebox';
|
|
3
3
|
export type WorkflowRunActivityKind = 'sync' | 'async';
|
|
4
|
+
export type WorkflowRunActivityStatus = 'running' | 'fulfilled' | 'rejected';
|
|
4
5
|
export interface WorkflowRunActivityOptions {
|
|
5
6
|
id?: string;
|
|
7
|
+
status?: WorkflowRunActivityStatus;
|
|
6
8
|
input?: unknown;
|
|
7
9
|
output?: unknown;
|
|
8
10
|
completedAt?: Date;
|
|
@@ -14,6 +16,7 @@ export declare class WorkflowRunActivity {
|
|
|
14
16
|
readonly position: number;
|
|
15
17
|
readonly type: string;
|
|
16
18
|
readonly kind: WorkflowRunActivityKind;
|
|
19
|
+
readonly status: WorkflowRunActivityStatus;
|
|
17
20
|
readonly input: unknown;
|
|
18
21
|
readonly output: unknown;
|
|
19
22
|
readonly completedAt: Date | undefined;
|
|
@@ -6,6 +6,7 @@ export class WorkflowRunActivity {
|
|
|
6
6
|
position;
|
|
7
7
|
type;
|
|
8
8
|
kind;
|
|
9
|
+
status;
|
|
9
10
|
input;
|
|
10
11
|
output;
|
|
11
12
|
completedAt;
|
|
@@ -16,6 +17,7 @@ export class WorkflowRunActivity {
|
|
|
16
17
|
this.position = position;
|
|
17
18
|
this.type = type;
|
|
18
19
|
this.kind = kind;
|
|
20
|
+
this.status = options.status ?? 'running';
|
|
19
21
|
this.input = options.input;
|
|
20
22
|
this.output = options.output;
|
|
21
23
|
this.completedAt = options.completedAt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowRunActivity.js","sourceRoot":"","sources":["../../src/models/WorkflowRunActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,YAAY,GAGb,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkflowRunActivity.js","sourceRoot":"","sources":["../../src/models/WorkflowRunActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,YAAY,GAGb,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAe/B,MAAM,OAAO,mBAAmB;IACd,EAAE,CAAQ;IACV,KAAK,CAAQ;IACb,QAAQ,CAAQ;IAChB,IAAI,CAAQ;IACZ,IAAI,CAAyB;IAC7B,MAAM,CAA2B;IACjC,KAAK,CAAS;IACd,MAAM,CAAS;IACf,WAAW,CAAkB;IAC7B,SAAS,CAAM;IAE/B,YACE,KAAa,EACb,QAAgB,EAChB,IAAY,EACZ,IAA6B,EAC7B,UAAsC,EAAE;QAExC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAA;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAA;QACzC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAA;IAClD,CAAC;IAEM,MAAM,CAAC,eAAe,CAC3B,KAAa,EACb,QAAgB,EAChB,QAA0C,EAC1C,UAAsC,EAAE;QAExC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,YAAY,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QAE1E,OAAO,IAAI,mBAAmB,CAC5B,KAAK,EACL,QAAQ,EACR,QAAQ,CAAC,IAAI,EACb,IAAI,EACJ,OAAO,CACR,CAAA;IACH,CAAC;CACF;AAgBD,MAAM,OAAO,+BAA+B;IAC1B,EAAE,CAAQ;IACV,UAAU,CAAQ;IAClB,QAAQ,CAAQ;IAChB,UAAU,CAAoB;IAC9B,MAAM,CAA4B;IAClC,MAAM,CAA0B;IAChC,SAAS,CAAkB;IAC3B,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,SAAS,CAAM;IACf,SAAS,CAAM;IAE/B,YACE,UAAkB,EAClB,QAAgB,EAChB,UAAkD,EAAE;QAEpD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAA;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAA;QAChD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAA;IACtD,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,0BAA0B,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,MAAe;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import type { Log } from '@t4h.framework/core';
|
|
2
2
|
import { WorkflowRun, type WorkflowRunRejectedReason, type WorkflowRunStatus } from '../models/WorkflowRun.js';
|
|
3
3
|
import { DatabaseService } from '../services/Database.service.js';
|
|
4
|
+
export interface PageOptions {
|
|
5
|
+
limit?: number;
|
|
6
|
+
offset?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkflowRunLogsPage {
|
|
9
|
+
count: number;
|
|
10
|
+
logs: Log[];
|
|
11
|
+
}
|
|
4
12
|
export interface WorkflowRunFindOptions {
|
|
5
13
|
status?: WorkflowRunStatus;
|
|
6
14
|
workflow?: string;
|
|
15
|
+
id?: string;
|
|
16
|
+
parentRunId?: string;
|
|
17
|
+
parentActivityId?: string;
|
|
18
|
+
rootOnly?: boolean;
|
|
19
|
+
createdAfter?: number;
|
|
20
|
+
createdBefore?: number;
|
|
7
21
|
limit?: number;
|
|
8
22
|
offset?: number;
|
|
9
23
|
}
|
|
@@ -18,11 +32,12 @@ export declare class WorkflowRunRepository {
|
|
|
18
32
|
findStartableIdsByParentActivityId(parentActivityId: string): string[];
|
|
19
33
|
findBatchSiblings(parentActivityId: string): Promise<WorkflowRun[]>;
|
|
20
34
|
countRunningByParentActivityId(parentActivityId: string): number;
|
|
21
|
-
find({ status, workflow, limit, offset, }?: WorkflowRunFindOptions): Promise<[WorkflowRun[], number]>;
|
|
35
|
+
find({ status, workflow, id, parentRunId, parentActivityId, rootOnly, createdAfter, createdBefore, limit, offset, }?: WorkflowRunFindOptions): Promise<[WorkflowRun[], number]>;
|
|
22
36
|
finish(id: string, output: unknown): Promise<void>;
|
|
23
|
-
reject(id: string, reason: WorkflowRunRejectedReason): void;
|
|
37
|
+
reject(id: string, reason: WorkflowRunRejectedReason, activityId?: string): void;
|
|
24
38
|
createLogs(runId: string, logs: readonly Log[]): Promise<void>;
|
|
25
|
-
findLogs(runId: string): Promise<
|
|
39
|
+
findLogs(runId: string, { limit, offset }?: PageOptions): Promise<WorkflowRunLogsPage>;
|
|
40
|
+
findParentActivityIdsWithRuns(parentActivityIds: readonly string[]): Set<string>;
|
|
26
41
|
private toRow;
|
|
27
42
|
private toModel;
|
|
28
43
|
}
|