@substrat-run/control-plane-api 0.171.0 → 0.173.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/dist/aggregate-reads.d.ts +0 -14
- package/dist/aggregate-reads.d.ts.map +1 -1
- package/dist/aggregate-reads.js +15 -11
- package/dist/aggregate-reads.js.map +1 -1
- package/dist/aggregate-source.d.ts +23 -0
- package/dist/aggregate-source.d.ts.map +1 -1
- package/dist/aggregate-source.js +16 -1
- package/dist/aggregate-source.js.map +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +33 -9
- package/dist/api.js.map +1 -1
- package/dist/cf-observability.d.ts.map +1 -1
- package/dist/cf-observability.js +106 -21
- package/dist/cf-observability.js.map +1 -1
- package/dist/copy-job.d.ts.map +1 -1
- package/dist/copy-job.js +5 -3
- package/dist/copy-job.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/observability.d.ts +50 -2
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +38 -1
- package/dist/observability.js.map +1 -1
- package/dist/platform-drain.d.ts.map +1 -1
- package/dist/platform-drain.js +1 -0
- package/dist/platform-drain.js.map +1 -1
- package/dist/platform-entry.generated.d.ts +1 -1
- package/dist/platform-entry.generated.d.ts.map +1 -1
- package/dist/platform-entry.generated.js +2 -2
- package/dist/platform-entry.generated.js.map +1 -1
- package/dist/tenant-request-query.d.ts +12 -3
- package/dist/tenant-request-query.d.ts.map +1 -1
- package/dist/tenant-request-query.js +33 -6
- package/dist/tenant-request-query.js.map +1 -1
- package/dist/vertical-client.d.ts +74 -12
- package/dist/vertical-client.d.ts.map +1 -1
- package/dist/vertical-client.js +233 -33
- package/dist/vertical-client.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The aggregate reads, computed ONCE from cubes (#1877) — the request histogram, the
|
|
3
|
-
* facet counts and the log patterns, whatever source produced the cubes.
|
|
4
|
-
*
|
|
5
|
-
* Pure, so the semantics the routes promise are held here and nowhere else, and the
|
|
6
|
-
* contract suite can drive them over any `AggregateSource`:
|
|
7
|
-
*
|
|
8
|
-
* - **the tenant, and the scope when one is named, are applied first** — a cube carries
|
|
9
|
-
* every tenant of its service, and no other tenant's row may reach an answer;
|
|
10
|
-
* - a facet is counted with every OTHER filter applied and its own left out;
|
|
11
|
-
* - a line with no `level` is `unrecorded`, counted and never dropped;
|
|
12
|
-
* - a pattern's share is of every matching `ctx.log` line, not only the listed ones;
|
|
13
|
-
* - `estimated` is carried through from any sampled part of a cube.
|
|
14
|
-
*/
|
|
15
1
|
import { type AggregateSource, type Cube, type PatternCubeRow, type RequestCubeRow } from './aggregate-source.js';
|
|
16
2
|
import { type LogPatterns, type RequestFacetKey, type RequestFacets, type RequestVolume, type RequestWhere, type ObservabilityReader } from './observability.js';
|
|
17
3
|
/** Who and what a read is about — the tenant is the narrowing, never widened. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-reads.d.ts","sourceRoot":"","sources":["../src/aggregate-reads.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregate-reads.d.ts","sourceRoot":"","sources":["../src/aggregate-reads.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,KAAK,eAAe,EAAE,KAAK,IAAI,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5H,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAGzB,MAAM,oBAAoB,CAAC;AAE5B,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AA8BD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/E;AAKD,uFAAuF;AACvF,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1B,KAAK,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrF,aAAa,CAef;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1B,KAAK,EAAE,cAAc,GAAG;IAAE,IAAI,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,CAAA;CAAE,GACxE,aAAa,CAsBf;AAKD,6FAA6F;AAC7F,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1B,KAAK,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAC3C,GACA,WAAW,CA2Cb;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAEhE;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAEnG;AAcD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,GACtB,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,CAAC,CAAC,CA6B1G"}
|
package/dist/aggregate-reads.js
CHANGED
|
@@ -12,19 +12,25 @@
|
|
|
12
12
|
* - a pattern's share is of every matching `ctx.log` line, not only the listed ones;
|
|
13
13
|
* - `estimated` is carried through from any sampled part of a cube.
|
|
14
14
|
*/
|
|
15
|
+
import { splitEntityTypes } from '@substrat-run/contracts';
|
|
15
16
|
import { grainFor } from './aggregate-source.js';
|
|
16
17
|
import { LOG_PATTERN_TOP, REQUEST_FACET_KEYS, REQUEST_FACET_TOP, invocationKindOf, } from './observability.js';
|
|
17
18
|
/** The caller's rows: its tenant, and its scope when it named one. Applied before anything else. */
|
|
18
19
|
function own(rows, scope) {
|
|
19
20
|
return rows.filter((r) => r.tenantId === scope.tenantId && (!scope.scopeId || r.scopeId === scope.scopeId));
|
|
20
21
|
}
|
|
21
|
-
/**
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* A request row's values for a facet, as a filter compares them (status as text). One value
|
|
24
|
+
* or none for every key but `entity`, whose row stands for each type the request touched.
|
|
25
|
+
*/
|
|
26
|
+
function facetValues(r, key) {
|
|
23
27
|
// #1901: a row with no kind is a request's.
|
|
24
28
|
if (key === 'kind')
|
|
25
|
-
return invocationKindOf(r.kind);
|
|
29
|
+
return [invocationKindOf(r.kind)];
|
|
30
|
+
if (key === 'entity')
|
|
31
|
+
return splitEntityTypes(r.entity);
|
|
26
32
|
const v = r[key];
|
|
27
|
-
return v === null || v === undefined ?
|
|
33
|
+
return v === null || v === undefined || v === '' ? [] : [String(v)];
|
|
28
34
|
}
|
|
29
35
|
/** Does a row pass every facet filter — except `omit`'s, when counting that facet? */
|
|
30
36
|
function passes(r, where, omit) {
|
|
@@ -34,8 +40,7 @@ function passes(r, where, omit) {
|
|
|
34
40
|
const values = where?.[key];
|
|
35
41
|
if (!values || values.length === 0)
|
|
36
42
|
continue;
|
|
37
|
-
|
|
38
|
-
if (v === null || !values.includes(v))
|
|
43
|
+
if (!facetValues(r, key).some((v) => values.includes(v)))
|
|
39
44
|
return false;
|
|
40
45
|
}
|
|
41
46
|
return true;
|
|
@@ -76,12 +81,11 @@ export function facetsFrom(cube, scope) {
|
|
|
76
81
|
for (const r of rows) {
|
|
77
82
|
if (!passes(r, scope.where, key))
|
|
78
83
|
continue;
|
|
79
|
-
const v = facetValue(r, key);
|
|
80
84
|
// A line with no value for this key is not a value anybody can filter on; the total
|
|
81
|
-
// above still counts it.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
// above still counts it. A request touching two entity types counts under both, so the
|
|
86
|
+
// `entity` counts may sum past the total (#2762).
|
|
87
|
+
for (const v of facetValues(r, key))
|
|
88
|
+
counts.set(v, (counts.get(v) ?? 0) + r.count);
|
|
85
89
|
}
|
|
86
90
|
facets[key] = [...counts.entries()]
|
|
87
91
|
.map(([v, count]) => ({ value: key === 'status' ? Number(v) : v, count }))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-reads.js","sourceRoot":"","sources":["../src/aggregate-reads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,QAAQ,EAA6E,MAAM,uBAAuB,CAAC;AAC5H,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAYjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAS5B,oGAAoG;AACpG,SAAS,GAAG,CAAyD,IAAkB,EAAE,KAAqB;IAC5G,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"aggregate-reads.js","sourceRoot":"","sources":["../src/aggregate-reads.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,17 @@ export interface RequestCubeRow {
|
|
|
48
48
|
* cached before the field existed and the router's datapoints (requests only) carry none.
|
|
49
49
|
*/
|
|
50
50
|
kind?: string | null;
|
|
51
|
+
/**
|
|
52
|
+
* #2762: the line's `entityTypes` — every entity type the request touched, as contracts'
|
|
53
|
+
* `joinEntityTypes` wrote them, so ONE row stands for a request counted under each. Optional
|
|
54
|
+
* for `kind`'s reason; absent, `null` or `''` is none.
|
|
55
|
+
*/
|
|
56
|
+
entity?: string | null;
|
|
57
|
+
/**
|
|
58
|
+
* #2762: the line's `route` (the router's `route` blob) — the method and the registered
|
|
59
|
+
* pattern of the route that answered, the `path` facet. Optional for `kind`'s reason.
|
|
60
|
+
*/
|
|
61
|
+
path?: string | null;
|
|
51
62
|
count: number;
|
|
52
63
|
}
|
|
53
64
|
/** One row of the pattern cube: how many `ctx.log` lines had these values (#1747). */
|
|
@@ -125,6 +136,18 @@ export interface CubeStore {
|
|
|
125
136
|
export declare function memoryCubeStore(): CubeStore & {
|
|
126
137
|
size(): number;
|
|
127
138
|
};
|
|
139
|
+
/**
|
|
140
|
+
* The shape of a request cube's row, as a cached block holds it. Bumped whenever
|
|
141
|
+
* `RequestCubeRow` gains a dimension: a block stored before carries none of it and would
|
|
142
|
+
* answer every filter on the new dimension with nothing, for as long as it is kept. The
|
|
143
|
+
* bump moves the request blocks to new keys, so each closed block is recounted once and
|
|
144
|
+
* the old ones age out (`CUBE_RETENTION_MS`). Patterns are keyed apart and keep theirs.
|
|
145
|
+
*
|
|
146
|
+
* - 1: #1877/#1901 — level, operation, problemCode, principalKind, surface, status, kind.
|
|
147
|
+
* - 2: #2762 — entity.
|
|
148
|
+
* - 3: #2762 — path.
|
|
149
|
+
*/
|
|
150
|
+
export declare const REQUEST_CUBE_SHAPE = 3;
|
|
128
151
|
/** The cache key of one block. The grain is in it: a block at 5 min is not one at 1 h. */
|
|
129
152
|
export declare function blockKey(kind: 'requests' | 'patterns' | 'async-requests', service: string, grainMs: number, start: number): string;
|
|
130
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-source.d.ts","sourceRoot":"","sources":["../src/aggregate-source.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"aggregate-source.d.ts","sourceRoot":"","sources":["../src/aggregate-source.ts"],"names":[],"mappings":"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"}
|
package/dist/aggregate-source.js
CHANGED
|
@@ -72,9 +72,24 @@ export function memoryCubeStore() {
|
|
|
72
72
|
size: () => blocks.size,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* The shape of a request cube's row, as a cached block holds it. Bumped whenever
|
|
77
|
+
* `RequestCubeRow` gains a dimension: a block stored before carries none of it and would
|
|
78
|
+
* answer every filter on the new dimension with nothing, for as long as it is kept. The
|
|
79
|
+
* bump moves the request blocks to new keys, so each closed block is recounted once and
|
|
80
|
+
* the old ones age out (`CUBE_RETENTION_MS`). Patterns are keyed apart and keep theirs.
|
|
81
|
+
*
|
|
82
|
+
* - 1: #1877/#1901 — level, operation, problemCode, principalKind, surface, status, kind.
|
|
83
|
+
* - 2: #2762 — entity.
|
|
84
|
+
* - 3: #2762 — path.
|
|
85
|
+
*/
|
|
86
|
+
export const REQUEST_CUBE_SHAPE = 3;
|
|
75
87
|
/** The cache key of one block. The grain is in it: a block at 5 min is not one at 1 h. */
|
|
76
88
|
export function blockKey(kind, service, grainMs, start) {
|
|
77
|
-
|
|
89
|
+
// Shape 1 was written with no suffix, so the patterns' keys — and every key from before
|
|
90
|
+
// the version existed — stay exactly what they were.
|
|
91
|
+
const shaped = kind === 'patterns' ? kind : `${kind}.v${REQUEST_CUBE_SHAPE}`;
|
|
92
|
+
return `${shaped}|${service}|${grainMs}|${start}`;
|
|
78
93
|
}
|
|
79
94
|
/** How many uncached blocks one read computes at once — a bound on the backend's load. */
|
|
80
95
|
const BLOCK_CONCURRENCY = 4;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-source.js","sourceRoot":"","sources":["../src/aggregate-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;
|
|
1
|
+
{"version":3,"file":"aggregate-source.js","sourceRoot":"","sources":["../src/aggregate-source.ts"],"names":[],"mappings":"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"}
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,kBAAkB,EAAoB,MAAM,yBAAyB,CAAC;AAGjI,OAAO,KAAK,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAE9G,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAuBL,KAAK,qBAAqB,EAwF1B,CAAC,EAiBD,KAAK,cAAc,EAEnB,KAAK,uBAAuB,EAG7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAKV,UAAU,EACV,kBAAkB,EAGlB,wBAAwB,EACxB,oBAAoB,EAEpB,eAAe,EAKf,eAAe,EAKf,OAAO,EAMP,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAoB,oBAAoB,EAAE,SAAS,EAAc,UAAU,EAAE,eAAe,EAAkC,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAuClL,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9F,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,kBAAkB,EAAoB,MAAM,yBAAyB,CAAC;AAGjI,OAAO,KAAK,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAE9G,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAuBL,KAAK,qBAAqB,EAwF1B,CAAC,EAiBD,KAAK,cAAc,EAEnB,KAAK,uBAAuB,EAG7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAKV,UAAU,EACV,kBAAkB,EAGlB,wBAAwB,EACxB,oBAAoB,EAEpB,eAAe,EAKf,eAAe,EAKf,OAAO,EAMP,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAoB,oBAAoB,EAAE,SAAS,EAAc,UAAU,EAAE,eAAe,EAAkC,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAuClL,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9F,OAAO,EAAuK,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChO,OAAO,EAEe,KAAK,QAAQ,EAClC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAkB,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAErI,OAAO,EAAgM,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO5Q,OAAO,EAA+C,KAAK,0BAA0B,EAAiC,KAAK,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAuBzL,OAAO,KAAK,EAEV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAkDtD,OAAO,EAAuE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AASnI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAEV,oBAAoB,EAEpB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAuD,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAW1D,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,6FAA6F;IAC7F,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,2BAA2B,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxL,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC1F;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3F,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9E,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,wBAAwB,CAAA;KAAE,KACtD,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxF;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9E;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;CAClG;AAKD,MAAM,WAAW,sBAAsB;IACrC,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IAC/B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAChG;;;;;;;;;OASG;IACH,sBAAsB,CAAC,EAAE,CACvB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,KACnB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACzC;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACpF;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAClD;;;;OAIG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B;kGAC8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExK;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;QAClC,uFAAuF;QACvF,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,gFAAgF;QAChF,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAC;QACrD,sFAAsF;QACtF,SAAS,EAAE,oBAAoB,CAAC;KAEjC,KAAK,OAAO,CAAC,IAAI,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C;;;;OAIG;IACH,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,iBAAiB,CAAC;QACzB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG;YAAE,WAAW,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAAC,SAAS,EAAE,oBAAoB,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACvL,UAAU,EAAE,UAAU,CAAC;QACvB,6FAA6F;QAC7F,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3F;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,0EAA0E;QAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACxE;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;IAC9C;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C;;;;OAIG;IACH,YAAY,EAAE,iBAAiB,CAAC;IAChC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,iBAAiB,CAAC;IAC9C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3D;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,CAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,KACvE,mBAAmB,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,4BAA4B,CAAC,EAAE,8BAA8B,CAAC;IAC9D;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C;;;;;OAKG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,+BAA+B,CAAC;AACnE,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAKzE,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB;;;;;;OAMG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB,kFAAkF;IAClF,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,sGAAsG;IACtG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uGAAuG;IACvG,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;KAAE,CAAC;IACtF;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAkHF,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAGxC,uFAAuF;AACvF,eAAO,MAAM,sBAAsB,QAEmC,CAAC;AAuWvE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;iBASzB,CAAC;AAqCH,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAiI7C,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAmC/C,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAgLjE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEvF;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC,CAogWhG"}
|
package/dist/api.js
CHANGED
|
@@ -12,7 +12,7 @@ import { auditedChange, withAuditedOutcomes } from './audited-change.js';
|
|
|
12
12
|
import { BIND_EXPORT_BREAK_REFUSAL, CARRIED_AWAY_KEY, bindExportBreakRefusal, carriedAwayDump, dumpMetaValue, metaValueIn, crossVerticalHealth, exportBreakRefusal, isBindExportBreakRefusal, isExportBreakRefusal, listedPromoteRefusal, isExportBreakUnjudged, isPrimaryScope, promoteReviewDigest, rebindReviewDigest, assertRebindReviewCurrent, migrationProgress, ulid, auditWarningOf, REQUEST_ROLLUP_LIMIT_DEFAULT, REQUEST_ROLLUP_LIMIT_MAX, STORAGE_GAUGE_RETENTION_MONTHS, MODEL_USAGE_RETENTION_DAYS, BILLING_ROLLUP_RETENTION_MONTHS, METER_DAYS_LIMIT_DEFAULT, METER_DAYS_LIMIT_MAX, releaseRolesAskScopes, releaseRoleSetRefusal, withheldOpsFailure, } from '@substrat-run/kernel';
|
|
13
13
|
import { TENANT_HEADER, confinedTenant } from './auth.js';
|
|
14
14
|
import { mintTenantToken } from './tenant-token.js';
|
|
15
|
-
import { beginTransfer, connectionGrantsForScope, transferScope, isScopeNotHeld, notHeldIsBenign } from './vertical-client.js';
|
|
15
|
+
import { abandonCopy, beginTransfer, connectionGrantsForScope, transferScope, isScopeNotHeld, notHeldIsBenign } from './vertical-client.js';
|
|
16
16
|
import { COPY_JOB_MAX_MS, copyJobAt, copyJobHeld, copyJobId, copyJobLive, copyTagId, versionIdOfOrder, versionOrderOf, } from './copy-job.js';
|
|
17
17
|
import { runningVersionOf, runningVersionStoresOf, scopeStoreReachOf, scopeStoresOf, unrouteScope } from './platform-scope-stores.js';
|
|
18
18
|
import { liveApprovalOf } from './store-script.js';
|
|
@@ -66,7 +66,7 @@ function refuseStatus(c, status, detail, carried) {
|
|
|
66
66
|
import { backfillDeclaredStores, blobStoreBindings, collectBlobStoreHandles, collectTenantStoreHandles, missingStoresForTenant, tenantStoreBindings, } from './tenant-stores.js';
|
|
67
67
|
import { mintPushToken, pushActorFor } from './push-token.js';
|
|
68
68
|
import { TENANT_SERIES_SCOPE_CAP, REQUEST_FACET_KEYS, LOGS_INCOMPLETE_HEADER } from './observability.js';
|
|
69
|
-
import { parseTenantRequestQuery, parseTenantWindowQuery, refineTenantWindow, scriptFamiliesOfScopes } from './tenant-request-query.js';
|
|
69
|
+
import { parseTenantRequestQuery, parseTenantWindowQuery, refineTenantWindow, refuseSearchOnCounts, scriptFamiliesOfScopes, } from './tenant-request-query.js';
|
|
70
70
|
import { namespacesForScript } from './do-namespaces.js';
|
|
71
71
|
import { backupDirectoryIfDue } from './directory-backup.js';
|
|
72
72
|
import { deployedDoClasses, platformSweeperDecision } from './platform-entry.js';
|
|
@@ -3369,14 +3369,24 @@ export function createControlPlaneApi(options) {
|
|
|
3369
3369
|
/**
|
|
3370
3370
|
* Drop every stage these records of one job name at its destination (#2450), best-effort: once the
|
|
3371
3371
|
* job is forgotten nothing else names them, and they would wait for a wipe of the scope there. A
|
|
3372
|
-
* stage that was loaded is gone already, and its discard changes nothing.
|
|
3372
|
+
* stage that was loaded is gone already, and its discard changes nothing. A capture a copying
|
|
3373
|
+
* record holds at the source is ended too (a done one's ended with its final batch).
|
|
3373
3374
|
*/
|
|
3374
3375
|
const discardJobStages = async (...records) => {
|
|
3375
3376
|
const { spec } = records[0];
|
|
3376
|
-
const staged = records.flatMap((r) => [r.state?.stageId, r.done && !Array.isArray(r.done.dump) ? r.done.dump.stageId : undefined]);
|
|
3377
3377
|
const dest = await options.resolveVerticalRef?.(spec.destRef).catch(() => undefined);
|
|
3378
|
-
|
|
3379
|
-
await
|
|
3378
|
+
const source = records.some((r) => r.state?.capture)
|
|
3379
|
+
? await options.resolveVerticalRef?.(spec.sourceRef).catch(() => undefined)
|
|
3380
|
+
: undefined;
|
|
3381
|
+
const seen = new Set();
|
|
3382
|
+
for (const r of records) {
|
|
3383
|
+
const done = r.done && !Array.isArray(r.done.dump) ? r.done.dump.stageId : undefined;
|
|
3384
|
+
for (const state of [r.state, done === undefined ? undefined : { from: spec.scopeId, stageId: done }]) {
|
|
3385
|
+
if (!state || seen.has(state.stageId))
|
|
3386
|
+
continue;
|
|
3387
|
+
seen.add(state.stageId);
|
|
3388
|
+
await abandonCopy({ source, dest }, { ...state, into: spec.scopeId });
|
|
3389
|
+
}
|
|
3380
3390
|
}
|
|
3381
3391
|
};
|
|
3382
3392
|
/**
|
|
@@ -9038,6 +9048,7 @@ export function createControlPlaneApi(options) {
|
|
|
9038
9048
|
return refuseStatus(c, 501, 'request aggregation is not configured on this control plane');
|
|
9039
9049
|
}
|
|
9040
9050
|
const scope = parseTenantRequestQuery(requestTenantOf(c), requestQueryOf(c));
|
|
9051
|
+
refuseSearchOnCounts(scope);
|
|
9041
9052
|
// A bucket COUNT: zooming in keeps it and narrows the window, so the bucket shrinks.
|
|
9042
9053
|
// 90 is the design's histogram; the bounds keep a chart drawable and a query cheap.
|
|
9043
9054
|
const buckets = z.coerce.number().int().min(10).max(240).default(90).parse(c.req.query('buckets'));
|
|
@@ -9049,6 +9060,7 @@ export function createControlPlaneApi(options) {
|
|
|
9049
9060
|
return refuseStatus(c, 501, 'request aggregation is not configured on this control plane');
|
|
9050
9061
|
}
|
|
9051
9062
|
const scope = parseTenantRequestQuery(requestTenantOf(c), requestQueryOf(c));
|
|
9063
|
+
refuseSearchOnCounts(scope);
|
|
9052
9064
|
// `facet` repeats; absent means every facet. Each one is a backend query, so a panel
|
|
9053
9065
|
// that shows three asks for three.
|
|
9054
9066
|
const asked = (c.req.queries('facet') ?? []).filter((k) => k.length > 0);
|
|
@@ -10112,20 +10124,25 @@ export function createControlPlaneApi(options) {
|
|
|
10112
10124
|
throw e;
|
|
10113
10125
|
}
|
|
10114
10126
|
if ('state' in begun) {
|
|
10127
|
+
const staged = begun.state;
|
|
10128
|
+
// A job that could not be started names nothing, so this call gives its copy up itself.
|
|
10115
10129
|
const job = await jobs.start({
|
|
10116
10130
|
id: copyJobId('carry', preview.id), kind: 'carry', tenantId, vertical: slug, scopeId: preview.id,
|
|
10117
10131
|
versionId: opts.versionId, versionOrder: mine.order,
|
|
10118
10132
|
moveId: move.moveId, sourceRef: move.from, destRef: move.to, actor, leaseMs: copyLeaseMs,
|
|
10119
10133
|
erasureEpoch: move.erasureEpoch, restoredStamp: move.restoredStamp, expected: move.expected,
|
|
10120
10134
|
startedAt: Date.now(), deadline: Date.now() + COPY_JOB_MAX_MS,
|
|
10121
|
-
},
|
|
10135
|
+
}, staged).catch(async (e) => {
|
|
10136
|
+
await abandonCopy(move, staged);
|
|
10137
|
+
throw e;
|
|
10138
|
+
});
|
|
10122
10139
|
// Another call started this preview's job first: this call's move is not the job's, so
|
|
10123
10140
|
// its entries settle and its own stage is discarded. The store checks that stage ID,
|
|
10124
10141
|
// leaving the winner's stage alone. A newer push's job refuses this one now, as its
|
|
10125
10142
|
// next call would; an older one's is replaced by that next call.
|
|
10126
10143
|
if (job.spec.moveId !== move.moveId) {
|
|
10127
10144
|
await settleCarryRetained(c, preview, opts.versionId, move);
|
|
10128
|
-
await move
|
|
10145
|
+
await abandonCopy(move, begun.state);
|
|
10129
10146
|
const superseded = supersededRefusal(job, mine, opts.tag);
|
|
10130
10147
|
if (superseded)
|
|
10131
10148
|
throw superseded;
|
|
@@ -10347,16 +10364,23 @@ export function createControlPlaneApi(options) {
|
|
|
10347
10364
|
// later call to this route finishes it (`finishForkJob`); the row stays `provisioning`.
|
|
10348
10365
|
const begun = await beginTransfer({ source: forkPaged.source, dest: target }, { from: forkPaged.sourceScopeId, to: previewId }, { retry: retryTransient, stamp: false, alwaysStage: true });
|
|
10349
10366
|
if ('state' in begun) {
|
|
10367
|
+
const staged = begun.state;
|
|
10368
|
+
const ends = { source: forkPaged.source, dest: target };
|
|
10369
|
+
// A job that could not be started names nothing, so this call gives its copy up itself.
|
|
10350
10370
|
const job = await jobs.start({
|
|
10351
10371
|
id: copyJobId('fork', previewId), kind: 'fork', tenantId, vertical: slug, scopeId: previewId,
|
|
10352
10372
|
versionId: opts.versionId, versionOrder: mine.order,
|
|
10353
10373
|
moveId: move.moveId, sourceRef: forkPaged.sourceRef, destRef: targetRef, actor, leaseMs: copyLeaseMs,
|
|
10354
10374
|
erasureEpoch: move.erasureEpoch, restoredStamp: move.restoredStamp,
|
|
10355
10375
|
startedAt: Date.now(), deadline: Date.now() + COPY_JOB_MAX_MS,
|
|
10356
|
-
},
|
|
10376
|
+
}, staged).catch(async (e) => {
|
|
10377
|
+
await abandonCopy(ends, staged);
|
|
10378
|
+
throw e;
|
|
10379
|
+
});
|
|
10357
10380
|
// A job id names the preview, which this create just minted, so no other call can
|
|
10358
10381
|
// hold it; a job answered for another move would be a defect, not a race.
|
|
10359
10382
|
if (job.spec.moveId !== move.moveId) {
|
|
10383
|
+
await abandonCopy(ends, staged);
|
|
10360
10384
|
throw new ControlPlaneError(500, `preview ${previewId} already had a copy job for another move`);
|
|
10361
10385
|
}
|
|
10362
10386
|
return copyingAnswer(job);
|