@substrat-run/kernel 0.178.0 → 0.180.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.
@@ -1,4 +1,4 @@
1
- import { type BecomeCapabilityInput, type BecomeLinkState, type BecomeMintRefusal, type BoundedBecomeRevoke, type CapabilityExchange, type CapabilityFilter, type CapabilityId, type CapabilityMintInput, type CapabilityPage, type CapabilityRecord, type CheckSubject, type Decision, type DomainEventInput, type EntityRef, type Instant, type MintedCapability, type Node, type PermissionKey, type PlatformActorId, type PrincipalBecomeCapabilityInput, type PrincipalId } from '@substrat-run/contracts';
1
+ import { type BecomeCapabilityInput, type BecomeLinkState, type BecomeMintRefusal, type BoundedBecomeRevoke, type BoundedBindLinkMint, type CapabilityExchange, type CapabilityFilter, type CapabilityId, type CapabilityMintInput, type CapabilityPage, type CapabilityRecord, type CheckSubject, type Decision, type DomainEventInput, type EntityRef, type Instant, type MintedCapability, type Node, type PermissionKey, type PlatformActorId, type PrincipalBecomeCapabilityInput, type PrincipalBindLinkInput, type PrincipalId } from '@substrat-run/contracts';
2
2
  import { PermissionDenied, type Holdings, type PermissionChecker } from './permission-checker.js';
3
3
  import type { ScopedSql, SqlValue } from './scope-host.js';
4
4
  /**
@@ -6,7 +6,7 @@ import type { ScopedSql, SqlValue } from './scope-host.js';
6
6
  * both adapters' `KERNEL_DDL` (interpolated, like `IDEMPOTENCY_DDL`), so the shape
7
7
  * self-host builds and the shape production builds cannot part company.
8
8
  */
