@superdurable/dex 1.10.1 → 1.12.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 +49 -3
- package/dist/src/attribute-hard-delete.d.ts +16 -0
- package/dist/src/attribute-hard-delete.js +59 -0
- package/dist/src/attribute-hard-delete.js.map +1 -0
- package/dist/src/attribute-store-sync.d.ts +1 -0
- package/dist/src/attribute-store-sync.js +3 -0
- package/dist/src/attribute-store-sync.js.map +1 -1
- package/dist/src/client.d.ts +9 -0
- package/dist/src/client.js +55 -6
- package/dist/src/client.js.map +1 -1
- package/dist/src/gen/dex.d.ts +30 -2
- package/dist/src/gen/dex.js +105 -7
- package/dist/src/gen/dex.js.map +1 -1
- package/dist/src/invocation-context.js +4 -1
- package/dist/src/invocation-context.js.map +1 -1
- package/dist/src/persistence.d.ts +182 -0
- package/dist/src/persistence.js +191 -0
- package/dist/src/persistence.js.map +1 -1
- package/dist/src/pull-worker.d.ts +3 -0
- package/dist/src/pull-worker.js +47 -12
- package/dist/src/pull-worker.js.map +1 -1
- package/dist/src/sdk-version.generated.d.ts +1 -1
- package/dist/src/sdk-version.generated.js +1 -1
- package/dist/src/server-protocol.js +1 -1
- package/dist/src/worker-dispatcher.d.ts +3 -1
- package/dist/src/worker-dispatcher.js +20 -3
- package/dist/src/worker-dispatcher.js.map +1 -1
- package/dist/src/worker.js +1 -1
- package/dist/src/worker.js.map +1 -1
- package/native/windows-x86_64/dex_blob_cache_node.node +0 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// See the LICENSE file in the repository root.
|
|
6
6
|
//
|
|
7
7
|
// SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
|
|
8
|
+
import { isHardDeleteOnNullDefinition, requireHardDeleteOnNullValueKind, } from "./attribute-hard-delete.js";
|
|
8
9
|
import { mapAttributeStoreSync } from "./attribute-store-sync.js";
|
|
9
10
|
import { ConditionStatus, IndexType as ProtoIndexType, } from "./gen/dex.js";
|
|
10
11
|
import { requireFlowStream } from "./flow.js";
|
|
@@ -205,9 +206,10 @@ export class InvocationContext {
|
|
|
205
206
|
const key = definitionName(attribute, instance);
|
|
206
207
|
this.attributeWrites.set(key, {
|
|
207
208
|
key,
|
|
208
|
-
value: encodeValue(attribute.codec, value),
|
|
209
|
+
value: requireHardDeleteOnNullValueKind(attribute, key, encodeValue(attribute.codec, value)),
|
|
209
210
|
indexConfig: mapIndex(attribute.index),
|
|
210
211
|
syncConfig: mapAttributeStoreSync(attribute),
|
|
212
|
+
isHardDeleteOnNull: isHardDeleteOnNullDefinition(attribute),
|
|
211
213
|
});
|
|
212
214
|
}
|
|
213
215
|
deleteAttribute(attribute, instance) {
|
|
@@ -218,6 +220,7 @@ export class InvocationContext {
|
|
|
218
220
|
value: deletionValue(),
|
|
219
221
|
indexConfig: mapIndex(attribute.index),
|
|
220
222
|
syncConfig: mapAttributeStoreSync(attribute),
|
|
223
|
+
isHardDeleteOnNull: isHardDeleteOnNullDefinition(attribute),
|
|
221
224
|
});
|
|
222
225
|
}
|
|
223
226
|
attributeMapKeys(attribute) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invocation-context.js","sourceRoot":"","sources":["../../src/invocation-context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invocation-context.js","sourceRoot":"","sources":["../../src/invocation-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,8 +88,96 @@ export declare class Attribute<T> {
|
|
|
88
88
|
* Projection is asynchronous and latest-state only. Deletion writes SQL `NULL`, projection failures do
|
|
89
89
|
* not roll back Flow Attribute writes, and the Flow must select a configured Attribute Store name.
|
|
90
90
|
* @returns A new synced definition; this definition remains unchanged.
|
|
91
|
+
* @throws {TypeError} When this definition uses {@link Attribute.hardDeleteOnNull}.
|
|
91
92
|
*/
|
|
92
93
|
syncToAttributeStore(): Attribute<T>;
|
|
94
|
+
/**
|
|
95
|
+
* Returns an immutable Attribute definition for short-lived secrets that Dex can permanently delete.
|
|
96
|
+
*
|
|
97
|
+
* Use this option for values such as API keys that must not remain in Flow history. Dex stores
|
|
98
|
+
* each value of a hard-delete Attribute only in the Dex blob store, never in Flow history.
|
|
99
|
+
* Deleting the Attribute or setting it to `null` or `undefined` permanently deletes the stored value.
|
|
100
|
+
* Register the returned definition in the Flow's PersistenceSchema. Use that same definition for
|
|
101
|
+
* handler reads and writes, InitialAttribute values, and SubFlow initial Attributes.
|
|
102
|
+
*
|
|
103
|
+
* Only string and object values are supported. Object values include JSON values and byte arrays.
|
|
104
|
+
* Numeric and Boolean values are rejected. A built-in numeric or Boolean codec fails here. A custom
|
|
105
|
+
* codec that encodes a number or Boolean fails when the value is written. Deletion is always allowed.
|
|
106
|
+
* A hard-delete Attribute cannot have an index and cannot use {@link Attribute.syncToAttributeStore}.
|
|
107
|
+
* {@link Client.waitForAttributeMatch} rejects a hard-delete Attribute before contacting Dex.
|
|
108
|
+
*
|
|
109
|
+
* Writes require a Dex Server with an enabled blob store and Server protocol version 3 or later.
|
|
110
|
+
* Otherwise, the write fails. The Client checks the Server protocol version once before its first
|
|
111
|
+
* hard-delete write. The Worker checks it at startup and fails any handler result that writes a
|
|
112
|
+
* hard-delete Attribute to an older Server. Step and RPC handlers receive the value inline. The SDK
|
|
113
|
+
* never stores it in the local blob cache.
|
|
114
|
+
*
|
|
115
|
+
* Limitations:
|
|
116
|
+
* - Each Flow keeps one stored copy per Attribute key and overwrites it in place.
|
|
117
|
+
* - A Step or RPC attempt writes or deletes the stored value before Dex commits its result.
|
|
118
|
+
* A retried attempt, other Steps and RPCs, and Client reads can therefore observe a write or
|
|
119
|
+
* deletion from an attempt that later failed.
|
|
120
|
+
* - When concurrent Steps or RPCs write the same key, the final stored value may not be the value
|
|
121
|
+
* of the last committed write.
|
|
122
|
+
* - A failed `startFlow` or SubFlow start for a Flow ID that is already running still overwrites
|
|
123
|
+
* the running Flow's stored value. A null initial value deletes it.
|
|
124
|
+
* - Executions that reuse a Flow ID share the stored value.
|
|
125
|
+
* - {@link Client.timeTravel} does not restore a deleted value. A deleted value reads as absent.
|
|
126
|
+
* - A Flow retry or a restarted SubFlow starts from the original initial value. If an
|
|
127
|
+
* earlier run deleted that value, the new run reads it as absent.
|
|
128
|
+
* - Removing {@link Attribute.hardDeleteOnNull} from a definition leaves the stored value in place
|
|
129
|
+
* until Dex removes the Flow. Delete the value with the hard-delete definition first.
|
|
130
|
+
* - Values remain until they are deleted, or until Dex removes the Flow through retention and
|
|
131
|
+
* blob cleanup.
|
|
132
|
+
* - Blob store backups or bucket versioning can retain copies outside Dex's control.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const apiKey = new Attribute("api-key", stringCodec).hardDeleteOnNull();
|
|
137
|
+
*
|
|
138
|
+
* class CallVendorStep implements Step<string> {
|
|
139
|
+
* public readonly inputCodec = stringCodec;
|
|
140
|
+
*
|
|
141
|
+
* public getStepType(): string {
|
|
142
|
+
* return "CallVendorStep";
|
|
143
|
+
* }
|
|
144
|
+
*
|
|
145
|
+
* public async execute(context: Context, vendorUrl: string): Promise<StepDecision> {
|
|
146
|
+
* const response = await fetch(vendorUrl, {
|
|
147
|
+
* headers: { authorization: `Bearer ${apiKey.get(context)}` },
|
|
148
|
+
* });
|
|
149
|
+
* apiKey.delete(context);
|
|
150
|
+
* return gracefulComplete(response.status);
|
|
151
|
+
* }
|
|
152
|
+
* }
|
|
153
|
+
*
|
|
154
|
+
* class VendorCallFlow implements Flow<string> {
|
|
155
|
+
* private readonly callVendor = new CallVendorStep();
|
|
156
|
+
*
|
|
157
|
+
* public getFlowType(): string {
|
|
158
|
+
* return "VendorCallFlow";
|
|
159
|
+
* }
|
|
160
|
+
*
|
|
161
|
+
* public getSteps() {
|
|
162
|
+
* return StepList.startStep(this.callVendor);
|
|
163
|
+
* }
|
|
164
|
+
*
|
|
165
|
+
* public getPersistenceSchema(): PersistenceSchema {
|
|
166
|
+
* return { attributes: [apiKey] };
|
|
167
|
+
* }
|
|
168
|
+
* }
|
|
169
|
+
*
|
|
170
|
+
* const flow = new VendorCallFlow();
|
|
171
|
+
* const client = new Client(new Registry([flow]), cache);
|
|
172
|
+
* await client.startFlow(flow, "vendor-call-42", "https://vendor.example/report", {
|
|
173
|
+
* attributes: [InitialAttribute.of(apiKey, process.env.VENDOR_API_KEY ?? "")],
|
|
174
|
+
* });
|
|
175
|
+
* ```
|
|
176
|
+
* @returns A new hard-delete definition; this definition remains unchanged.
|
|
177
|
+
* @throws {TypeError} When this definition has an index, uses Attribute Store synchronization, or
|
|
178
|
+
* uses a built-in numeric or Boolean codec.
|
|
179
|
+
*/
|
|
180
|
+
hardDeleteOnNull(): Attribute<T>;
|
|
93
181
|
/**
|
|
94
182
|
* Creates a lock request for this Attribute.
|
|
95
183
|
* @returns A lock for this singleton Attribute.
|
|
@@ -157,8 +245,102 @@ export declare class AttributeMap<T> {
|
|
|
157
245
|
* Deletion writes SQL `NULL`, projection failures do not roll back Flow Attribute writes, and the Flow
|
|
158
246
|
* must select a configured Attribute Store name.
|
|
159
247
|
* @returns A new synced definition; this definition remains unchanged.
|
|
248
|
+
* @throws {TypeError} When this definition uses {@link AttributeMap.hardDeleteOnNull}.
|
|
160
249
|
*/
|
|
161
250
|
syncToAttributeStore(): AttributeMap<T>;
|
|
251
|
+
/**
|
|
252
|
+
* Returns an immutable AttributeMap definition for short-lived secrets that Dex can permanently delete.
|
|
253
|
+
*
|
|
254
|
+
* Use this option for per-instance values such as API keys or access tokens that must not remain
|
|
255
|
+
* in Flow history. Dex stores each instance value only in the Dex blob store, never in Flow history.
|
|
256
|
+
* Deleting an instance or setting it to `null` or `undefined` permanently deletes its stored value.
|
|
257
|
+
* Register the returned definition in the Flow's PersistenceSchema. Use that same definition for
|
|
258
|
+
* handler reads and writes, InitialAttribute values, and SubFlow initial Attributes.
|
|
259
|
+
*
|
|
260
|
+
* Only string and object values are supported. Object values include JSON values and byte arrays.
|
|
261
|
+
* Numeric and Boolean values are rejected. A built-in numeric or Boolean codec fails here. A custom
|
|
262
|
+
* codec that encodes a number or Boolean fails when the value is written. Deletion is always allowed.
|
|
263
|
+
* A hard-delete AttributeMap cannot have an index and cannot use
|
|
264
|
+
* {@link AttributeMap.syncToAttributeStore}. {@link Client.waitForAttributeMatch} rejects a
|
|
265
|
+
* hard-delete AttributeMap before contacting Dex.
|
|
266
|
+
*
|
|
267
|
+
* Writes require a Dex Server with an enabled blob store and Server protocol version 3 or later.
|
|
268
|
+
* Otherwise, the write fails. The Client checks the Server protocol version once before its first
|
|
269
|
+
* hard-delete write. The Worker checks it at startup and fails any handler result that writes a
|
|
270
|
+
* hard-delete AttributeMap instance to an older Server. Step and RPC handlers receive instance
|
|
271
|
+
* values inline. The SDK never stores them in the local blob cache.
|
|
272
|
+
*
|
|
273
|
+
* Limitations:
|
|
274
|
+
* - Each Flow keeps one stored copy per map instance and overwrites it in place.
|
|
275
|
+
* - A Step or RPC attempt writes or deletes the stored value before Dex commits its result.
|
|
276
|
+
* A retried attempt, other Steps and RPCs, and Client reads can therefore observe a write or
|
|
277
|
+
* deletion from an attempt that later failed.
|
|
278
|
+
* - When concurrent Steps or RPCs write the same instance, the final stored value may not be the
|
|
279
|
+
* value of the last committed write.
|
|
280
|
+
* - A failed `startFlow` or SubFlow start for a Flow ID that is already running still overwrites
|
|
281
|
+
* the running Flow's stored value. A null initial value deletes it.
|
|
282
|
+
* - Executions that reuse a Flow ID share the stored values.
|
|
283
|
+
* - {@link Client.timeTravel} does not restore a deleted value. A deleted instance reads as absent.
|
|
284
|
+
* - A Flow retry or a restarted SubFlow starts from the original initial value. If an
|
|
285
|
+
* earlier run deleted that value, the new run reads it as absent.
|
|
286
|
+
* - Removing {@link AttributeMap.hardDeleteOnNull} from a definition leaves the stored value in place
|
|
287
|
+
* until Dex removes the Flow. Delete the value with the hard-delete definition first.
|
|
288
|
+
* - Values remain until they are deleted, or until Dex removes the Flow through retention and
|
|
289
|
+
* blob cleanup.
|
|
290
|
+
* - Blob store backups or bucket versioning can retain copies outside Dex's control.
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* type VendorToken = { readonly token: string };
|
|
295
|
+
* const vendorTokens = new AttributeMap("vendor-tokens", jsonCodec<VendorToken>())
|
|
296
|
+
* .hardDeleteOnNull();
|
|
297
|
+
*
|
|
298
|
+
* class RevokeTokenStep implements Step<string> {
|
|
299
|
+
* public readonly inputCodec = stringCodec;
|
|
300
|
+
*
|
|
301
|
+
* public getStepType(): string {
|
|
302
|
+
* return "RevokeTokenStep";
|
|
303
|
+
* }
|
|
304
|
+
*
|
|
305
|
+
* public getStepOptions(): StepOptions {
|
|
306
|
+
* return { executeLoadAttributeMapInstances: [vendorTokens.load("billing")] };
|
|
307
|
+
* }
|
|
308
|
+
*
|
|
309
|
+
* public async execute(context: Context, revokeUrl: string): Promise<StepDecision> {
|
|
310
|
+
* const { token } = vendorTokens.get(context, "billing");
|
|
311
|
+
* await fetch(revokeUrl, { method: "POST", body: token });
|
|
312
|
+
* vendorTokens.delete(context, "billing");
|
|
313
|
+
* return gracefulComplete("revoked");
|
|
314
|
+
* }
|
|
315
|
+
* }
|
|
316
|
+
*
|
|
317
|
+
* class TokenRevocationFlow implements Flow<string> {
|
|
318
|
+
* private readonly revokeToken = new RevokeTokenStep();
|
|
319
|
+
*
|
|
320
|
+
* public getFlowType(): string {
|
|
321
|
+
* return "TokenRevocationFlow";
|
|
322
|
+
* }
|
|
323
|
+
*
|
|
324
|
+
* public getSteps() {
|
|
325
|
+
* return StepList.startStep(this.revokeToken);
|
|
326
|
+
* }
|
|
327
|
+
*
|
|
328
|
+
* public getPersistenceSchema(): PersistenceSchema {
|
|
329
|
+
* return { attributes: [vendorTokens] };
|
|
330
|
+
* }
|
|
331
|
+
* }
|
|
332
|
+
*
|
|
333
|
+
* const flow = new TokenRevocationFlow();
|
|
334
|
+
* const client = new Client(new Registry([flow]), cache);
|
|
335
|
+
* await client.startFlow(flow, "revoke-42", "https://vendor.example/revoke", {
|
|
336
|
+
* attributes: [InitialAttribute.mapValue(vendorTokens, "billing", { token: "token-value" })],
|
|
337
|
+
* });
|
|
338
|
+
* ```
|
|
339
|
+
* @returns A new hard-delete definition; this definition remains unchanged.
|
|
340
|
+
* @throws {TypeError} When this definition has an index, uses Attribute Store synchronization, or
|
|
341
|
+
* uses a built-in numeric or Boolean codec.
|
|
342
|
+
*/
|
|
343
|
+
hardDeleteOnNull(): AttributeMap<T>;
|
|
162
344
|
/**
|
|
163
345
|
* Creates a lock request scoped to one map instance.
|
|
164
346
|
* @param instance - The map instance. Slash is prohibited because it is a reserved character.
|
package/dist/src/persistence.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// See the LICENSE file in the repository root.
|
|
6
6
|
//
|
|
7
7
|
// SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
|
|
8
|
+
import { markHardDeleteOnNull, requireHardDeleteOnNullCompatible, requireNotHardDeleteOnNull, } from "./attribute-hard-delete.js";
|
|
8
9
|
import { markAttributeStoreSynced } from "./attribute-store-sync.js";
|
|
9
10
|
import { requireMapInstance, requirePersistenceDefinitionName } from "./validation.js";
|
|
10
11
|
/** Selects how Dex indexes an Attribute for Flow search. */
|
|
@@ -81,10 +82,102 @@ export class Attribute {
|
|
|
81
82
|
* Projection is asynchronous and latest-state only. Deletion writes SQL `NULL`, projection failures do
|
|
82
83
|
* not roll back Flow Attribute writes, and the Flow must select a configured Attribute Store name.
|
|
83
84
|
* @returns A new synced definition; this definition remains unchanged.
|
|
85
|
+
* @throws {TypeError} When this definition uses {@link Attribute.hardDeleteOnNull}.
|
|
84
86
|
*/
|
|
85
87
|
syncToAttributeStore() {
|
|
88
|
+
requireNotHardDeleteOnNull(this, "syncToAttributeStore");
|
|
86
89
|
return markAttributeStoreSynced(new Attribute(this.name, this.codec, this.index));
|
|
87
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns an immutable Attribute definition for short-lived secrets that Dex can permanently delete.
|
|
93
|
+
*
|
|
94
|
+
* Use this option for values such as API keys that must not remain in Flow history. Dex stores
|
|
95
|
+
* each value of a hard-delete Attribute only in the Dex blob store, never in Flow history.
|
|
96
|
+
* Deleting the Attribute or setting it to `null` or `undefined` permanently deletes the stored value.
|
|
97
|
+
* Register the returned definition in the Flow's PersistenceSchema. Use that same definition for
|
|
98
|
+
* handler reads and writes, InitialAttribute values, and SubFlow initial Attributes.
|
|
99
|
+
*
|
|
100
|
+
* Only string and object values are supported. Object values include JSON values and byte arrays.
|
|
101
|
+
* Numeric and Boolean values are rejected. A built-in numeric or Boolean codec fails here. A custom
|
|
102
|
+
* codec that encodes a number or Boolean fails when the value is written. Deletion is always allowed.
|
|
103
|
+
* A hard-delete Attribute cannot have an index and cannot use {@link Attribute.syncToAttributeStore}.
|
|
104
|
+
* {@link Client.waitForAttributeMatch} rejects a hard-delete Attribute before contacting Dex.
|
|
105
|
+
*
|
|
106
|
+
* Writes require a Dex Server with an enabled blob store and Server protocol version 3 or later.
|
|
107
|
+
* Otherwise, the write fails. The Client checks the Server protocol version once before its first
|
|
108
|
+
* hard-delete write. The Worker checks it at startup and fails any handler result that writes a
|
|
109
|
+
* hard-delete Attribute to an older Server. Step and RPC handlers receive the value inline. The SDK
|
|
110
|
+
* never stores it in the local blob cache.
|
|
111
|
+
*
|
|
112
|
+
* Limitations:
|
|
113
|
+
* - Each Flow keeps one stored copy per Attribute key and overwrites it in place.
|
|
114
|
+
* - A Step or RPC attempt writes or deletes the stored value before Dex commits its result.
|
|
115
|
+
* A retried attempt, other Steps and RPCs, and Client reads can therefore observe a write or
|
|
116
|
+
* deletion from an attempt that later failed.
|
|
117
|
+
* - When concurrent Steps or RPCs write the same key, the final stored value may not be the value
|
|
118
|
+
* of the last committed write.
|
|
119
|
+
* - A failed `startFlow` or SubFlow start for a Flow ID that is already running still overwrites
|
|
120
|
+
* the running Flow's stored value. A null initial value deletes it.
|
|
121
|
+
* - Executions that reuse a Flow ID share the stored value.
|
|
122
|
+
* - {@link Client.timeTravel} does not restore a deleted value. A deleted value reads as absent.
|
|
123
|
+
* - A Flow retry or a restarted SubFlow starts from the original initial value. If an
|
|
124
|
+
* earlier run deleted that value, the new run reads it as absent.
|
|
125
|
+
* - Removing {@link Attribute.hardDeleteOnNull} from a definition leaves the stored value in place
|
|
126
|
+
* until Dex removes the Flow. Delete the value with the hard-delete definition first.
|
|
127
|
+
* - Values remain until they are deleted, or until Dex removes the Flow through retention and
|
|
128
|
+
* blob cleanup.
|
|
129
|
+
* - Blob store backups or bucket versioning can retain copies outside Dex's control.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* const apiKey = new Attribute("api-key", stringCodec).hardDeleteOnNull();
|
|
134
|
+
*
|
|
135
|
+
* class CallVendorStep implements Step<string> {
|
|
136
|
+
* public readonly inputCodec = stringCodec;
|
|
137
|
+
*
|
|
138
|
+
* public getStepType(): string {
|
|
139
|
+
* return "CallVendorStep";
|
|
140
|
+
* }
|
|
141
|
+
*
|
|
142
|
+
* public async execute(context: Context, vendorUrl: string): Promise<StepDecision> {
|
|
143
|
+
* const response = await fetch(vendorUrl, {
|
|
144
|
+
* headers: { authorization: `Bearer ${apiKey.get(context)}` },
|
|
145
|
+
* });
|
|
146
|
+
* apiKey.delete(context);
|
|
147
|
+
* return gracefulComplete(response.status);
|
|
148
|
+
* }
|
|
149
|
+
* }
|
|
150
|
+
*
|
|
151
|
+
* class VendorCallFlow implements Flow<string> {
|
|
152
|
+
* private readonly callVendor = new CallVendorStep();
|
|
153
|
+
*
|
|
154
|
+
* public getFlowType(): string {
|
|
155
|
+
* return "VendorCallFlow";
|
|
156
|
+
* }
|
|
157
|
+
*
|
|
158
|
+
* public getSteps() {
|
|
159
|
+
* return StepList.startStep(this.callVendor);
|
|
160
|
+
* }
|
|
161
|
+
*
|
|
162
|
+
* public getPersistenceSchema(): PersistenceSchema {
|
|
163
|
+
* return { attributes: [apiKey] };
|
|
164
|
+
* }
|
|
165
|
+
* }
|
|
166
|
+
*
|
|
167
|
+
* const flow = new VendorCallFlow();
|
|
168
|
+
* const client = new Client(new Registry([flow]), cache);
|
|
169
|
+
* await client.startFlow(flow, "vendor-call-42", "https://vendor.example/report", {
|
|
170
|
+
* attributes: [InitialAttribute.of(apiKey, process.env.VENDOR_API_KEY ?? "")],
|
|
171
|
+
* });
|
|
172
|
+
* ```
|
|
173
|
+
* @returns A new hard-delete definition; this definition remains unchanged.
|
|
174
|
+
* @throws {TypeError} When this definition has an index, uses Attribute Store synchronization, or
|
|
175
|
+
* uses a built-in numeric or Boolean codec.
|
|
176
|
+
*/
|
|
177
|
+
hardDeleteOnNull() {
|
|
178
|
+
requireHardDeleteOnNullCompatible(this);
|
|
179
|
+
return markHardDeleteOnNull(new Attribute(this.name, this.codec, this.index));
|
|
180
|
+
}
|
|
88
181
|
/**
|
|
89
182
|
* Creates a lock request for this Attribute.
|
|
90
183
|
* @returns A lock for this singleton Attribute.
|
|
@@ -172,10 +265,108 @@ export class AttributeMap {
|
|
|
172
265
|
* Deletion writes SQL `NULL`, projection failures do not roll back Flow Attribute writes, and the Flow
|
|
173
266
|
* must select a configured Attribute Store name.
|
|
174
267
|
* @returns A new synced definition; this definition remains unchanged.
|
|
268
|
+
* @throws {TypeError} When this definition uses {@link AttributeMap.hardDeleteOnNull}.
|
|
175
269
|
*/
|
|
176
270
|
syncToAttributeStore() {
|
|
271
|
+
requireNotHardDeleteOnNull(this, "syncToAttributeStore");
|
|
177
272
|
return markAttributeStoreSynced(new AttributeMap(this.name, this.codec, this.index));
|
|
178
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Returns an immutable AttributeMap definition for short-lived secrets that Dex can permanently delete.
|
|
276
|
+
*
|
|
277
|
+
* Use this option for per-instance values such as API keys or access tokens that must not remain
|
|
278
|
+
* in Flow history. Dex stores each instance value only in the Dex blob store, never in Flow history.
|
|
279
|
+
* Deleting an instance or setting it to `null` or `undefined` permanently deletes its stored value.
|
|
280
|
+
* Register the returned definition in the Flow's PersistenceSchema. Use that same definition for
|
|
281
|
+
* handler reads and writes, InitialAttribute values, and SubFlow initial Attributes.
|
|
282
|
+
*
|
|
283
|
+
* Only string and object values are supported. Object values include JSON values and byte arrays.
|
|
284
|
+
* Numeric and Boolean values are rejected. A built-in numeric or Boolean codec fails here. A custom
|
|
285
|
+
* codec that encodes a number or Boolean fails when the value is written. Deletion is always allowed.
|
|
286
|
+
* A hard-delete AttributeMap cannot have an index and cannot use
|
|
287
|
+
* {@link AttributeMap.syncToAttributeStore}. {@link Client.waitForAttributeMatch} rejects a
|
|
288
|
+
* hard-delete AttributeMap before contacting Dex.
|
|
289
|
+
*
|
|
290
|
+
* Writes require a Dex Server with an enabled blob store and Server protocol version 3 or later.
|
|
291
|
+
* Otherwise, the write fails. The Client checks the Server protocol version once before its first
|
|
292
|
+
* hard-delete write. The Worker checks it at startup and fails any handler result that writes a
|
|
293
|
+
* hard-delete AttributeMap instance to an older Server. Step and RPC handlers receive instance
|
|
294
|
+
* values inline. The SDK never stores them in the local blob cache.
|
|
295
|
+
*
|
|
296
|
+
* Limitations:
|
|
297
|
+
* - Each Flow keeps one stored copy per map instance and overwrites it in place.
|
|
298
|
+
* - A Step or RPC attempt writes or deletes the stored value before Dex commits its result.
|
|
299
|
+
* A retried attempt, other Steps and RPCs, and Client reads can therefore observe a write or
|
|
300
|
+
* deletion from an attempt that later failed.
|
|
301
|
+
* - When concurrent Steps or RPCs write the same instance, the final stored value may not be the
|
|
302
|
+
* value of the last committed write.
|
|
303
|
+
* - A failed `startFlow` or SubFlow start for a Flow ID that is already running still overwrites
|
|
304
|
+
* the running Flow's stored value. A null initial value deletes it.
|
|
305
|
+
* - Executions that reuse a Flow ID share the stored values.
|
|
306
|
+
* - {@link Client.timeTravel} does not restore a deleted value. A deleted instance reads as absent.
|
|
307
|
+
* - A Flow retry or a restarted SubFlow starts from the original initial value. If an
|
|
308
|
+
* earlier run deleted that value, the new run reads it as absent.
|
|
309
|
+
* - Removing {@link AttributeMap.hardDeleteOnNull} from a definition leaves the stored value in place
|
|
310
|
+
* until Dex removes the Flow. Delete the value with the hard-delete definition first.
|
|
311
|
+
* - Values remain until they are deleted, or until Dex removes the Flow through retention and
|
|
312
|
+
* blob cleanup.
|
|
313
|
+
* - Blob store backups or bucket versioning can retain copies outside Dex's control.
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* ```ts
|
|
317
|
+
* type VendorToken = { readonly token: string };
|
|
318
|
+
* const vendorTokens = new AttributeMap("vendor-tokens", jsonCodec<VendorToken>())
|
|
319
|
+
* .hardDeleteOnNull();
|
|
320
|
+
*
|
|
321
|
+
* class RevokeTokenStep implements Step<string> {
|
|
322
|
+
* public readonly inputCodec = stringCodec;
|
|
323
|
+
*
|
|
324
|
+
* public getStepType(): string {
|
|
325
|
+
* return "RevokeTokenStep";
|
|
326
|
+
* }
|
|
327
|
+
*
|
|
328
|
+
* public getStepOptions(): StepOptions {
|
|
329
|
+
* return { executeLoadAttributeMapInstances: [vendorTokens.load("billing")] };
|
|
330
|
+
* }
|
|
331
|
+
*
|
|
332
|
+
* public async execute(context: Context, revokeUrl: string): Promise<StepDecision> {
|
|
333
|
+
* const { token } = vendorTokens.get(context, "billing");
|
|
334
|
+
* await fetch(revokeUrl, { method: "POST", body: token });
|
|
335
|
+
* vendorTokens.delete(context, "billing");
|
|
336
|
+
* return gracefulComplete("revoked");
|
|
337
|
+
* }
|
|
338
|
+
* }
|
|
339
|
+
*
|
|
340
|
+
* class TokenRevocationFlow implements Flow<string> {
|
|
341
|
+
* private readonly revokeToken = new RevokeTokenStep();
|
|
342
|
+
*
|
|
343
|
+
* public getFlowType(): string {
|
|
344
|
+
* return "TokenRevocationFlow";
|
|
345
|
+
* }
|
|
346
|
+
*
|
|
347
|
+
* public getSteps() {
|
|
348
|
+
* return StepList.startStep(this.revokeToken);
|
|
349
|
+
* }
|
|
350
|
+
*
|
|
351
|
+
* public getPersistenceSchema(): PersistenceSchema {
|
|
352
|
+
* return { attributes: [vendorTokens] };
|
|
353
|
+
* }
|
|
354
|
+
* }
|
|
355
|
+
*
|
|
356
|
+
* const flow = new TokenRevocationFlow();
|
|
357
|
+
* const client = new Client(new Registry([flow]), cache);
|
|
358
|
+
* await client.startFlow(flow, "revoke-42", "https://vendor.example/revoke", {
|
|
359
|
+
* attributes: [InitialAttribute.mapValue(vendorTokens, "billing", { token: "token-value" })],
|
|
360
|
+
* });
|
|
361
|
+
* ```
|
|
362
|
+
* @returns A new hard-delete definition; this definition remains unchanged.
|
|
363
|
+
* @throws {TypeError} When this definition has an index, uses Attribute Store synchronization, or
|
|
364
|
+
* uses a built-in numeric or Boolean codec.
|
|
365
|
+
*/
|
|
366
|
+
hardDeleteOnNull() {
|
|
367
|
+
requireHardDeleteOnNullCompatible(this);
|
|
368
|
+
return markHardDeleteOnNull(new AttributeMap(this.name, this.codec, this.index));
|
|
369
|
+
}
|
|
179
370
|
/**
|
|
180
371
|
* Creates a lock request scoped to one map instance.
|
|
181
372
|
* @param instance - The map instance. Slash is prohibited because it is a reserved character.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/persistence.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,OAAO,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AAUvF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,qCAAqC;IACrC,OAAO,EAAE,SAAS;IAClB,yDAAyD;IACzD,SAAS,EAAE,UAAU;IACrB,qDAAqD;IACrD,aAAa,EAAE,cAAc;IAC7B,uCAAuC;IACvC,GAAG,EAAE,KAAK;IACV,8CAA8C;IAC9C,MAAM,EAAE,QAAQ;IAChB,+BAA+B;IAC/B,IAAI,EAAE,MAAM;IACZ,uCAAuC;IACvC,QAAQ,EAAE,UAAU;CACZ,CAAC,CAAC;AAqBZ;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,SAAS;IAQF;IACA;IACA;IATlB;;;;;OAKG;IACH,YACkB,IAAY,EACZ,KAAe,EACf,KAAsB;QAFtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAU;QACf,UAAK,GAAL,KAAK,CAAiB;QAEtC,gCAAgC,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,OAAgB;QACzB,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,OAAgB,EAAE,KAAQ;QACnC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAgB;QAC5B,OAAO,CAAC,eAAe,CAAC,IAA0B,CAAC,CAAC;IACtD,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare class PullWorker {
|
|
|
8
8
|
private readonly client;
|
|
9
9
|
private readonly queues;
|
|
10
10
|
private readonly flowTypes;
|
|
11
|
+
private readonly registeredFlows;
|
|
11
12
|
private readonly maxConcurrentTasks;
|
|
12
13
|
private readonly idleStreamsPerQueue;
|
|
13
14
|
private readonly stopDrainTimeoutMs;
|
|
@@ -24,6 +25,8 @@ export declare class PullWorker {
|
|
|
24
25
|
private openStream;
|
|
25
26
|
private handleFrame;
|
|
26
27
|
private startTask;
|
|
28
|
+
private unknownTaskReason;
|
|
29
|
+
private rejectTask;
|
|
27
30
|
private executeTask;
|
|
28
31
|
private finishTask;
|
|
29
32
|
private sendTaskFrame;
|
package/dist/src/pull-worker.js
CHANGED
|
@@ -19,6 +19,7 @@ export class PullWorker {
|
|
|
19
19
|
client;
|
|
20
20
|
queues;
|
|
21
21
|
flowTypes;
|
|
22
|
+
registeredFlows;
|
|
22
23
|
maxConcurrentTasks;
|
|
23
24
|
idleStreamsPerQueue;
|
|
24
25
|
stopDrainTimeoutMs;
|
|
@@ -37,7 +38,11 @@ export class PullWorker {
|
|
|
37
38
|
if (!Number.isFinite(this.stopDrainTimeoutMs) || this.stopDrainTimeoutMs < 0) {
|
|
38
39
|
throw new RangeError("stopDrainTimeoutMs must not be negative");
|
|
39
40
|
}
|
|
40
|
-
this.
|
|
41
|
+
this.registeredFlows = new Map(registry.flows.map((flow) => {
|
|
42
|
+
const definition = registeredFlow(registry, flow);
|
|
43
|
+
return [definition.name, definition];
|
|
44
|
+
}));
|
|
45
|
+
this.flowTypes = [...this.registeredFlows.keys()].sort();
|
|
41
46
|
this.appWorkerID = options.appWorkerID || generateAppWorkerID();
|
|
42
47
|
if (!/^[A-Za-z0-9._-]{1,63}$/.test(this.appWorkerID)) {
|
|
43
48
|
throw new TypeError("appWorkerID must contain 1-63 ASCII letters, digits, dots, underscores, or hyphens");
|
|
@@ -108,7 +113,7 @@ export class PullWorker {
|
|
|
108
113
|
const poll = {
|
|
109
114
|
queue, stream: undefined, task: undefined, retryTimer: undefined,
|
|
110
115
|
halfCloseTimer: undefined, halfClosePromise: undefined, resolveHalfClose: undefined,
|
|
111
|
-
isRegistered: false, isDisconnected: false, isHalfClosed: false, isDraining: false,
|
|
116
|
+
isRegistered: false, supportsUnknownNameRejection: false, isDisconnected: false, isHalfClosed: false, isDraining: false,
|
|
112
117
|
isReconnectRequested: false,
|
|
113
118
|
backoffMs: 100, failure: undefined,
|
|
114
119
|
};
|
|
@@ -122,6 +127,7 @@ export class PullWorker {
|
|
|
122
127
|
if (this.isStopping)
|
|
123
128
|
return;
|
|
124
129
|
poll.isRegistered = false;
|
|
130
|
+
poll.supportsUnknownNameRejection = false;
|
|
125
131
|
poll.isDisconnected = false;
|
|
126
132
|
poll.isHalfClosed = false;
|
|
127
133
|
poll.failure = undefined;
|
|
@@ -168,6 +174,7 @@ export class PullWorker {
|
|
|
168
174
|
}
|
|
169
175
|
else if (frame?.$case === "registered") {
|
|
170
176
|
poll.isRegistered = true;
|
|
177
|
+
poll.supportsUnknownNameRejection = frame.value.supportsUnknownNameRejection;
|
|
171
178
|
poll.backoffMs = 100;
|
|
172
179
|
}
|
|
173
180
|
else {
|
|
@@ -209,17 +216,13 @@ export class PullWorker {
|
|
|
209
216
|
}
|
|
210
217
|
}
|
|
211
218
|
startTask(poll, task) {
|
|
219
|
+
const unknownReason = poll.supportsUnknownNameRejection ? this.unknownTaskReason(task) : undefined;
|
|
220
|
+
if (unknownReason !== undefined) {
|
|
221
|
+
this.rejectTask(poll, task.taskId, unknownReason);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
212
224
|
if (poll.task !== undefined || poll.isDraining || this.isStopping || this.busyTaskCount >= this.maxConcurrentTasks) {
|
|
213
|
-
|
|
214
|
-
this.send(poll, { frame: { $case: "reject", value: {
|
|
215
|
-
taskId: task.taskId,
|
|
216
|
-
reason: PollWorkerTaskRejectReason.POLL_WORKER_TASK_REJECT_REASON_NO_CAPACITY,
|
|
217
|
-
} } });
|
|
218
|
-
}
|
|
219
|
-
catch (failure) {
|
|
220
|
-
console.error("reject Worker task", failure);
|
|
221
|
-
this.disconnect(poll);
|
|
222
|
-
}
|
|
225
|
+
this.rejectTask(poll, task.taskId, PollWorkerTaskRejectReason.POLL_WORKER_TASK_REJECT_REASON_NO_CAPACITY);
|
|
223
226
|
return;
|
|
224
227
|
}
|
|
225
228
|
const controller = new AbortController();
|
|
@@ -233,6 +236,38 @@ export class PullWorker {
|
|
|
233
236
|
this.busyTaskCount++;
|
|
234
237
|
this.reconcile();
|
|
235
238
|
}
|
|
239
|
+
unknownTaskReason(task) {
|
|
240
|
+
switch (task.request?.$case) {
|
|
241
|
+
case "waitFor":
|
|
242
|
+
case "execute": {
|
|
243
|
+
const request = task.request.value;
|
|
244
|
+
const flow = this.registeredFlows.get(request.flowType);
|
|
245
|
+
if (task.request.$case === "execute" && request.stepType === "sys:timeout_handler") {
|
|
246
|
+
return flow?.hasTimeoutHandler === true
|
|
247
|
+
? undefined : PollWorkerTaskRejectReason.POLL_WORKER_TASK_REJECT_REASON_UNKNOWN_STEP;
|
|
248
|
+
}
|
|
249
|
+
return flow?.steps.some((step) => step.name === request.stepType) === true
|
|
250
|
+
? undefined : PollWorkerTaskRejectReason.POLL_WORKER_TASK_REJECT_REASON_UNKNOWN_STEP;
|
|
251
|
+
}
|
|
252
|
+
case "rpc": {
|
|
253
|
+
const request = task.request.value;
|
|
254
|
+
const flow = this.registeredFlows.get(request.flowType);
|
|
255
|
+
return flow?.rpcs.some((rpc) => rpc.name === request.rpcName) === true
|
|
256
|
+
? undefined : PollWorkerTaskRejectReason.POLL_WORKER_TASK_REJECT_REASON_UNKNOWN_RPC;
|
|
257
|
+
}
|
|
258
|
+
default:
|
|
259
|
+
return undefined;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
rejectTask(poll, taskId, reason) {
|
|
263
|
+
try {
|
|
264
|
+
this.send(poll, { frame: { $case: "reject", value: { taskId, reason } } });
|
|
265
|
+
}
|
|
266
|
+
catch (failure) {
|
|
267
|
+
console.error("reject Worker task", failure);
|
|
268
|
+
this.disconnect(poll);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
236
271
|
async executeTask(poll, task, signal) {
|
|
237
272
|
try {
|
|
238
273
|
switch (task.request?.$case) {
|