@consiliency/agent-board-schema 1.25.0 → 1.28.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@consiliency/agent-board-schema",
3
- "version": "1.25.0",
3
+ "version": "1.28.0",
4
4
  "description": "Canonical, immutable, exact-pinnable agent_board schema bundle: ordered SQL migrations, digest + compatibility manifest, and deterministic materialize/plan/check tooling for adopters.",
5
5
  "repository": "https://github.com/Consiliency/message-board.git",
6
6
  "type": "module",
@@ -2,7 +2,7 @@
2
2
  "schema": "agent_board_schema_manifest.v1",
3
3
  "interface": "IF-0-MBPLANE-BUNDLE-1",
4
4
  "package": "@consiliency/agent-board-schema",
5
- "packageVersion": "1.25.0",
5
+ "packageVersion": "1.28.0",
6
6
  "schemaVersion": 8,
7
7
  "minClientVersion": "1.1.0",
8
8
  "source": {
@@ -46,8 +46,8 @@
46
46
  "usage": "upsert (retention/monitoring defaults; on conflict do nothing)"
47
47
  }
48
48
  ],
49
- "migrationCount": 125,
50
- "aggregateSha256": "0ce03fcc8b0ae0113e9b6de2c8e8bc346cf735a86fcca0221ffc8103d604969f",
49
+ "migrationCount": 127,
50
+ "aggregateSha256": "c550b9a50fadba563b30975d911079bdd96f59ac64a752553df9fcfb5df0e6d4",
51
51
  "migrations": [
52
52
  {
53
53
  "order": 0,
@@ -1173,6 +1173,24 @@
1173
1173
  "sourceRef": "message-board",
1174
1174
  "bytes": 12633,
1175
1175
  "sha256": "21111e289e0bb70ac3236f5422476c0c51d0bca5a815c11dd4e48b6932cf7c6b"
1176
+ },
1177
+ {
1178
+ "order": 125,
1179
+ "id": "20260908000100_agent_board_signer_lifecycle_revalidation",
1180
+ "filename": "20260908000100_agent_board_signer_lifecycle_revalidation.sql",
1181
+ "origin": "message-board-forward",
1182
+ "sourceRef": "message-board",
1183
+ "bytes": 29336,
1184
+ "sha256": "bfb1ae60f69dae0a0aaf1007dbf14e171f324cdced1caf9f4d490f41a60c14e5"
1185
+ },
1186
+ {
1187
+ "order": 126,
1188
+ "id": "20260909000100_agent_board_ledger_revoked_authority",
1189
+ "filename": "20260909000100_agent_board_ledger_revoked_authority.sql",
1190
+ "origin": "message-board-forward",
1191
+ "sourceRef": "message-board",
1192
+ "bytes": 67493,
1193
+ "sha256": "7522e32c61f8845e511255d94d273d98eb7b72b2f906976c3a2494629927462d"
1176
1194
  }
1177
1195
  ],