9
- export declare const CAPABILITY_DDL = "\n CREATE TABLE IF NOT EXISTS _substrat_capabilities (\n id TEXT PRIMARY KEY,\n -- #1672: SHA-256 hex of the secret. The secret itself is stored NOWHERE \u2014 it leaves\n -- the kernel once, in the mint's return value, and a lookup is this indexed equality.\n token_hash TEXT NOT NULL UNIQUE,\n -- 'act': the holder acts AS the capability ({ capability } on the spine), bounded by\n -- entity + permissions (+ operations + attachments). 'become': exchanging it yields `principal`.\n mode TEXT NOT NULL,\n label TEXT,\n entity_type TEXT,\n entity_id TEXT,\n -- JSON array of permission keys (act). The capability's whole authority: no\n -- `capability:` tuple is ever written, so none can be forged through the tuple table.\n permissions TEXT,\n -- JSON array of operation names, or NULL = any operation the keys allow (act).\n operations TEXT,\n -- NULL = no attachment read opt-in; 'read' explicitly allows attachment readers.\n attachments TEXT,\n principal TEXT,\n -- #1686: a principal-minted 'become' only \u2014 the digest of what `principal` held when it was\n -- minted (`holdingsDigest`). The exchange recomputes it, and a link whose principal's\n -- holdings have changed since is revoked rather than exchanged. NULL on every other row.\n target_digest TEXT,\n -- #1686: why the kernel itself revoked it ('holdings-changed'); NULL for any other revoke.\n revoked_reason TEXT,\n -- #1686: JSON capabilityAction \u2014 what a principal-minted 'become' also does at its exchange\n -- ({\"kind\":\"bind\",\"entity\":\u2026}, a binding invite). NULL = a plain become, or an 'act' row.\n action TEXT,\n -- JSON capabilityAuthor: a principal id (a module minted it, and its authority is\n -- re-checked on every use) or {\"platform\": \u2026} (HostAdmin minted it).\n minted_by TEXT NOT NULL,\n minted_at TEXT NOT NULL,\n expires_at TEXT,\n -- NULL = unlimited. A use is an EXCHANGE of the secret, never an invocation.\n max_uses INTEGER,\n uses INTEGER NOT NULL DEFAULT 0,\n last_used_at TEXT,\n -- Tombstone, never a delete: a capability that once admitted someone is evidence\n -- of why they were admitted (K-4, K-21).\n revoked_at TEXT,\n revoked_by TEXT\n );\n CREATE INDEX IF NOT EXISTS _substrat_capabilities_entity\n ON _substrat_capabilities (entity_type, entity_id);\n -- #1672: what an exchange hands out instead of the secret \u2014 a session token, of which\n -- again only the hash is kept. Each session acts as its capability until the earlier of\n -- its own expiry and the capability's; the capability is re-read on every invoke, so\n -- revoking it ends every session at once \u2014 a revoke touches only the capability row,\n -- and it is that per-invoke read, not a cascade here, that refuses the next call.\n -- Expired rows are pruned on exchange, at most CAPABILITY_SESSION_PRUNE_BATCH at a time,\n -- on the only path that adds one \u2014 so an exchange's write is bounded however many expired.\n CREATE TABLE IF NOT EXISTS _substrat_capability_sessions (\n token_hash TEXT PRIMARY KEY,\n capability_id TEXT NOT NULL,\n created_at TEXT NOT NULL,\n expires_at TEXT NOT NULL\n );\n CREATE INDEX IF NOT EXISTS _substrat_capability_sessions_expiry\n ON _substrat_capability_sessions (expires_at);\n";
9
+ export declare const CAPABILITY_DDL = "\n CREATE TABLE IF NOT EXISTS _substrat_capabilities (\n id TEXT PRIMARY KEY,\n -- #1672: SHA-256 hex of the secret. The secret itself is stored NOWHERE \u2014 it leaves\n -- the kernel once, in the mint's return value, and a lookup is this indexed equality.\n token_hash TEXT NOT NULL UNIQUE,\n -- 'act': the holder acts AS the capability ({ capability } on the spine), bounded by\n -- entity + permissions (+ operations + attachments). 'become': exchanging it yields `principal`.\n -- 'bind' (#2817): presented by `principal`'s own session, it binds them to `action`'s record.\n mode TEXT NOT NULL,\n label TEXT,\n entity_type TEXT,\n entity_id TEXT,\n -- JSON array of permission keys (act). The capability's whole authority: no\n -- `capability:` tuple is ever written, so none can be forged through the tuple table.\n permissions TEXT,\n -- JSON array of operation names, or NULL = any operation the keys allow (act).\n operations TEXT,\n -- NULL = no attachment read opt-in; 'read' explicitly allows attachment readers.\n attachments TEXT,\n principal TEXT,\n -- #1686: a principal-minted 'become' only \u2014 the digest of what `principal` held when it was\n -- minted (`holdingsDigest`). The exchange recomputes it, and a link whose principal's\n -- holdings have changed since is revoked rather than exchanged. NULL on every other row.\n target_digest TEXT,\n -- #1686: why the kernel itself revoked it ('holdings-changed'); NULL for any other revoke.\n revoked_reason TEXT,\n -- #1686: JSON capabilityAction \u2014 what a principal-minted 'become' also does at its exchange\n -- ({\"kind\":\"bind\",\"entity\":\u2026}, a binding invite), and what a 'bind' link does (#2817).\n -- NULL = a plain become, or an 'act' row.\n action TEXT,\n -- JSON capabilityAuthor: a principal id (a module minted it, and its authority is\n -- re-checked on every use) or {\"platform\": \u2026} (HostAdmin minted it).\n minted_by TEXT NOT NULL,\n minted_at TEXT NOT NULL,\n expires_at TEXT,\n -- NULL = unlimited. A use is an EXCHANGE of the secret, never an invocation.\n max_uses INTEGER,\n uses INTEGER NOT NULL DEFAULT 0,\n last_used_at TEXT,\n -- Tombstone, never a delete: a capability that once admitted someone is evidence\n -- of why they were admitted (K-4, K-21).\n revoked_at TEXT,\n revoked_by TEXT\n );\n CREATE INDEX IF NOT EXISTS _substrat_capabilities_entity\n ON _substrat_capabilities (entity_type, entity_id);\n -- #1672: what an exchange hands out instead of the secret \u2014 a session token, of which\n -- again only the hash is kept. Each session acts as its capability until the earlier of\n -- its own expiry and the capability's; the capability is re-read on every invoke, so\n -- revoking it ends every session at once \u2014 a revoke touches only the capability row,\n -- and it is that per-invoke read, not a cascade here, that refuses the next call.\n -- Expired rows are pruned on exchange, at most CAPABILITY_SESSION_PRUNE_BATCH at a time,\n -- on the only path that adds one \u2014 so an exchange's write is bounded however many expired.\n CREATE TABLE IF NOT EXISTS _substrat_capability_sessions (\n token_hash TEXT PRIMARY KEY,\n capability_id TEXT NOT NULL,\n created_at TEXT NOT NULL,\n expires_at TEXT NOT NULL\n );\n CREATE INDEX IF NOT EXISTS _substrat_capability_sessions_expiry\n ON _substrat_capability_sessions (expires_at);\n";
10
10
  /** The tables `CAPABILITY_DDL` builds — what a copy of a scope leaves behind (`capabilitiesForLoad`, #1686). */
