@x12i/memorix-service 3.13.0 → 3.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics/host.d.ts +2 -2
- package/dist/analytics/host.d.ts.map +1 -1
- package/dist/analytics/host.js.map +1 -1
- package/dist/analytics/property-index.d.ts.map +1 -1
- package/dist/analytics/property-index.js +5 -1
- package/dist/analytics/property-index.js.map +1 -1
- package/dist/analytics/read-row.d.ts +33 -0
- package/dist/analytics/read-row.d.ts.map +1 -0
- package/dist/analytics/read-row.js +76 -0
- package/dist/analytics/read-row.js.map +1 -0
- package/dist/analytics/tracker.d.ts +14 -0
- package/dist/analytics/tracker.d.ts.map +1 -1
- package/dist/analytics/tracker.js +55 -17
- package/dist/analytics/tracker.js.map +1 -1
- package/dist/catalog-bridge.d.ts +4 -4
- package/dist/catalog-bridge.d.ts.map +1 -1
- package/dist/catalog-bridge.js +63 -34
- package/dist/catalog-bridge.js.map +1 -1
- package/dist/metadata-view.d.ts +30 -0
- package/dist/metadata-view.d.ts.map +1 -0
- package/dist/metadata-view.js +67 -0
- package/dist/metadata-view.js.map +1 -0
- package/dist/nexum-analysis/enqueue.d.ts +1 -1
- package/dist/nexum-analysis/enqueue.d.ts.map +1 -1
- package/dist/nexum-analysis/enqueue.js +2 -1
- package/dist/nexum-analysis/enqueue.js.map +1 -1
- package/dist/openapi/openapi.json +115 -11
- package/dist/platform.d.ts +7 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +68 -29
- package/dist/platform.js.map +1 -1
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +123 -12
- package/dist/routes/data.js.map +1 -1
- package/dist/writes/content-write.d.ts +38 -1
- package/dist/writes/content-write.d.ts.map +1 -1
- package/dist/writes/content-write.js +67 -7
- package/dist/writes/content-write.js.map +1 -1
- package/dist/writes/error-shape.d.ts.map +1 -1
- package/dist/writes/error-shape.js +8 -1
- package/dist/writes/error-shape.js.map +1 -1
- package/dist/writes/queued-write.d.ts +38 -0
- package/dist/writes/queued-write.d.ts.map +1 -0
- package/dist/writes/queued-write.js +288 -0
- package/dist/writes/queued-write.js.map +1 -0
- package/dist/writes/receipt-store.d.ts +52 -2
- package/dist/writes/receipt-store.d.ts.map +1 -1
- package/dist/writes/receipt-store.js +191 -2
- package/dist/writes/receipt-store.js.map +1 -1
- package/dist/writes/worker.d.ts +21 -0
- package/dist/writes/worker.d.ts.map +1 -1
- package/dist/writes/worker.js +81 -1
- package/dist/writes/worker.js.map +1 -1
- package/openapi/openapi.json +115 -11
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt-store.js","sourceRoot":"","sources":["../../src/writes/receipt-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"receipt-store.js","sourceRoot":"","sources":["../../src/writes/receipt-store.ts"],"names":[],"mappings":"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"}
|
package/dist/writes/worker.d.ts
CHANGED
|
@@ -6,4 +6,25 @@ export declare function tickWriteReceipts(args: {
|
|
|
6
6
|
storeFor: (orgId: string) => WriteReceiptStore;
|
|
7
7
|
replay: (row: WriteReceiptRow) => Promise<void>;
|
|
8
8
|
}): Promise<void>;
|
|
9
|
+
export declare const QUEUE_DEFAULT_CONCURRENCY = 8;
|
|
10
|
+
/**
|
|
11
|
+
* Apply queued rows until none is due, or the budget ends.
|
|
12
|
+
*
|
|
13
|
+
* Rows for one storage key apply one at a time in accept order, because `claimQueued` never returns a
|
|
14
|
+
* row while an earlier open row for its key exists. Rows for different keys apply at the same time, up
|
|
15
|
+
* to `concurrency`. A claim is a compare-and-set on the receipt, so a second process draining the same
|
|
16
|
+
* database cannot apply the same row.
|
|
17
|
+
*/
|
|
18
|
+
export declare function drainQueuedWrites(args: {
|
|
19
|
+
orgIds: string[];
|
|
20
|
+
now: () => string;
|
|
21
|
+
storeFor: (orgId: string) => WriteReceiptStore;
|
|
22
|
+
replay: (row: WriteReceiptRow) => Promise<void>;
|
|
23
|
+
concurrency?: number;
|
|
24
|
+
/** After this long the drain returns. The next tick starts another, so the org list stays fresh. */
|
|
25
|
+
budgetMs?: number;
|
|
26
|
+
shouldStop?: () => boolean;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
applied: number;
|
|
29
|
+
}>;
|
|
9
30
|
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/writes/worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/writes/worker.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,8CAA8C;AAC9C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAC/C,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD,GAAG,OAAO,CAAC,IAAI,CAAC,CAehB;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAG3C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,CAAC;IAC/C,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgE/B"}
|
package/dist/writes/worker.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QUEUE_MAX_ATTEMPTS } from "./content-write.js";
|
|
2
|
+
import { rejectedExpiry, WRITE_ATTEMPT_LEASE_MS, } from "./receipt-store.js";
|
|
2
3
|
/** Finish writes Memorix already accepted. */
|
|
3
4
|
export async function tickWriteReceipts(args) {
|
|
4
5
|
for (const orgId of args.orgIds) {
|
|
@@ -17,4 +18,83 @@ export async function tickWriteReceipts(args) {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
}
|
|
21
|
+
export const QUEUE_DEFAULT_CONCURRENCY = 8;
|
|
22
|
+
const QUEUE_REPLAY_FAILURE_DELAY_MS = 5_000;
|
|
23
|
+
/**
|
|
24
|
+
* Apply queued rows until none is due, or the budget ends.
|
|
25
|
+
*
|
|
26
|
+
* Rows for one storage key apply one at a time in accept order, because `claimQueued` never returns a
|
|
27
|
+
* row while an earlier open row for its key exists. Rows for different keys apply at the same time, up
|
|
28
|
+
* to `concurrency`. A claim is a compare-and-set on the receipt, so a second process draining the same
|
|
29
|
+
* database cannot apply the same row.
|
|
30
|
+
*/
|
|
31
|
+
export async function drainQueuedWrites(args) {
|
|
32
|
+
const concurrency = Math.max(1, Math.floor(args.concurrency ?? QUEUE_DEFAULT_CONCURRENCY));
|
|
33
|
+
const deadline = Date.now() + (args.budgetMs ?? 20_000);
|
|
34
|
+
const stopped = () => args.shouldStop?.() === true || Date.now() > deadline;
|
|
35
|
+
let applied = 0;
|
|
36
|
+
for (const orgId of args.orgIds) {
|
|
37
|
+
if (stopped())
|
|
38
|
+
break;
|
|
39
|
+
const store = args.storeFor(orgId);
|
|
40
|
+
const inFlight = new Set();
|
|
41
|
+
const apply = async (row) => {
|
|
42
|
+
try {
|
|
43
|
+
await args.replay(row);
|
|
44
|
+
applied += 1;
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
// `finish` records its own failures. This is a failure around it, such as the database being down.
|
|
48
|
+
const now = args.now();
|
|
49
|
+
try {
|
|
50
|
+
if (row.attempts >= QUEUE_MAX_ATTEMPTS) {
|
|
51
|
+
row.status = "rejected";
|
|
52
|
+
row.error = {
|
|
53
|
+
code: "WRITE_FAILED",
|
|
54
|
+
field: null,
|
|
55
|
+
message: `gave up after ${row.attempts} attempts: ${err instanceof Error ? err.message : String(err)}`,
|
|
56
|
+
retryable: false,
|
|
57
|
+
status: 500,
|
|
58
|
+
};
|
|
59
|
+
row.expireAt = rejectedExpiry(now);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
row.status = "queued";
|
|
63
|
+
row.nextAttemptAt = new Date(Date.parse(now) + QUEUE_REPLAY_FAILURE_DELAY_MS).toISOString();
|
|
64
|
+
}
|
|
65
|
+
row.updatedAt = now;
|
|
66
|
+
await store.save(row);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
/* the lease runs out and the row is claimed again */
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
try {
|
|
74
|
+
while (!stopped()) {
|
|
75
|
+
const free = concurrency - inFlight.size;
|
|
76
|
+
let claimed = 0;
|
|
77
|
+
if (free > 0) {
|
|
78
|
+
const rows = await store.claimQueued(orgId, args.now(), free, WRITE_ATTEMPT_LEASE_MS);
|
|
79
|
+
claimed = rows.length;
|
|
80
|
+
for (const row of rows) {
|
|
81
|
+
const task = apply(row).finally(() => {
|
|
82
|
+
inFlight.delete(task);
|
|
83
|
+
});
|
|
84
|
+
inFlight.add(task);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (inFlight.size === 0)
|
|
88
|
+
break;
|
|
89
|
+
// A finished apply can free the next row for its key, so wait for one slot before claiming again.
|
|
90
|
+
if (claimed === 0 || inFlight.size >= concurrency)
|
|
91
|
+
await Promise.race(inFlight);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
await Promise.all(inFlight);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return { applied };
|
|
99
|
+
}
|
|
20
100
|
//# sourceMappingURL=worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/writes/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/writes/worker.ts"],"names":[],"mappings":"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"}
|
package/openapi/openapi.json
CHANGED
|
@@ -2769,7 +2769,7 @@
|
|
|
2769
2769
|
"/api/data/content/batch": {
|
|
2770
2770
|
"post": {
|
|
2771
2771
|
"operationId": "dataWriteContentBatch",
|
|
2772
|
-
"summary": "Write up to 500 rows. One receipt or error per row, in order. One bad row does not reject the batch.",
|
|
2772
|
+
"summary": "Write up to 500 rows. One receipt or error per row, in order. One bad row does not reject the batch. With queue: true on the body each row is accepted into the write queue in array order, and a row's result is the 202 body of POST /api/data/content (status queued) or an error.",
|
|
2773
2773
|
"tags": ["Data"],
|
|
2774
2774
|
"parameters": [
|
|
2775
2775
|
{ "$ref": "#/components/parameters/XMemorixCaller" },
|
|
@@ -2784,6 +2784,10 @@
|
|
|
2784
2784
|
"type": "object",
|
|
2785
2785
|
"required": ["writes"],
|
|
2786
2786
|
"properties": {
|
|
2787
|
+
"queue": {
|
|
2788
|
+
"type": "boolean",
|
|
2789
|
+
"description": "true accepts every row into the durable write queue. Set on the body, not on a row."
|
|
2790
|
+
},
|
|
2787
2791
|
"writes": {
|
|
2788
2792
|
"type": "array",
|
|
2789
2793
|
"maxItems": 500,
|
|
@@ -2818,27 +2822,114 @@
|
|
|
2818
2822
|
"/api/data/receipts": {
|
|
2819
2823
|
"get": {
|
|
2820
2824
|
"operationId": "dataListWriteReceipts",
|
|
2821
|
-
"summary": "List write receipts for x-memorix-caller.
|
|
2825
|
+
"summary": "List write receipts for x-memorix-caller. Without runId: rejected by default, newest first. With runId: the queued writes of that run in accept order, every status unless status is given. Stored and rejected receipts stay for 7 days.",
|
|
2822
2826
|
"tags": ["Data"],
|
|
2823
2827
|
"parameters": [
|
|
2824
2828
|
{ "$ref": "#/components/parameters/XMemorixCaller" },
|
|
2825
2829
|
{ "$ref": "#/components/parameters/XMemorixOrgId" },
|
|
2826
2830
|
{ "$ref": "#/components/parameters/XMemorixAgentIds" },
|
|
2831
|
+
{
|
|
2832
|
+
"name": "runId",
|
|
2833
|
+
"in": "query",
|
|
2834
|
+
"description": "List the queued writes of this run (_metadata.execution.runId).",
|
|
2835
|
+
"schema": { "type": "string" }
|
|
2836
|
+
},
|
|
2837
|
+
{
|
|
2838
|
+
"name": "stepId",
|
|
2839
|
+
"in": "query",
|
|
2840
|
+
"description": "With runId: only this step (_metadata.execution.stepId).",
|
|
2841
|
+
"schema": { "type": "string" }
|
|
2842
|
+
},
|
|
2827
2843
|
{
|
|
2828
2844
|
"name": "status",
|
|
2829
2845
|
"in": "query",
|
|
2830
|
-
"
|
|
2846
|
+
"description": "Without runId: pending, queued, stored, rejected or all (default rejected). With runId: queued, stored or rejected (default every status).",
|
|
2847
|
+
"schema": { "type": "string", "enum": ["pending", "queued", "stored", "rejected", "all"] }
|
|
2848
|
+
},
|
|
2849
|
+
{
|
|
2850
|
+
"name": "limit",
|
|
2851
|
+
"in": "query",
|
|
2852
|
+
"schema": { "type": "integer", "minimum": 1, "maximum": 200, "default": 50 }
|
|
2853
|
+
},
|
|
2854
|
+
{
|
|
2855
|
+
"name": "cursor",
|
|
2856
|
+
"in": "query",
|
|
2857
|
+
"description": "With runId: pageInfo.nextCursor of the previous page. An invalid cursor is 400.",
|
|
2858
|
+
"schema": { "type": "string" }
|
|
2859
|
+
}
|
|
2860
|
+
],
|
|
2861
|
+
"responses": {
|
|
2862
|
+
"200": {
|
|
2863
|
+
"description": "Receipts for this caller. With runId the body has pageInfo { nextCursor, limit }; nextCursor is null on the last page.",
|
|
2864
|
+
"content": {
|
|
2865
|
+
"application/json": {
|
|
2866
|
+
"schema": {
|
|
2867
|
+
"type": "object",
|
|
2868
|
+
"required": ["receipts"],
|
|
2869
|
+
"properties": {
|
|
2870
|
+
"scope": { "$ref": "#/components/schemas/MemorixScope" },
|
|
2871
|
+
"receipts": { "type": "array", "items": { "type": "object", "additionalProperties": true } },
|
|
2872
|
+
"pageInfo": {
|
|
2873
|
+
"type": "object",
|
|
2874
|
+
"properties": {
|
|
2875
|
+
"nextCursor": { "type": "string", "nullable": true },
|
|
2876
|
+
"limit": { "type": "integer" }
|
|
2877
|
+
}
|
|
2878
|
+
}
|
|
2879
|
+
}
|
|
2880
|
+
}
|
|
2881
|
+
}
|
|
2882
|
+
}
|
|
2883
|
+
},
|
|
2884
|
+
"400": { "description": "status, cursor or stepId is not valid", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } } }
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
},
|
|
2888
|
+
"/api/data/receipts/summary": {
|
|
2889
|
+
"get": {
|
|
2890
|
+
"operationId": "dataSummarizeWriteReceipts",
|
|
2891
|
+
"summary": "Counts of one run's queued writes for x-memorix-caller. queued: 0 means the run's queue has drained: every accepted row is stored or rejected.",
|
|
2892
|
+
"tags": ["Data"],
|
|
2893
|
+
"parameters": [
|
|
2894
|
+
{ "$ref": "#/components/parameters/XMemorixCaller" },
|
|
2895
|
+
{ "$ref": "#/components/parameters/XMemorixOrgId" },
|
|
2896
|
+
{ "$ref": "#/components/parameters/XMemorixAgentIds" },
|
|
2897
|
+
{ "name": "runId", "in": "query", "required": true, "schema": { "type": "string" } },
|
|
2898
|
+
{
|
|
2899
|
+
"name": "stepId",
|
|
2900
|
+
"in": "query",
|
|
2901
|
+
"description": "Narrow the counts to one step.",
|
|
2902
|
+
"schema": { "type": "string" }
|
|
2831
2903
|
}
|
|
2832
2904
|
],
|
|
2833
2905
|
"responses": {
|
|
2834
|
-
"200": {
|
|
2906
|
+
"200": {
|
|
2907
|
+
"description": "Counts by status",
|
|
2908
|
+
"content": {
|
|
2909
|
+
"application/json": {
|
|
2910
|
+
"schema": {
|
|
2911
|
+
"type": "object",
|
|
2912
|
+
"required": ["runId", "queued", "stored", "rejected"],
|
|
2913
|
+
"properties": {
|
|
2914
|
+
"scope": { "$ref": "#/components/schemas/MemorixScope" },
|
|
2915
|
+
"runId": { "type": "string" },
|
|
2916
|
+
"stepId": { "type": "string" },
|
|
2917
|
+
"queued": { "type": "integer" },
|
|
2918
|
+
"stored": { "type": "integer" },
|
|
2919
|
+
"rejected": { "type": "integer" }
|
|
2920
|
+
}
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
}
|
|
2924
|
+
},
|
|
2925
|
+
"400": { "description": "runId is required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorEnvelope" } } } }
|
|
2835
2926
|
}
|
|
2836
2927
|
}
|
|
2837
2928
|
},
|
|
2838
2929
|
"/api/data/receipts/{receiptId}": {
|
|
2839
2930
|
"get": {
|
|
2840
2931
|
"operationId": "dataGetWriteReceipt",
|
|
2841
|
-
"summary": "pending, stored (with receipt), or rejected (with error)",
|
|
2932
|
+
"summary": "pending or queued (neither a receipt nor an error), stored (with receipt), or rejected (with error). A queued-write receipt also has storageKey, runId and stepId.",
|
|
2842
2933
|
"tags": ["Data"],
|
|
2843
2934
|
"parameters": [
|
|
2844
2935
|
{ "$ref": "#/components/parameters/XMemorixCaller" },
|
|
@@ -2855,7 +2946,7 @@
|
|
|
2855
2946
|
"/api/data/content": {
|
|
2856
2947
|
"get": {
|
|
2857
2948
|
"operationId": "dataGetContent",
|
|
2858
|
-
"summary": "Concrete content get/list",
|
|
2949
|
+
"summary": "Concrete content get/list. An exact get (recordId) of a key that has a queued write not yet stored answers 200 with pending: true and receiptId. When no document is stored yet, record is the latest queued submission without a revision, and currentRevision is null. When a document is stored, record and currentRevision are the stored ones. A list returns stored documents only.",
|
|
2859
2950
|
"tags": [
|
|
2860
2951
|
"Data"
|
|
2861
2952
|
],
|
|
@@ -3106,7 +3197,7 @@
|
|
|
3106
3197
|
},
|
|
3107
3198
|
"post": {
|
|
3108
3199
|
"operationId": "dataWriteContent",
|
|
3109
|
-
"summary": "Concrete write. precondition none creates or replaces.
|
|
3200
|
+
"summary": "Concrete write. precondition none creates or replaces. A 200 includes a receipt. With queue: true the row is accepted into a durable queue and answers 202 status queued; see docs/async-content-write-FR.md. A queued write takes no writeId, no op other than upsert, and no precondition other than none. The idempotency key is the storage key plus _metadata.execution.runId plus _metadata.execution.stepId. The same tuple with a different body (data, _metadata, _audit, anything) is 409 QUEUE_KEY_REUSED.",
|
|
3110
3201
|
"tags": [
|
|
3111
3202
|
"Data"
|
|
3112
3203
|
],
|
|
@@ -3192,16 +3283,29 @@
|
|
|
3192
3283
|
}
|
|
3193
3284
|
},
|
|
3194
3285
|
"202": {
|
|
3195
|
-
"description": "Accepted. Memorix retries the write.
|
|
3286
|
+
"description": "Accepted. status pending: a synchronous write failed in a way a retry can fix, and Memorix retries it. status queued: the row was accepted with queue: true and is stored in the write queue, not yet in the content collection. Either way, poll GET /api/data/receipts/{receiptId}.",
|
|
3196
3287
|
"content": {
|
|
3197
3288
|
"application/json": {
|
|
3198
3289
|
"schema": {
|
|
3199
3290
|
"type": "object",
|
|
3200
|
-
"required": ["receiptId", "status"
|
|
3291
|
+
"required": ["receiptId", "status"],
|
|
3201
3292
|
"properties": {
|
|
3202
3293
|
"receiptId": { "type": "string" },
|
|
3203
|
-
"status": { "type": "string", "enum": ["pending"] },
|
|
3204
|
-
"retryAfterMs": { "type": "integer" }
|
|
3294
|
+
"status": { "type": "string", "enum": ["pending", "queued"] },
|
|
3295
|
+
"retryAfterMs": { "type": "integer", "description": "status pending only." },
|
|
3296
|
+
"storageKey": {
|
|
3297
|
+
"type": "object",
|
|
3298
|
+
"description": "status queued only.",
|
|
3299
|
+
"required": ["objectType", "contentType", "recordId"],
|
|
3300
|
+
"properties": {
|
|
3301
|
+
"objectType": { "type": "string" },
|
|
3302
|
+
"contentType": { "type": "string" },
|
|
3303
|
+
"recordId": { "type": "string" },
|
|
3304
|
+
"discriminator": { "type": "string" }
|
|
3305
|
+
}
|
|
3306
|
+
},
|
|
3307
|
+
"runId": { "type": "string", "description": "status queued only. From _metadata.execution.runId." },
|
|
3308
|
+
"stepId": { "type": "string", "description": "status queued only. From _metadata.execution.stepId." }
|
|
3205
3309
|
}
|
|
3206
3310
|
}
|
|
3207
3311
|
}
|
package/package.json
CHANGED