@smart-data-engines/sde 0.1.0-dev.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/LICENSE +201 -0
- package/NOTICE +13 -0
- package/README.md +153 -0
- package/bin/weather.mjs +32 -0
- package/dist/_usage.d.ts +30 -0
- package/dist/_usage.js +194 -0
- package/dist/_usage.js.map +1 -0
- package/dist/bulk.d.ts +9 -0
- package/dist/bulk.js +83 -0
- package/dist/bulk.js.map +1 -0
- package/dist/canonical.d.ts +46 -0
- package/dist/canonical.js +150 -0
- package/dist/canonical.js.map +1 -0
- package/dist/capabilities.d.ts +48 -0
- package/dist/capabilities.js +62 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/cutover.d.ts +36 -0
- package/dist/cutover.js +219 -0
- package/dist/cutover.js.map +1 -0
- package/dist/demo/model.d.ts +28 -0
- package/dist/demo/model.js +40 -0
- package/dist/demo/model.js.map +1 -0
- package/dist/demo/project.d.ts +19 -0
- package/dist/demo/project.js +128 -0
- package/dist/demo/project.js.map +1 -0
- package/dist/demo/weather.d.ts +73 -0
- package/dist/demo/weather.js +334 -0
- package/dist/demo/weather.js.map +1 -0
- package/dist/engines/_clickhouse-connection.d.ts +17 -0
- package/dist/engines/_clickhouse-connection.js +182 -0
- package/dist/engines/_clickhouse-connection.js.map +1 -0
- package/dist/engines/_tls-peer-identity.d.ts +2 -0
- package/dist/engines/_tls-peer-identity.js +23 -0
- package/dist/engines/_tls-peer-identity.js.map +1 -0
- package/dist/engines/_write-fences.d.ts +51 -0
- package/dist/engines/_write-fences.js +189 -0
- package/dist/engines/_write-fences.js.map +1 -0
- package/dist/engines/clickhouse.d.ts +193 -0
- package/dist/engines/clickhouse.js +899 -0
- package/dist/engines/clickhouse.js.map +1 -0
- package/dist/engines/postgres.d.ts +293 -0
- package/dist/engines/postgres.js +981 -0
- package/dist/engines/postgres.js.map +1 -0
- package/dist/errors.d.ts +89 -0
- package/dist/errors.js +90 -0
- package/dist/errors.js.map +1 -0
- package/dist/frozen-verification.d.ts +26 -0
- package/dist/frozen-verification.js +67 -0
- package/dist/frozen-verification.js.map +1 -0
- package/dist/generation.d.ts +34 -0
- package/dist/generation.js +81 -0
- package/dist/generation.js.map +1 -0
- package/dist/groups.d.ts +17 -0
- package/dist/groups.js +66 -0
- package/dist/groups.js.map +1 -0
- package/dist/hashing.d.ts +68 -0
- package/dist/hashing.js +146 -0
- package/dist/hashing.js.map +1 -0
- package/dist/in-place-index.d.ts +43 -0
- package/dist/in-place-index.js +272 -0
- package/dist/in-place-index.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/inspection.d.ts +19 -0
- package/dist/inspection.js +31 -0
- package/dist/inspection.js.map +1 -0
- package/dist/internal.d.ts +42 -0
- package/dist/internal.js +56 -0
- package/dist/internal.js.map +1 -0
- package/dist/layout.d.ts +36 -0
- package/dist/layout.js +62 -0
- package/dist/layout.js.map +1 -0
- package/dist/migration.d.ts +197 -0
- package/dist/migration.js +592 -0
- package/dist/migration.js.map +1 -0
- package/dist/model.d.ts +93 -0
- package/dist/model.js +313 -0
- package/dist/model.js.map +1 -0
- package/dist/physical.d.ts +128 -0
- package/dist/physical.js +421 -0
- package/dist/physical.js.map +1 -0
- package/dist/placement.d.ts +157 -0
- package/dist/placement.js +651 -0
- package/dist/placement.js.map +1 -0
- package/dist/provisioning.d.ts +6 -0
- package/dist/provisioning.js +45 -0
- package/dist/provisioning.js.map +1 -0
- package/dist/query.d.ts +68 -0
- package/dist/query.js +340 -0
- package/dist/query.js.map +1 -0
- package/dist/routing.d.ts +25 -0
- package/dist/routing.js +35 -0
- package/dist/routing.js.map +1 -0
- package/dist/schema.d.ts +110 -0
- package/dist/schema.js +337 -0
- package/dist/schema.js.map +1 -0
- package/dist/session.d.ts +195 -0
- package/dist/session.js +870 -0
- package/dist/session.js.map +1 -0
- package/dist/shapes.d.ts +30 -0
- package/dist/shapes.js +112 -0
- package/dist/shapes.js.map +1 -0
- package/dist/staging.d.ts +29 -0
- package/dist/staging.js +214 -0
- package/dist/staging.js.map +1 -0
- package/dist/telemetry.d.ts +468 -0
- package/dist/telemetry.js +872 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/testing/loader.d.ts +38 -0
- package/dist/testing/loader.js +86 -0
- package/dist/testing/loader.js.map +1 -0
- package/dist/testing/memory.d.ts +131 -0
- package/dist/testing/memory.js +311 -0
- package/dist/testing/memory.js.map +1 -0
- package/dist/timestamp.d.ts +20 -0
- package/dist/timestamp.js +89 -0
- package/dist/timestamp.js.map +1 -0
- package/dist/types.d.ts +79 -0
- package/dist/types.js +100 -0
- package/dist/types.js.map +1 -0
- package/dist/verification.d.ts +41 -0
- package/dist/verification.js +169 -0
- package/dist/verification.js.map +1 -0
- package/dist/watermark.d.ts +103 -0
- package/dist/watermark.js +170 -0
- package/dist/watermark.js.map +1 -0
- package/dist/write-fence.d.ts +58 -0
- package/dist/write-fence.js +225 -0
- package/dist/write-fence.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/shapes.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation shapes: the finite set of things an application can ask of a model.
|
|
3
|
+
*
|
|
4
|
+
* A shape is assembled from the structure of an operation and never sees its arguments, so there is
|
|
5
|
+
* nowhere for a value to come from. That is what makes telemetry safe by construction rather than by
|
|
6
|
+
* redaction, and it is a large part of why the API is an entity API rather than SQL.
|
|
7
|
+
*/
|
|
8
|
+
import type { LogicalModel } from './model.js';
|
|
9
|
+
export declare const SHAPE_KINDS: readonly ["point_read", "range_read", "aggregate", "full_scan", "relation_walk", "write", "bulk_write"];
|
|
10
|
+
export type ShapeKind = (typeof SHAPE_KINDS)[number];
|
|
11
|
+
/**
|
|
12
|
+
* The kinds that are writes, in one place.
|
|
13
|
+
*
|
|
14
|
+
* Two callers need it - routing, to send a write to the source, and telemetry, to compute the
|
|
15
|
+
* read/write ratio a placement is scored on - and it lives here because a second copy is how the
|
|
16
|
+
* *same* operation becomes a write for one of them and a read for the other. The reference
|
|
17
|
+
* implementation had four copies of this set once, in one process, and nothing threw; the defect
|
|
18
|
+
* surfaced as a group that looked twice as write-heavy as it was.
|
|
19
|
+
*/
|
|
20
|
+
export declare const WRITE_KINDS: ReadonlySet<ShapeKind>;
|
|
21
|
+
export interface OperationShape {
|
|
22
|
+
readonly group: string;
|
|
23
|
+
readonly kind: ShapeKind;
|
|
24
|
+
readonly entity: string;
|
|
25
|
+
readonly fields: readonly string[];
|
|
26
|
+
readonly target: string | null;
|
|
27
|
+
}
|
|
28
|
+
export declare function shapeIr(shape: OperationShape): Record<string, unknown>;
|
|
29
|
+
export declare function shapeId(shape: OperationShape): string;
|
|
30
|
+
export declare function enumerateShapes(model: LogicalModel): readonly OperationShape[];
|
package/dist/shapes.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation shapes: the finite set of things an application can ask of a model.
|
|
3
|
+
*
|
|
4
|
+
* A shape is assembled from the structure of an operation and never sees its arguments, so there is
|
|
5
|
+
* nowhere for a value to come from. That is what makes telemetry safe by construction rather than by
|
|
6
|
+
* redaction, and it is a large part of why the API is an entity API rather than SQL.
|
|
7
|
+
*/
|
|
8
|
+
import { compareCodePoints, digest16 } from './canonical.js';
|
|
9
|
+
import { colocationGroups, groupOf } from './groups.js';
|
|
10
|
+
export const SHAPE_KINDS = [
|
|
11
|
+
'point_read',
|
|
12
|
+
'range_read',
|
|
13
|
+
'aggregate',
|
|
14
|
+
'full_scan',
|
|
15
|
+
'relation_walk',
|
|
16
|
+
'write',
|
|
17
|
+
'bulk_write',
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* The kinds that are writes, in one place.
|
|
21
|
+
*
|
|
22
|
+
* Two callers need it - routing, to send a write to the source, and telemetry, to compute the
|
|
23
|
+
* read/write ratio a placement is scored on - and it lives here because a second copy is how the
|
|
24
|
+
* *same* operation becomes a write for one of them and a read for the other. The reference
|
|
25
|
+
* implementation had four copies of this set once, in one process, and nothing threw; the defect
|
|
26
|
+
* surfaced as a group that looked twice as write-heavy as it was.
|
|
27
|
+
*/
|
|
28
|
+
export const WRITE_KINDS = new Set(['write', 'bulk_write']);
|
|
29
|
+
/**
|
|
30
|
+
* Types over which a range predicate is meaningful. Ranges over strings and uuids are legal in every
|
|
31
|
+
* engine and almost never what anybody means, so they are not enumerated.
|
|
32
|
+
*/
|
|
33
|
+
const ORDERED_PREFIXES = ['int32', 'int64', 'float32', 'float64', 'decimal', 'date', 'timestamp'];
|
|
34
|
+
export function shapeIr(shape) {
|
|
35
|
+
return {
|
|
36
|
+
group: shape.group,
|
|
37
|
+
kind: shape.kind,
|
|
38
|
+
entity: shape.entity,
|
|
39
|
+
fields: [...shape.fields],
|
|
40
|
+
target: shape.target,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Identifiers are memoised per shape object.
|
|
45
|
+
*
|
|
46
|
+
* Not premature. Routing reads a shape's identifier on every operation, and computing it means
|
|
47
|
+
* building an object, canonically encoding it and running SHA-256 over the result. The Python
|
|
48
|
+
* implementation had exactly this on its hot path and the overhead test measured 41 microseconds
|
|
49
|
+
* median to resolve one route - sixteen percent of a PostgreSQL round trip, against a budget of one
|
|
50
|
+
* percent. Shapes are enumerated once per model and live for the process, so a WeakMap keyed by the
|
|
51
|
+
* object is both correct and free after the first call.
|
|
52
|
+
*
|
|
53
|
+
* A WeakMap rather than a field on the interface so that `shapeId` keeps working on a shape literal
|
|
54
|
+
* built by hand, which the conformance runner and anyone reading a vector will do.
|
|
55
|
+
*/
|
|
56
|
+
const idCache = new WeakMap();
|
|
57
|
+
export function shapeId(shape) {
|
|
58
|
+
const cached = idCache.get(shape);
|
|
59
|
+
if (cached !== undefined)
|
|
60
|
+
return cached;
|
|
61
|
+
const computed = digest16(shapeIr(shape));
|
|
62
|
+
idCache.set(shape, computed);
|
|
63
|
+
return computed;
|
|
64
|
+
}
|
|
65
|
+
function isOrdered(type) {
|
|
66
|
+
return ORDERED_PREFIXES.some((prefix) => type.startsWith(prefix));
|
|
67
|
+
}
|
|
68
|
+
export function enumerateShapes(model) {
|
|
69
|
+
const groups = colocationGroups(model);
|
|
70
|
+
const shapes = [];
|
|
71
|
+
for (const spec of model.entities) {
|
|
72
|
+
const group = groupOf(groups, spec.name).name;
|
|
73
|
+
shapes.push({
|
|
74
|
+
group,
|
|
75
|
+
entity: spec.name,
|
|
76
|
+
target: null,
|
|
77
|
+
kind: 'point_read',
|
|
78
|
+
fields: [...spec.key].sort(compareCodePoints),
|
|
79
|
+
});
|
|
80
|
+
for (const kind of ['write', 'bulk_write', 'full_scan', 'aggregate']) {
|
|
81
|
+
shapes.push({ group, entity: spec.name, target: null, kind, fields: [] });
|
|
82
|
+
}
|
|
83
|
+
for (const field of spec.fields) {
|
|
84
|
+
if (isOrdered(field.type)) {
|
|
85
|
+
shapes.push({
|
|
86
|
+
group,
|
|
87
|
+
entity: spec.name,
|
|
88
|
+
target: null,
|
|
89
|
+
kind: 'range_read',
|
|
90
|
+
fields: [field.name],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
for (const relation of model.relations) {
|
|
96
|
+
shapes.push({
|
|
97
|
+
group: groupOf(groups, relation.source).name,
|
|
98
|
+
kind: 'relation_walk',
|
|
99
|
+
entity: relation.source,
|
|
100
|
+
fields: [relation.name],
|
|
101
|
+
target: relation.target,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// By (group, entity, kind, fields, target) rather than by identifier, so a human reading a
|
|
105
|
+
// placement map sees related shapes together instead of scattered by hash.
|
|
106
|
+
return shapes.sort((a, b) => compareCodePoints(a.group, b.group) ||
|
|
107
|
+
compareCodePoints(a.entity, b.entity) ||
|
|
108
|
+
compareCodePoints(a.kind, b.kind) ||
|
|
109
|
+
compareCodePoints(a.fields.join(' '), b.fields.join(' ')) ||
|
|
110
|
+
compareCodePoints(a.target ?? '', b.target ?? ''));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=shapes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.js","sourceRoot":"","sources":["../src/shapes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { LogicalModel } from './model.js';
|
|
2
|
+
import { type LoadOptions, type PlacementMap } from './placement.js';
|
|
3
|
+
/** A move: the fresh copy is prepared in another engine binding than the source. */
|
|
4
|
+
export declare const STAGING_PROTOCOL = 1;
|
|
5
|
+
/** A relayout: the fresh copy is prepared in the source's own engine binding, under fresh table
|
|
6
|
+
* names. A protocol of its own, so an older operator refuses it by number and both stay strict. */
|
|
7
|
+
export declare const STAGING_RELAYOUT_PROTOCOL = 2;
|
|
8
|
+
type PublicKeys = NonNullable<LoadOptions['publicKey']>;
|
|
9
|
+
export declare function stagingTableName(stageId: string, position: number): string;
|
|
10
|
+
export declare class StagingPlan {
|
|
11
|
+
readonly stageId: string;
|
|
12
|
+
readonly projectId: string;
|
|
13
|
+
readonly group: string;
|
|
14
|
+
readonly current: PlacementMap;
|
|
15
|
+
readonly prepared: PlacementMap;
|
|
16
|
+
readonly verifiedWith: string | null;
|
|
17
|
+
constructor(stageId: string, projectId: string, group: string, current: PlacementMap, prepared: PlacementMap, verifiedWith: string | null);
|
|
18
|
+
private loaded;
|
|
19
|
+
get fingerprint(): string | undefined;
|
|
20
|
+
asRecord(): Record<string, unknown>;
|
|
21
|
+
preparedPayload(): Uint8Array;
|
|
22
|
+
checkCurrent(current: PlacementMap): void;
|
|
23
|
+
}
|
|
24
|
+
export declare function loadStagingPlan(raw: unknown, options: {
|
|
25
|
+
model: LogicalModel;
|
|
26
|
+
projectId: string;
|
|
27
|
+
publicKey: PublicKeys;
|
|
28
|
+
}): StagingPlan;
|
|
29
|
+
export {};
|
package/dist/staging.js
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/** Signed preparation of one fresh copy without changing its current source. */
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { CanonicalError, canonicalBytes, compareCodePoints } from './canonical.js';
|
|
4
|
+
import { MapError, MigrationRefused } from './errors.js';
|
|
5
|
+
import { checkMapProject, GENERATIONS_SINCE, MAX_EPOCH } from './generation.js';
|
|
6
|
+
import { colocationGroups } from './groups.js';
|
|
7
|
+
import { groupColumns } from './layout.js';
|
|
8
|
+
import { fingerprintOf, loadMap, verifyMapSignature } from './placement.js';
|
|
9
|
+
/** A move: the fresh copy is prepared in another engine binding than the source. */
|
|
10
|
+
export const STAGING_PROTOCOL = 1;
|
|
11
|
+
/** A relayout: the fresh copy is prepared in the source's own engine binding, under fresh table
|
|
12
|
+
* names. A protocol of its own, so an older operator refuses it by number and both stay strict. */
|
|
13
|
+
export const STAGING_RELAYOUT_PROTOCOL = 2;
|
|
14
|
+
const FIELDS = ['kind', 'protocol', 'stage_id', 'project_id', 'group', 'current', 'prepared', 'signature'].sort(compareCodePoints);
|
|
15
|
+
const provenance = new WeakMap();
|
|
16
|
+
function record(value, name) {
|
|
17
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
18
|
+
throw new MigrationRefused(`staging ${name} must be an object`);
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
function hex(value, width, name) {
|
|
23
|
+
if (typeof value !== 'string' || !new RegExp(`^[0-9a-f]{${width}}$`).test(value)) {
|
|
24
|
+
throw new MigrationRefused(`staging ${name} must be ${width} lowercase hexadecimal digits`);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
function equal(left, right) {
|
|
29
|
+
return canonicalBytes(left).equals(canonicalBytes(right));
|
|
30
|
+
}
|
|
31
|
+
function signature(document) {
|
|
32
|
+
const value = record(document['signature'], 'signature');
|
|
33
|
+
const names = Object.keys(value).sort(compareCodePoints);
|
|
34
|
+
if (!equal(names, ['alg', 'value']) && !equal(names, ['alg', 'key_id', 'value'])) {
|
|
35
|
+
throw new MigrationRefused('staging signatures have missing or unknown fields');
|
|
36
|
+
}
|
|
37
|
+
if (value['alg'] !== 'ed25519' || typeof value['value'] !== 'string') {
|
|
38
|
+
throw new MigrationRefused('staging signatures must use ed25519 and canonical base64');
|
|
39
|
+
}
|
|
40
|
+
const decoded = Buffer.from(value['value'], 'base64');
|
|
41
|
+
if (decoded.length !== 64 || decoded.toString('base64') !== value['value']) {
|
|
42
|
+
throw new MigrationRefused('staging signatures must use ed25519 and canonical base64');
|
|
43
|
+
}
|
|
44
|
+
if ('key_id' in value && typeof value['key_id'] !== 'string') {
|
|
45
|
+
throw new MigrationRefused('staging signature key_id must be a string');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function except(value, keys) {
|
|
49
|
+
return Object.fromEntries(Object.entries(value).filter(([name]) => !keys.includes(name)));
|
|
50
|
+
}
|
|
51
|
+
export function stagingTableName(stageId, position) {
|
|
52
|
+
hex(stageId, 32, 'stage_id');
|
|
53
|
+
if (!Number.isInteger(position) || position < 1 || position > 999999) {
|
|
54
|
+
throw new MigrationRefused('staging entity position must be an integer from 1 through 999999');
|
|
55
|
+
}
|
|
56
|
+
return `sde_m_${stageId}_${String(position).padStart(6, '0')}`;
|
|
57
|
+
}
|
|
58
|
+
export class StagingPlan {
|
|
59
|
+
stageId;
|
|
60
|
+
projectId;
|
|
61
|
+
group;
|
|
62
|
+
current;
|
|
63
|
+
prepared;
|
|
64
|
+
verifiedWith;
|
|
65
|
+
constructor(stageId, projectId, group, current, prepared, verifiedWith) {
|
|
66
|
+
this.stageId = stageId;
|
|
67
|
+
this.projectId = projectId;
|
|
68
|
+
this.group = group;
|
|
69
|
+
this.current = current;
|
|
70
|
+
this.prepared = prepared;
|
|
71
|
+
this.verifiedWith = verifiedWith;
|
|
72
|
+
Object.freeze(this);
|
|
73
|
+
}
|
|
74
|
+
loaded() {
|
|
75
|
+
const saved = provenance.get(this);
|
|
76
|
+
if (saved === undefined)
|
|
77
|
+
throw new MigrationRefused('staging requires an immutable loaded authorization');
|
|
78
|
+
return saved;
|
|
79
|
+
}
|
|
80
|
+
get fingerprint() { return provenance.get(this)?.fingerprint; }
|
|
81
|
+
asRecord() { return JSON.parse(this.loaded().document); }
|
|
82
|
+
preparedPayload() { return canonicalBytes(this.asRecord()['prepared']); }
|
|
83
|
+
checkCurrent(current) {
|
|
84
|
+
this.loaded();
|
|
85
|
+
checkMapProject(current, this.projectId);
|
|
86
|
+
if (!current.signed || fingerprintOf(current) !== fingerprintOf(this.current)) {
|
|
87
|
+
throw new MigrationRefused('staging authorization does not name the signed current map');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function load(raw, model, projectId, publicKey) {
|
|
92
|
+
const body = record(structuredClone(raw), 'authorization');
|
|
93
|
+
if (!equal(Object.keys(body).sort(compareCodePoints), FIELDS))
|
|
94
|
+
throw new MigrationRefused('staging authorization has missing or unknown fields');
|
|
95
|
+
if (typeof body['protocol'] !== 'number' || ![STAGING_PROTOCOL, STAGING_RELAYOUT_PROTOCOL].includes(body['protocol']) || body['kind'] !== 'sde-stage') {
|
|
96
|
+
throw new MigrationRefused('unsupported staging authorization kind or protocol');
|
|
97
|
+
}
|
|
98
|
+
const protocol = body['protocol'];
|
|
99
|
+
const identity = hex(body['stage_id'], 32, 'stage_id'), local = hex(body['project_id'], 32, 'project_id');
|
|
100
|
+
if (local !== projectId)
|
|
101
|
+
throw new MigrationRefused('staging authorization belongs to another local project');
|
|
102
|
+
const group = body['group'];
|
|
103
|
+
if (typeof group !== 'string' || group.length === 0)
|
|
104
|
+
throw new MigrationRefused('staging group must be a nonempty string');
|
|
105
|
+
signature(body);
|
|
106
|
+
const verified = verifyMapSignature(body, publicKey);
|
|
107
|
+
const maps = [];
|
|
108
|
+
for (const name of ['current', 'prepared']) {
|
|
109
|
+
const document = record(body[name], name);
|
|
110
|
+
signature(document);
|
|
111
|
+
for (const rawGroup of Object.values(record(document['groups'], 'groups'))) {
|
|
112
|
+
const value = record(rawGroup, 'group'), copies = value['derived'] === undefined ? [] : value['derived'];
|
|
113
|
+
if (!Array.isArray(copies))
|
|
114
|
+
throw new MigrationRefused('staging derived copies must be an array');
|
|
115
|
+
for (const rawMaterial of [value['source'], ...copies]) {
|
|
116
|
+
const layout = record(record(rawMaterial, 'materialization')['layout'], 'layout');
|
|
117
|
+
if (layout['auto'])
|
|
118
|
+
throw new MigrationRefused('staging maps need explicit physical layouts');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const parsed = loadMap(document, { model, publicKey, requireSignature: true });
|
|
122
|
+
// Contract 4 introduced the generations this protocol rests on; 5 adds physical design and
|
|
123
|
+
// keeps them. Anything newer is refused by loadMap already.
|
|
124
|
+
if (parsed.contract < GENERATIONS_SINCE) {
|
|
125
|
+
throw new MigrationRefused(`staging protocol ${protocol} requires map contract ${GENERATIONS_SINCE} or later`);
|
|
126
|
+
}
|
|
127
|
+
checkMapProject(parsed, projectId);
|
|
128
|
+
for (const placed of Object.values(parsed.groups)) {
|
|
129
|
+
for (const material of [placed.source, ...placed.derived]) {
|
|
130
|
+
if (Object.keys(material.layout.tables).length === 0 || Object.keys(material.layout.columns).length === 0) {
|
|
131
|
+
throw new MigrationRefused('staging maps need explicit physical layouts');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
maps.push(parsed);
|
|
136
|
+
}
|
|
137
|
+
const current = maps[0], prepared = maps[1];
|
|
138
|
+
// The prepared map may raise the contract - the fresh copy is where a physical design can first
|
|
139
|
+
// appear - and may not lower it: a lower number tells an older library it may ignore keys the
|
|
140
|
+
// current map already relies on.
|
|
141
|
+
if (prepared.contract < current.contract)
|
|
142
|
+
throw new MigrationRefused('staging cannot lower the placement map contract');
|
|
143
|
+
if (current.mapVersion >= prepared.mapVersion)
|
|
144
|
+
throw new MigrationRefused('staging must allocate a newer prepared map');
|
|
145
|
+
if (!(group in current.groups) || !equal(Object.keys(current.groups).sort(compareCodePoints), Object.keys(prepared.groups).sort(compareCodePoints))) {
|
|
146
|
+
throw new MigrationRefused('staging cannot add or remove colocation groups');
|
|
147
|
+
}
|
|
148
|
+
const old = current.groups[group], next = prepared.groups[group];
|
|
149
|
+
if (old.derived.length !== 0 || old.alsoWrite.length !== 0)
|
|
150
|
+
throw new MigrationRefused('staging begins with a source-only group');
|
|
151
|
+
if (next.derived.length !== 1 || next.alsoWrite.length !== 1 || next.alsoWrite[0].id !== next.derived[0].id) {
|
|
152
|
+
throw new MigrationRefused('staging prepares exactly one maintained copy');
|
|
153
|
+
}
|
|
154
|
+
const epoch = old.writeEpoch;
|
|
155
|
+
if (epoch > MAX_EPOCH - 2 || next.writeEpoch !== epoch)
|
|
156
|
+
throw new MigrationRefused('staging retains the source generation and needs two spare generations');
|
|
157
|
+
const same = next.derived[0].engine === old.source.engine;
|
|
158
|
+
if (protocol === STAGING_PROTOCOL && same)
|
|
159
|
+
throw new MigrationRefused('staging target must use another engine binding');
|
|
160
|
+
if (protocol === STAGING_RELAYOUT_PROTOCOL && !same) {
|
|
161
|
+
throw new MigrationRefused("a relayout (staging protocol 2) prepares its copy in the source's own engine binding");
|
|
162
|
+
}
|
|
163
|
+
const currentRaw = record(body['current'], 'current'), preparedRaw = record(body['prepared'], 'prepared');
|
|
164
|
+
const oldGroups = record(currentRaw['groups'], 'groups'), newGroups = record(preparedRaw['groups'], 'groups');
|
|
165
|
+
const oldGroup = record(oldGroups[group], 'group'), newGroup = record(newGroups[group], 'group');
|
|
166
|
+
if (!equal(Object.keys(oldGroup).sort(compareCodePoints), ['source', 'write_epoch']) ||
|
|
167
|
+
!equal(Object.keys(newGroup).sort(compareCodePoints), ['also_write', 'derived', 'source', 'write_epoch'])) {
|
|
168
|
+
throw new MigrationRefused('staging group shape is not source-only to one maintained copy');
|
|
169
|
+
}
|
|
170
|
+
if (!equal(oldGroup['source'], newGroup['source']))
|
|
171
|
+
throw new MigrationRefused('staging cannot change the existing source');
|
|
172
|
+
const ignored = ['signature', 'map_version', 'groups', 'contract'];
|
|
173
|
+
if (!equal(except(currentRaw, ignored), except(preparedRaw, ignored)) || !equal(current.routing, prepared.routing)) {
|
|
174
|
+
throw new MigrationRefused('staging cannot change routing or other map attributes');
|
|
175
|
+
}
|
|
176
|
+
for (const other of Object.keys(current.groups)) {
|
|
177
|
+
if (other !== group && !equal(oldGroups[other], newGroups[other]))
|
|
178
|
+
throw new MigrationRefused('staging cannot change an unaffected group');
|
|
179
|
+
}
|
|
180
|
+
const members = colocationGroups(model).find(value => value.name === group);
|
|
181
|
+
const expected = Object.fromEntries([...members.members].sort(compareCodePoints).map((entity, index) => [entity, stagingTableName(identity, index + 1)]));
|
|
182
|
+
if (!equal(next.derived[0].layout.tables, expected))
|
|
183
|
+
throw new MigrationRefused('staging needs fresh physical names bound to its stage id and entity order');
|
|
184
|
+
const columns = groupColumns(model, members);
|
|
185
|
+
for (const material of [old.source, next.derived[0]]) {
|
|
186
|
+
if (!equal(Object.keys(material.layout.tables).sort(compareCodePoints), Object.keys(columns).sort(compareCodePoints)) ||
|
|
187
|
+
!equal(Object.keys(material.layout.columns).sort(compareCodePoints), Object.keys(columns).sort(compareCodePoints))) {
|
|
188
|
+
throw new MigrationRefused('staging layouts must cover exactly the group entities');
|
|
189
|
+
}
|
|
190
|
+
for (const [entity, fields] of Object.entries(columns)) {
|
|
191
|
+
if (!equal(Object.keys(material.layout.columns[entity]).sort(compareCodePoints), Object.keys(fields).sort(compareCodePoints))) {
|
|
192
|
+
throw new MigrationRefused('staging layout columns must match the logical group');
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
const used = new Set(Object.values(current.groups).flatMap(placed => [placed.source, ...placed.derived].flatMap(material => Object.values(material.layout.tables))));
|
|
197
|
+
if (Object.values(expected).some(name => used.has(name)))
|
|
198
|
+
throw new MigrationRefused('staging cannot reuse a current physical name');
|
|
199
|
+
const plan = new StagingPlan(identity, local, group, current, prepared, verified);
|
|
200
|
+
provenance.set(plan, { document: canonicalBytes(body).toString('utf8'),
|
|
201
|
+
fingerprint: createHash('sha256').update(canonicalBytes(except(body, ['signature']))).digest('hex') });
|
|
202
|
+
return plan;
|
|
203
|
+
}
|
|
204
|
+
export function loadStagingPlan(raw, options) {
|
|
205
|
+
try {
|
|
206
|
+
return load(raw, options.model, options.projectId, options.publicKey);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
if (error instanceof MapError || error instanceof CanonicalError)
|
|
210
|
+
throw new MigrationRefused(`staging authorization refused: ${error.message}`);
|
|
211
|
+
throw error;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=staging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":"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"}
|