11
11
  export declare const CAPABILITY_TABLE_NAMES: readonly ['_substrat_capabilities', '_substrat_capability_sessions'];
12
12
  /** One capability row as the spine stores it — snake_case, because that is what both adapters `SELECT`. */
@@ -232,9 +232,15 @@ export declare function exchangeCapability(deps: {
232
232
  /**
233
233
  * The only mode the caller can handle. A secret of the OTHER mode answers `null` without
234
234
  * taking a use: a claim link pasted into a share-link exchange must not be spent by a
235
- * route that would then throw away the principal it yielded.
235
+ * route that would then throw away the principal it yielded. A `bind` link (#2817) is
236
+ * exchanged ONLY when asked for by name, with its presenter: no other route spends one.
236
237
  */
237
- mode?: 'act' | 'become'): Promise<CapabilityExchange | null>;
238
+ mode?: 'act' | 'become' | 'bind',
239
+ /**
240
+ * `bind` only (#2817): the principal whose own session presents the link, as the caller's
241
+ * authentication resolved it. The link is exchanged only by the member it names.
242
+ */
243
+ presenter?: PrincipalId): Promise<CapabilityExchange | null>;
238
244
  /**
239
245
  * The session door's decision, re-made on EVERY invoke inside the operation's transaction
240
246
  * (impersonation's per-invoke re-read, for the same reason): a stub is a capability of its
@@ -297,6 +303,14 @@ export declare function mintBecomeCapability(sql: ScopedSql, raw: BecomeCapabili
297
303
  * `by` null is the kernel's own revoke (an erasure's), recorded with no revoker.
298
304
  */
299
305
  export declare function revokeBindLinksIn(sql: ScopedSql, entity: EntityRef, by: PrincipalId | null, now: string): CapabilityId[];
306
+ /**
307
+ * Revoke every `bind` link (#2817) still exchangeable for `principal` — unrevoked, unexpired, under
308
+ * its use limit — what a person's erasure runs, by the kernel itself (no revoker): a link naming
309
+ * someone who is being erased must not bind them afterwards. A used or expired link is left as it
310
+ * reads, as `revokeBindLinksIn` leaves one: it is evidence of what happened, and binds nobody. Only
311
+ * `bind` rows: a `become` link's principal is the seat it yields, not a person.
312
+ */
313
+ export declare function revokeBindLinksFor(sql: ScopedSql, principal: string, now: string): void;
300
314
  /**
301
315
  * Where each named `become` link stands (#1686), in the order asked — what a pending-invite list
302
316
  * shows beside each invite. A capability the scope does not hold reads as `revoked`, never `open`.
@@ -407,6 +421,34 @@ export declare function mintBecomeCapabilityAsPrincipal(deps: {
407
421
  }, minter: PrincipalId, raw: PrincipalBecomeCapabilityInput,
408
422
  /** `becomeMintCheck`'s answer: the target's holdings now, which the exchange compares against. */
409
423
  targetDigest: string): Promise<MintedCapability>;
