@substrat-run/kernel 0.144.0 → 0.145.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/derived-handlers.d.ts +2 -0
- package/dist/derived-handlers.d.ts.map +1 -1
- package/dist/derived-handlers.js +6 -4
- package/dist/derived-handlers.js.map +1 -1
- package/dist/entity-grant-shape.d.ts +4 -1
- package/dist/entity-grant-shape.d.ts.map +1 -1
- package/dist/entity-grant-shape.js +13 -4
- package/dist/entity-grant-shape.js.map +1 -1
- package/dist/entity-grant.d.ts +14 -0
- package/dist/entity-grant.d.ts.map +1 -1
- package/dist/entity-grant.js +19 -1
- package/dist/entity-grant.js.map +1 -1
- package/dist/entity-stamps.d.ts +50 -0
- package/dist/entity-stamps.d.ts.map +1 -0
- package/dist/entity-stamps.js +93 -0
- package/dist/entity-stamps.js.map +1 -0
- package/dist/entity-state.d.ts +2 -0
- package/dist/entity-state.d.ts.map +1 -1
- package/dist/entity-state.js +4 -0
- package/dist/entity-state.js.map +1 -1
- package/dist/entity-trash.d.ts +14 -2
- package/dist/entity-trash.d.ts.map +1 -1
- package/dist/entity-trash.js +28 -5
- package/dist/entity-trash.js.map +1 -1
- package/dist/entity-version.d.ts +29 -15
- package/dist/entity-version.d.ts.map +1 -1
- package/dist/entity-version.js +13 -9
- package/dist/entity-version.js.map +1 -1
- package/dist/findings.d.ts +6 -3
- package/dist/findings.d.ts.map +1 -1
- package/dist/findings.js +25 -5
- package/dist/findings.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/permission-eval.d.ts +16 -3
- package/dist/permission-eval.d.ts.map +1 -1
- package/dist/permission-eval.js +52 -9
- package/dist/permission-eval.js.map +1 -1
- package/dist/platform-sweep.d.ts +124 -2
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +199 -8
- package/dist/platform-sweep.js.map +1 -1
- package/dist/scope-host.d.ts +35 -4
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js.map +1 -1
- package/dist/timeline.d.ts +2 -1
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js.map +1 -1
- package/package.json +2 -2
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { type DerivationPlan } from '@substrat-run/contracts';
|
|
14
14
|
import type { OperationHandler } from './scope-host.js';
|
|
15
|
+
/** `"col"` — a declared column is an identifier, quoted so a keyword-named one still reads as a column. */
|
|
16
|
+
export declare const quoted: (identifier: string) => string;
|
|
15
17
|
/** The handler a plan describes. */
|
|
16
18
|
export declare function derivedHandler(plan: DerivationPlan): OperationHandler<never, unknown>;
|
|
17
19
|
//# sourceMappingURL=derived-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-handlers.d.ts","sourceRoot":"","sources":["../src/derived-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAGL,KAAK,cAAc,EAKpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAoB,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"derived-handlers.d.ts","sourceRoot":"","sources":["../src/derived-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAGL,KAAK,cAAc,EAKpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAoB,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAMhG,2GAA2G;AAC3G,eAAO,MAAM,MAAM,eAAgB,MAAM,KAAG,MAA+C,CAAC;AAE5F,oCAAoC;AACpC,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAuBrF"}
|
package/dist/derived-handlers.js
CHANGED
|
@@ -14,7 +14,7 @@ import { permissionKey, substratError, } from '@substrat-run/contracts';
|
|
|
14
14
|
import { assertAllowed } from './permission-checker.js';
|
|
15
15
|
import { ulid } from './ulid.js';
|
|
16
16
|
/** `"col"` — a declared column is an identifier, quoted so a keyword-named one still reads as a column. */
|
|
17
|
-
const quoted = (identifier) => `"${identifier.replace(/"/g, '""')}"`;
|
|
17
|
+
export const quoted = (identifier) => `"${identifier.replace(/"/g, '""')}"`;
|
|
18
18
|
/** The handler a plan describes. */
|
|
19
19
|
export function derivedHandler(plan) {
|
|
20
20
|
const key = permissionKey.parse(plan.permission.key);
|
|
@@ -68,10 +68,12 @@ function bodyOf(plan, rowOrThrow, ref) {
|
|
|
68
68
|
// Nothing sent is nothing changed — no write, and no event to move the version.
|
|
69
69
|
if (sent.length === 0)
|
|
70
70
|
return existing;
|
|
71
|
-
|
|
71
|
+
// The sent fields, then the updated pair (#2166), which every write moves.
|
|
72
|
+
const set = [...sent.map(({ column }) => column), ...plan.stamps.map(({ column }) => column)];
|
|
73
|
+
ctx.sql.exec(`UPDATE ${quoted(plan.table)} SET ${set.map((column) => `${quoted(column)} = ?`).join(', ')} ` +
|
|
72
74
|
`WHERE ${quoted(plan.primaryKey)} = ?`,
|
|
73
75
|
// The plan admits only string and number columns, and the host parsed the input against them.
|
|
74
|
-
[...sent.map(({ field }) => input?.[field]), id]);
|
|
76
|
+
[...sent.map(({ field }) => input?.[field]), ...stamped(ctx, plan.stamps), id]);
|
|
75
77
|
const row = rowOrThrow(ctx, id);
|
|
76
78
|
ctx.emit(eventOf(plan.emit, ref(id), row));
|
|
77
79
|
return row;
|
|
@@ -161,7 +163,7 @@ function parentLookup(parent) {
|
|
|
161
163
|
function stamped(ctx, stamps) {
|
|
162
164
|
const now = ctx.now();
|
|
163
165
|
const caller = String(ctx.principal);
|
|
164
|
-
return stamps.map(({ kind }) => (kind === 'createdAt' ? now : caller));
|
|
166
|
+
return stamps.map(({ kind }) => (kind === 'createdAt' || kind === 'updatedAt' ? now : caller));
|
|
165
167
|
}
|
|
166
168
|
/** The page the platform supplied with the input (`limit`, `cursor`, `sort`, `order`). */
|
|
167
169
|
function pageOf(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-handlers.js","sourceRoot":"","sources":["../src/derived-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EACL,aAAa,EACb,aAAa,GAMd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,2GAA2G;AAC3G,MAAM,MAAM,GAAG,CAAC,UAAkB,EAAU,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"derived-handlers.js","sourceRoot":"","sources":["../src/derived-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,7 +176,9 @@ export interface ShapePass {
|
|
|
176
176
|
* `entity.grants-retired` event, then holders topped up, each with its `entity.grants-topped-up`
|
|
177
177
|
* event. `next` is `null` once the scope is done; otherwise the caller runs another pass with it
|
|
178
178
|
* as `after`. `retirementsLeftOpen` counts the shapes whose retirement this pass gave up on at
|
|
179
|
-
* `SHAPE_RETIRE_CONFIRMS_MAX`, for the next reconcile to run again.
|
|
179
|
+
* `SHAPE_RETIRE_CONFIRMS_MAX`, for the next reconcile to run again. The last pass (`next: null`)
|
|
180
|
+
* also answers `boundEver` (#2184): every type this scope has ever bound (`shape-bound`), read
|
|
181
|
+
* after this reconcile recorded its facts, for the platform's binding-shape gate. Run it inside ONE
|
|
180
182
|
* transaction, so the keys and their events commit together. Re-running a finished scope writes
|
|
181
183
|
* nothing.
|
|
182
184
|
*/
|
|
@@ -185,6 +187,7 @@ export declare function topUpEntityGrantShapes(db: SwitchSql, pass: ShapePass):
|
|
|
185
187
|
retired: number;
|
|
186
188
|
retirementsLeftOpen: number;
|
|
187
189
|
next: ShapeCursor | null;
|
|
190
|
+
boundEver?: string[];
|
|
188
191
|
};
|
|
189
192
|
/**
|
|
190
193
|
* A BINDING shape's record (#1686), on the scope's tuple spine beside the grantee keys: which
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-grant-shape.d.ts","sourceRoot":"","sources":["../src/entity-grant-shape.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"entity-grant-shape.d.ts","sourceRoot":"","sources":["../src/entity-grant-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,gIAAsJ,CAAC;AAE1L,gGAAgG;AAChG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,2GAA2G;AAC3G,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAA2B,GAAG,MAAM,CAS1E;AAuBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CASjI;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,2EAA2E;IAC3E,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnD;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,2FAA2F;AAC3F,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpC,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,sEAAsE;IACtE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,sEAAsE;IACtE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,SAAS,GACd;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA+DpH;AAmaD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AACxD,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ENTITY_GRANTS_RETIRED, ENTITY_GRANTS_TOPPED_UP, ENTITY_SHAPE_MARKER_RELATION, domainEvent, entityGrantsRetiredPayload, entityGrantsToppedUpPayload, entityObjectRef, eventId, } from '@substrat-run/contracts';
|
|
1
|
+
import { ENTITY_GRANTS_RETIRED, ENTITY_GRANTS_TOPPED_UP, ENTITY_SHAPE_MARKER_RELATION, domainEvent, entityGrantsRetiredPayload, entityGrantsToppedUpPayload, entityObjectRef, eventId, retiredKeysOf, } from '@substrat-run/contracts';
|
|
2
2
|
import { assertKernelAuthoredType, substratError } from '@substrat-run/contracts';
|
|
3
3
|
import { KERNEL_ACTOR, kernelOutboxInsertSql } from './kernel-outbox.js';
|
|
4
4
|
import { SHAPE_PROTECTED_KEY_RELATION, explicitTupleSql } from './entity-grant.js';
|
|
@@ -144,7 +144,9 @@ export function grantEntityShapeIn(db, principal, entity, permissions) {
|
|
|
144
144
|
* `entity.grants-retired` event, then holders topped up, each with its `entity.grants-topped-up`
|
|
145
145
|
* event. `next` is `null` once the scope is done; otherwise the caller runs another pass with it
|
|
146
146
|
* as `after`. `retirementsLeftOpen` counts the shapes whose retirement this pass gave up on at
|
|
147
|
-
* `SHAPE_RETIRE_CONFIRMS_MAX`, for the next reconcile to run again.
|
|
147
|
+
* `SHAPE_RETIRE_CONFIRMS_MAX`, for the next reconcile to run again. The last pass (`next: null`)
|
|
148
|
+
* also answers `boundEver` (#2184): every type this scope has ever bound (`shape-bound`), read
|
|
149
|
+
* after this reconcile recorded its facts, for the platform's binding-shape gate. Run it inside ONE
|
|
148
150
|
* transaction, so the keys and their events commit together. Re-running a finished scope writes
|
|
149
151
|
* nothing.
|
|
150
152
|
*/
|
|
@@ -167,7 +169,7 @@ export function topUpEntityGrantShapes(db, pass) {
|
|
|
167
169
|
continue;
|
|
168
170
|
const keys = keysOf(shape.permissions);
|
|
169
171
|
// A key the shape grants is never taken back, whatever the declaration says.
|
|
170
|
-
const gone =
|
|
172
|
+
const gone = retiredKeysOf(shape);
|
|
171
173
|
if (keys.length === 0 && gone.length === 0)
|
|
172
174
|
continue;
|
|
173
175
|
// Where this shape starts: the cursor's step if it points here, else the beginning.
|
|
@@ -219,7 +221,14 @@ export function topUpEntityGrantShapes(db, pass) {
|
|
|
219
221
|
if (!gave.done)
|
|
220
222
|
return stop('topUp', gave.at);
|
|
221
223
|
}
|
|
222
|
-
return { toppedUp, retired, retirementsLeftOpen, next: null };
|
|
224
|
+
return { toppedUp, retired, retirementsLeftOpen, next: null, boundEver: boundEverTypes(db) };
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* #2184: every entity type this scope has ever bound (`shape-bound`, sticky), sorted. One read of
|
|
228
|
+
* the `shape:` range of the spine, bounded by the types ever declared.
|
|
229
|
+
*/
|
|
230
|
+
function boundEverTypes(db) {
|
|
231
|
+
return db.all(`SELECT subject FROM _substrat_tuples WHERE subject >= 'shape:' AND subject < 'shape;' AND relation = ? ORDER BY subject`, BOUND_EVER_RELATION).map((r) => r.subject.slice('shape:'.length));
|
|
223
232
|
}
|
|
224
233
|
/** A step with nothing to walk: done, having read nothing. */
|
|
225
234
|
const NOTHING_TO_WALK = { found: [], done: true, at: null };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-grant-shape.js","sourceRoot":"","sources":["../src/entity-grant-shape.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-grant-shape.js","sourceRoot":"","sources":["../src/entity-grant-shape.ts"],"names":[],"mappings":"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"}
|
package/dist/entity-grant.d.ts
CHANGED
|
@@ -19,6 +19,20 @@ type Params = [string, string, string];
|
|
|
19
19
|
* a reconciled `'grantee'` or binding shape (#2083, #1686). The stored relation keeps its first name.
|
|
20
20
|
*/
|
|
21
21
|
export declare const SHAPE_PROTECTED_KEY_RELATION = "shape-grantee-key";
|
|
22
|
+
/**
|
|
23
|
+
* The entity types whose shape protects a `granted:<key>` relation, as `entity_type` rows. The
|
|
24
|
+
* subject range keeps it on the primary key: `shape:` rows only. One spelling for the two places
|
|
25
|
+
* that ask: the explicit writer below refuses the key on a record of such a type, and the
|
|
26
|
+
* permission walk stops at one for that key (`permission-eval.ts`, #2177).
|
|
27
|
+
*
|
|
28
|
+
* The range's bounds are parameters, not literals: the scope DO judges whether a statement writes
|
|
29
|
+
* by its text (`isWriteStatement`), and a `;` inside a literal would read as a second statement,
|
|
30
|
+
* counting every check that asks as a write.
|
|
31
|
+
*/
|
|
32
|
+
export declare function shapeProtectedTypesQuery(relation: string): {
|
|
33
|
+
sql: string;
|
|
34
|
+
params: [string, string, string, string];
|
|
35
|
+
};
|
|
22
36
|
/** The explicit scope-tuple write for admin/local grants and ctx.grant, behind one shape guard. */
|
|
23
37
|
export declare function writeExplicitTupleIn(db: SwitchSql, subject: string, relation: string, object: string, mode: {
|
|
24
38
|
kind: 'replace';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-grant.d.ts","sourceRoot":"","sources":["../src/entity-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-grant.d.ts","sourceRoot":"","sources":["../src/entity-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAMpH;AAiBD,mGAAmG;AACnG,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAC1E,IAAI,CAcN;AAQD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOnH;AAED,mGAAmG;AACnG,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAA;CAAE,CAM9C"}
|
package/dist/entity-grant.js
CHANGED
|
@@ -18,6 +18,23 @@ import { PermissionDenied } from './permission-checker.js';
|
|
|
18
18
|
* a reconciled `'grantee'` or binding shape (#2083, #1686). The stored relation keeps its first name.
|
|
19
19
|
*/
|
|
20
20
|
export const SHAPE_PROTECTED_KEY_RELATION = 'shape-grantee-key';
|
|
21
|
+
/**
|
|
22
|
+
* The entity types whose shape protects a `granted:<key>` relation, as `entity_type` rows. The
|
|
23
|
+
* subject range keeps it on the primary key: `shape:` rows only. One spelling for the two places
|
|
24
|
+
* that ask: the explicit writer below refuses the key on a record of such a type, and the
|
|
25
|
+
* permission walk stops at one for that key (`permission-eval.ts`, #2177).
|
|
26
|
+
*
|
|
27
|
+
* The range's bounds are parameters, not literals: the scope DO judges whether a statement writes
|
|
28
|
+
* by its text (`isWriteStatement`), and a `;` inside a literal would read as a second statement,
|
|
29
|
+
* counting every check that asks as a write.
|
|
30
|
+
*/
|
|
31
|
+
export function shapeProtectedTypesQuery(relation) {
|
|
32
|
+
return {
|
|
33
|
+
sql: `SELECT substr(subject, ${'shape:'.length + 1}) AS entity_type FROM _substrat_tuples
|
|
34
|
+
WHERE subject >= ? AND subject < ? AND relation = ? AND object = ?`,
|
|
35
|
+
params: ['shape:', 'shape;', SHAPE_PROTECTED_KEY_RELATION, relation],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
21
38
|
/** Every explicit non-shape scope tuple write uses this guard, including administrative writes. */
|
|
22
39
|
function assertDelegableTuple(db, relation, object) {
|
|
23
40
|
if (!relation.startsWith('granted:'))
|
|
@@ -26,7 +43,8 @@ function assertDelegableTuple(db, relation, object) {
|
|
|
26
43
|
if (colon < 0)
|
|
27
44
|
return;
|
|
28
45
|
const entityType = object.slice(0, colon);
|
|
29
|
-
|
|
46
|
+
const q = shapeProtectedTypesQuery(relation);
|
|
47
|
+
if (db.all(q.sql, ...q.params).some((r) => r.entity_type === entityType)) {
|
|
30
48
|
throw new PermissionDenied(`cannot grant '${relation.slice('granted:'.length)}' on ${object} — ` +
|
|
31
49
|
`it is a key of the declared '${entityType}' shape, given only by the shape grant`);
|
|
32
50
|
}
|
package/dist/entity-grant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-grant.js","sourceRoot":"","sources":["../src/entity-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE,mGAAmG;AACnG,SAAS,oBAAoB,CAAC,EAAa,EAAE,QAAgB,EAAE,MAAc;IAC3E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,
|
|
1
|
+
{"version":3,"file":"entity-grant.js","sourceRoot":"","sources":["../src/entity-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,OAAO;QACL,GAAG,EAAE,0BAA0B,QAAQ,CAAC,MAAM,GAAG,CAAC;6EACuB;QACzE,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,SAAS,oBAAoB,CAAC,EAAa,EAAE,QAAgB,EAAE,MAAc;IAC3E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,gBAAgB,CACxB,iBAAiB,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,MAAM,KAAK;YACnE,gCAAgC,UAAU,wCAAwC,CACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAClC,EAAa,EACb,OAAe,EACf,QAAgB,EAChB,MAAc,EACd,IAA2E;IAE3E,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,EAAE,CAAC,GAAG,CACJ,qGAAqG,EACrG,OAAO,EACP,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1D,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAE,MAAc,EAAU,EAAE,CAAC;IAC9E,aAAa,SAAS,EAAE;IACxB,WAAW,UAAU,EAAE;IACvB,MAAM;CACP,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAgB,EAAE,MAAc;IAChF,OAAO;QACL,GAAG,EAAE;;wDAE+C;QACpD,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,UAAkB,EAClB,MAAc,EACd,EAAU;IAEV,OAAO;QACL,GAAG,EAAE;oFAC2E;QAChF,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The updated stamps, held true by the host (#2166).
|
|
3
|
+
*
|
|
4
|
+
* An entity that declares `updatedAt`/`updatedBy` (`EntityDef.stamps`) says so in `model.json`,
|
|
5
|
+
* and that claim is held on every row a call names in `ctx.emit` — not only the rows a derived
|
|
6
|
+
* write touched. What is read is the emits, not the writes: an emit about a stamped row counts as
|
|
7
|
+
* a write to it, and a write that emits only about another entity is not seen. A derived
|
|
8
|
+
* create and a derived update write the pair themselves; an authored handler is trusted to, and
|
|
9
|
+
* this is what holds it to that. Both adapters run it around every operation and every consumer
|
|
10
|
+
* delivery, inside the same transaction:
|
|
11
|
+
*
|
|
12
|
+
* 1. Before the guards and the handler, `watchUpdatedStamps` takes the outbox's insertion mark —
|
|
13
|
+
* unless no registered module declares the pair, in which case it reads nothing and returns
|
|
14
|
+
* `undefined`, and the call pays nothing at all.
|
|
15
|
+
* 2. After the handler, `assertHeld` reads which rows the call emitted about since that mark, keeps
|
|
16
|
+
* those whose entity declares the pair, and reads each row's stamped columns by its id. A row
|
|
17
|
+
* that is gone (a delete) is skipped. Any other row must hold this call's `ctx.now()` and
|
|
18
|
+
* principal, or the call is refused `internal` and every write it made rolls back with it.
|
|
19
|
+
*
|
|
20
|
+
* **Why the outbox, not a record of `ctx.emit`.** An emit inside a `ctx.atomic` that was rolled
|
|
21
|
+
* back is gone from the outbox with the writes it described, so the outbox is exactly what this
|
|
22
|
+
* call is about to commit — on both adapters, with nothing to keep in step.
|
|
23
|
+
*
|
|
24
|
+
* **A kernel move is not checked.** `ctx.archive`, `ctx.trash` and `ctx.restore` write only the
|
|
25
|
+
* kernel's own `_substrat_*` columns and emit kernel-authored types; those carry no module write,
|
|
26
|
+
* so they are left out, and the move does not stamp the module's columns either.
|
|
27
|
+
*/
|
|
28
|
+
import { type PrincipalId, type UpdatedStampDeclaration } from '@substrat-run/contracts';
|
|
29
|
+
import type { ScopedSql } from './scope-host.js';
|
|
30
|
+
/** One entity's updated stamps, and the module that declared them. */
|
|
31
|
+
export interface UpdatedStampPlan extends UpdatedStampDeclaration {
|
|
32
|
+
readonly moduleId: string;
|
|
33
|
+
}
|
|
34
|
+
/** Add a module's `updatedStamps` to the host's map — one owner per entity type. */
|
|
35
|
+
export declare function addUpdatedStampPlans(byType: Map<string, UpdatedStampPlan>, moduleId: string, declarations: readonly UpdatedStampDeclaration[] | undefined): void;
|
|
36
|
+
/** What `assertHeld` compares a stamped row against: the call's own instant and caller. */
|
|
37
|
+
export interface StampedBy {
|
|
38
|
+
now(): string;
|
|
39
|
+
readonly principal: PrincipalId;
|
|
40
|
+
}
|
|
41
|
+
export interface UpdatedStampWatch {
|
|
42
|
+
/** Refuse the call unless every row it emitted about holds its updated stamps. */
|
|
43
|
+
assertHeld(ctx: StampedBy, who: string): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Mark the outbox before a call, so `assertHeld` can read what the call emitted. `undefined` — and
|
|
47
|
+
* no read — when no entity in the scope declares the updated pair.
|
|
48
|
+
*/
|
|
49
|
+
export declare function watchUpdatedStamps(sql: Pick<ScopedSql, 'query'>, plans: ReadonlyMap<string, UpdatedStampPlan>): UpdatedStampWatch | undefined;
|
|
50
|
+
//# sourceMappingURL=entity-stamps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-stamps.d.ts","sourceRoot":"","sources":["../src/entity-stamps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAG3D,sEAAsE;AACtE,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,GAC3D,IAAI,CAWN;AAED,2FAA2F;AAC3F,MAAM,WAAW,SAAS;IACxB,GAAG,IAAI,MAAM,CAAC;IACd,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC3C,iBAAiB,GAAG,SAAS,CAkD/B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The updated stamps, held true by the host (#2166).
|
|
3
|
+
*
|
|
4
|
+
* An entity that declares `updatedAt`/`updatedBy` (`EntityDef.stamps`) says so in `model.json`,
|
|
5
|
+
* and that claim is held on every row a call names in `ctx.emit` — not only the rows a derived
|
|
6
|
+
* write touched. What is read is the emits, not the writes: an emit about a stamped row counts as
|
|
7
|
+
* a write to it, and a write that emits only about another entity is not seen. A derived
|
|
8
|
+
* create and a derived update write the pair themselves; an authored handler is trusted to, and
|
|
9
|
+
* this is what holds it to that. Both adapters run it around every operation and every consumer
|
|
10
|
+
* delivery, inside the same transaction:
|
|
11
|
+
*
|
|
12
|
+
* 1. Before the guards and the handler, `watchUpdatedStamps` takes the outbox's insertion mark —
|
|
13
|
+
* unless no registered module declares the pair, in which case it reads nothing and returns
|
|
14
|
+
* `undefined`, and the call pays nothing at all.
|
|
15
|
+
* 2. After the handler, `assertHeld` reads which rows the call emitted about since that mark, keeps
|
|
16
|
+
* those whose entity declares the pair, and reads each row's stamped columns by its id. A row
|
|
17
|
+
* that is gone (a delete) is skipped. Any other row must hold this call's `ctx.now()` and
|
|
18
|
+
* principal, or the call is refused `internal` and every write it made rolls back with it.
|
|
19
|
+
*
|
|
20
|
+
* **Why the outbox, not a record of `ctx.emit`.** An emit inside a `ctx.atomic` that was rolled
|
|
21
|
+
* back is gone from the outbox with the writes it described, so the outbox is exactly what this
|
|
22
|
+
* call is about to commit — on both adapters, with nothing to keep in step.
|
|
23
|
+
*
|
|
24
|
+
* **A kernel move is not checked.** `ctx.archive`, `ctx.trash` and `ctx.restore` write only the
|
|
25
|
+
* kernel's own `_substrat_*` columns and emit kernel-authored types; those carry no module write,
|
|
26
|
+
* so they are left out, and the move does not stamp the module's columns either.
|
|
27
|
+
*/
|
|
28
|
+
import { isKernelAuthoredEventType, substratError, } from '@substrat-run/contracts';
|
|
29
|
+
import { quoted } from './derived-handlers.js';
|
|
30
|
+
import { OUTBOX_MARK_SQL } from './vertical-events.js';
|
|
31
|
+
/** Add a module's `updatedStamps` to the host's map — one owner per entity type. */
|
|
32
|
+
export function addUpdatedStampPlans(byType, moduleId, declarations) {
|
|
33
|
+
for (const declaration of declarations ?? []) {
|
|
34
|
+
const existing = byType.get(declaration.entityType);
|
|
35
|
+
if (existing) {
|
|
36
|
+
throw new Error(`updated stamps: '${declaration.entityType}' is stamped by both '${existing.moduleId}' and '${moduleId}' — ` +
|
|
37
|
+
'one entity type, one owner');
|
|
38
|
+
}
|
|
39
|
+
byType.set(declaration.entityType, Object.freeze({ ...declaration, moduleId }));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** The ids one `IN (…)` names — under the 100-parameter limit a Durable Object enforces. */
|
|
43
|
+
const ID_CHUNK = 90;
|
|
44
|
+
/**
|
|
45
|
+
* Mark the outbox before a call, so `assertHeld` can read what the call emitted. `undefined` — and
|
|
46
|
+
* no read — when no entity in the scope declares the updated pair.
|
|
47
|
+
*/
|
|
48
|
+
export function watchUpdatedStamps(sql, plans) {
|
|
49
|
+
if (plans.size === 0)
|
|
50
|
+
return undefined;
|
|
51
|
+
const mark = Number(sql.query(OUTBOX_MARK_SQL)[0]?.mark ?? 0);
|
|
52
|
+
return {
|
|
53
|
+
assertHeld(ctx, who) {
|
|
54
|
+
const emitted = sql.query('SELECT DISTINCT type, entity_type, entity_id FROM _substrat_outbox WHERE rowid > ?', [mark]);
|
|
55
|
+
const idsByType = new Map();
|
|
56
|
+
for (const { type, entity_type: entityType, entity_id: id } of emitted) {
|
|
57
|
+
if (!plans.has(entityType) || isKernelAuthoredEventType(type))
|
|
58
|
+
continue;
|
|
59
|
+
const ids = idsByType.get(entityType) ?? new Set();
|
|
60
|
+
ids.add(id);
|
|
61
|
+
idsByType.set(entityType, ids);
|
|
62
|
+
}
|
|
63
|
+
if (idsByType.size === 0)
|
|
64
|
+
return;
|
|
65
|
+
const now = ctx.now();
|
|
66
|
+
const principal = String(ctx.principal);
|
|
67
|
+
for (const [entityType, ids] of idsByType) {
|
|
68
|
+
const plan = plans.get(entityType);
|
|
69
|
+
const all = [...ids];
|
|
70
|
+
for (let i = 0; i < all.length; i += ID_CHUNK) {
|
|
71
|
+
const chunk = all.slice(i, i + ID_CHUNK);
|
|
72
|
+
const rows = sql.query(`SELECT ${quoted(plan.idColumn)} AS id` +
|
|
73
|
+
(plan.at !== undefined ? `, ${quoted(plan.at)} AS at` : '') +
|
|
74
|
+
(plan.by !== undefined ? `, ${quoted(plan.by)} AS by` : '') +
|
|
75
|
+
` FROM ${quoted(plan.table)} WHERE ${quoted(plan.idColumn)} IN (${chunk.map(() => '?').join(', ')})`, chunk);
|
|
76
|
+
// A row that is gone is not in the answer: a delete has nothing left to stamp.
|
|
77
|
+
for (const row of rows) {
|
|
78
|
+
const stale = plan.at !== undefined && row.at !== now
|
|
79
|
+
? `'${plan.at}' does not hold this call's time`
|
|
80
|
+
: plan.by !== undefined && row.by !== principal
|
|
81
|
+
? `'${plan.by}' does not hold this call's principal`
|
|
82
|
+
: null;
|
|
83
|
+
if (stale === null)
|
|
84
|
+
continue;
|
|
85
|
+
throw substratError('internal', `${who}: it emitted about ${entityType} ${String(row.id)}, and ${stale} — '${entityType}' declares ` +
|
|
86
|
+
'its updated stamps, so a call that emits about one of its rows sets them to ctx.now() and the calling principal (#2166)');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=entity-stamps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-stamps.js","sourceRoot":"","sources":["../src/entity-stamps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EACL,yBAAyB,EACzB,aAAa,GAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAClC,MAAqC,EACrC,QAAgB,EAChB,YAA4D;IAE5D,KAAK,MAAM,WAAW,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,oBAAoB,WAAW,CAAC,UAAU,yBAAyB,QAAQ,CAAC,QAAQ,UAAU,QAAQ,MAAM;gBAC1G,4BAA4B,CAC/B,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAaD,4FAA4F;AAC5F,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAA6B,EAC7B,KAA4C;IAE5C,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAmB,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IAChF,OAAO;QACL,UAAU,CAAC,GAAG,EAAE,GAAG;YACjB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CACvB,oFAAoF,EACpF,CAAC,IAAI,CAAC,CACP,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;YACjD,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACxE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACZ,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO;YACjC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAqB,CAAC;gBACvD,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;oBAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;oBACzC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CACpB,UAAU,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;wBACrC,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3D,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3D,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACtG,KAAK,CACN,CAAC;oBACF,+EAA+E;oBAC/E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,KAAK,GACT,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG;4BACrC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,kCAAkC;4BAC/C,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;gCAC7C,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,uCAAuC;gCACpD,CAAC,CAAC,IAAI,CAAC;wBACb,IAAI,KAAK,KAAK,IAAI;4BAAE,SAAS;wBAC7B,MAAM,aAAa,CACjB,UAAU,EACV,GAAG,GAAG,sBAAsB,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,KAAK,OAAO,UAAU,aAAa;4BAClG,yHAAyH,CAC5H,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/entity-state.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export interface EntityStatePlan {
|
|
|
52
52
|
readonly trashPermission?: PermissionKey;
|
|
53
53
|
/** Present when a trashed entity is purged after this many days (`entity-trash.ts`). */
|
|
54
54
|
readonly purgeAfterDays?: number;
|
|
55
|
+
/** `false` when the horizon is a floor for every caller of the purge operation (#2214); absent otherwise. */
|
|
56
|
+
readonly purgeEarly?: false;
|
|
55
57
|
}
|
|
56
58
|
/** The operation's own check — a pass is recorded as one of its authorizations (K-34). */
|
|
57
59
|
export type StateCheck = OperationContext['check'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-state.d.ts","sourceRoot":"","sources":["../src/entity-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EASL,KAAK,gBAAgB,EAErB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-state.d.ts","sourceRoot":"","sources":["../src/entity-state.ts"],"names":[],"mappings":"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"}
|
package/dist/entity-state.js
CHANGED
|
@@ -65,6 +65,9 @@ export function entityStatePlans(moduleId, declarations) {
|
|
|
65
65
|
if (decl.purgeAfterDays !== undefined && !decl.trashPermission) {
|
|
66
66
|
throw new Error(`entity state: ${where} declares a purge horizon and no trash — only a trashed entity is purged`);
|
|
67
67
|
}
|
|
68
|
+
if (decl.purgeEarly === false && decl.purgeAfterDays === undefined) {
|
|
69
|
+
throw new Error(`entity state: ${where} refuses an early purge and declares no purge horizon — there is no horizon to hold it to`);
|
|
70
|
+
}
|
|
68
71
|
plans.push({
|
|
69
72
|
moduleId,
|
|
70
73
|
entityType: decl.entityType,
|
|
@@ -73,6 +76,7 @@ export function entityStatePlans(moduleId, declarations) {
|
|
|
73
76
|
...(decl.archivePermission ? { archivePermission: decl.archivePermission } : {}),
|
|
74
77
|
...(decl.trashPermission ? { trashPermission: decl.trashPermission } : {}),
|
|
75
78
|
...(decl.purgeAfterDays !== undefined ? { purgeAfterDays: decl.purgeAfterDays } : {}),
|
|
79
|
+
...(decl.purgeEarly === false ? { purgeEarly: false } : {}),
|
|
76
80
|
});
|
|
77
81
|
}
|
|
78
82
|
return plans;
|