@cascade-flow/backend-postgres 0.1.0 → 0.1.1
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/dist/db.d.ts +112 -96
- package/dist/db.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +510 -460
- package/dist/index.js.map +5 -5
- package/dist/migrations.d.ts +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/db.d.ts
CHANGED
|
@@ -6,102 +6,118 @@ import pg from "pg";
|
|
|
6
6
|
import type { Event, StepEvent, WorkflowMetadata, StepDefinition } from "@cascade-flow/backend-interface";
|
|
7
7
|
export type { Pool } from "pg";
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Database client that encapsulates pool and schema configuration
|
|
10
|
+
*/
|
|
11
|
+
export declare class DatabaseClient {
|
|
12
|
+
private pool;
|
|
13
|
+
private schema;
|
|
14
|
+
constructor(pool: pg.Pool, schema: string);
|
|
15
|
+
/**
|
|
16
|
+
* Get the underlying pool (useful for migrations and direct access)
|
|
17
|
+
*/
|
|
18
|
+
getPool(): pg.Pool;
|
|
19
|
+
/**
|
|
20
|
+
* Get the schema name
|
|
21
|
+
*/
|
|
22
|
+
getSchema(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Generic event append - handles both workflow and step events
|
|
25
|
+
* Extracts normalized fields from events for efficient querying
|
|
26
|
+
*/
|
|
27
|
+
appendEvent(table: "workflow_events" | "step_events", event: Event): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Append event using an existing client (for transactions)
|
|
30
|
+
* Same as appendEvent but doesn't manage the client connection
|
|
31
|
+
*/
|
|
32
|
+
appendEventWithClient(client: pg.PoolClient, table: "workflow_events" | "step_events", event: Event): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Load events with optional filtering
|
|
35
|
+
*/
|
|
36
|
+
loadEvents(table: "workflow_events" | "step_events", filters: {
|
|
37
|
+
workflowSlug?: string;
|
|
38
|
+
runId?: string;
|
|
39
|
+
stepId?: string;
|
|
40
|
+
category?: "workflow" | "step";
|
|
41
|
+
types?: string[];
|
|
42
|
+
}): Promise<Event[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Load all events for a specific run (both workflow and step events)
|
|
45
|
+
*/
|
|
46
|
+
loadAllRunEvents(workflowSlug: string, runId: string): Promise<Event[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Atomic step claiming using SELECT FOR UPDATE SKIP LOCKED
|
|
49
|
+
* Returns true if claim succeeded, false if already claimed
|
|
50
|
+
*/
|
|
51
|
+
claimScheduledStep(workflowSlug: string, runId: string, stepId: string, workerId: string, eventToWrite: StepEvent): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Get all scheduled steps across workflows
|
|
54
|
+
* Filters by available_at_us for delayed scheduling support
|
|
55
|
+
*/
|
|
56
|
+
listScheduledSteps(options?: {
|
|
57
|
+
workflowSlugs?: string[];
|
|
58
|
+
limit?: number;
|
|
59
|
+
}): Promise<Array<{
|
|
60
|
+
workflowSlug: string;
|
|
61
|
+
runId: string;
|
|
62
|
+
stepId: string;
|
|
63
|
+
}>>;
|
|
64
|
+
/**
|
|
65
|
+
* Find stale steps (last heartbeat older than threshold)
|
|
66
|
+
* Uses normalized worker_id column for efficient querying
|
|
67
|
+
*/
|
|
68
|
+
findStaleSteps(staleThresholdUs: number): Promise<Array<{
|
|
69
|
+
workflowSlug: string;
|
|
70
|
+
runId: string;
|
|
71
|
+
stepId: string;
|
|
72
|
+
workerId: string;
|
|
73
|
+
}>>;
|
|
74
|
+
/**
|
|
75
|
+
* Save step output
|
|
76
|
+
*/
|
|
77
|
+
saveStepOutput(workflowSlug: string, runId: string, stepId: string, attemptNumber: number, output: any): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Load step output
|
|
80
|
+
*/
|
|
81
|
+
loadStepOutput(workflowSlug: string, runId: string, stepId: string, attemptNumber: number): Promise<any | null>;
|
|
82
|
+
/**
|
|
83
|
+
* Register workflow metadata (upsert)
|
|
84
|
+
*/
|
|
85
|
+
upsertWorkflowMetadata(slug: string, name: string, location: string | undefined, inputSchemaJSON: any | undefined): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Register step definition (upsert)
|
|
88
|
+
*/
|
|
89
|
+
upsertStepDefinition(workflowSlug: string, step: StepDefinition): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Get workflow metadata by slug
|
|
92
|
+
*/
|
|
93
|
+
getWorkflowMetadata(slug: string): Promise<WorkflowMetadata | null>;
|
|
94
|
+
/**
|
|
95
|
+
* List all workflow metadata
|
|
96
|
+
*/
|
|
97
|
+
listWorkflowMetadata(): Promise<WorkflowMetadata[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Get step definitions for a workflow
|
|
100
|
+
*/
|
|
101
|
+
getWorkflowSteps(workflowSlug: string): Promise<StepDefinition[]>;
|
|
102
|
+
/**
|
|
103
|
+
* Save idempotency key (returns existing runId if key already exists)
|
|
104
|
+
*/
|
|
105
|
+
saveIdempotencyKey(hash: string, runId: string): Promise<string>;
|
|
106
|
+
/**
|
|
107
|
+
* Get all distinct run IDs for a workflow
|
|
108
|
+
*/
|
|
109
|
+
listRunIds(workflowSlug: string): Promise<string[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Get all workflows that have active (incomplete) runs
|
|
112
|
+
*/
|
|
113
|
+
listActiveWorkflows(): Promise<string[]>;
|
|
114
|
+
/**
|
|
115
|
+
* Check if a run exists
|
|
116
|
+
*/
|
|
117
|
+
runExists(workflowSlug: string, runId: string): Promise<boolean>;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Create a connection pool
|
|
10
121
|
*/
|
|
11
122
|
export declare function createPool(connectionString: string): pg.Pool;
|
|
12
|
-
/**
|
|
13
|
-
* Generic event append - handles both workflow and step events
|
|
14
|
-
* Extracts normalized fields from events for efficient querying
|
|
15
|
-
*/
|
|
16
|
-
export declare function appendEvent(pool: pg.Pool, table: "workflow_events" | "step_events", event: Event): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Append event using an existing client (for transactions)
|
|
19
|
-
* Same as appendEvent but doesn't manage the client connection
|
|
20
|
-
*/
|
|
21
|
-
export declare function appendEventWithClient(client: pg.PoolClient, table: "workflow_events" | "step_events", event: Event): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Load events with optional filtering
|
|
24
|
-
*/
|
|
25
|
-
export declare function loadEvents(pool: pg.Pool, table: "workflow_events" | "step_events", filters: {
|
|
26
|
-
workflowSlug?: string;
|
|
27
|
-
runId?: string;
|
|
28
|
-
stepId?: string;
|
|
29
|
-
category?: "workflow" | "step";
|
|
30
|
-
types?: string[];
|
|
31
|
-
}): Promise<Event[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Load all events for a specific run (both workflow and step events)
|
|
34
|
-
*/
|
|
35
|
-
export declare function loadAllRunEvents(pool: pg.Pool, workflowSlug: string, runId: string): Promise<Event[]>;
|
|
36
|
-
/**
|
|
37
|
-
* Atomic step claiming using SELECT FOR UPDATE SKIP LOCKED
|
|
38
|
-
* Returns true if claim succeeded, false if already claimed
|
|
39
|
-
*/
|
|
40
|
-
export declare function claimScheduledStep(pool: pg.Pool, workflowSlug: string, runId: string, stepId: string, workerId: string, eventToWrite: StepEvent): Promise<boolean>;
|
|
41
|
-
/**
|
|
42
|
-
* Get all scheduled steps across workflows
|
|
43
|
-
* Filters by available_at_us for delayed scheduling support
|
|
44
|
-
*/
|
|
45
|
-
export declare function listScheduledSteps(pool: pg.Pool, options?: {
|
|
46
|
-
workflowSlugs?: string[];
|
|
47
|
-
limit?: number;
|
|
48
|
-
}): Promise<Array<{
|
|
49
|
-
workflowSlug: string;
|
|
50
|
-
runId: string;
|
|
51
|
-
stepId: string;
|
|
52
|
-
}>>;
|
|
53
|
-
/**
|
|
54
|
-
* Find stale steps (last heartbeat older than threshold)
|
|
55
|
-
* Uses normalized worker_id column for efficient querying
|
|
56
|
-
*/
|
|
57
|
-
export declare function findStaleSteps(pool: pg.Pool, staleThresholdUs: number): Promise<Array<{
|
|
58
|
-
workflowSlug: string;
|
|
59
|
-
runId: string;
|
|
60
|
-
stepId: string;
|
|
61
|
-
workerId: string;
|
|
62
|
-
}>>;
|
|
63
|
-
/**
|
|
64
|
-
* Save step output
|
|
65
|
-
*/
|
|
66
|
-
export declare function saveStepOutput(pool: pg.Pool, workflowSlug: string, runId: string, stepId: string, attemptNumber: number, output: any): Promise<void>;
|
|
67
|
-
/**
|
|
68
|
-
* Load step output
|
|
69
|
-
*/
|
|
70
|
-
export declare function loadStepOutput(pool: pg.Pool, workflowSlug: string, runId: string, stepId: string, attemptNumber: number): Promise<any | null>;
|
|
71
|
-
/**
|
|
72
|
-
* Register workflow metadata (upsert)
|
|
73
|
-
*/
|
|
74
|
-
export declare function upsertWorkflowMetadata(pool: pg.Pool, slug: string, name: string, location: string | undefined, inputSchemaJSON: any | undefined): Promise<void>;
|
|
75
|
-
/**
|
|
76
|
-
* Register step definition (upsert)
|
|
77
|
-
*/
|
|
78
|
-
export declare function upsertStepDefinition(pool: pg.Pool, workflowSlug: string, step: StepDefinition): Promise<void>;
|
|
79
|
-
/**
|
|
80
|
-
* Get workflow metadata by slug
|
|
81
|
-
*/
|
|
82
|
-
export declare function getWorkflowMetadata(pool: pg.Pool, slug: string): Promise<WorkflowMetadata | null>;
|
|
83
|
-
/**
|
|
84
|
-
* List all workflow metadata
|
|
85
|
-
*/
|
|
86
|
-
export declare function listWorkflowMetadata(pool: pg.Pool): Promise<WorkflowMetadata[]>;
|
|
87
|
-
/**
|
|
88
|
-
* Get step definitions for a workflow
|
|
89
|
-
*/
|
|
90
|
-
export declare function getWorkflowSteps(pool: pg.Pool, workflowSlug: string): Promise<StepDefinition[]>;
|
|
91
|
-
/**
|
|
92
|
-
* Save idempotency key (returns existing runId if key already exists)
|
|
93
|
-
*/
|
|
94
|
-
export declare function saveIdempotencyKey(pool: pg.Pool, hash: string, runId: string): Promise<string>;
|
|
95
|
-
/**
|
|
96
|
-
* Get all distinct run IDs for a workflow
|
|
97
|
-
*/
|
|
98
|
-
export declare function listRunIds(pool: pg.Pool, workflowSlug: string): Promise<string[]>;
|
|
99
|
-
/**
|
|
100
|
-
* Get all workflows that have active (incomplete) runs
|
|
101
|
-
*/
|
|
102
|
-
export declare function listActiveWorkflows(pool: pg.Pool): Promise<string[]>;
|
|
103
|
-
/**
|
|
104
|
-
* Check if a run exists
|
|
105
|
-
*/
|
|
106
|
-
export declare function runExists(pool: pg.Pool, workflowSlug: string, runId: string): Promise<boolean>;
|
|
107
123
|
//# sourceMappingURL=db.d.ts.map
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EAET,gBAAgB,EAChB,cAAc,EAEf,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,14 +11,15 @@ import { Backend, type StepStartMetadata, type StepCompleteMetadata, type StepEr
|
|
|
11
11
|
* - JSONB storage for flexible schema evolution
|
|
12
12
|
*/
|
|
13
13
|
export declare class PostgresBackend extends Backend {
|
|
14
|
-
private
|
|
14
|
+
private db;
|
|
15
15
|
private initialized;
|
|
16
16
|
/**
|
|
17
17
|
* Create a new Postgres backend
|
|
18
18
|
*
|
|
19
19
|
* @param connectionString - PostgreSQL connection string (e.g., postgres://user:pass@host/db)
|
|
20
|
+
* @param schema - PostgreSQL schema name (default: 'cascadeflow'). Isolated from public schema to avoid conflicts.
|
|
20
21
|
*/
|
|
21
|
-
constructor(connectionString: string);
|
|
22
|
+
constructor(connectionString: string, schema?: string);
|
|
22
23
|
/**
|
|
23
24
|
* Initialize the backend by running database migrations
|
|
24
25
|
* This should be called by the worker on startup to ensure the database schema is ready.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,UAAU,EAEf,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,aAAa,EAkBlB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAkBtB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|