424
+ /** The pseudo-operation a principal's `bind` link mint names on its spine event (#2817). */
425
+ export declare const CAPABILITY_BIND_MINT_OPERATION = "capabilities.mint-bind";
426
+ /**
427
+ * May `caller` mint a `bind` link (#2817) binding `target` to `entity` at `node`? The binding's own
428
+ * judgement (`judgeBind`, the caller's key asked first, so a caller without it learns nothing about
429
+ * the record), and then the target: a member, holding something at the node — a link for nobody
430
+ * the scope knows would bind whoever is later given that id. Neither `target-already-claimed` nor
431
+ * a holdings bound: no principal changes hands, so nothing the target holds is acquired by anyone.
432
+ * The exchange makes both judgements again.
433
+ */
434
+ export declare function bindLinkMintCheck(deps: {
435
+ sql: ScopedSql;
436
+ checker: Pick<PermissionChecker, 'check' | 'holdings'>;
437
+ }, caller: PrincipalId, target: PrincipalId, node: Node, entity: EntityRef): Promise<Exclude<BoundedBindLinkMint, {
438
+ ok: true;
439
+ }> | {
440
+ ok: true;
441
+ }>;
442
+ /**
443
+ * A principal's `bind` link mint (#2817) — the write a host makes once `bindLinkMintCheck` has said
444
+ * yes, in the same scope task. Single use; on the spine as `capability.bind-minted` on the record,
445
+ * through `emit`, whose actor the host stamps as `minter`.
446
+ */
447
+ export declare function mintBindLinkAsPrincipal(deps: {
448
+ sql: ScopedSql;
449
+ now: Instant;
450
+ emit: (event: DomainEventInput) => void;
451
+ }, minter: PrincipalId, raw: PrincipalBindLinkInput): Promise<MintedCapability>;
410
452
  /**
411
453
  * Revoke a `become` capability a PRINCIPAL minted (#1686) — what withdrawing a member invite
412
454
  * does to its link, recorded with `by` as the revoker. Only such a row: a platform-minted one
@@ -1 +1 @@
1
- {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { BECOME_LINK_STATES_MAX_IDS, CAPABILITY_BECOME_MINTED, CAPABILITY_EXERCISED, CAPABILITY_MINTED, CAPABILITY_REVOKED, CAPABILITY_SECRET_PREFIX, CAPABILITY_SESSION_PREFIX, CAPABILITY_SESSION_TTL_MS, becomeCapabilityInput, capabilityAction, capabilityAuthor, capabilityFilter, capabilityId as capabilityIdSchema, capabilityMintInput, capabilityRecord, permissionKey, principalBecomeCapabilityInput, principalId as principalIdSchema, substratError, entityObjectRef, } from '@substrat-run/contracts';
1
+ import { BECOME_LINK_STATES_MAX_IDS, CAPABILITY_BECOME_MINTED, CAPABILITY_BIND_MINTED, CAPABILITY_EXERCISED, CAPABILITY_MINTED, CAPABILITY_REVOKED, CAPABILITY_SECRET_PREFIX, CAPABILITY_SESSION_PREFIX, CAPABILITY_SESSION_TTL_MS, becomeCapabilityInput, capabilityAction, capabilityAuthor, capabilityFilter, capabilityId as capabilityIdSchema, capabilityMintInput, capabilityRecord, permissionKey, principalBecomeCapabilityInput, principalBindLinkInput, principalId as principalIdSchema, substratError, entityObjectRef, } from '@substrat-run/contracts';
2
2
  import { toBase64url } from './base64url.js';
3
3
  import { bindIn, judgeBind } from './entity-binding.js';
4
4
  import { PermissionDenied } from './permission-checker.js';
@@ -16,6 +16,7 @@ export const CAPABILITY_DDL = `
16
16
  token_hash TEXT NOT NULL UNIQUE,
17
17
  -- 'act': the holder acts AS the capability ({ capability } on the spine), bounded by
18
18
  -- entity + permissions (+ operations + attachments). 'become': exchanging it yields \`principal\`.
19
+ -- 'bind' (#2817): presented by \`principal\`'s own session, it binds them to \`action\`'s record.
19
20
  mode TEXT NOT NULL,
20
21
  label TEXT,
21
22
  entity_type TEXT,
@@ -35,7 +36,8 @@ export const CAPABILITY_DDL = `
35
36
  -- #1686: why the kernel itself revoked it ('holdings-changed'); NULL for any other revoke.
36
37
  revoked_reason TEXT,
37
38
  -- #1686: JSON capabilityAction — what a principal-minted 'become' also does at its exchange
38
- -- ({"kind":"bind","entity":…}, a binding invite). NULL = a plain become, or an 'act' row.
39
+ -- ({"kind":"bind","entity":…}, a binding invite), and what a 'bind' link does (#2817).
40
+ -- NULL = a plain become, or an 'act' row.
39
41
  action TEXT,
40
42
  -- JSON capabilityAuthor: a principal id (a module minted it, and its authority is
41
43
  -- re-checked on every use) or {"platform": …} (HostAdmin minted it).
@@ -186,8 +188,8 @@ export function capabilityRecordOf(row) {
186
188
  revokedBy: row.revoked_by === null ? null : JSON.parse(row.revoked_by),
187
189
  revokedReason: row.revoked_reason ?? null,
188
190
  };
189
- return capabilityRecord.parse(row.mode === 'become'
190
- ? { mode: 'become', ...common, principal: row.principal, action: actionOf(row) }
191
+ return capabilityRecord.parse(row.mode === 'become' || row.mode === 'bind'
192
+ ? { mode: row.mode, ...common, principal: row.principal, action: actionOf(row) }
191
193
  : {
192
194
  mode: 'act',
193
195
  ...common,
@@ -209,7 +211,7 @@ async function storedDigest(row, held) {
209
211
  const digest = await holdingsDigest(held);
210
212
  return row.action ? `${BIND_DIGEST_PREFIX}${digest}` : digest;
211
213
  }
212
- /** A `become` row's carried action (#1686), or null for a plain one. */
214
+ /** A `become` row's carried action (#1686) — or a `bind` row's (#2817) — or null for a plain one. */
213
215
  function actionOf(row) {
214
216
  return row.action ? capabilityAction.parse(JSON.parse(row.action)) : null;
215
217
  }
