@consiliency/agent-board-schema 1.53.0 → 1.55.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/fixtures/already-applied.json +615 -607
- package/migrations/20261004000100_agent_board_callback_consumer_intent.sql +52 -0
- package/migrations/20261005000100_agent_board_enroll_token_single_use.sql +886 -0
- package/package.json +1 -1
- package/schema-manifest.json +21 -3
- package/src/tooling.test.mjs +5 -2
- package/tests/agent_board_atomic_fleet_onboarding.test.sql +35 -35
- package/tests/agent_board_atomic_fleet_onboarding_backfill.test.sql +5 -5
- package/tests/agent_board_atomic_fleet_onboarding_runtime.test.sql +32 -32
- package/tests/agent_board_enroll_federated_identity.test.sql +11 -10
- package/tests/agent_board_enroll_pop_binding.test.sql +12 -12
- package/tests/agent_board_enroll_resumption.test.sql +1 -1
- package/tests/agent_board_enroll_token_single_use.test.sql +538 -0
- package/tests/agent_board_enrollment_audit_content.test.sql +3 -3
- package/tests/agent_board_federated_lock_order_class.test.sql +5 -5
- package/tests/agent_board_fedsession.test.sql +1 -1
- package/tests/agent_board_fk_lock_edges.test.sql +23 -0
- package/tests/agent_board_identity_providers.test.sql +3 -2
- package/tests/agent_board_portal_offline_invariant.test.sql +1 -1
- package/tests/agent_board_roomlink.test.sql +2 -2
- package/tests/agent_board_write_enforcement_class.test.sql +5 -2
- package/tests/catalog/function_execute_privileges.json +12 -3
- package/tests/catalog/p_metadata_parameters.json +6 -2
- package/tests/isolation/expected/atomic_fedsession_fleet_lock_order.out +1 -1
- package/tests/isolation/expected/atomic_fleet_authority_races.out +8 -8
- package/tests/isolation/expected/atomic_fleet_binding_revoke.out +2 -2
- package/tests/isolation/expected/atomic_fleet_board_archive.out +2 -2
- package/tests/isolation/expected/atomic_fleet_human_fresh_revoke.out +2 -2
- package/tests/isolation/expected/atomic_fleet_identity_disposition.out +2 -2
- package/tests/isolation/expected/atomic_fleet_lifecycle_races.out +22 -22
- package/tests/isolation/expected/atomic_fleet_onboarding.out +2 -2
- package/tests/isolation/expected/atomic_fleet_subtree_lock_order.out +1 -1
- package/tests/isolation/expected/enroll_identity_board_owner_lock_order.out +1 -1
- package/tests/isolation/expected/enroll_token_fleet_abort.out +81 -0
- package/tests/isolation/expected/enroll_token_pk_backstop.out +36 -0
- package/tests/isolation/expected/enroll_token_placement.out +86 -0
- package/tests/isolation/expected/enroll_token_rollback_unstrands.out +59 -0
- package/tests/isolation/expected/enroll_token_route_race_fleet_first.out +72 -0
- package/tests/isolation/expected/enroll_token_route_race_identity_first.out +72 -0
- package/tests/isolation/expected/enroll_token_same_key_fleet_then_identity.out +73 -0
- package/tests/isolation/expected/enroll_token_same_key_identity_then_fleet.out +73 -0
- package/tests/isolation/expected/enroll_token_same_key_resume.out +59 -0
- package/tests/isolation/expected/enroll_token_same_token_race.out +58 -0
- package/tests/isolation/expected/onboarding_ceiling_lock_order.out +2 -2
- package/tests/isolation/specs/atomic_fedsession_fleet_lock_order.spec +1 -1
- package/tests/isolation/specs/atomic_fleet_authority_races.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_binding_revoke.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_board_archive.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_human_fresh_revoke.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_identity_disposition.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_lifecycle_races.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_onboarding.spec +2 -2
- package/tests/isolation/specs/atomic_fleet_subtree_lock_order.spec +2 -2
- package/tests/isolation/specs/enroll_identity_board_owner_lock_order.spec +1 -1
- package/tests/isolation/specs/enroll_token_fleet_abort.spec +138 -0
- package/tests/isolation/specs/enroll_token_pk_backstop.spec +37 -0
- package/tests/isolation/specs/enroll_token_placement.spec +136 -0
- package/tests/isolation/specs/enroll_token_rollback_unstrands.spec +71 -0
- package/tests/isolation/specs/enroll_token_route_race_fleet_first.spec +119 -0
- package/tests/isolation/specs/enroll_token_route_race_identity_first.spec +120 -0
- package/tests/isolation/specs/enroll_token_same_key_fleet_then_identity.spec +112 -0
- package/tests/isolation/specs/enroll_token_same_key_identity_then_fleet.spec +113 -0
- package/tests/isolation/specs/enroll_token_same_key_resume.spec +70 -0
- package/tests/isolation/specs/enroll_token_same_token_race.spec +80 -0
- package/tests/isolation/specs/onboarding_ceiling_lock_order.spec +1 -1
|
@@ -300,6 +300,27 @@ select is(
|
|
|
300
300
|
-- callback_subscriptions (fabricated; `OF coe` does not name it -- lock_edges() now reads
|
|
301
301
|
-- the OF list). `callback_endpoints <-> callback_outbox_events` is still reported after
|
|
302
302
|
-- the fix; this comment does not claim to know which routes carry it.
|
|
303
|
+
--
|
|
304
|
+
-- TWO PAIRS WERE ADDED BY #521, and both are the SAME function pair:
|
|
305
|
+
-- enroll_federated_identity writes enroll_token_uses (its token bind) BEFORE it locks
|
|
306
|
+
-- agents and inserts board_memberships, while onboard_federated_fleet_agent locks agents
|
|
307
|
+
-- and the creator's board_memberships BEFORE its nested enroll_federated_identity call
|
|
308
|
+
-- reaches the bind. Neither pair can close a cycle, and the reason is a row lock this
|
|
309
|
+
-- detector does not model as serialisation (it credits only the board advisory lock):
|
|
310
|
+
-- * the only wait on enroll_token_uses is two transactions on the SAME token row. The
|
|
311
|
+
-- primary key is token_sha256, so two DIFFERENT tokens insert different key values and
|
|
312
|
+
-- never wait on each other -- even for one fingerprint, which may legitimately hold many
|
|
313
|
+
-- token rows (a key re-presented under several tokens). The prune selects with
|
|
314
|
+
-- `skip locked`, so it never waits either;
|
|
315
|
+
-- * the same token => the same verified (issuer, subject) => the same owner, and BOTH
|
|
316
|
+
-- routes take that auth.users owner row FOR UPDATE before either touches
|
|
317
|
+
-- enroll_token_uses or (on the fleet route) agents/board_memberships -- so the second
|
|
318
|
+
-- transaction waits at the owner and never holds the other half.
|
|
319
|
+
-- That is pinned POSITIVELY, not by this list: agent_board_enroll_token_single_use.test.sql
|
|
320
|
+
-- asserts over stripped_body() that the bind sits after the owner lock (PLACEMENT), and the
|
|
321
|
+
-- isolation specs enroll_token_route_race_{identity,fleet}_first, enroll_token_placement and
|
|
322
|
+
-- enroll_token_same_key_{identity_then_fleet,fleet_then_identity} run the two routes against
|
|
323
|
+
-- each other in both orders and show a clean MBT01 or a fall-through, never 40P01.
|
|
303
324
|
-- ===========================================================================
|
|
304
325
|
select is(
|
|
305
326
|
(select array_agg(p order by p) from (
|
|
@@ -315,6 +336,7 @@ select is(
|
|
|
315
336
|
'agent_board.agents <-> agent_board.board_invite_tokens',
|
|
316
337
|
'agent_board.agents <-> agent_board.board_memberships',
|
|
317
338
|
'agent_board.agents <-> agent_board.boards',
|
|
339
|
+
'agent_board.agents <-> agent_board.enroll_token_uses',
|
|
318
340
|
'agent_board.agents <-> agent_board.fleet_machine_agents',
|
|
319
341
|
'agent_board.agents <-> agent_board.fleet_machines',
|
|
320
342
|
'agent_board.agents <-> agent_board.fleet_trust_domains',
|
|
@@ -324,6 +346,7 @@ select is(
|
|
|
324
346
|
'agent_board.board_invite_tokens <-> agent_board.fleet_machines',
|
|
325
347
|
'agent_board.board_invite_tokens <-> agent_board.fleet_trust_domains',
|
|
326
348
|
'agent_board.board_memberships <-> agent_board.boards',
|
|
349
|
+
'agent_board.board_memberships <-> agent_board.enroll_token_uses',
|
|
327
350
|
'agent_board.boards <-> auth.users',
|
|
328
351
|
'agent_board.callback_endpoints <-> agent_board.callback_outbox_events',
|
|
329
352
|
'agent_board.fleet_harness_registrations <-> agent_board.fleet_machine_agents',
|
|
@@ -101,10 +101,11 @@ select is(
|
|
|
101
101
|
and not policy_approved),
|
|
102
102
|
1, 'the mock issuer row is untouched (present, supported, inert)');
|
|
103
103
|
|
|
104
|
-
-- enroll_federated_identity is service_role-only (ROOMLINK-extended
|
|
104
|
+
-- enroll_federated_identity is service_role-only (ROOMLINK-extended signature; #521 added
|
|
105
|
+
-- the two token arguments after p_pop_verified, so it is 16-arg now)
|
|
105
106
|
select function_privs_are(
|
|
106
107
|
'agent_board', 'enroll_federated_identity',
|
|
107
|
-
array['text','text','text','jsonb','text','text','text','text','boolean','text','text','text[]','text[]','text'],
|
|
108
|
+
array['text','text','text','jsonb','text','text','text','text','boolean','text','timestamptz','text','text','text[]','text[]','text'],
|
|
108
109
|
'authenticated', array[]::text[],
|
|
109
110
|
'ROOMLINK-extended enroll_federated_identity execute is revoked from authenticated');
|
|
110
111
|
|
|
@@ -48,7 +48,7 @@ begin
|
|
|
48
48
|
from agent_board.enroll_federated_identity(
|
|
49
49
|
'https://mock-portal-'||s||'.test', 'message-board', 'portal|'||s,
|
|
50
50
|
jsonb_build_object('iss','https://mock-portal-'||s||'.test','aud','message-board','sub','portal|'||s),
|
|
51
|
-
'pofx-'||s, v_pub, 'raw_ed25519_base64url', v_fp, true, null, 'agent', '{board:send}', '{}') e;
|
|
51
|
+
'pofx-'||s, v_pub, 'raw_ed25519_base64url', v_fp, true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', '{board:send}', '{}') e;
|
|
52
52
|
|
|
53
53
|
-- A SECOND signing key (key_version 2; enroll auto-enrolled version 1) + a pending
|
|
54
54
|
-- challenge bound to it, so the mint step below can drive PoP -> mint deterministically.
|
|
@@ -343,7 +343,7 @@ begin
|
|
|
343
343
|
from _lf f, agent_board.enroll_federated_identity(
|
|
344
344
|
f.prov_iss, 'message-board', f.prov_sub,
|
|
345
345
|
jsonb_build_object('iss',f.prov_iss,'aud','message-board','sub', f.prov_sub), f.prov_slug,
|
|
346
|
-
f.pub1, 'raw_ed25519_base64url', f.fp1, true, null, 'agent', '{}', '{}', f.code_enroll) e;
|
|
346
|
+
f.pub1, 'raw_ed25519_base64url', f.fp1, true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', '{}', '{}', f.code_enroll) e;
|
|
347
347
|
insert into _er values ('X', v_aid, v_red);
|
|
348
348
|
|
|
349
349
|
-- Bad code: enrollment still succeeds, invite_redeemed=false, no membership.
|
|
@@ -351,7 +351,7 @@ begin
|
|
|
351
351
|
from _lf f, agent_board.enroll_federated_identity(
|
|
352
352
|
f.prov_iss, 'message-board', f.prov_sub || '-2',
|
|
353
353
|
jsonb_build_object('iss',f.prov_iss,'aud','message-board','sub', f.prov_sub || '-2'), f.prov_slug || '-2',
|
|
354
|
-
f.pub2, 'raw_ed25519_base64url', f.fp2, true, null, 'agent', '{}', '{}', 'bogus-code-nonexistent') e;
|
|
354
|
+
f.pub2, 'raw_ed25519_base64url', f.fp2, true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', '{}', '{}', 'bogus-code-nonexistent') e;
|
|
355
355
|
insert into _er values ('Y', v_aid, v_red);
|
|
356
356
|
end
|
|
357
357
|
$$;
|
|
@@ -424,10 +424,13 @@ select distinct p.oid,
|
|
|
424
424
|
|
|
425
425
|
-- WEC-1. The universe canary. Without it, a write-target set that had gone empty would empty the
|
|
426
426
|
-- writer population too. Base tables only — see limit 4 on why the 26 views are not pinned.
|
|
427
|
+
-- 59 -> 60 with #521's agent_board.enroll_token_uses. Its only writer, _enroll_token_bind, is
|
|
428
|
+
-- EXECUTE-able by no API role and is reached only from the service_role-only
|
|
429
|
+
-- enroll_federated_identity, so it adds no member to the `authenticated` writer population.
|
|
427
430
|
select is(
|
|
428
431
|
(select count(*)::text from _wec_target where relkind = 'r'),
|
|
429
|
-
'
|
|
430
|
-
'#325 canary: agent_board has
|
|
432
|
+
'60',
|
|
433
|
+
'#325 canary: agent_board has 60 base tables — the universe the write scan runs over, pinned so an empty violating set below cannot mean an empty universe');
|
|
431
434
|
|
|
432
435
|
-- WEC-2. The relations the class writes, as an EXACT SET. A new one names itself.
|
|
433
436
|
select is(
|
|
@@ -366,7 +366,16 @@
|
|
|
366
366
|
"signature": "_enroll_federated_identity_once(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text)",
|
|
367
367
|
"executable_by": {
|
|
368
368
|
"anon": false,
|
|
369
|
-
"service_role":
|
|
369
|
+
"service_role": false,
|
|
370
|
+
"authenticated": false
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"name": "_enroll_token_bind",
|
|
375
|
+
"signature": "_enroll_token_bind(p_token_sha256 text, p_token_expires_at timestamp with time zone, p_fingerprint text)",
|
|
376
|
+
"executable_by": {
|
|
377
|
+
"anon": false,
|
|
378
|
+
"service_role": false,
|
|
370
379
|
"authenticated": false
|
|
371
380
|
}
|
|
372
381
|
},
|
|
@@ -957,7 +966,7 @@
|
|
|
957
966
|
},
|
|
958
967
|
{
|
|
959
968
|
"name": "enroll_federated_identity",
|
|
960
|
-
"signature": "enroll_federated_identity(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text)",
|
|
969
|
+
"signature": "enroll_federated_identity(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_token_sha256 text, p_token_expires_at timestamp with time zone, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text)",
|
|
961
970
|
"executable_by": {
|
|
962
971
|
"anon": false,
|
|
963
972
|
"service_role": true,
|
|
@@ -1119,7 +1128,7 @@
|
|
|
1119
1128
|
},
|
|
1120
1129
|
{
|
|
1121
1130
|
"name": "onboard_federated_fleet_agent",
|
|
1122
|
-
"signature": "onboard_federated_fleet_agent(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text, p_board_id uuid, p_machine_id uuid, p_harness_kind text, p_harness_label text, p_repo_slug text, p_repo_fingerprint text, p_repo_scope_role text, p_agent_role text, p_expected_agent_handle text)",
|
|
1131
|
+
"signature": "onboard_federated_fleet_agent(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_token_sha256 text, p_token_expires_at timestamp with time zone, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text, p_board_id uuid, p_machine_id uuid, p_harness_kind text, p_harness_label text, p_repo_slug text, p_repo_fingerprint text, p_repo_scope_role text, p_agent_role text, p_expected_agent_handle text)",
|
|
1123
1132
|
"executable_by": {
|
|
1124
1133
|
"anon": false,
|
|
1125
1134
|
"service_role": true,
|
|
@@ -165,6 +165,10 @@
|
|
|
165
165
|
"signature": "_enroll_federated_identity_once(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text)",
|
|
166
166
|
"declares_p_metadata": false
|
|
167
167
|
},
|
|
168
|
+
{
|
|
169
|
+
"signature": "_enroll_token_bind(p_token_sha256 text, p_token_expires_at timestamp with time zone, p_fingerprint text)",
|
|
170
|
+
"declares_p_metadata": false
|
|
171
|
+
},
|
|
168
172
|
{
|
|
169
173
|
"signature": "_ensure_agent_auth_user(p_slug text)",
|
|
170
174
|
"declares_p_metadata": false
|
|
@@ -426,7 +430,7 @@
|
|
|
426
430
|
"declares_p_metadata": false
|
|
427
431
|
},
|
|
428
432
|
{
|
|
429
|
-
"signature": "enroll_federated_identity(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text)",
|
|
433
|
+
"signature": "enroll_federated_identity(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_token_sha256 text, p_token_expires_at timestamp with time zone, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text)",
|
|
430
434
|
"declares_p_metadata": false
|
|
431
435
|
},
|
|
432
436
|
{
|
|
@@ -498,7 +502,7 @@
|
|
|
498
502
|
"declares_p_metadata": false
|
|
499
503
|
},
|
|
500
504
|
{
|
|
501
|
-
"signature": "onboard_federated_fleet_agent(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text, p_board_id uuid, p_machine_id uuid, p_harness_kind text, p_harness_label text, p_repo_slug text, p_repo_fingerprint text, p_repo_scope_role text, p_agent_role text, p_expected_agent_handle text)",
|
|
505
|
+
"signature": "onboard_federated_fleet_agent(p_issuer text, p_audience text, p_subject text, p_human_identity_claim jsonb, p_slug text, p_agent_public_key text, p_agent_public_key_format text, p_agent_public_key_fingerprint text, p_pop_verified boolean, p_token_sha256 text, p_token_expires_at timestamp with time zone, p_actor_sub text, p_agent_kind text, p_requested_scopes text[], p_requested_board_scopes text[], p_invite_code text, p_board_id uuid, p_machine_id uuid, p_harness_kind text, p_harness_label text, p_repo_slug text, p_repo_fingerprint text, p_repo_scope_role text, p_agent_role text, p_expected_agent_handle text)",
|
|
502
506
|
"declares_p_metadata": false
|
|
503
507
|
},
|
|
504
508
|
{
|
|
@@ -26,7 +26,7 @@ step fleet_onboard:
|
|
|
26
26
|
'eRHZmllEy_TZHAG2zB-Qe_a5BFLkaavMTazWWfaE3f0',
|
|
27
27
|
'raw_ed25519_base64url',
|
|
28
28
|
'sha256:z8d5LQPfBMYnfZfvu8wVz684_jkp578-SPDU2OMObS8',
|
|
29
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
29
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
30
30
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='162a0000-0000-0000-0000-000000000001'),
|
|
31
31
|
(select id from agent_board.boards where slug='atomic-cross-board'),
|
|
32
32
|
'162a0000-0000-0000-0000-000000000003',
|
|
@@ -11,7 +11,7 @@ step retry_onboard:
|
|
|
11
11
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
12
12
|
'raw_ed25519_base64url',
|
|
13
13
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
14
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
14
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
15
15
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
16
16
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
17
17
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -71,7 +71,7 @@ step retry_onboard:
|
|
|
71
71
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
72
72
|
'raw_ed25519_base64url',
|
|
73
73
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
74
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
74
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
75
75
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
76
76
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
77
77
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -129,7 +129,7 @@ step retry_onboard:
|
|
|
129
129
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
130
130
|
'raw_ed25519_base64url',
|
|
131
131
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
132
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
132
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
133
133
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
134
134
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
135
135
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -202,7 +202,7 @@ step retry_onboard:
|
|
|
202
202
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
203
203
|
'raw_ed25519_base64url',
|
|
204
204
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
205
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
205
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
206
206
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
207
207
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
208
208
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -256,7 +256,7 @@ step retry_onboard:
|
|
|
256
256
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
257
257
|
'raw_ed25519_base64url',
|
|
258
258
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
259
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
259
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
260
260
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
261
261
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
262
262
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -312,7 +312,7 @@ step retry_onboard:
|
|
|
312
312
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
313
313
|
'raw_ed25519_base64url',
|
|
314
314
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
315
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
315
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
316
316
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
317
317
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
318
318
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -355,7 +355,7 @@ step retry_onboard:
|
|
|
355
355
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
356
356
|
'raw_ed25519_base64url',
|
|
357
357
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
358
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
358
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
359
359
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
360
360
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
361
361
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -436,7 +436,7 @@ step retry_onboard:
|
|
|
436
436
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
437
437
|
'raw_ed25519_base64url',
|
|
438
438
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
439
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
439
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
440
440
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16250000-0000-0000-0000-000000000001'),
|
|
441
441
|
(select id from agent_board.boards where slug='atomic-authority-board'),
|
|
442
442
|
'16250000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -13,7 +13,7 @@ step retry_onboard:
|
|
|
13
13
|
jsonb_build_object('iss','https://atomic-binding.test','aud','message-board','sub','human-binding','iat',200),
|
|
14
14
|
'atomic-binding-agent','yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
15
15
|
'raw_ed25519_base64url','sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
16
|
-
true,null,'agent',ARRAY['board:send'],ARRAY[]::text[],
|
|
16
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1),null,'agent',ARRAY['board:send'],ARRAY[]::text[],
|
|
17
17
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16230000-0000-0000-0000-000000000001'),
|
|
18
18
|
(select id from agent_board.boards where slug='atomic-binding-board'),
|
|
19
19
|
'16230000-0000-0000-0000-000000000003','codex','phase-loop',
|
|
@@ -78,7 +78,7 @@ step retry_onboard:
|
|
|
78
78
|
jsonb_build_object('iss','https://atomic-binding.test','aud','message-board','sub','human-binding','iat',200),
|
|
79
79
|
'atomic-binding-agent','yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
80
80
|
'raw_ed25519_base64url','sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
81
|
-
true,null,'agent',ARRAY['board:send'],ARRAY[]::text[],
|
|
81
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1),null,'agent',ARRAY['board:send'],ARRAY[]::text[],
|
|
82
82
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16230000-0000-0000-0000-000000000001'),
|
|
83
83
|
(select id from agent_board.boards where slug='atomic-binding-board'),
|
|
84
84
|
'16230000-0000-0000-0000-000000000003','codex','phase-loop',
|
|
@@ -26,7 +26,7 @@ step retry_onboard:
|
|
|
26
26
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
27
27
|
'raw_ed25519_base64url',
|
|
28
28
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
29
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
29
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
30
30
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16290000-0000-0000-0000-000000000001'),
|
|
31
31
|
(select id from agent_board.boards where slug='atomic-archive-board'),
|
|
32
32
|
'16290000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -76,7 +76,7 @@ step retry_onboard:
|
|
|
76
76
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
77
77
|
'raw_ed25519_base64url',
|
|
78
78
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
79
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
79
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
80
80
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16290000-0000-0000-0000-000000000001'),
|
|
81
81
|
(select id from agent_board.boards where slug='atomic-archive-board'),
|
|
82
82
|
'16290000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -26,7 +26,7 @@ step onboard_fresh:
|
|
|
26
26
|
'TDyof3w0SMg4SDYuj-qenolHC_n05cZbrLSckKVGtMo',
|
|
27
27
|
'raw_ed25519_base64url',
|
|
28
28
|
'sha256:lSBZnHvmPvQONy8aoygp-fmTg26iZenrZC-L5LN9m7M',
|
|
29
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
29
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
30
30
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16280000-0000-0000-0000-000000000001'),
|
|
31
31
|
(select id from agent_board.boards where slug='atomic-human-board'),
|
|
32
32
|
'16280000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -103,7 +103,7 @@ step onboard_fresh:
|
|
|
103
103
|
'TDyof3w0SMg4SDYuj-qenolHC_n05cZbrLSckKVGtMo',
|
|
104
104
|
'raw_ed25519_base64url',
|
|
105
105
|
'sha256:lSBZnHvmPvQONy8aoygp-fmTg26iZenrZC-L5LN9m7M',
|
|
106
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
106
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
107
107
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16280000-0000-0000-0000-000000000001'),
|
|
108
108
|
(select id from agent_board.boards where slug='atomic-human-board'),
|
|
109
109
|
'16280000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -14,7 +14,7 @@ step legacy_enroll:
|
|
|
14
14
|
jsonb_build_object('iss','https://atomic-disposition.test','aud','message-board','sub','human-disposition','iat',100),
|
|
15
15
|
'atomic-disposition-agent',
|
|
16
16
|
'5TG73fnNhqeYkoSvPf9QwmWkvKWe0yA7B8YinAWQ8m4', 'raw_ed25519_base64url',
|
|
17
|
-
'sha256:qhjEQe9R_x26TBZyBsd-LrpR1fh7Mvnz86rbsCKtjz8', true, null, 'agent',
|
|
17
|
+
'sha256:qhjEQe9R_x26TBZyBsd-LrpR1fh7Mvnz86rbsCKtjz8', true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent',
|
|
18
18
|
ARRAY['board:send'], ARRAY[]::text[], null
|
|
19
19
|
);
|
|
20
20
|
|
|
@@ -31,7 +31,7 @@ step fleet_onboard:
|
|
|
31
31
|
jsonb_build_object('iss','https://atomic-disposition.test','aud','message-board','sub','human-disposition','iat',101),
|
|
32
32
|
'atomic-disposition-agent',
|
|
33
33
|
'5TG73fnNhqeYkoSvPf9QwmWkvKWe0yA7B8YinAWQ8m4', 'raw_ed25519_base64url',
|
|
34
|
-
'sha256:qhjEQe9R_x26TBZyBsd-LrpR1fh7Mvnz86rbsCKtjz8', true, null, 'agent',
|
|
34
|
+
'sha256:qhjEQe9R_x26TBZyBsd-LrpR1fh7Mvnz86rbsCKtjz8', true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent',
|
|
35
35
|
ARRAY['board:send'], ARRAY[]::text[],
|
|
36
36
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16260000-0000-0000-0000-000000000001'),
|
|
37
37
|
(select id from agent_board.boards where slug='atomic-disposition-board'),
|
|
@@ -16,7 +16,7 @@ step retry_onboard:
|
|
|
16
16
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
17
17
|
'raw_ed25519_base64url',
|
|
18
18
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
19
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
19
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
20
20
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
21
21
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
22
22
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -85,7 +85,7 @@ step retry_onboard:
|
|
|
85
85
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
86
86
|
'raw_ed25519_base64url',
|
|
87
87
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
88
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
88
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
89
89
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
90
90
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
91
91
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -154,7 +154,7 @@ step retry_onboard:
|
|
|
154
154
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
155
155
|
'raw_ed25519_base64url',
|
|
156
156
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
157
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
157
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
158
158
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
159
159
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
160
160
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -223,7 +223,7 @@ step retry_onboard:
|
|
|
223
223
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
224
224
|
'raw_ed25519_base64url',
|
|
225
225
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
226
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
226
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
227
227
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
228
228
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
229
229
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -292,7 +292,7 @@ step retry_onboard:
|
|
|
292
292
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
293
293
|
'raw_ed25519_base64url',
|
|
294
294
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
295
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
295
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
296
296
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
297
297
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
298
298
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -361,7 +361,7 @@ step retry_onboard:
|
|
|
361
361
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
362
362
|
'raw_ed25519_base64url',
|
|
363
363
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
364
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
364
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
365
365
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
366
366
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
367
367
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -430,7 +430,7 @@ step retry_onboard:
|
|
|
430
430
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
431
431
|
'raw_ed25519_base64url',
|
|
432
432
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
433
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
433
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
434
434
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
435
435
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
436
436
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -499,7 +499,7 @@ step retry_onboard:
|
|
|
499
499
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
500
500
|
'raw_ed25519_base64url',
|
|
501
501
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
502
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
502
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
503
503
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
504
504
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
505
505
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -568,7 +568,7 @@ step retry_onboard:
|
|
|
568
568
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
569
569
|
'raw_ed25519_base64url',
|
|
570
570
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
571
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
571
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
572
572
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
573
573
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
574
574
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -638,7 +638,7 @@ step retry_onboard:
|
|
|
638
638
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
639
639
|
'raw_ed25519_base64url',
|
|
640
640
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
641
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
641
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
642
642
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
643
643
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
644
644
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -707,7 +707,7 @@ step retry_onboard:
|
|
|
707
707
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
708
708
|
'raw_ed25519_base64url',
|
|
709
709
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
710
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
710
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
711
711
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
712
712
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
713
713
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -789,7 +789,7 @@ step retry_onboard:
|
|
|
789
789
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
790
790
|
'raw_ed25519_base64url',
|
|
791
791
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
792
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
792
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
793
793
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
794
794
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
795
795
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -854,7 +854,7 @@ step retry_onboard:
|
|
|
854
854
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
855
855
|
'raw_ed25519_base64url',
|
|
856
856
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
857
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
857
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
858
858
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
859
859
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
860
860
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -919,7 +919,7 @@ step retry_onboard:
|
|
|
919
919
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
920
920
|
'raw_ed25519_base64url',
|
|
921
921
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
922
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
922
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
923
923
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
924
924
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
925
925
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -984,7 +984,7 @@ step retry_onboard:
|
|
|
984
984
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
985
985
|
'raw_ed25519_base64url',
|
|
986
986
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
987
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
987
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
988
988
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
989
989
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
990
990
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1049,7 +1049,7 @@ step retry_onboard:
|
|
|
1049
1049
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1050
1050
|
'raw_ed25519_base64url',
|
|
1051
1051
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1052
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1052
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1053
1053
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1054
1054
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1055
1055
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1114,7 +1114,7 @@ step retry_onboard:
|
|
|
1114
1114
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1115
1115
|
'raw_ed25519_base64url',
|
|
1116
1116
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1117
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1117
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1118
1118
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1119
1119
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1120
1120
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1179,7 +1179,7 @@ step retry_onboard:
|
|
|
1179
1179
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1180
1180
|
'raw_ed25519_base64url',
|
|
1181
1181
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1182
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1182
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1183
1183
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1184
1184
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1185
1185
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1244,7 +1244,7 @@ step retry_onboard:
|
|
|
1244
1244
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1245
1245
|
'raw_ed25519_base64url',
|
|
1246
1246
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1247
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1247
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1248
1248
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1249
1249
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1250
1250
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1310,7 +1310,7 @@ step retry_onboard:
|
|
|
1310
1310
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1311
1311
|
'raw_ed25519_base64url',
|
|
1312
1312
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1313
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1313
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1314
1314
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1315
1315
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1316
1316
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1375,7 +1375,7 @@ step retry_onboard:
|
|
|
1375
1375
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1376
1376
|
'raw_ed25519_base64url',
|
|
1377
1377
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1378
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1378
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1379
1379
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1380
1380
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1381
1381
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -1441,7 +1441,7 @@ step retry_onboard:
|
|
|
1441
1441
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
1442
1442
|
'raw_ed25519_base64url',
|
|
1443
1443
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
1444
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1444
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
1445
1445
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='16240000-0000-0000-0000-000000000001'),
|
|
1446
1446
|
(select id from agent_board.boards where slug='atomic-lifecycle-board'),
|
|
1447
1447
|
'16240000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -16,7 +16,7 @@ step first_onboard:
|
|
|
16
16
|
'eRHZmllEy_TZHAG2zB-Qe_a5BFLkaavMTazWWfaE3f0',
|
|
17
17
|
'raw_ed25519_base64url',
|
|
18
18
|
'sha256:z8d5LQPfBMYnfZfvu8wVz684_jkp578-SPDU2OMObS8',
|
|
19
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
19
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
20
20
|
(select code from agent_board.board_invite_tokens where created_by_agent_id = '16220000-0000-0000-0000-000000000001'),
|
|
21
21
|
(select id from agent_board.boards where slug = 'atomic-race-board'),
|
|
22
22
|
'16220000-0000-0000-0000-000000000003',
|
|
@@ -39,7 +39,7 @@ step second_onboard:
|
|
|
39
39
|
'eRHZmllEy_TZHAG2zB-Qe_a5BFLkaavMTazWWfaE3f0',
|
|
40
40
|
'raw_ed25519_base64url',
|
|
41
41
|
'sha256:z8d5LQPfBMYnfZfvu8wVz684_jkp578-SPDU2OMObS8',
|
|
42
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
42
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
43
43
|
(select code from agent_board.board_invite_tokens where created_by_agent_id = '16220000-0000-0000-0000-000000000001'),
|
|
44
44
|
(select id from agent_board.boards where slug = 'atomic-race-board'),
|
|
45
45
|
'16220000-0000-0000-0000-000000000003',
|
|
@@ -20,7 +20,7 @@ step retry_onboard:
|
|
|
20
20
|
'yd_DIFGWGusVg3SbktDJQ1bE5UWvtR33xln4b05JIhk',
|
|
21
21
|
'raw_ed25519_base64url',
|
|
22
22
|
'sha256:NeVC2vx1MbTY56jUwJcLLr6YwB4IKCERsXWbUwhf5pA',
|
|
23
|
-
true, null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
23
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY['board:send'], ARRAY[]::text[],
|
|
24
24
|
(select code from agent_board.board_invite_tokens where created_by_agent_id='ffffffff-ffff-ffff-ffff-ffffffffff01'),
|
|
25
25
|
(select id from agent_board.boards where slug='atomic-subtree-board'),
|
|
26
26
|
'16270000-0000-0000-0000-000000000003', 'codex', 'phase-loop',
|
|
@@ -21,7 +21,7 @@ step enroll_enroll:
|
|
|
21
21
|
'lo194-iso-agent',
|
|
22
22
|
public.test_pubkey('lo194-iso-k1'), 'raw_ed25519_base64url',
|
|
23
23
|
public.test_key_fingerprint('lo194-iso-k1'),
|
|
24
|
-
true, null, 'agent', ARRAY[]::text[], ARRAY[]::text[],
|
|
24
|
+
true, md5(random()::text) || md5(random()::text), now() + make_interval(hours => 1), null, 'agent', ARRAY[]::text[], ARRAY[]::text[],
|
|
25
25
|
'lo194-iso-code'
|
|
26
26
|
);
|
|
27
27
|
<waiting ...>
|