Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ Multi-stage triggers, action pipelines, execution logs, and cron scheduling stan

| Item | Status | Location |
|:---|:---:|:---|
| Flow orchestration (14 node types) | ✅ | `automation/flow.zod.ts` |
| Flow orchestration (18 node types) | ✅ | `automation/flow.zod.ts` |
| Trigger registry (record, field, webhook) | ✅ | `automation/trigger-registry.zod.ts` |
| Cron scheduling expression | ✅ | `automation/etl.zod.ts`, `automation/webhook.zod.ts` |
| Action pipeline (webhook, email, CRUD, notification) | ✅ | `automation/flow.zod.ts` (HTTP, CRUD, script nodes) |
Expand All @@ -166,6 +166,11 @@ Multi-stage triggers, action pipelines, execution logs, and cron scheduling stan
| Safe expression evaluation (no `new Function`) | ✅ | `@objectstack/service-automation` → operator-based parser, no code execution |
| Node input/output schema validation | ✅ | `automation/flow.zod.ts` → `inputSchema`/`outputSchema` per node, runtime validation |
| Flow version history & rollback | ✅ | `automation/flow.zod.ts` → `FlowVersionHistorySchema`, engine version management |
| BPMN parallel gateway & join gateway | ✅ | `automation/flow.zod.ts` → `parallel_gateway` (AND-split), `join_gateway` (AND-join) node types |
| BPMN default sequence flow | ✅ | `automation/flow.zod.ts` → `isDefault` field + `conditional` edge type on `FlowEdgeSchema` |
| BPMN boundary events (error/timer/signal) | ✅ | `automation/flow.zod.ts` → `boundary_event` node type + `boundaryConfig` (interrupting/non-interrupting) |
| BPMN wait event configuration | ✅ | `automation/flow.zod.ts` → `waitEventConfig` (timer/signal/webhook/manual/condition event types) |
| BPMN checkpoint reasons (parallel join, boundary) | ✅ | `automation/execution.zod.ts` → `parallel_join`, `boundary_event` in `CheckpointSchema.reason` |

### 3. File Direct Upload & Resumable Upload Protocol

Expand Down
2 changes: 1 addition & 1 deletion packages/spec/src/automation/execution.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ describe('CheckpointSchema', () => {
});

it('should accept all valid checkpoint reasons', () => {
const reasons = ['wait', 'screen_input', 'approval', 'error', 'manual_pause'];
const reasons = ['wait', 'screen_input', 'approval', 'error', 'manual_pause', 'parallel_join', 'boundary_event'];
reasons.forEach((r) => {
const cp = CheckpointSchema.parse({
id: 'cp_test',
Expand Down
2 changes: 1 addition & 1 deletion packages/spec/src/automation/execution.zod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ export const CheckpointSchema = z.object({
expiresAt: z.string().datetime().optional().describe('Checkpoint expiration (auto-cleanup)'),

/** Reason */
reason: z.enum(['wait', 'screen_input', 'approval', 'error', 'manual_pause'])
reason: z.enum(['wait', 'screen_input', 'approval', 'error', 'manual_pause', 'parallel_join', 'boundary_event'])
.describe('Why the execution was checkpointed'),
});
export type Checkpoint = z.infer<typeof CheckpointSchema>;
Expand Down
Loading