@@ -419,8 +421,9 @@ export function createCapabilityVerbs(deps) {
419
421
  const grant = capabilityGrantOf(row);
420
422
  if (!grant) {
421
423
  // A `become` row: the platform's (HostAdmin) or a member invite's (the host's
422
- // principal revoke, #1686) — never module code's.
423
- throw substratError('forbidden', `capability ${id} is a become capability and is revoked by the host that minted it, not ctx.capabilities`,
424
+ // principal revoke, #1686) — or a `bind` link (#2817, withdrawn by an unbind) — never
425
+ // module code's.
426
+ throw substratError('forbidden', `capability ${id} is a ${row.mode} capability and is revoked by the host that minted it, not ctx.capabilities`,
424
427
  // The reason predates principal-minted `become` rows and is kept: a caller may match on it.
425
428
  { reason: 'capability_platform_minted' });
426
429
  }
@@ -474,9 +477,15 @@ export async function exchangeCapability(deps, secret,
474
477
  /**
475
478
  * The only mode the caller can handle. A secret of the OTHER mode answers `null` without
476
479
  * taking a use: a claim link pasted into a share-link exchange must not be spent by a
477
- * route that would then throw away the principal it yielded.
480
+ * route that would then throw away the principal it yielded. A `bind` link (#2817) is
481
+ * exchanged ONLY when asked for by name, with its presenter: no other route spends one.
478
482
  */
479
- mode) {
483
+ mode,
484
+ /**
485
+ * `bind` only (#2817): the principal whose own session presents the link, as the caller's
486
+ * authentication resolved it. The link is exchanged only by the member it names.
487
+ */
488
+ presenter) {
480
489
  if (!plausible(secret, CAPABILITY_SECRET_PREFIX))
481
490
  return null;
482
491
  const tokenHash = await capabilityTokenHash(secret);
@@ -487,6 +496,15 @@ mode) {
487
496
  return null;
488
497
  const author = capabilityAuthor.parse(JSON.parse(row.minted_by));
489
498
  const minter = typeof author === 'string' ? author : null;
499
+ // A `bind` link (#2817) is presented by the member it names, who must still be one: the
500
+ // exchange yields nobody new, it binds someone who already is somebody here. Without a
501
+ // presenter — any exchange but `bind`'s — it is refused here, its use untaken.
502
+ if (row.mode === 'bind') {
503
+ if (presenter === undefined || presenter !== row.principal || !deps.holdings)
504
+ return null;
505
+ if ((await deps.holdings(presenter)).permissions.length === 0)
506
+ return null;
507
+ }
490
508
  if (row.mode === 'become' && minter) {
491
509
  // A principal minted it (#1686): the bound held against what its principal held THEN. If
492
510
  // that has changed in any way since — a role raised or lowered, a grant added, an org joined,
@@ -504,7 +522,9 @@ mode) {
504
522
  // binding declared, the record there and naming nobody, the minter still holding the key on it.
505
523
  // Judged before the use is taken, so a refusal writes nothing and the link stays as it was:
506
524
  // a minter who has lost the key, or left, makes the link refuse, with the one answer.
507
- const action = row.mode === 'become' ? actionOf(row) : null;
525
+ const action = row.mode === 'act' ? null : actionOf(row);
526
+ if (row.mode === 'bind' && !action)
527
+ return null;
508
528
  let bind = null;
509
529
  if (action) {
510
530
  const allowed = deps.allowed;
@@ -521,6 +541,14 @@ mode) {
521
541
  return null;
522
542
  const id = capabilityIdSchema.parse(row.id);
523
543
  const uses = row.uses + 1;
544
+ if (row.mode === 'bind') {
545
+ // The link's own spine record is the record's `entity.holder-bound`, which names it. `bind`
546
+ // is set: a `bind` row without an action was refused above, and its judgement passed.
547
+ const { entity, binding, mintedBy } = bind;
548
+ const principal = principalIdSchema.parse(row.principal);
549
+ bindIn(deps.sql, binding, entity, principal, { capabilityId: id, mintedBy }, (event) => deps.emit(id, event));
550
+ return { kind: 'principal', capabilityId: id, principal, bound: entity };
551
+ }
524
552
  if (row.mode === 'become') {
525
553
  const principal = principalIdSchema.parse(row.principal);
526
554
  // In the same transaction as the use: a fault inside rolls the use back with it.
@@ -664,15 +692,18 @@ async function insertBecome(sql, input, author, now,
664
692
  /** A principal's mint only: the target's `holdingsDigest` now. */
665
693
  targetDigest = null,
666
694
  /** A principal's mint only (#1686): the action the exchange also does. */
667
- action = null) {
695
+ action = null,
696
+ /** #2817: a `bind` link is the same row, presented by its principal rather than becoming them. */
697
+ mode = 'become') {
668
698
  const id = capabilityIdSchema.parse(ulid());
669
699
  const secret = mintCapabilitySecret();
670
700
  sql.exec(`INSERT INTO _substrat_capabilities
671
701
  (id, token_hash, mode, label, entity_type, entity_id, permissions, operations, attachments,
672
702
  principal, minted_by, minted_at, expires_at, max_uses, uses, target_digest, action)
673
- VALUES (?, ?, 'become', ?, NULL, NULL, NULL, NULL, NULL, ?, ?, ?, ?, ?, 0, ?, ?)`, [
703
+ VALUES (?, ?, ?, ?, NULL, NULL, NULL, NULL, NULL, ?, ?, ?, ?, ?, 0, ?, ?)`, [
674
704
  id,
675
705
  await capabilityTokenHash(secret),
706
+ mode,
676
707
  input.label ?? null,
677
708
  input.principal,
678
709
  JSON.stringify(author),
@@ -706,7 +737,7 @@ reason = null) {
706
737
  export function revokeBindLinksIn(sql, entity, by, now) {
707
738
  const revoked = [];
708
739
  for (const row of sql.query(`SELECT id, action FROM _substrat_capabilities
709
- WHERE mode = 'become' AND action IS NOT NULL AND revoked_at IS NULL
740
+ WHERE mode IN ('become', 'bind') AND action IS NOT NULL AND revoked_at IS NULL
710
741
  AND (expires_at IS NULL OR expires_at > ?) AND (max_uses IS NULL OR uses < max_uses)`, [now])) {
711
742
  const action = decodedAction(row.action);
712
743
  if (action?.entity.entityType !== entity.entityType || action.entity.entityId !== entity.entityId)
@@ -717,6 +748,21 @@ export function revokeBindLinksIn(sql, entity, by, now) {
717
748
  }
718
749
  return revoked.sort();
719
750
  }
751
+ /**
752
+ * Revoke every `bind` link (#2817) still exchangeable for `principal` — unrevoked, unexpired, under
753
+ * its use limit — what a person's erasure runs, by the kernel itself (no revoker): a link naming
754
+ * someone who is being erased must not bind them afterwards. A used or expired link is left as it
755
+ * reads, as `revokeBindLinksIn` leaves one: it is evidence of what happened, and binds nobody. Only
756
+ * `bind` rows: a `become` link's principal is the seat it yields, not a person.
757
+ */
758
+ export function revokeBindLinksFor(sql, principal, now) {
759
+ // Read first: an erasure that holds nothing for its subject writes nothing.
760
+ for (const { id } of sql.query(`SELECT id FROM _substrat_capabilities
761
+ WHERE mode = 'bind' AND principal = ? AND revoked_at IS NULL
762
+ AND (expires_at IS NULL OR expires_at > ?) AND (max_uses IS NULL OR uses < max_uses)`, [principal, now])) {
763
+ markRevoked(sql, capabilityIdSchema.parse(id), null, now);
764
+ }
765
+ }
720
766
  /** A stored action, or null when it does not decode. */
721
767
  function decodedAction(text) {
722
768
  try {
@@ -939,6 +985,50 @@ targetDigest) {
939
985
  });
940
986
  return minted;
941
987
  }
988
+ /** The pseudo-operation a principal's `bind` link mint names on its spine event (#2817). */
989
+ export const CAPABILITY_BIND_MINT_OPERATION = 'capabilities.mint-bind';
990
+ /**
991
+ * May `caller` mint a `bind` link (#2817) binding `target` to `entity` at `node`? The binding's own
992
+ * judgement (`judgeBind`, the caller's key asked first, so a caller without it learns nothing about
993
+ * the record), and then the target: a member, holding something at the node — a link for nobody
994
+ * the scope knows would bind whoever is later given that id. Neither `target-already-claimed` nor
995
+ * a holdings bound: no principal changes hands, so nothing the target holds is acquired by anyone.
996
+ * The exchange makes both judgements again.
997
+ */
998
+ export async function bindLinkMintCheck(deps, caller, target, node, entity) {
999
+ const judged = await judgeBind(deps.sql, allowedFor(deps.checker, caller, node), entity);
1000
+ if (!judged.ok)
1001
+ return judged;
1002
+ if (!deps.checker.holdings) {
1003
+ throw substratError('unavailable', 'this permission checker cannot read what a principal holds — refusing to mint a bind link');
1004
+ }
1005
+ const held = await deps.checker.holdings({ kind: 'principal', id: target }, node);
1006
+ if (held.permissions.length === 0)
1007
+ return { ok: false, refused: 'target-holds-nothing' };
1008
+ return { ok: true };
1009
+ }
1010
+ /**
1011
+ * A principal's `bind` link mint (#2817) — the write a host makes once `bindLinkMintCheck` has said
1012
+ * yes, in the same scope task. Single use; on the spine as `capability.bind-minted` on the record,
1013
+ * through `emit`, whose actor the host stamps as `minter`.
1014
+ */
1015
+ export async function mintBindLinkAsPrincipal(deps, minter, raw) {
1016
+ const input = principalBindLinkInput.parse(raw);
1017
+ if (input.expiresAt !== undefined && input.expiresAt <= deps.now) {
1018
+ throw substratError('validation_failed', `mintBindLink: expiresAt ${input.expiresAt} is not in the future`);
1019
+ }
1020
+ const minted = await insertBecome(deps.sql, { principal: input.principal, expiresAt: input.expiresAt, maxUses: 1, label: input.label }, minter, deps.now, null, { kind: 'bind', entity: input.entity }, 'bind');
1021
+ const payload = {
1022
+ capabilityId: minted.id,
1023
+ principal: input.principal,
1024
+ entity: input.entity,
1025
+ expiresAt: input.expiresAt ?? null,
1026
+ label: input.label ?? null,
1027
+ mintedBy: minter,
1028
+ };
1029
+ deps.emit({ type: CAPABILITY_BIND_MINTED, schemaVersion: 1, entity: input.entity, piiClass: 'none', payload });
1030
+ return minted;
1031
+ }
942
1032
  /**
943
1033
  * Revoke a `become` capability a PRINCIPAL minted (#1686) — what withdrawing a member invite
944
1034
  * does to its link, recorded with `by` as the revoker. Only such a row: a platform-minted one
@@ -1 +1 @@
1
- {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,8 @@ export declare function unbindEntityHolderBounded(deps: {
92
92
  }, entity: EntityRef): Promise<BoundedUnbind>;
93
93
  /** What an erasure releases, read before any of it runs. */
94
94
  export interface ErasureBindings {
95
+ /** The erased subject — whose open `bind` links (#2817) the release revokes. */
96
+ subject: string;
95
97
  /** Shape holders to release: on a record that IS the subject (any holder), or the subject's own markers. */
96
98
  holders: {
97
99
  object: string;
@@ -119,7 +121,7 @@ export declare function captureBoundOf(sql: ScopedSql, subjectId: string): Erasu
119
121
  * and still names that person, and each captured holder released from the spine whether or not
120
122
  * its row survived. Each such record's pending links are revoked as an unbind revokes them (#2818),
121
123
  * by the kernel itself: a record the erasure frees must not be claimable by a link minted for its
122
- * earlier binding. No event: an event naming the erased subject would be a new copy of what is
124
+ * earlier binding — and so is every open `bind` link naming the erased subject (#2817). No event: an event naming the erased subject would be a new copy of what is
123
125
  * being erased.
124
126
  */
125
127
  export declare function releaseBound(sql: ScopedSql, captured: ErasureBindings, now: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-binding.d.ts","sourceRoot":"","sources":["../src/entity-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EAGrB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,qDAAqD;IACrD,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,+EAA+E;IAC/E,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AA+ED,0FAA0F;AAC1F,QAAA,MAAM,OAAO,eAAgB,aAAa,KAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;CAGvG,CAAC;AAEH;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EAC3E,MAAM,EAAE,SAAS,GAChB,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,kBAAkB,CAAA;CAAE,GACxI,UAAU,CAAC,OAAO,OAAO,CAAC,CAC7B,CAiBA;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,EAC3D,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GACtC,IAAI,CAqBN;AA+CD,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE;IACJ,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC,EACD,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,aAAa,CAAC,CAaxB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,4GAA4G;IAC5G,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,wFAAwF;IACxF,OAAO,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAmCjF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMzF"}
1
+ {"version":3,"file":"entity-binding.d.ts","sourceRoot":"","sources":["../src/entity-binding.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ENTITY_HOLDER_BOUND, ENTITY_HOLDER_UNBOUND, ENTITY_SHAPE_MARKER_RELATION, entityObjectRef, permissionKey, substratError, } from '@substrat-run/contracts';
2
2
  // A cycle with capability.ts (which imports `judgeBind`/`bindIn`), of functions only — none runs at load.
3
- import { revokeBindLinksIn } from './capability.js';
3
+ import { revokeBindLinksFor, revokeBindLinksIn } from './capability.js';
4
4
  import { BIND_HOLDER_RELATION, BIND_KEY_RELATION, BIND_PERMISSION_RELATION, BOUND_EVER_RELATION, grantEntityShapeIn } from './entity-grant-shape.js';
5
5
  import { SHAPE_PROTECTED_KEY_RELATION } from './entity-grant.js';
6
6
  import { assertSqlIdentifier, tableExists } from './sql-identifier.js';
@@ -195,7 +195,7 @@ export async function unbindEntityHolderBounded(deps, entity) {
195
195
  * deletes is still known. A scope that binds nothing pays the one read of its shape records.
196
196
  */
197
197
  export function captureBoundOf(sql, subjectId) {
198
- const out = { holders: [], columns: [] };
198
+ const out = { subject: subjectId, holders: [], columns: [] };
199
199
  const bindings = new Map(entityBindingsOf(sql).map((b) => [b.entityType, b]));
200
200
  // Every type that binds now, and every type that ever bound here (`shape-bound`, sticky).
201
201
  const types = new Set([
@@ -230,7 +230,7 @@ export function captureBoundOf(sql, subjectId) {
230
230
  * and still names that person, and each captured holder released from the spine whether or not
231
231
  * its row survived. Each such record's pending links are revoked as an unbind revokes them (#2818),
232
232
  * by the kernel itself: a record the erasure frees must not be claimable by a link minted for its
233
- * earlier binding. No event: an event naming the erased subject would be a new copy of what is
233
+ * earlier binding — and so is every open `bind` link naming the erased subject (#2817). No event: an event naming the erased subject would be a new copy of what is
234
234
  * being erased.
235
235
  */
236
236
  export function releaseBound(sql, captured, now) {
@@ -240,5 +240,6 @@ export function releaseBound(sql, captured, now) {
240
240
  }
241
241
  for (const { object, only } of captured.holders)
242
242
  releaseHolders(sql, object, now, only);
243
+ revokeBindLinksFor(sql, captured.subject, now);
243
244
  }
244
245
  //# sourceMappingURL=entity-binding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-binding.js","sourceRoot":"","sources":["../src/entity-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-binding.js","sourceRoot":"","sources":["../src/entity-binding.ts"],"names":[],"mappings":"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"}