1178
1196
  "excludedBridge": {
@@ -38,9 +38,9 @@ describe('manifest integrity', () => {
38
38
  expect(manifest.schemaVersion).toBe(8);
39
39
  expect(manifest.minClientVersion).toMatch(/^\d+\.\d+\.\d+$/);
40
40
  });
41
- it('registers the four MBAUTHZ + four MBSENDAUTHZ + four MBSESSION + four MBDELEG + three MBFED + three MBHARDEN + two MBPORTALGATE + two MBPORTAL-PR32 + two ROOMOWN + two ROOMLINK + one ROOMDELEG + one LOCALAUTH + one ROOMUIAPI + one FEDSESSION + one FEDSESSION-AUTOJOIN + one GATENULL + one MEMBSTATE + one AGENTSDIR + one LEAVEIDEM + one ROLERESET + one MBROWID + one MBHYGIENE + one MBCONSENT-A + one MBCONSENT-B(a) + one MBCONSENT-B(i) + one MBCONSENT-B(ii) + one MBCONSENT-B(iii) + one MBHARDEN-#97 + one MBHARDEN-#118 + one INVITEPOLICY + one OBSGATE + one OBSGATE-2 + one OBSGATE-3 + one OBSGATE-4 + one FLEETMACHINERLS + one RESOLVENOOP + one ROOMDELEG-LANEB + one CLAIMKEY + two MINTHARDEN + one FLEETMACHINEHIJACK + one CLAIMGATE-SHADOW + one CLAIMGATE-ENFORCE + one FLEETMACHINEREACTIVATION + one DELEGCAPCEILING + one FLEETMACHINERECLAIM + one DELEGSOLEWRITER + one FLEETDOMAINRECLAIM + five ATOMICFLEETONBOARDING (onboarding + ceiling-lock + revocation-evidence + fedsession-gate + fedsession-lock-order) + one OUTBOXWAKE + one ENROLLLOCKORDER + one FEDPROVIDERABSENCE + one WAKERECOVERY + one CONSENTRECONCILE + one ENROLLRESUMPTION + one SIGNEDAUTHORITY forward migrations (migrationCount = prior 113 + 5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 125)', () => {
41
+ it('registers the four MBAUTHZ + four MBSENDAUTHZ + four MBSESSION + four MBDELEG + three MBFED + three MBHARDEN + two MBPORTALGATE + two MBPORTAL-PR32 + two ROOMOWN + two ROOMLINK + one ROOMDELEG + one LOCALAUTH + one ROOMUIAPI + one FEDSESSION + one FEDSESSION-AUTOJOIN + one GATENULL + one MEMBSTATE + one AGENTSDIR + one LEAVEIDEM + one ROLERESET + one MBROWID + one MBHYGIENE + one MBCONSENT-A + one MBCONSENT-B(a) + one MBCONSENT-B(i) + one MBCONSENT-B(ii) + one MBCONSENT-B(iii) + one MBHARDEN-#97 + one MBHARDEN-#118 + one INVITEPOLICY + one OBSGATE + one OBSGATE-2 + one OBSGATE-3 + one OBSGATE-4 + one FLEETMACHINERLS + one RESOLVENOOP + one ROOMDELEG-LANEB + one CLAIMKEY + two MINTHARDEN + one FLEETMACHINEHIJACK + one CLAIMGATE-SHADOW + one CLAIMGATE-ENFORCE + one FLEETMACHINEREACTIVATION + one DELEGCAPCEILING + one FLEETMACHINERECLAIM + one DELEGSOLEWRITER + one FLEETDOMAINRECLAIM + five ATOMICFLEETONBOARDING (onboarding + ceiling-lock + revocation-evidence + fedsession-gate + fedsession-lock-order) + one OUTBOXWAKE + one ENROLLLOCKORDER + one FEDPROVIDERABSENCE + one WAKERECOVERY + one CONSENTRECONCILE + one ENROLLRESUMPTION + one SIGNEDAUTHORITY + one SIGNERLIFECYCLE + one LEDGERAUTHORITY forward migrations (migrationCount = prior 113 + 5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 127)', () => {
42
42
  expect(manifest.migrationCount).toBe(manifest.migrations.length);
43
- expect(manifest.migrationCount).toBe(125);
43
+ expect(manifest.migrationCount).toBe(127);
44
44
  // MBSESSION switched enforcement on (scoped-send re-grant): the client-visible
45
45
  // schema version bumped to 8. MBDELEG tightens delegation and MBFED adds only
46
46
  // enrollment-only additive surface (identity_providers registry, enrollment audit,
@@ -521,7 +521,12 @@ select is( -- pgtap-allow-raise-checked: catalog read only; the RPC names below
521
521
  array[
522
522
  'agent_board._redeem_unbounded_invite_for_agent(text,uuid) => UNSERIALIZED',
523
523
  'agent_board.create_invite_link(uuid,text,text,integer,timestamp with time zone,uuid,jsonb) => UNSERIALIZED',
524
- 'agent_board.grant_board_role(uuid,uuid,text,uuid) => UNSERIALIZED',
524
+ -- Retired from UNSERIALIZED by #276 (20260909000100). Adding the fleet-ledger gate made
525
+ -- grant_board_role row-lock both agents and board_memberships, which section 9 of
526
+ -- agent_board_signer_lifecycle.test.sql requires to be advisory-serialised; taking that
527
+ -- lock also closes this reader's exposure to the ceiling row's ABSENCE, one of the three
528
+ -- 20260901000110 left explicitly undetermined.
529
+ 'agent_board.grant_board_role(uuid,uuid,text,uuid) => serialized',
525
530
  'agent_board.onboard_federated_fleet_agent(text,text,text,jsonb,text,text,text,text,boolean,text,text,text[],text[],text,uuid,uuid,text,text,text,text,text,text,text) => serialized'
526
531
  ]::text[],
527
532
  'every ceiling-authorization reader in pg_proc is declared with its serialization state'
@@ -569,6 +574,12 @@ select is( -- pgtap-allow-raise-checked: catalog read only; the RPC names below
569
574
  or strpos(agent_board_test.stripped_body(p.oid, true), 'board_authority_ceilings:') > 0)
570
575
  ) definers),
571
576
  array[
577
+ -- Joined this class in #276: it reads the fleet revocation ledger. This is the UNLOCKED
578
+ -- predicate; the share-locking _assert_actor_not_fleet_revoked wrapper left this surface
579
+ -- when the two were split, because it now reaches the ledger through this function rather
580
+ -- than naming the table itself. Internal — it reads rows for an arbitrary agent id with no
581
+ -- authorization of its own, so service_role only, like every other helper here.
582
+ 'agent_board._actor_fleet_revoked(uuid) [definer] => service_role',
572
583
  'agent_board._lock_board_authority_ceiling(uuid) [invoker] => service_role',
573
584
  'agent_board._redeem_fleet_invite_for_agent(text,uuid) [definer] => service_role',
574
585
  'agent_board._redeem_invite_for_agent(text,uuid) [definer] => service_role',
@@ -577,11 +588,21 @@ select is( -- pgtap-allow-raise-checked: catalog read only; the RPC names below
577
588
  'agent_board.enroll_federated_human(text,text,text,jsonb,text) [definer] => service_role',
578
589
  'agent_board.enroll_federated_identity(text,text,text,jsonb,text,text,text,text,boolean,text,text,text[],text[],text) [definer] => service_role',
579
590
  'agent_board.evaluate_fleet_sender_policy(uuid,uuid,uuid,uuid,text,uuid,boolean) [definer] => authenticated,service_role',
591
+ -- Joined this class in #276: the live grant chokepoint now takes _lock_board_authority_ceiling
592
+ -- (forced by the section-9 agents/board_memberships class in agent_board_signer_lifecycle.test.sql
593
+ -- once the ledger gate made it lock both). Still authenticated,service_role — #276 removes
594
+ -- authority from a revoked principal, it does not change who may call the RPC.
595
+ 'agent_board.grant_board_role(uuid,uuid,text,uuid) [definer] => authenticated,service_role',
580
596
  'agent_board.onboard_federated_fleet_agent(text,text,text,jsonb,text,text,text,text,boolean,text,text,text[],text[],text,uuid,uuid,text,text,text,text,text,text,text) [definer] => service_role',
581
597
  'agent_board.reactivate_fleet_machine(uuid,uuid,text) [definer] => service_role',
582
598
  'agent_board.revoke_fleet_subject(text,uuid,uuid,text,jsonb) [definer] => authenticated,service_role',
583
599
  'agent_board.revoke_human_subtree(uuid,uuid,text) [definer] => service_role',
584
- 'agent_board.set_board_authority_ceiling(uuid,text,uuid) [definer] => authenticated,service_role'
600
+ 'agent_board.set_board_authority_ceiling(uuid,text,uuid) [definer] => authenticated,service_role',
601
+ -- Joined this class in #269 F4: the signed grant wrapper now takes the board advisory lock
602
+ -- FIRST, because its order was board_memberships(grantee) -> agents(signer) against
603
+ -- onboard_federated_fleet_agent's agents -> board_memberships -- a reproduced ABBA between
604
+ -- two honest callers. It is service_role-only like every other signed_* wrapper (#118).
605
+ 'agent_board.signed_grant_board_role(jsonb,jsonb) [definer] => service_role'
585
606
  ]::text[],
586
607
  'every function on this migration set''s surface is declared with its definer flag and exact EXECUTE grantees'
587
608
  );