@siglo/postgres 1.1.0 → 1.2.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 +88 -55
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +26 -12
- package/dist/adapter.js.map +1 -1
- package/dist/idempotency.d.ts.map +1 -1
- package/dist/idempotency.js +1 -1
- package/dist/idempotency.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -52,11 +52,11 @@ npm install --save-dev @types/pg
|
|
|
52
52
|
|
|
53
53
|
### Peer Dependency Matrix
|
|
54
54
|
|
|
55
|
-
| Package
|
|
56
|
-
|
|
|
57
|
-
| `@siglo/core`
|
|
58
|
-
| `pg`
|
|
59
|
-
| PostgreSQL Server | `12+`
|
|
55
|
+
| Package | Version | Requirement |
|
|
56
|
+
| :---------------- | :------- | :--------------------------------------------------------------------- |
|
|
57
|
+
| `@siglo/core` | `^1.0.0` | Core workflow engine & interfaces |
|
|
58
|
+
| `pg` | `^8.0.0` | PostgreSQL client driver (supports both `Pool` and `Client`) |
|
|
59
|
+
| PostgreSQL Server | `12+` | Requires JSONB, Advisory Locks (`hashtextextended`), and `TIMESTAMPTZ` |
|
|
60
60
|
|
|
61
61
|
---
|
|
62
62
|
|
|
@@ -127,6 +127,7 @@ CREATE INDEX IF NOT EXISTS idx_siglo_idempotency_expires ON siglo_idempotency(ex
|
|
|
127
127
|
### SQL Injection Protection
|
|
128
128
|
|
|
129
129
|
Custom table names passed to `PostgresStorageAdapter` or `PostgresIdempotencyStore` are validated against strict SQL identifier constraints:
|
|
130
|
+
|
|
130
131
|
- Must match `/^[a-zA-Z_][a-zA-Z0-9_]*$/`.
|
|
131
132
|
- Must not exceed 63 characters (PostgreSQL standard identifier length limit).
|
|
132
133
|
- Throws an descriptive `Error` if invalid characters or injection attempts are detected.
|
|
@@ -143,42 +144,48 @@ import { PostgresStorageAdapter } from '@siglo/postgres';
|
|
|
143
144
|
|
|
144
145
|
### Constructor Options (`PostgresStorageAdapterOptions`)
|
|
145
146
|
|
|
146
|
-
| Option
|
|
147
|
-
|
|
|
148
|
-
| `client`
|
|
149
|
-
| `checkpointsTable`
|
|
150
|
-
| `eventsTable`
|
|
151
|
-
| `waitRecordsTable`
|
|
152
|
-
| `recordContextChanges` | `boolean`
|
|
147
|
+
| Option | Type | Default | Description |
|
|
148
|
+
| :--------------------- | :------------------------------------------ | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
149
|
+
| `client` | `PostgresClientInterface \| Pool \| Client` | _Required_ | Active PostgreSQL `Pool`, `Client`, or compatible wrapper with a `.query(text, values)` method. |
|
|
150
|
+
| `checkpointsTable` | `string` | `'siglo_checkpoints'` | Table name for execution checkpoints. |
|
|
151
|
+
| `eventsTable` | `string` | `'siglo_context_events'` | Table name for context mutation audit logs. |
|
|
152
|
+
| `waitRecordsTable` | `string` | `'siglo_wait_records'` | Table name for durable wait and continuation records. |
|
|
153
|
+
| `recordContextChanges` | `boolean` | `true` | When `true`, automatically streams step context mutations into `eventsTable`. Set `false` for low-latency pipelines that do not require fine-grained field auditing. |
|
|
153
154
|
|
|
154
155
|
### Checkpointing & Optimistic Concurrency Control (OCC)
|
|
155
156
|
|
|
156
157
|
#### `ensureTables(): Promise<void>`
|
|
158
|
+
|
|
157
159
|
Initializes `checkpointsTable`, `eventsTable`, and `waitRecordsTable` along with indexes and columns if they do not exist.
|
|
158
160
|
|
|
159
161
|
#### `saveCheckpoint(checkpoint: SerializedExecutionStack, expectedVersion?: number): Promise<void>`
|
|
162
|
+
|
|
160
163
|
Persists or updates an execution stack.
|
|
164
|
+
|
|
161
165
|
- **OCC Enforcement**: If `expectedVersion` is specified (or exists on `checkpoint.occVersion`), executes an atomic version-guarded update:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
166
|
+
```sql
|
|
167
|
+
UPDATE siglo_checkpoints
|
|
168
|
+
SET state = CASE WHEN state->>'status' = 'cancelled' THEN jsonb_set($1::jsonb, '{status}', '"cancelled"') ELSE $1::jsonb END,
|
|
169
|
+
namespace = $2,
|
|
170
|
+
version = version + 1,
|
|
171
|
+
updated_at = NOW()
|
|
172
|
+
WHERE stack_id = $3 AND version = $4
|
|
173
|
+
RETURNING version
|
|
174
|
+
```
|
|
171
175
|
- **Conflict Handling**: If `rowCount === 0`, it fetches the current database version and throws an `OptimisticLockException(stackId, currentVersion, expectedVersion)`.
|
|
172
176
|
- **Cancellation Preservation**: If a workflow was previously cancelled, updating the checkpoint preserves the `'cancelled'` status atomically.
|
|
173
177
|
- **Version Tracking**: On success, assigns the new incremented version to `checkpoint.occVersion` and `checkpoint.revision`.
|
|
174
178
|
- **Write Tracking**: Automatically serialized under `withWorkflowLock` scopes to drain all pending writes before lock release.
|
|
175
179
|
|
|
176
180
|
#### `getCheckpoint(stackId: string): Promise<SerializedExecutionStack | undefined>`
|
|
181
|
+
|
|
177
182
|
Retrieves the serialized execution stack by `stackId`.
|
|
183
|
+
|
|
178
184
|
- Automatically assigns `occVersion` and `revision` from the database `version` column.
|
|
179
185
|
- Returns `undefined` if `stackId` is empty or not found.
|
|
180
186
|
|
|
181
187
|
#### `cleanExpiredCheckpoints(): Promise<number>`
|
|
188
|
+
|
|
182
189
|
Deletes checkpoints where `(state->>'expiresAt')::bigint <= (EXTRACT(EPOCH FROM NOW()) * 1000)::bigint`. Returns the count of deleted rows.
|
|
183
190
|
|
|
184
191
|
---
|
|
@@ -186,18 +193,20 @@ Deletes checkpoints where `(state->>'expiresAt')::bigint <= (EXTRACT(EPOCH FROM
|
|
|
186
193
|
### Context Mutation Audit Logging
|
|
187
194
|
|
|
188
195
|
#### `onContextChange(entry): Promise<void>`
|
|
196
|
+
|
|
189
197
|
Records step mutation audit events into `eventsTable`.
|
|
198
|
+
|
|
190
199
|
- Parameter `entry`:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
200
|
+
```typescript
|
|
201
|
+
{
|
|
202
|
+
namespace?: string;
|
|
203
|
+
stackId: string;
|
|
204
|
+
stepId: string;
|
|
205
|
+
field: string;
|
|
206
|
+
value: any;
|
|
207
|
+
timestamp: number;
|
|
208
|
+
}
|
|
209
|
+
```
|
|
201
210
|
- Converts `timestamp` (in milliseconds) using `to_timestamp(timestamp / 1000.0)`.
|
|
202
211
|
- Operates as a non-blocking stream: internal errors are caught to avoid disrupting primary workflow execution.
|
|
203
212
|
|
|
@@ -206,6 +215,7 @@ Records step mutation audit events into `eventsTable`.
|
|
|
206
215
|
### Distributed Workflow Locking
|
|
207
216
|
|
|
208
217
|
#### `withWorkflowLock<T>(stackId: string, action: () => Promise<T>): Promise<T>`
|
|
218
|
+
|
|
209
219
|
Executes `action` inside a PostgreSQL session-level advisory lock using `pg_try_advisory_lock`:
|
|
210
220
|
|
|
211
221
|
```sql
|
|
@@ -225,14 +235,19 @@ SELECT pg_try_advisory_lock(hashtextextended('siglo:workflow:' || stackId, 0)) A
|
|
|
225
235
|
### Durable Wait Records & Resumption
|
|
226
236
|
|
|
227
237
|
#### `saveWaitRecord(record: any): Promise<void>`
|
|
238
|
+
|
|
228
239
|
Persists or updates a durable wait record in `waitRecordsTable` and embeds the record into the checkpoint metadata (`checkpoint.metadata.waitRecord`).
|
|
240
|
+
|
|
229
241
|
- Key properties on `record`: `correlationKey`, `stackId`, `namespace`, `eventName`, `status`, `continuationStepIndex`, `version`, `data`, `expiresAt`.
|
|
230
242
|
|
|
231
243
|
#### `getWaitRecord(correlationKeyOrStackId: string): Promise<any | undefined>`
|
|
244
|
+
|
|
232
245
|
Retrieves a wait record from `waitRecordsTable` matching either `correlation_key` or `stack_id`. Falls back to querying `siglo_checkpoints.state->'metadata'->'waitRecord'` if not found in the wait records table.
|
|
233
246
|
|
|
234
247
|
#### `claimWaitRecord(correlationKey: string, claimantId?: string, options?: { allowExpired?: boolean; eventPayload?: any }): Promise<any>`
|
|
248
|
+
|
|
235
249
|
Atomically claims a wait record for resumption via a single Compare-And-Swap (CAS) update:
|
|
250
|
+
|
|
236
251
|
```sql
|
|
237
252
|
UPDATE siglo_wait_records
|
|
238
253
|
SET status = 'RESUMING', locked_at = NOW(), locked_by = $1,
|
|
@@ -242,18 +257,23 @@ WHERE correlation_key = $2
|
|
|
242
257
|
AND (resume_payload IS NOT NULL OR $4 OR expires_at IS NULL OR expires_at > NOW())
|
|
243
258
|
RETURNING *
|
|
244
259
|
```
|
|
260
|
+
|
|
245
261
|
- **Expiration Safety**: If the record has expired and `allowExpired` is not set, throws `ExpiredWaitException(correlationKey, expiresAt, eventName)`.
|
|
246
262
|
- **Duplicate Safety**: If the record is already claimed or resumed, throws `DuplicateEventException(correlationKey)`.
|
|
247
263
|
- **Returns**: The claimed wait record with `status: 'RESUMING'`, `lockedBy`, and parsed JSON `resumePayload`.
|
|
248
264
|
|
|
249
265
|
#### `completeWaitRecord(correlationKey: string, claimantId: string): Promise<void>`
|
|
266
|
+
|
|
250
267
|
Marks the claimed wait record as `'RESUMED'`, setting `resumed_by` and `resumed_at = NOW()`. Drains pending async writes before completing.
|
|
251
268
|
|
|
252
269
|
#### `cancelWaitRecord(correlationKey: string): Promise<void>`
|
|
270
|
+
|
|
253
271
|
Transitions a wait record status to `'CANCELLED'`.
|
|
254
272
|
|
|
255
273
|
#### `cancelWorkflow(stackId: string): Promise<void>`
|
|
274
|
+
|
|
256
275
|
Atomically cancels both active wait records and the execution checkpoint for `stackId`:
|
|
276
|
+
|
|
257
277
|
- Cancels all wait records: `UPDATE siglo_wait_records SET status = 'CANCELLED' WHERE stack_id = $1`.
|
|
258
278
|
- Updates the checkpoint state: `UPDATE siglo_checkpoints SET state = jsonb_set(state, '{status}', '"cancelled"'), version = version + 1 WHERE stack_id = $1`.
|
|
259
279
|
|
|
@@ -261,12 +281,12 @@ Atomically cancels both active wait records and the execution checkpoint for `st
|
|
|
261
281
|
|
|
262
282
|
### Retention & Cleanup
|
|
263
283
|
|
|
264
|
-
| Method
|
|
265
|
-
|
|
|
266
|
-
| `cleanupOldCheckpoints`
|
|
267
|
-
| `cleanupOldEvents`
|
|
268
|
-
| `cleanupOldWaitRecords`
|
|
269
|
-
| `cleanExpiredCheckpoints` |
|
|
284
|
+
| Method | Parameters | Default | Description |
|
|
285
|
+
| :------------------------ | :----------------------- | :------- | :----------------------------------------------------------------------------- |
|
|
286
|
+
| `cleanupOldCheckpoints` | `retentionDays?: number` | `30` | Deletes checkpoints where `updated_at < NOW() - make_interval(days => $1)`. |
|
|
287
|
+
| `cleanupOldEvents` | `retentionDays?: number` | `30` | Deletes audit events where `created_at < NOW() - make_interval(days => $1)`. |
|
|
288
|
+
| `cleanupOldWaitRecords` | `retentionDays?: number` | `30` | Deletes wait records where `updated_at < NOW() - make_interval(days => $1)`. |
|
|
289
|
+
| `cleanExpiredCheckpoints` | _(none)_ | _(none)_ | Deletes checkpoints whose embedded `state->>'expiresAt'` timestamp has passed. |
|
|
270
290
|
|
|
271
291
|
---
|
|
272
292
|
|
|
@@ -280,38 +300,47 @@ import { PostgresIdempotencyStore } from '@siglo/postgres';
|
|
|
280
300
|
|
|
281
301
|
### Constructor Options (`PostgresIdempotencyOptions`)
|
|
282
302
|
|
|
283
|
-
| Option
|
|
284
|
-
|
|
|
285
|
-
| `client`
|
|
286
|
-
| `tableName`
|
|
287
|
-
| `defaultTtlMs` | `number`
|
|
303
|
+
| Option | Type | Default | Description |
|
|
304
|
+
| :------------- | :------------------------------------------ | :-------------------- | :------------------------------------------------------------------ |
|
|
305
|
+
| `client` | `PostgresClientInterface \| Pool \| Client` | _Required_ | Active PostgreSQL client or connection pool. |
|
|
306
|
+
| `tableName` | `string` | `'siglo_idempotency'` | Name of idempotency table. Must match `/^[a-zA-Z_][a-zA-Z0-9_]*$/`. |
|
|
307
|
+
| `defaultTtlMs` | `number` | `86400000` (24 hours) | Default lock and result expiration TTL in milliseconds. |
|
|
288
308
|
|
|
289
309
|
### Methods
|
|
290
310
|
|
|
291
311
|
#### `ensureTable(): Promise<void>`
|
|
312
|
+
|
|
292
313
|
Creates `tableName` and the index on `expires_at` if they do not exist.
|
|
293
314
|
|
|
294
315
|
#### `claim(key: string, ttlMs?: number): Promise<'claimed' | 'completed' | 'in-progress'>`
|
|
316
|
+
|
|
295
317
|
Atomically attempts to claim the key:
|
|
318
|
+
|
|
296
319
|
1. **Initial Insert**: Executes `INSERT ... VALUES ($1, 'in-progress', $2, NOW()) ON CONFLICT (key) DO NOTHING`. Returns `'claimed'` if row inserted.
|
|
297
320
|
2. **Expired Lock Reclamation**: If the key exists but `expires_at <= NOW()`, updates status back to `'in-progress'`, updates `expires_at`, clears `result`, and returns `'claimed'`.
|
|
298
321
|
3. **Completed Result**: If `status === 'completed'`, returns `'completed'`.
|
|
299
322
|
4. **Active Claim**: If actively running and unexpired, returns `'in-progress'`.
|
|
300
323
|
|
|
301
324
|
#### `complete(key: string, result: unknown, ttlMs?: number): Promise<void>`
|
|
325
|
+
|
|
302
326
|
Transitions key status to `'completed'`, serializes `result` into `result JSONB`, and sets `expires_at = NOW() + ttlMs`.
|
|
303
327
|
|
|
304
328
|
#### `fail(key: string, _error?: unknown): Promise<void>`
|
|
329
|
+
|
|
305
330
|
Deletes in-progress claims (`WHERE key = $1 AND status = 'in-progress'`) so subsequent retries can proceed immediately.
|
|
306
331
|
|
|
307
332
|
#### `getResult(key: string): Promise<unknown | undefined>`
|
|
333
|
+
|
|
308
334
|
Retrieves and deserializes the stored `result` JSONB for completed keys. Returns `undefined` if key is not completed or missing.
|
|
309
335
|
|
|
310
336
|
#### `get(key: string): Promise<unknown | undefined>`
|
|
337
|
+
|
|
311
338
|
Convenience alias for `getResult(key)`.
|
|
312
339
|
|
|
313
340
|
#### `getRecord(key: string): Promise<any | undefined>`
|
|
341
|
+
|
|
314
342
|
Inspects the full raw idempotency record:
|
|
343
|
+
|
|
315
344
|
```typescript
|
|
316
345
|
{
|
|
317
346
|
status: string; // 'in-progress' | 'completed'
|
|
@@ -322,6 +351,7 @@ Inspects the full raw idempotency record:
|
|
|
322
351
|
```
|
|
323
352
|
|
|
324
353
|
#### `cleanupExpired(): Promise<number>`
|
|
354
|
+
|
|
325
355
|
Deletes expired idempotency records (`DELETE FROM siglo_idempotency WHERE expires_at < NOW()`). Returns the count of deleted rows.
|
|
326
356
|
|
|
327
357
|
---
|
|
@@ -340,7 +370,7 @@ sequenceDiagram
|
|
|
340
370
|
Note over W1,PG: 1. Advisory Workflow Locking (Distributed Mutex)
|
|
341
371
|
W1->>PG: SELECT pg_try_advisory_lock(hashtextextended('siglo:workflow:stack-42', 0))
|
|
342
372
|
PG-->>W1: locked = true
|
|
343
|
-
|
|
373
|
+
|
|
344
374
|
W2->>PG: SELECT pg_try_advisory_lock(hashtextextended('siglo:workflow:stack-42', 0))
|
|
345
375
|
PG-->>W2: locked = false (Throws DuplicateEventException)
|
|
346
376
|
|
|
@@ -366,25 +396,27 @@ sequenceDiagram
|
|
|
366
396
|
All exceptions extend `SigloError` and can be imported from `@siglo/core`:
|
|
367
397
|
|
|
368
398
|
```typescript
|
|
369
|
-
import {
|
|
370
|
-
OptimisticLockException,
|
|
371
|
-
DuplicateEventException,
|
|
372
|
-
ExpiredWaitException
|
|
373
|
-
} from '@siglo/core';
|
|
399
|
+
import { OptimisticLockException, DuplicateEventException, ExpiredWaitException } from '@siglo/core';
|
|
374
400
|
```
|
|
375
401
|
|
|
376
402
|
### 1. `OptimisticLockException`
|
|
403
|
+
|
|
377
404
|
Thrown by `saveCheckpoint` when an update fails because the version in the database differs from `expectedVersion`:
|
|
405
|
+
|
|
378
406
|
- `err.stackId`: The workflow execution stack ID.
|
|
379
407
|
- `err.currentVersion`: The version currently in PostgreSQL.
|
|
380
408
|
- `err.expectedVersion`: The version expected by the writer.
|
|
381
409
|
|
|
382
410
|
### 2. `DuplicateEventException`
|
|
411
|
+
|
|
383
412
|
Thrown by `withWorkflowLock` when another worker currently holds the workflow lock, or by `claimWaitRecord` when a wait record is already claimed or resumed:
|
|
413
|
+
|
|
384
414
|
- `err.correlationKey` / `err.stackId`: The resource key that could not be locked.
|
|
385
415
|
|
|
386
416
|
### 3. `ExpiredWaitException`
|
|
417
|
+
|
|
387
418
|
Thrown by `claimWaitRecord` when attempting to claim a wait record whose `expires_at` timestamp has passed and `allowExpired` is not set:
|
|
419
|
+
|
|
388
420
|
- `err.correlationKey`: The wait record correlation key.
|
|
389
421
|
- `err.expiresAt`: Expiration timestamp in milliseconds.
|
|
390
422
|
- `err.eventName`: Name of the expected event.
|
|
@@ -408,7 +440,7 @@ const pool = new Pool({
|
|
|
408
440
|
connectionTimeoutMillis: 5000,
|
|
409
441
|
});
|
|
410
442
|
|
|
411
|
-
pool.on('error',
|
|
443
|
+
pool.on('error', err => {
|
|
412
444
|
console.error('Unexpected idle PostgreSQL client error:', err);
|
|
413
445
|
});
|
|
414
446
|
|
|
@@ -465,7 +497,7 @@ const paymentWorkflow = flow(debitAccount, emitReceipt);
|
|
|
465
497
|
// 6. Execute Workflow with Distributed Idempotency and Workflow Lock
|
|
466
498
|
export async function processOrder(input: OrderInput) {
|
|
467
499
|
const idempKey = `order:payment:${input.orderId}`;
|
|
468
|
-
|
|
500
|
+
|
|
469
501
|
// Attempt 60-second atomic claim lock
|
|
470
502
|
const claimStatus = await idempotencyStore.claim(idempKey, 60000);
|
|
471
503
|
|
|
@@ -502,7 +534,9 @@ export async function processOrder(input: OrderInput) {
|
|
|
502
534
|
await idempotencyStore.fail(idempKey, err);
|
|
503
535
|
|
|
504
536
|
if (err instanceof OptimisticLockException) {
|
|
505
|
-
console.error(
|
|
537
|
+
console.error(
|
|
538
|
+
`OCC Conflict on stack ${err.stackId}: expected v${err.expectedVersion}, got v${err.currentVersion}`,
|
|
539
|
+
);
|
|
506
540
|
} else if (err instanceof DuplicateEventException) {
|
|
507
541
|
console.warn(`Concurrent execution conflict on lock ${err.correlationKey}`);
|
|
508
542
|
}
|
|
@@ -514,10 +548,10 @@ export async function processOrder(input: OrderInput) {
|
|
|
514
548
|
// 7. Scheduled Maintenance & Retention Cleanup
|
|
515
549
|
export async function runNightlyRetentionCleanup() {
|
|
516
550
|
console.log('Starting automated PostgreSQL workflow data retention cleanup...');
|
|
517
|
-
|
|
551
|
+
|
|
518
552
|
const prunedCheckpoints = await storageAdapter.cleanupOldCheckpoints(14); // 14-day checkpoint retention
|
|
519
|
-
const prunedEvents = await storageAdapter.cleanupOldEvents(30);
|
|
520
|
-
const prunedWaits = await storageAdapter.cleanupOldWaitRecords(14);
|
|
553
|
+
const prunedEvents = await storageAdapter.cleanupOldEvents(30); // 30-day audit log retention
|
|
554
|
+
const prunedWaits = await storageAdapter.cleanupOldWaitRecords(14); // 14-day wait record retention
|
|
521
555
|
const prunedExpiredCheckpoints = await storageAdapter.cleanExpiredCheckpoints();
|
|
522
556
|
const prunedIdemp = await idempotencyStore.cleanupExpired();
|
|
523
557
|
|
|
@@ -535,4 +569,3 @@ export async function shutdown() {
|
|
|
535
569
|
console.log('PostgreSQL connection pool closed.');
|
|
536
570
|
}
|
|
537
571
|
```
|
|
538
|
-
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACH,cAAc,EACd,wBAAwB,EAI3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,6BAA6B,EAA2B,MAAM,SAAS,CAAC;AAWjF,qBAAa,sBAAuB,YAAW,cAAc;IACzD,SAAgB,IAAI,cAAc;IAClC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAKR;IACL,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,KAAK,MAAM,GAEjB;IACD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,oBAAoB,CAAU;gBAE1B,OAAO,EAAE,6BAA6B;IAclD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CnC,OAAO,CAAC,UAAU;IASlB,cAAc,CAAC,UAAU,EAAE,wBAAwB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI/E,iBAAiB;IAiFzB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IAoB7E,eAAe,CAAC,KAAK,EAAE;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,GAAG,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBX,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAShD,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAI5B,iBAAiB;IAgD/B,mGAAmG;IAC7F,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA8C1E,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9C,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7E,eAAe,CACjB,cAAc,EAAE,MAAM,EACtB,UAAU,GAAE,MAAiB,EAC7B,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,CAAA;KAAE,GACzD,OAAO,CAAC,GAAG,CAAC;IA6CT,aAAa,CAAC,uBAAuB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IA6CxE,qBAAqB,CAAC,aAAa,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlE,gBAAgB,CAAC,aAAa,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7D,qBAAqB,CAAC,aAAa,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAO3E"}
|
package/dist/adapter.js
CHANGED
|
@@ -14,7 +14,9 @@ class PostgresStorageAdapter {
|
|
|
14
14
|
baseClient;
|
|
15
15
|
scope = new node_async_hooks_1.AsyncLocalStorage();
|
|
16
16
|
directClientBusy = false;
|
|
17
|
-
get client() {
|
|
17
|
+
get client() {
|
|
18
|
+
return this.scope.getStore()?.active ? this.scope.getStore().client : this.baseClient;
|
|
19
|
+
}
|
|
18
20
|
checkpointsTable;
|
|
19
21
|
eventsTable;
|
|
20
22
|
waitRecordsTable;
|
|
@@ -98,7 +100,9 @@ class PostgresStorageAdapter {
|
|
|
98
100
|
const namespace = checkpoint.namespace || null;
|
|
99
101
|
const versionToExpect = expectedVersion !== undefined
|
|
100
102
|
? expectedVersion
|
|
101
|
-
:
|
|
103
|
+
: checkpoint.occVersion !== undefined
|
|
104
|
+
? checkpoint.occVersion
|
|
105
|
+
: undefined;
|
|
102
106
|
if (versionToExpect !== undefined) {
|
|
103
107
|
const updateRes = await this.client.query(`UPDATE ${this.checkpointsTable}
|
|
104
108
|
SET state = CASE WHEN state->>'status' = 'cancelled' THEN jsonb_set($1::jsonb, '{status}', '"cancelled"') ELSE $1::jsonb END, namespace = $2, version = version + 1, updated_at = NOW()
|
|
@@ -106,9 +110,7 @@ class PostgresStorageAdapter {
|
|
|
106
110
|
RETURNING version`, [stateJson, namespace, checkpoint.stackId, versionToExpect]);
|
|
107
111
|
if ((updateRes.rowCount || 0) === 0) {
|
|
108
112
|
const existingRes = await this.client.query(`SELECT version FROM ${this.checkpointsTable} WHERE stack_id = $1`, [checkpoint.stackId]);
|
|
109
|
-
const currentVersion = existingRes.rows && existingRes.rows.length > 0
|
|
110
|
-
? Number(existingRes.rows[0].version)
|
|
111
|
-
: undefined;
|
|
113
|
+
const currentVersion = existingRes.rows && existingRes.rows.length > 0 ? Number(existingRes.rows[0].version) : undefined;
|
|
112
114
|
throw new core_1.OptimisticLockException(checkpoint.stackId, currentVersion, versionToExpect);
|
|
113
115
|
}
|
|
114
116
|
if (updateRes.rows && updateRes.rows.length > 0) {
|
|
@@ -147,7 +149,9 @@ class PostgresStorageAdapter {
|
|
|
147
149
|
if (!stackId) {
|
|
148
150
|
return undefined;
|
|
149
151
|
}
|
|
150
|
-
const res = await this.client.query(`SELECT state, version FROM ${this.checkpointsTable} WHERE stack_id = $1`, [
|
|
152
|
+
const res = await this.client.query(`SELECT state, version FROM ${this.checkpointsTable} WHERE stack_id = $1`, [
|
|
153
|
+
stackId,
|
|
154
|
+
]);
|
|
151
155
|
if (!res.rows || res.rows.length === 0) {
|
|
152
156
|
return undefined;
|
|
153
157
|
}
|
|
@@ -216,7 +220,7 @@ class PostgresStorageAdapter {
|
|
|
216
220
|
record.continuationStepIndex || 0,
|
|
217
221
|
record.version !== undefined ? String(record.version) : null,
|
|
218
222
|
dataJson,
|
|
219
|
-
expiresAt
|
|
223
|
+
expiresAt,
|
|
220
224
|
]);
|
|
221
225
|
if (stackId) {
|
|
222
226
|
const cp = await this.getCheckpoint(stackId);
|
|
@@ -240,7 +244,9 @@ class PostgresStorageAdapter {
|
|
|
240
244
|
let locked = false;
|
|
241
245
|
try {
|
|
242
246
|
client = pooled ? await pool.connect() : pool;
|
|
243
|
-
const result = await client.query('SELECT pg_try_advisory_lock(hashtextextended($1, 0)) AS locked', [
|
|
247
|
+
const result = await client.query('SELECT pg_try_advisory_lock(hashtextextended($1, 0)) AS locked', [
|
|
248
|
+
`siglo:workflow:${stackId}`,
|
|
249
|
+
]);
|
|
244
250
|
locked = result.rows[0]?.locked === true;
|
|
245
251
|
if (!locked)
|
|
246
252
|
throw new core_1.DuplicateEventException(stackId);
|
|
@@ -262,7 +268,9 @@ class PostgresStorageAdapter {
|
|
|
262
268
|
finally {
|
|
263
269
|
try {
|
|
264
270
|
if (locked)
|
|
265
|
-
await client.query('SELECT pg_advisory_unlock(hashtextextended($1, 0))', [
|
|
271
|
+
await client.query('SELECT pg_advisory_unlock(hashtextextended($1, 0))', [
|
|
272
|
+
`siglo:workflow:${stackId}`,
|
|
273
|
+
]);
|
|
266
274
|
}
|
|
267
275
|
catch (error) {
|
|
268
276
|
if (pooled) {
|
|
@@ -303,7 +311,13 @@ class PostgresStorageAdapter {
|
|
|
303
311
|
WHERE correlation_key = $2
|
|
304
312
|
AND (status = 'WAITING' OR (status = 'RESUMING' AND $5))
|
|
305
313
|
AND (resume_payload IS NOT NULL OR $4 OR expires_at IS NULL OR expires_at > NOW())
|
|
306
|
-
RETURNING *`, [
|
|
314
|
+
RETURNING *`, [
|
|
315
|
+
claimantId,
|
|
316
|
+
correlationKey,
|
|
317
|
+
JSON.stringify(options?.eventPayload ?? {}),
|
|
318
|
+
options?.allowExpired === true,
|
|
319
|
+
this.scope.getStore()?.active === true,
|
|
320
|
+
]);
|
|
307
321
|
if (!res.rows || res.rows.length === 0) {
|
|
308
322
|
const record = await this.getWaitRecord(correlationKey);
|
|
309
323
|
if (record?.status === 'WAITING' && record.expiresAt !== undefined && record.expiresAt <= Date.now()) {
|
|
@@ -325,7 +339,7 @@ class PostgresStorageAdapter {
|
|
|
325
339
|
expiresAt: row.expires_at ? new Date(row.expires_at).getTime() : undefined,
|
|
326
340
|
resumedBy: row.resumed_by,
|
|
327
341
|
resumedAt: row.resumed_at ? new Date(row.resumed_at).toISOString() : undefined,
|
|
328
|
-
createdAt: row.created_at ? new Date(row.created_at).getTime() : undefined
|
|
342
|
+
createdAt: row.created_at ? new Date(row.created_at).getTime() : undefined,
|
|
329
343
|
};
|
|
330
344
|
}
|
|
331
345
|
async getWaitRecord(correlationKeyOrStackId) {
|
|
@@ -349,7 +363,7 @@ class PostgresStorageAdapter {
|
|
|
349
363
|
resumedBy: row.resumed_by,
|
|
350
364
|
resumedAt: row.resumed_at ? new Date(row.resumed_at).toISOString() : undefined,
|
|
351
365
|
expiresAt: row.expires_at ? new Date(row.expires_at).getTime() : undefined,
|
|
352
|
-
createdAt: row.created_at ? new Date(row.created_at).getTime() : undefined
|
|
366
|
+
createdAt: row.created_at ? new Date(row.created_at).getTime() : undefined,
|
|
353
367
|
};
|
|
354
368
|
}
|
|
355
369
|
const cpRes = await this.client.query(`SELECT state FROM ${this.checkpointsTable}
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAA2B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAA2B,MAAM,SAAS,CAAC;AAW9E,qBAAa,wBAAyB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,0BAA0B;IASzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;IAkDpF,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAarE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAYpD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAI9C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAkBhD,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAI1C"}
|
package/dist/idempotency.js
CHANGED
|
@@ -97,7 +97,7 @@ class PostgresIdempotencyStore {
|
|
|
97
97
|
status: row.status,
|
|
98
98
|
result: resData,
|
|
99
99
|
expiresAt: row.expires_at ? new Date(row.expires_at).getTime() : undefined,
|
|
100
|
-
claimedAt: row.created_at ? new Date(row.created_at).getTime() : Date.now()
|
|
100
|
+
claimedAt: row.created_at ? new Date(row.created_at).getTime() : Date.now(),
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
103
|
async cleanupExpired() {
|
package/dist/idempotency.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":";;;AAGA,SAAS,kBAAkB,CAAC,IAAY,EAAE,YAAoB,WAAW;IACrE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../src/idempotency.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@siglo/postgres",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "PostgreSQL persistence adapter for Siglo TypeScript workflows with durable checkpoints, event auditing, and idempotency.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|