@versori/run 0.5.8 → 0.5.10
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/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +3 -1
- package/esm/src/context/VanillaContext.d.ts.map +1 -1
- package/esm/src/context/VanillaContext.js +3 -1
- package/esm/src/context/WorkflowClient.d.ts +3 -1
- package/esm/src/context/WorkflowClient.d.ts.map +1 -1
- package/esm/src/context/WorkflowClient.js +139 -49
- package/esm/src/interpreter/durable/Queue.d.ts +1 -0
- package/esm/src/interpreter/durable/Queue.d.ts.map +1 -1
- package/esm/src/kv/KeyValue.d.ts +7 -3
- package/esm/src/kv/KeyValue.d.ts.map +1 -1
- package/esm/src/kv/fingerprintExternalUserId.d.ts +6 -0
- package/esm/src/kv/fingerprintExternalUserId.d.ts.map +1 -0
- package/esm/src/kv/fingerprintExternalUserId.js +20 -0
- package/esm/src/kv/memory/MemoryKeyValueProvider.d.ts +4 -0
- package/esm/src/kv/memory/MemoryKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/memory/MemoryKeyValueProvider.js +50 -0
- package/esm/src/kv/nats/NatsKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/nats/NatsKeyValueProvider.js +14 -0
- package/esm/src/kv/sdk/SDKKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/sdk/SDKKeyValueProvider.js +12 -0
- package/package.json +1 -1
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +3 -1
- package/script/src/context/VanillaContext.d.ts.map +1 -1
- package/script/src/context/VanillaContext.js +3 -1
- package/script/src/context/WorkflowClient.d.ts +3 -1
- package/script/src/context/WorkflowClient.d.ts.map +1 -1
- package/script/src/context/WorkflowClient.js +142 -49
- package/script/src/interpreter/durable/Queue.d.ts +1 -0
- package/script/src/interpreter/durable/Queue.d.ts.map +1 -1
- package/script/src/kv/KeyValue.d.ts +7 -3
- package/script/src/kv/KeyValue.d.ts.map +1 -1
- package/script/src/kv/fingerprintExternalUserId.d.ts +6 -0
- package/script/src/kv/fingerprintExternalUserId.d.ts.map +1 -0
- package/script/src/kv/fingerprintExternalUserId.js +23 -0
- package/script/src/kv/memory/MemoryKeyValueProvider.d.ts +4 -0
- package/script/src/kv/memory/MemoryKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/memory/MemoryKeyValueProvider.js +50 -0
- package/script/src/kv/nats/NatsKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/nats/NatsKeyValueProvider.js +14 -0
- package/script/src/kv/sdk/SDKKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/sdk/SDKKeyValueProvider.js +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,6 +131,7 @@ class ContextImpl {
|
|
|
131
131
|
return this.kvp.kv({
|
|
132
132
|
scope,
|
|
133
133
|
activationId: this.activation?.id,
|
|
134
|
+
externalUserId: this.activation?.user?.externalId,
|
|
134
135
|
});
|
|
135
136
|
}
|
|
136
137
|
request() {
|
|
@@ -140,7 +141,7 @@ class ContextImpl {
|
|
|
140
141
|
if (!this.queue) {
|
|
141
142
|
throw new Error('Queue is not available for this context, cannot start workflow');
|
|
142
143
|
}
|
|
143
|
-
return new WorkflowClient_js_1.WorkflowImpl(this.queue, this.executionId, this.activation);
|
|
144
|
+
return new WorkflowClient_js_1.WorkflowImpl(this.queue, this.executionId, this.activation, this.workflow);
|
|
144
145
|
}
|
|
145
146
|
async start(group, opts) {
|
|
146
147
|
// this makes a post request to the endpoint sending a message and schedule the workflow to run
|
|
@@ -159,6 +160,7 @@ class ContextImpl {
|
|
|
159
160
|
{
|
|
160
161
|
group,
|
|
161
162
|
metadata: {
|
|
163
|
+
...opts.metadata,
|
|
162
164
|
executionId: this.executionId,
|
|
163
165
|
activationId: this.activation?.id,
|
|
164
166
|
userId: this.activation?.user?.externalId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -182,6 +182,7 @@ class VanillaContext {
|
|
|
182
182
|
return this.kvp.kv({
|
|
183
183
|
scope,
|
|
184
184
|
activationId: this.activation?.id,
|
|
185
|
+
externalUserId: this.activation?.user?.externalId,
|
|
185
186
|
});
|
|
186
187
|
}
|
|
187
188
|
request() {
|
|
@@ -191,7 +192,7 @@ class VanillaContext {
|
|
|
191
192
|
if (!this.queue) {
|
|
192
193
|
throw new Error('Queue is not available for this context, cannot start workflow');
|
|
193
194
|
}
|
|
194
|
-
return new WorkflowClient_js_1.WorkflowImpl(this.queue, this.executionId, this.activation);
|
|
195
|
+
return new WorkflowClient_js_1.WorkflowImpl(this.queue, this.executionId, this.activation, this.workflow);
|
|
195
196
|
}
|
|
196
197
|
async start(group, opts) {
|
|
197
198
|
// this makes a post request to the endpoint sending a message and schedule the workflow to run
|
|
@@ -210,6 +211,7 @@ class VanillaContext {
|
|
|
210
211
|
{
|
|
211
212
|
group,
|
|
212
213
|
metadata: {
|
|
214
|
+
...opts.metadata,
|
|
213
215
|
executionId: this.executionId,
|
|
214
216
|
activationId: this.activation?.id,
|
|
215
217
|
userId: this.activation?.user?.externalId,
|
|
@@ -4,6 +4,7 @@ export type WorkflowOpts = {
|
|
|
4
4
|
maxAttempts?: number;
|
|
5
5
|
data?: unknown;
|
|
6
6
|
dataRaw?: string;
|
|
7
|
+
metadata?: Record<string, any>;
|
|
7
8
|
};
|
|
8
9
|
export interface WorkflowInterface {
|
|
9
10
|
startWorkflow(group: string, opts: WorkflowOpts): Promise<Workflow>;
|
|
@@ -17,7 +18,8 @@ export declare class WorkflowImpl implements WorkflowInterface {
|
|
|
17
18
|
private queue;
|
|
18
19
|
private executionId;
|
|
19
20
|
private activation;
|
|
20
|
-
|
|
21
|
+
private currentWorkflow;
|
|
22
|
+
constructor(queue: QueueAPI, executionId: string, activation: ActivationInterface, currentWorkflow: Workflow | undefined);
|
|
21
23
|
startWorkflow(group: string, opts: WorkflowOpts): Promise<Workflow>;
|
|
22
24
|
getWorkflow(wf: Workflow): Promise<Workflow>;
|
|
23
25
|
getWorkflowById(id: string): Promise<Workflow>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowClient.d.ts","sourceRoot":"","sources":["../../../src/src/context/WorkflowClient.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkflowClient.d.ts","sourceRoot":"","sources":["../../../src/src/context/WorkflowClient.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAED,qBAAa,YAAa,YAAW,iBAAiB;IAClD,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,eAAe,CAAuB;gBAElC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,QAAQ,GAAG,SAAS;IAelH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiCnE,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgB5C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgB9C,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqBlD,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC9D,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBpG"}
|
|
@@ -11,11 +11,16 @@
|
|
|
11
11
|
* As of the Change Date, in accordance with the Business Source License,
|
|
12
12
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
13
13
|
*/
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
18
|
exports.WorkflowImpl = void 0;
|
|
16
19
|
const node_buffer_1 = require("node:buffer");
|
|
20
|
+
const api_1 = __importDefault(require("@opentelemetry/api"));
|
|
21
|
+
const tracer = api_1.default.trace.getTracer('versori-run-workflow-client');
|
|
17
22
|
class WorkflowImpl {
|
|
18
|
-
constructor(queue, executionId, activation) {
|
|
23
|
+
constructor(queue, executionId, activation, currentWorkflow) {
|
|
19
24
|
Object.defineProperty(this, "queue", {
|
|
20
25
|
enumerable: true,
|
|
21
26
|
configurable: true,
|
|
@@ -34,9 +39,16 @@ class WorkflowImpl {
|
|
|
34
39
|
writable: true,
|
|
35
40
|
value: void 0
|
|
36
41
|
});
|
|
42
|
+
Object.defineProperty(this, "currentWorkflow", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
value: void 0
|
|
47
|
+
});
|
|
37
48
|
this.queue = queue;
|
|
38
49
|
this.executionId = executionId;
|
|
39
50
|
this.activation = activation;
|
|
51
|
+
this.currentWorkflow = currentWorkflow;
|
|
40
52
|
// I have no idea if I need this but I have suffered from it in the past
|
|
41
53
|
this.startWorkflow = this.startWorkflow.bind(this);
|
|
42
54
|
this.getWorkflow = this.getWorkflow.bind(this);
|
|
@@ -46,67 +58,148 @@ class WorkflowImpl {
|
|
|
46
58
|
this.getWorkflowById = this.getWorkflowById.bind(this);
|
|
47
59
|
}
|
|
48
60
|
async startWorkflow(group, opts) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
return await tracer.startActiveSpan('workflow.startWorkflow', async (span) => {
|
|
62
|
+
span.setAttribute('workflow.group', group);
|
|
63
|
+
span.setAttribute('workflow.executionId', this.executionId);
|
|
64
|
+
try {
|
|
65
|
+
const workflows = await this.queue.submit({
|
|
66
|
+
workflows: [
|
|
67
|
+
{
|
|
68
|
+
group,
|
|
69
|
+
metadata: {
|
|
70
|
+
...opts.metadata,
|
|
71
|
+
executionId: this.executionId,
|
|
72
|
+
activationId: this.activation?.id,
|
|
73
|
+
userId: this.activation?.user?.externalId,
|
|
74
|
+
parentWorkflowId: this.currentWorkflow?.id ?? undefined,
|
|
75
|
+
},
|
|
76
|
+
payload: opts.data ? node_buffer_1.Buffer.from(JSON.stringify(opts.data)).toString('base64') : node_buffer_1.Buffer.from("{}").toString('base64'),
|
|
77
|
+
maxAttempts: opts.maxAttempts,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
});
|
|
81
|
+
return workflows.workflows[0];
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
span.end();
|
|
89
|
+
}
|
|
62
90
|
});
|
|
63
|
-
return workflows.workflows[0];
|
|
64
91
|
}
|
|
65
92
|
async getWorkflow(wf) {
|
|
66
|
-
return await
|
|
93
|
+
return await tracer.startActiveSpan('workflow.getWorkflow', async (span) => {
|
|
94
|
+
span.setAttribute('workflow.id', wf.id);
|
|
95
|
+
span.setAttribute('workflow.executionId', this.executionId);
|
|
96
|
+
try {
|
|
97
|
+
return await this.queue.getWorkflow(wf.id);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
span.end();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
67
107
|
}
|
|
68
108
|
async getWorkflowById(id) {
|
|
69
|
-
return await
|
|
109
|
+
return await tracer.startActiveSpan('workflow.getWorkflowById', async (span) => {
|
|
110
|
+
span.setAttribute('workflow.id', id);
|
|
111
|
+
span.setAttribute('workflow.executionId', this.executionId);
|
|
112
|
+
try {
|
|
113
|
+
return await this.queue.getWorkflow(id);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
span.end();
|
|
121
|
+
}
|
|
122
|
+
});
|
|
70
123
|
}
|
|
71
124
|
async waitForCompletion(wf) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
125
|
+
return await tracer.startActiveSpan('workflow.waitForCompletion', async (span) => {
|
|
126
|
+
span.setAttribute('workflow.id', wf.id);
|
|
127
|
+
span.setAttribute('workflow.executionId', this.executionId);
|
|
128
|
+
try {
|
|
129
|
+
while (wf.status !== 'completed' && wf.status !== 'failed') {
|
|
130
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
131
|
+
wf = await this.queue.getWorkflow(wf.id);
|
|
132
|
+
}
|
|
133
|
+
return wf;
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
span.end();
|
|
141
|
+
}
|
|
142
|
+
});
|
|
77
143
|
}
|
|
78
144
|
async rescheduleWorkflow(wf, after) {
|
|
79
|
-
await
|
|
80
|
-
id
|
|
81
|
-
|
|
145
|
+
return await tracer.startActiveSpan('workflow.rescheduleWorkflow', async (span) => {
|
|
146
|
+
span.setAttribute('workflow.id', wf.id);
|
|
147
|
+
span.setAttribute('workflow.executionId', this.executionId);
|
|
148
|
+
try {
|
|
149
|
+
await this.queue.reschedule({
|
|
150
|
+
id: wf.id,
|
|
151
|
+
after,
|
|
152
|
+
});
|
|
153
|
+
// TODO: Is this a hack?
|
|
154
|
+
// In the durableworkflow taks I have this piece of code
|
|
155
|
+
//
|
|
156
|
+
// onSuccess: (completedContext: ContextImpl<unknown>) => {
|
|
157
|
+
// // locked status means we own the workflow and it's not completed yet
|
|
158
|
+
// if (wf.status === 'locked') {
|
|
159
|
+
// return;
|
|
160
|
+
// }
|
|
161
|
+
// ctx.queueProvider.complete({
|
|
162
|
+
// id: wf.id,
|
|
163
|
+
// output: btoa(JSON.stringify(completedContext.data)),
|
|
164
|
+
// status: 'completed',
|
|
165
|
+
// });
|
|
166
|
+
// },
|
|
167
|
+
//
|
|
168
|
+
// it basically ignores completing the workflow if it's not locked.
|
|
169
|
+
// the line bellow triggers this
|
|
170
|
+
wf.status = 'available';
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
span.end();
|
|
178
|
+
}
|
|
82
179
|
});
|
|
83
|
-
// TODO: Is this a hack?
|
|
84
|
-
// In the durableworkflow taks I have this piece of code
|
|
85
|
-
//
|
|
86
|
-
// onSuccess: (completedContext: ContextImpl<unknown>) => {
|
|
87
|
-
// // locked status means we own the workflow and it's not completed yet
|
|
88
|
-
// if (wf.status === 'locked') {
|
|
89
|
-
// return;
|
|
90
|
-
// }
|
|
91
|
-
// ctx.queueProvider.complete({
|
|
92
|
-
// id: wf.id,
|
|
93
|
-
// output: btoa(JSON.stringify(completedContext.data)),
|
|
94
|
-
// status: 'completed',
|
|
95
|
-
// });
|
|
96
|
-
// },
|
|
97
|
-
//
|
|
98
|
-
// it basically ignores completing the workflow if it's not locked.
|
|
99
|
-
// the line bellow triggers this
|
|
100
|
-
wf.status = 'available';
|
|
101
180
|
}
|
|
102
181
|
async completeWorkflow(wf, status, output) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
182
|
+
return await tracer.startActiveSpan('workflow.completeWorkflow', async (span) => {
|
|
183
|
+
span.setAttribute('workflow.id', wf.id);
|
|
184
|
+
span.setAttribute('workflow.status', status);
|
|
185
|
+
span.setAttribute('workflow.executionId', this.executionId);
|
|
186
|
+
try {
|
|
187
|
+
const outputRaw = output ? node_buffer_1.Buffer.from(JSON.stringify(output)).toString('base64') : undefined;
|
|
188
|
+
await this.queue.complete({
|
|
189
|
+
id: wf.id,
|
|
190
|
+
output: outputRaw,
|
|
191
|
+
status: status,
|
|
192
|
+
});
|
|
193
|
+
wf.status = status;
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
span.end();
|
|
201
|
+
}
|
|
108
202
|
});
|
|
109
|
-
wf.status = status;
|
|
110
203
|
}
|
|
111
204
|
}
|
|
112
205
|
exports.WorkflowImpl = WorkflowImpl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/Queue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AASpD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/Queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,10 +67,13 @@ export interface KeyValue {
|
|
|
67
67
|
* KeyValueScope determines the visibility and lifetime of key-value data.
|
|
68
68
|
*
|
|
69
69
|
* - `:execution:` - Data scoped to a single workflow execution (deleted after execution completes).
|
|
70
|
-
* - `:project:` -
|
|
70
|
+
* - `:project:` - Contrary to the name this scopes the KV to the current activation, not the project.
|
|
71
|
+
* - `:workspace:` - Data scoped to the true project (shared across all activations within the project).
|
|
71
72
|
* - `:organization:` - Data scoped to the organization (shared across all projects).
|
|
73
|
+
* - `:user:` - Data scoped to the current user based on the external_id of the activation.
|
|
74
|
+
*
|
|
72
75
|
*/
|
|
73
|
-
export type KeyValueScope = ':execution:' | ':project:' | ':organization:';
|
|
76
|
+
export type KeyValueScope = ':execution:' | ':project:' | ':workspace:' | ':organization:' | ':user:';
|
|
74
77
|
/**
|
|
75
78
|
* KVOptionsExecution specifies options for opening an execution-scoped KV store.
|
|
76
79
|
*/
|
|
@@ -79,7 +82,7 @@ export type KVOptionsExecution = {
|
|
|
79
82
|
executionId: string;
|
|
80
83
|
};
|
|
81
84
|
/**
|
|
82
|
-
* KVOptionsNotExecution specifies options for opening project or
|
|
85
|
+
* KVOptionsNotExecution specifies options for opening project, workspace, organization, or user-scoped KV stores.
|
|
83
86
|
*/
|
|
84
87
|
export type KVOptionsNotExecution = {
|
|
85
88
|
scope: Exclude<KeyValueScope, ':execution:'>;
|
|
@@ -89,6 +92,7 @@ export type KVOptionsNotExecution = {
|
|
|
89
92
|
*/
|
|
90
93
|
export type KVOptions = (KVOptionsExecution | KVOptionsNotExecution) & {
|
|
91
94
|
activationId?: string;
|
|
95
|
+
externalUserId?: string;
|
|
92
96
|
};
|
|
93
97
|
/**
|
|
94
98
|
* DestroyOptions configures which KV store to destroy.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyValue.d.ts","sourceRoot":"","sources":["../../../src/src/kv/KeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpG,KAAK,sBAAsB,CAAC,CAAC,IAAI;IAC7B,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,eAAe,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAC5B,YAAY,EAAE,CAAC,CAAC;IAChB,eAAe,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC1B,eAAe,EAAE,IAAI,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAClB,sBAAsB,CAAC,CAAC,CAAC,GACzB,qBAAqB,CAAC,CAAC,CAAC,GACxB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE7B;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,GAAG,GAAG,EACP,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EACtB,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAC3D,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,GAAG,CAAC,CAAC,GAAG,GAAG,EACP,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EACtB,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1B,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEtF;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAElD;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED
|
|
1
|
+
{"version":3,"file":"KeyValue.d.ts","sourceRoot":"","sources":["../../../src/src/kv/KeyValue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable hex fingerprint of an external user id for KV path segments.
|
|
3
|
+
* Output is `[0-9a-f]{64}` so it satisfies backends that only allow `[a-zA-Z0-9_-]+` per segment.
|
|
4
|
+
*/
|
|
5
|
+
export declare function fingerprintExternalUserId(externalUserId: string): string;
|
|
6
|
+
//# sourceMappingURL=fingerprintExternalUserId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprintExternalUserId.d.ts","sourceRoot":"","sources":["../../../src/src/kv/fingerprintExternalUserId.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAExE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025 Versori Group Inc
|
|
4
|
+
*
|
|
5
|
+
* Use of this software is governed by the Business Source License 1.1
|
|
6
|
+
* included in the LICENSE file at the root of this repository.
|
|
7
|
+
*
|
|
8
|
+
* Change Date: 2029-01-01
|
|
9
|
+
* Change License: Apache License, Version 2.0
|
|
10
|
+
*
|
|
11
|
+
* As of the Change Date, in accordance with the Business Source License,
|
|
12
|
+
* use of this software will be governed by the Apache License, Version 2.0.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.fingerprintExternalUserId = fingerprintExternalUserId;
|
|
16
|
+
const node_crypto_1 = require("node:crypto");
|
|
17
|
+
/**
|
|
18
|
+
* Stable hex fingerprint of an external user id for KV path segments.
|
|
19
|
+
* Output is `[0-9a-f]{64}` so it satisfies backends that only allow `[a-zA-Z0-9_-]+` per segment.
|
|
20
|
+
*/
|
|
21
|
+
function fingerprintExternalUserId(externalUserId) {
|
|
22
|
+
return (0, node_crypto_1.createHash)('sha256').update(externalUserId, 'utf8').digest('hex');
|
|
23
|
+
}
|
|
@@ -2,8 +2,12 @@ import { DestroyOptions, KeyValue, KeyValueProvider, KVOptions } from '../KeyVal
|
|
|
2
2
|
export declare class MemoryKeyValueProvider implements KeyValueProvider {
|
|
3
3
|
private executionKv;
|
|
4
4
|
private projectKv;
|
|
5
|
+
private workspaceKv;
|
|
6
|
+
private organizationKv;
|
|
7
|
+
private userKv;
|
|
5
8
|
kv(options: KVOptions): KeyValue;
|
|
6
9
|
destroy(options: DestroyOptions): Promise<void>;
|
|
7
10
|
private getExecutionKv;
|
|
11
|
+
private getUserKv;
|
|
8
12
|
}
|
|
9
13
|
//# sourceMappingURL=MemoryKeyValueProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryKeyValueProvider.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValueProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGvF,qBAAa,sBAAuB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,WAAW,CAAoC;
|
|
1
|
+
{"version":3,"file":"MemoryKeyValueProvider.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValueProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGvF,qBAAa,sBAAuB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,MAAM,CAAoC;IAElD,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ;IAyBhC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/C,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,SAAS;CAUpB"}
|
|
@@ -28,6 +28,24 @@ class MemoryKeyValueProvider {
|
|
|
28
28
|
writable: true,
|
|
29
29
|
value: new MemoryKeyValue_js_1.MemoryKeyValue()
|
|
30
30
|
});
|
|
31
|
+
Object.defineProperty(this, "workspaceKv", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true,
|
|
35
|
+
value: new MemoryKeyValue_js_1.MemoryKeyValue()
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(this, "organizationKv", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: new MemoryKeyValue_js_1.MemoryKeyValue()
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, "userKv", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: new Map()
|
|
48
|
+
});
|
|
31
49
|
}
|
|
32
50
|
kv(options) {
|
|
33
51
|
switch (options.scope) {
|
|
@@ -38,6 +56,15 @@ class MemoryKeyValueProvider {
|
|
|
38
56
|
return this.getExecutionKv(options.executionId);
|
|
39
57
|
case ':project:':
|
|
40
58
|
return this.projectKv;
|
|
59
|
+
case ':workspace:':
|
|
60
|
+
return this.workspaceKv;
|
|
61
|
+
case ':organization:':
|
|
62
|
+
return this.organizationKv;
|
|
63
|
+
case ':user:':
|
|
64
|
+
if (typeof options.externalUserId === 'undefined') {
|
|
65
|
+
throw new Error('externalUserId is required when scope is :user:');
|
|
66
|
+
}
|
|
67
|
+
return this.getUserKv(options.externalUserId);
|
|
41
68
|
default:
|
|
42
69
|
throw new Error(`Unsupported scope: ${options.scope}`);
|
|
43
70
|
}
|
|
@@ -50,6 +77,21 @@ class MemoryKeyValueProvider {
|
|
|
50
77
|
}
|
|
51
78
|
this.executionKv.delete(options.executionId);
|
|
52
79
|
return Promise.resolve();
|
|
80
|
+
case ':project:':
|
|
81
|
+
this.projectKv = new MemoryKeyValue_js_1.MemoryKeyValue();
|
|
82
|
+
return Promise.resolve();
|
|
83
|
+
case ':workspace:':
|
|
84
|
+
this.workspaceKv = new MemoryKeyValue_js_1.MemoryKeyValue();
|
|
85
|
+
return Promise.resolve();
|
|
86
|
+
case ':organization:':
|
|
87
|
+
this.organizationKv = new MemoryKeyValue_js_1.MemoryKeyValue();
|
|
88
|
+
return Promise.resolve();
|
|
89
|
+
case ':user:':
|
|
90
|
+
if (typeof options.externalUserId === 'undefined') {
|
|
91
|
+
throw new Error('externalUserId is required when scope is :user:');
|
|
92
|
+
}
|
|
93
|
+
this.userKv.delete(options.externalUserId);
|
|
94
|
+
return Promise.resolve();
|
|
53
95
|
default:
|
|
54
96
|
return Promise.resolve();
|
|
55
97
|
}
|
|
@@ -62,5 +104,13 @@ class MemoryKeyValueProvider {
|
|
|
62
104
|
}
|
|
63
105
|
return kv;
|
|
64
106
|
}
|
|
107
|
+
getUserKv(externalUserId) {
|
|
108
|
+
let kv = this.userKv.get(externalUserId);
|
|
109
|
+
if (!kv) {
|
|
110
|
+
kv = new MemoryKeyValue_js_1.MemoryKeyValue();
|
|
111
|
+
this.userKv.set(externalUserId, kv);
|
|
112
|
+
}
|
|
113
|
+
return kv;
|
|
114
|
+
}
|
|
65
115
|
}
|
|
66
116
|
exports.MemoryKeyValueProvider = MemoryKeyValueProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NatsKeyValueProvider.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/nats/NatsKeyValueProvider.ts"],"names":[],"mappings":"AAeA,OAAO,EAA+B,UAAU,EAAE,MAAM,+DAA+D,CAAC;
|
|
1
|
+
{"version":3,"file":"NatsKeyValueProvider.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/nats/NatsKeyValueProvider.ts"],"names":[],"mappings":"AAeA,OAAO,EAA+B,UAAU,EAAE,MAAM,+DAA+D,CAAC;AAGxH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA4CvF,MAAM,MAAM,2BAA2B,GAAG;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACF,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;CACL,CAAC;AAuBF,qBAAa,oBAAqB,YAAW,gBAAgB,EAAE,eAAe;IAEtE,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IALzB,OAAO;WAQM,WAAW,CACpB,IAAI,GAAE,OAAO,CAAC,2BAA2B,CAAM,GAChD,OAAO,CAAC,oBAAoB,CAAC;IA0BhC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAI/C,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;IAI1C,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ;IAyB1B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrD,OAAO,CAAC,aAAa;CAsBxB"}
|
|
@@ -16,6 +16,7 @@ exports.NatsKeyValueProvider = void 0;
|
|
|
16
16
|
const mod_js_1 = require("../../../deps/jsr.io/@nats-io/jetstream/3.3.1/src/mod.js");
|
|
17
17
|
const mod_js_2 = require("../../../deps/jsr.io/@nats-io/kv/3.3.1/src/mod.js");
|
|
18
18
|
const mod_js_3 = require("../../../deps/jsr.io/@nats-io/transport-deno/3.3.1/src/mod.js");
|
|
19
|
+
const fingerprintExternalUserId_js_1 = require("../fingerprintExternalUserId.js");
|
|
19
20
|
const isKVOptionsExecution_js_1 = require("../isKVOptionsExecution.js");
|
|
20
21
|
const NatsKeyValue_js_1 = require("./NatsKeyValue.js");
|
|
21
22
|
function getOptionsFromEnv() {
|
|
@@ -128,6 +129,10 @@ class NatsKeyValueProvider {
|
|
|
128
129
|
return new NatsKeyValue_js_1.NatsKeyValue(this.kvOrgScope, this.subjectPrefix(options));
|
|
129
130
|
case ':project:':
|
|
130
131
|
return new NatsKeyValue_js_1.NatsKeyValue(this.kvProjectScope, this.subjectPrefix(options));
|
|
132
|
+
case ':workspace:':
|
|
133
|
+
return new NatsKeyValue_js_1.NatsKeyValue(this.kvProjectScope, this.subjectPrefix(options));
|
|
134
|
+
case ':user:':
|
|
135
|
+
return new NatsKeyValue_js_1.NatsKeyValue(this.kvProjectScope, this.subjectPrefix(options));
|
|
131
136
|
case ':execution:':
|
|
132
137
|
if (!(0, isKVOptionsExecution_js_1.isKVOptionsExecution)(options)) {
|
|
133
138
|
throw new Error('invalid KV options, executionId is required for :execution: scope');
|
|
@@ -178,8 +183,17 @@ class NatsKeyValueProvider {
|
|
|
178
183
|
return `${this.opts.organizationId}`;
|
|
179
184
|
case ':project:':
|
|
180
185
|
return `${this.opts.organizationId}.${this.opts.projectId}.${this.opts.environment}${activationSuffix}`;
|
|
186
|
+
case ':workspace:':
|
|
187
|
+
return `${this.opts.organizationId}.${this.opts.projectId}.${this.opts.environment}`;
|
|
188
|
+
case ':user:':
|
|
189
|
+
if (typeof options.externalUserId === 'undefined') {
|
|
190
|
+
throw new Error('externalUserId is required when scope is :user:');
|
|
191
|
+
}
|
|
192
|
+
return `${this.opts.organizationId}.${this.opts.projectId}.${this.opts.environment}.${(0, fingerprintExternalUserId_js_1.fingerprintExternalUserId)(options.externalUserId)}`;
|
|
181
193
|
case ':execution:':
|
|
182
194
|
return `${this.opts.organizationId}.${this.opts.projectId}.${this.opts.environment}.${options.executionId}${activationSuffix}`;
|
|
195
|
+
default:
|
|
196
|
+
throw new Error(`Unsupported scope for subjectPrefix: ${options.scope}`);
|
|
183
197
|
}
|
|
184
198
|
}
|
|
185
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SDKKeyValueProvider.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/sdk/SDKKeyValueProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SDKKeyValueProvider.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/sdk/SDKKeyValueProvider.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkCvF,MAAM,MAAM,0BAA0B,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AA6BF,qBAAa,mBAAoB,YAAW,gBAAgB,EAAE,eAAe;IAErE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJzB,OAAO;WAOM,WAAW,CACpB,IAAI,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAC/C,OAAO,CAAC,mBAAmB,CAAC;IAY/B,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9C,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;IAI1C,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ;IAyB1B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrD,OAAO,CAAC,aAAa;CAoBxB"}
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.SDKKeyValueProvider = void 0;
|
|
16
16
|
const KvOperationsService_js_1 = require("../../dsl/http/versori/kvapi/services/KvOperationsService.js");
|
|
17
17
|
const StoresService_js_1 = require("../../dsl/http/versori/kvapi/services/StoresService.js");
|
|
18
|
+
const fingerprintExternalUserId_js_1 = require("../fingerprintExternalUserId.js");
|
|
18
19
|
const isKVOptionsExecution_js_1 = require("../isKVOptionsExecution.js");
|
|
19
20
|
const SDKKeyValue_js_1 = require("./SDKKeyValue.js");
|
|
20
21
|
function getOptionsFromEnv() {
|
|
@@ -107,6 +108,10 @@ class SDKKeyValueProvider {
|
|
|
107
108
|
return new SDKKeyValue_js_1.SDKKeyValue(this.kvOrgScope, this.subjectPrefix(options));
|
|
108
109
|
case ':project:':
|
|
109
110
|
return new SDKKeyValue_js_1.SDKKeyValue(this.kvProjectScope, this.subjectPrefix(options));
|
|
111
|
+
case ':workspace:':
|
|
112
|
+
return new SDKKeyValue_js_1.SDKKeyValue(this.kvProjectScope, this.subjectPrefix(options));
|
|
113
|
+
case ':user:':
|
|
114
|
+
return new SDKKeyValue_js_1.SDKKeyValue(this.kvProjectScope, this.subjectPrefix(options));
|
|
110
115
|
case ':execution:':
|
|
111
116
|
if (!(0, isKVOptionsExecution_js_1.isKVOptionsExecution)(options)) {
|
|
112
117
|
throw new Error('invalid KV options, executionId is required for :execution: scope');
|
|
@@ -153,6 +158,13 @@ class SDKKeyValueProvider {
|
|
|
153
158
|
return `${this.opts.organizationId}/${this.opts.projectId}/${this.opts.environment}${activationSuffix}`;
|
|
154
159
|
case ':execution:':
|
|
155
160
|
return `${this.opts.organizationId}/${this.opts.projectId}/${this.opts.environment}/${options.executionId}${activationSuffix}`;
|
|
161
|
+
case ':workspace:':
|
|
162
|
+
return `${this.opts.organizationId}/${this.opts.projectId}/${this.opts.environment}`;
|
|
163
|
+
case ':user:':
|
|
164
|
+
if (typeof options.externalUserId === 'undefined') {
|
|
165
|
+
throw new Error('externalUserId is required when scope is :user:');
|
|
166
|
+
}
|
|
167
|
+
return `${this.opts.organizationId}/${this.opts.projectId}/${this.opts.environment}/${(0, fingerprintExternalUserId_js_1.fingerprintExternalUserId)(options.externalUserId)}`;
|
|
156
168
|
}
|
|
157
169
|
}
|
|
158
170
|
}
|