@consiliency/agent-board-schema 1.68.0 → 1.74.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 +28 -4
- package/migrations/20261026000100_agent_board_thread_association.sql +1287 -0
- package/migrations/20261101000100_agent_board_session_measured_mint.sql +145 -0
- package/migrations/20261104065658_agent_board_reply_delivery.sql +659 -0
- package/migrations/20261104170000_agent_board_tasking_replay_scope.sql +320 -0
- package/migrations/20261104180000_agent_board_delivery_writer_execute.sql +51 -0
- package/migrations/20261104190000_agent_board_message_replay_scope.sql +373 -0
- package/package.json +1 -1
- package/schema-manifest.json +57 -3
- package/src/tooling.test.mjs +8 -2
- package/tests/agent_board_661_reply_delivery.test.sql +185 -0
- package/tests/agent_board_667_boundary.test.sql +162 -0
- package/tests/agent_board_667_conversion_branches.test.sql +91 -0
- package/tests/agent_board_667_conversion_profile.test.sql +112 -0
- package/tests/agent_board_667_history_class.test.sql +785 -0
- package/tests/agent_board_667_native_cast_effect.test.sql +88 -0
- package/tests/agent_board_667_realtime_apply_behavior.test.sql +117 -0
- package/tests/agent_board_667_realtime_apply_controls.test.sql +143 -0
- package/tests/agent_board_667_realtime_apply_profile.test.sql +61 -0
- package/tests/agent_board_667_retention.test.sql +201 -0
- package/tests/agent_board_667_routing.test.sql +294 -0
- package/tests/agent_board_667_sender_effects.test.sql +100 -0
- package/tests/agent_board_667_sender_profile_controls.test.sql +29 -0
- package/tests/agent_board_667_storage_delimiter_behavior.test.sql +84 -0
- package/tests/agent_board_667_storage_delimiter_controls.test.sql +23 -0
- package/tests/agent_board_667_storage_delimiter_profile.test.sql +61 -0
- package/tests/agent_board_667_storage_search_behavior.test.sql +93 -0
- package/tests/agent_board_667_storage_search_controls.test.sql +22 -0
- package/tests/agent_board_667_storage_search_profile.test.sql +60 -0
- package/tests/agent_board_667_storage_timestamp_behavior.test.sql +58 -0
- package/tests/agent_board_667_storage_timestamp_controls.test.sql +22 -0
- package/tests/agent_board_667_storage_timestamp_profile.test.sql +54 -0
- package/tests/agent_board_667_writers.test.sql +281 -0
- package/tests/agent_board_717_message_replay_scope.test.sql +828 -0
- package/tests/agent_board_717_tasking_replay_scope.test.sql +661 -0
- package/tests/agent_board_addressing.test.sql +8 -5
- package/tests/agent_board_claim_subject_gate.test.sql +7 -3
- package/tests/agent_board_claimpolicy_race.test.sql +39 -11
- package/tests/agent_board_delegate_role_class.test.sql +33 -15
- package/tests/agent_board_delivery_writer_execute.test.sql +371 -0
- package/tests/agent_board_fk_lock_edges.test.sql +3 -0
- package/tests/agent_board_hosted_delegates.test.sql +5 -2
- package/tests/agent_board_inbox_rpcs.test.sql +5 -3
- package/tests/agent_board_obsgate.test.sql +8 -4
- package/tests/agent_board_obsgate4.test.sql +2 -2
- package/tests/agent_board_outbox_wake_ordering.test.sql +25 -2
- package/tests/agent_board_own_post_not_delivered.test.sql +11 -9
- package/tests/agent_board_session_identity_behavior_classes.test.sql +2 -2
- package/tests/agent_board_session_identity_limits.test.sql +1 -1
- package/tests/agent_board_session_identity_measured_mint.test.sql +342 -0
- package/tests/agent_board_session_identity_predicate_isolation.test.sql +146 -0
- package/tests/agent_board_sidserver_authority.test.sql +69 -0
- package/tests/agent_board_sidserver_catalog.test.sql +47 -0
- package/tests/agent_board_signed_write_gateway.test.sql +4 -2
- package/tests/agent_board_task_thread_lock_order.test.sql +67 -42
- package/tests/agent_board_v2_invariants.test.sql +5 -2
- package/tests/agent_board_write_enforcement_class.test.sql +3 -3
- package/tests/catalog/function_execute_privileges.json +41 -5
- package/tests/catalog/p_metadata_parameters.json +16 -0
- package/tests/fixtures/agent_board_667_apply_rls_guard.sql +195 -0
- package/tests/fixtures/agent_board_667_apply_rls_provenance.md +125 -0
- package/tests/fixtures/agent_board_667_apply_rls_reference.sql +1903 -0
- package/tests/fixtures/agent_board_667_conversion_guard.sql +162 -0
- package/tests/fixtures/agent_board_667_conversion_reference.md +23 -0
- package/tests/fixtures/agent_board_667_conversion_reference.sql +5325 -0
- package/tests/fixtures/agent_board_667_delimiter_guard.sql +92 -0
- package/tests/fixtures/agent_board_667_delimiter_provenance.md +116 -0
- package/tests/fixtures/agent_board_667_delimiter_reference.sql +10150 -0
- package/tests/fixtures/agent_board_667_search_guard.sql +92 -0
- package/tests/fixtures/agent_board_667_search_provenance.md +141 -0
- package/tests/fixtures/agent_board_667_search_reference.sql +4779 -0
- package/tests/fixtures/agent_board_667_sender_guard.sql +102 -0
- package/tests/fixtures/agent_board_667_sender_reference.md +20 -0
- package/tests/fixtures/agent_board_667_sender_reference.sql +875 -0
- package/tests/fixtures/agent_board_667_timestamp_graph.sql +84 -0
- package/tests/fixtures/agent_board_667_timestamp_guard.sql +94 -0
- package/tests/fixtures/agent_board_667_timestamp_provenance.md +99 -0
- package/tests/fixtures/agent_board_667_timestamp_reference.sql +2938 -0
- package/tests/isolation/expected/association_artifact_anchor_order.out +108 -0
- package/tests/isolation/expected/association_board_vs_board.out +71 -0
- package/tests/isolation/expected/association_post_wait_authority.out +77 -0
- package/tests/isolation/expected/association_strong_history_writers.out +203 -0
- package/tests/isolation/expected/association_strong_isolation.out +185 -0
- package/tests/isolation/expected/association_vs_artifact_claim_escalation.out +199 -0
- package/tests/isolation/expected/association_vs_heartbeat.out +78 -0
- package/tests/isolation/expected/association_vs_multi_anchor_artifact.out +67 -0
- package/tests/isolation/expected/association_vs_private_message.out +67 -0
- package/tests/isolation/expected/association_vs_task_and_conflict.out +133 -0
- package/tests/isolation/expected/association_vs_taskful_cross_thread.out +133 -0
- package/tests/isolation/expected/message_replay_scope.out +209 -0
- package/tests/isolation/expected/tasking_replay_scope.out +125 -0
- package/tests/isolation/specs/association_artifact_anchor_order.spec +46 -0
- package/tests/isolation/specs/association_board_vs_board.spec +37 -0
- package/tests/isolation/specs/association_post_wait_authority.spec +48 -0
- package/tests/isolation/specs/association_strong_history_writers.spec +61 -0
- package/tests/isolation/specs/association_strong_isolation.spec +50 -0
- package/tests/isolation/specs/association_vs_artifact_claim_escalation.spec +41 -0
- package/tests/isolation/specs/association_vs_heartbeat.spec +47 -0
- package/tests/isolation/specs/association_vs_multi_anchor_artifact.spec +38 -0
- package/tests/isolation/specs/association_vs_private_message.spec +33 -0
- package/tests/isolation/specs/association_vs_task_and_conflict.spec +38 -0
- package/tests/isolation/specs/association_vs_taskful_cross_thread.spec +42 -0
- package/tests/isolation/specs/message_replay_scope.spec +77 -0
- package/tests/isolation/specs/tasking_replay_scope.spec +72 -0
- package/tests/mutations/717-f1/M0_prefix_main_acl_and_comments.sql +11 -0
- package/tests/mutations/717-f1/M10_wrapper_stops_delegating.sql +7 -0
- package/tests/mutations/717-f1/M11_transitive_recipient_content.sql +8 -0
- package/tests/mutations/717-f1/M12_transitive_recipient_visibility.sql +8 -0
- package/tests/mutations/717-f1/M13_transitive_worker_content.sql +15 -0
- package/tests/mutations/717-f1/M1a_regrant_upsert_delivery_recipient.sql +1 -0
- package/tests/mutations/717-f1/M1b_regrant_upsert_inbox_item.sql +1 -0
- package/tests/mutations/717-f1/M1c_regrant_queue_inbox_callbacks.sql +1 -0
- package/tests/mutations/717-f1/M1d_regrant_queue_board_post_callbacks.sql +1 -0
- package/tests/mutations/717-f1/M1e_regrant_next_thread_message_sequence.sql +1 -0
- package/tests/mutations/717-f1/M2_blanket_schema_grant.sql +1 -0
- package/tests/mutations/717-f1/M3_new_overload_of_sink.sql +10 -0
- package/tests/mutations/717-f1/M4_new_route_calling_sink.sql +7 -0
- package/tests/mutations/717-f1/M5_actor_trusts_supplied_id.sql +5 -0
- package/tests/mutations/717-f1/M6_signed_route_granted_to_authenticated.sql +1 -0
- package/tests/mutations/717-f1/M7_worker_granted_to_authenticated.sql +1 -0
- package/tests/mutations/717-f1/M8_recipient_state_rewrites_visibility.sql +5 -0
- package/tests/mutations/717-f1/M9_public_route_revoked_from_service_role.sql +1 -0
- package/tests/mutations/717-f1/outbox_wake_ordering/W1_regrant_queue_inbox_callbacks.sql +1 -0
- package/tests/mutations/717-f1/outbox_wake_ordering/W2_revoke_worker_from_service_role.sql +1 -0
- package/tests/mutations/717-f1/outbox_wake_ordering/W3_invoker_caller_of_sink.sql +1 -0
- package/tests/mutations/717-f1/outbox_wake_ordering/W4_public_regrant_board_post_sink.sql +1 -0
- package/tests/mutations/717-f1/run.sh +17 -0
- package/tests/mutations/717-f2b/C1_new_delivery_route.sql +4 -0
- package/tests/mutations/717-f2b/C2_new_replay_lookup.sql +3 -0
- package/tests/mutations/717-f2b/C3_internal_regranted.sql +2 -0
- package/tests/mutations/717-f2b/C4_wrapper_writes_delivery.sql +9 -0
- package/tests/mutations/717-f2b/C5_class_member_dynamic_sql.sql +9 -0
- package/tests/mutations/717-f2b/C6_drop_board_scope_constraint.sql +2 -0
- package/tests/mutations/717-f2b/C7_state_private_helper_content.sql +14 -0
- package/tests/mutations/717-f2b/L1_dm_lock_split_by_recipient.sql +8 -0
- package/tests/mutations/717-f2b/L2_dm_lock_removed.sql +12 -0
- package/tests/mutations/717-f2b/L3_mc_lock_split_by_recipients.sql +8 -0
- package/tests/mutations/717-f2b/L4_mc_lock_removed.sql +12 -0
- package/tests/mutations/717-f2b/M0_prefix_definitions.sql +17 -0
- package/tests/mutations/717-f2b/M10_mc_lookup_any_author.sql +15 -0
- package/tests/mutations/717-f2b/M11_dm_swallow_refusal.sql +8 -0
- package/tests/mutations/717-f2b/M12_mc_swallow_refusal.sql +8 -0
- package/tests/mutations/717-f2b/M13_signed_dm_swallows_refusal.sql +32 -0
- package/tests/mutations/717-f2b/M14_signed_mc_swallows_refusal.sql +20 -0
- package/tests/mutations/717-f2b/M15_mc_any_source.sql +7 -0
- package/tests/mutations/717-f2b/M1_dm_drop_recipient_proof.sql +16 -0
- package/tests/mutations/717-f2b/M2_mc_drop_recipient_proof.sql +16 -0
- package/tests/mutations/717-f2b/M3_dm_metadata_as_proof.sql +12 -0
- package/tests/mutations/717-f2b/M4_mc_metadata_as_proof.sql +16 -0
- package/tests/mutations/717-f2b/M5_dm_any_mode.sql +11 -0
- package/tests/mutations/717-f2b/M6_dm_board_delivery_counts.sql +11 -0
- package/tests/mutations/717-f2b/M7_mc_any_mode.sql +11 -0
- package/tests/mutations/717-f2b/M8_dm_thread_stamp_as_proof.sql +12 -0
- package/tests/mutations/717-f2b/M9_dm_lookup_any_author.sql +15 -0
- package/tests/mutations/717-f2b/run.sh +82 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
Parsed test spec with 5 sessions
|
|
2
|
+
|
|
3
|
+
starting permutation: a_begin a_artifact b_begin b_artifact a_commit b_commit check
|
|
4
|
+
step a_begin: begin; set local statement_timeout='2s'; select set_config('request.jwt.claim.role','service_role',true);
|
|
5
|
+
set_config
|
|
6
|
+
------------
|
|
7
|
+
service_role
|
|
8
|
+
(1 row)
|
|
9
|
+
|
|
10
|
+
step a_artifact: select count(*) from agent_board.add_artifact('66780000-0000-4000-8000-000000000001','https://example.test/first',p_thread_id=>'66780000-0000-4000-8000-000000000010',p_task_id=>'66780000-0000-4000-8000-000000000030');
|
|
11
|
+
count
|
|
12
|
+
-----
|
|
13
|
+
1
|
|
14
|
+
(1 row)
|
|
15
|
+
|
|
16
|
+
step b_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
17
|
+
set_config
|
|
18
|
+
------------
|
|
19
|
+
service_role
|
|
20
|
+
(1 row)
|
|
21
|
+
|
|
22
|
+
step b_artifact: select count(*) from agent_board.add_artifact('66780000-0000-4000-8000-000000000001','https://example.test/second',p_thread_id=>'66780000-0000-4000-8000-000000000011',p_task_id=>'66780000-0000-4000-8000-000000000031'); <waiting ...>
|
|
23
|
+
step a_commit: commit;
|
|
24
|
+
step b_artifact: <... completed>
|
|
25
|
+
count
|
|
26
|
+
-----
|
|
27
|
+
1
|
|
28
|
+
(1 row)
|
|
29
|
+
|
|
30
|
+
step b_commit: commit;
|
|
31
|
+
step check: select count(*) as artifacts, count(distinct thread_id) as explicit_threads, count(distinct task_id) as task_anchors from agent_board.artifacts where thread_id in ('66780000-0000-4000-8000-000000000010','66780000-0000-4000-8000-000000000011');
|
|
32
|
+
artifacts|explicit_threads|task_anchors
|
|
33
|
+
---------+----------------+------------
|
|
34
|
+
2| 2| 2
|
|
35
|
+
(1 row)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
starting permutation: b_begin b_artifact a_begin a_artifact b_commit a_commit check
|
|
39
|
+
step b_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
40
|
+
set_config
|
|
41
|
+
------------
|
|
42
|
+
service_role
|
|
43
|
+
(1 row)
|
|
44
|
+
|
|
45
|
+
step b_artifact: select count(*) from agent_board.add_artifact('66780000-0000-4000-8000-000000000001','https://example.test/second',p_thread_id=>'66780000-0000-4000-8000-000000000011',p_task_id=>'66780000-0000-4000-8000-000000000031');
|
|
46
|
+
count
|
|
47
|
+
-----
|
|
48
|
+
1
|
|
49
|
+
(1 row)
|
|
50
|
+
|
|
51
|
+
step a_begin: begin; set local statement_timeout='2s'; select set_config('request.jwt.claim.role','service_role',true);
|
|
52
|
+
set_config
|
|
53
|
+
------------
|
|
54
|
+
service_role
|
|
55
|
+
(1 row)
|
|
56
|
+
|
|
57
|
+
step a_artifact: select count(*) from agent_board.add_artifact('66780000-0000-4000-8000-000000000001','https://example.test/first',p_thread_id=>'66780000-0000-4000-8000-000000000010',p_task_id=>'66780000-0000-4000-8000-000000000030'); <waiting ...>
|
|
58
|
+
step b_commit: commit;
|
|
59
|
+
step a_artifact: <... completed>
|
|
60
|
+
count
|
|
61
|
+
-----
|
|
62
|
+
1
|
|
63
|
+
(1 row)
|
|
64
|
+
|
|
65
|
+
step a_commit: commit;
|
|
66
|
+
step check: select count(*) as artifacts, count(distinct thread_id) as explicit_threads, count(distinct task_id) as task_anchors from agent_board.artifacts where thread_id in ('66780000-0000-4000-8000-000000000010','66780000-0000-4000-8000-000000000011');
|
|
67
|
+
artifacts|explicit_threads|task_anchors
|
|
68
|
+
---------+----------------+------------
|
|
69
|
+
2| 2| 2
|
|
70
|
+
(1 row)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
starting permutation: hold_high a_begin a_artifact probe_low release_high a_commit probe_commit check
|
|
74
|
+
step hold_high: begin; select id from agent_board.threads where id='66780000-0000-4000-8000-000000000011' for no key update;
|
|
75
|
+
id
|
|
76
|
+
------------------------------------
|
|
77
|
+
66780000-0000-4000-8000-000000000011
|
|
78
|
+
(1 row)
|
|
79
|
+
|
|
80
|
+
step a_begin: begin; set local statement_timeout='2s'; select set_config('request.jwt.claim.role','service_role',true);
|
|
81
|
+
set_config
|
|
82
|
+
------------
|
|
83
|
+
service_role
|
|
84
|
+
(1 row)
|
|
85
|
+
|
|
86
|
+
step a_artifact: select count(*) from agent_board.add_artifact('66780000-0000-4000-8000-000000000001','https://example.test/first',p_thread_id=>'66780000-0000-4000-8000-000000000010',p_task_id=>'66780000-0000-4000-8000-000000000030'); <waiting ...>
|
|
87
|
+
step probe_low: begin; select id from agent_board.threads where id='66780000-0000-4000-8000-000000000010' for no key update; <waiting ...>
|
|
88
|
+
step release_high: commit;
|
|
89
|
+
step a_artifact: <... completed>
|
|
90
|
+
count
|
|
91
|
+
-----
|
|
92
|
+
1
|
|
93
|
+
(1 row)
|
|
94
|
+
|
|
95
|
+
step a_commit: commit;
|
|
96
|
+
step probe_low: <... completed>
|
|
97
|
+
id
|
|
98
|
+
------------------------------------
|
|
99
|
+
66780000-0000-4000-8000-000000000010
|
|
100
|
+
(1 row)
|
|
101
|
+
|
|
102
|
+
step probe_commit: commit;
|
|
103
|
+
step check: select count(*) as artifacts, count(distinct thread_id) as explicit_threads, count(distinct task_id) as task_anchors from agent_board.artifacts where thread_id in ('66780000-0000-4000-8000-000000000010','66780000-0000-4000-8000-000000000011');
|
|
104
|
+
artifacts|explicit_threads|task_anchors
|
|
105
|
+
---------+----------------+------------
|
|
106
|
+
1| 1| 1
|
|
107
|
+
(1 row)
|
|
108
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Parsed test spec with 3 sessions
|
|
2
|
+
|
|
3
|
+
starting permutation: a_begin a_post b_begin b_post a_commit b_commit check
|
|
4
|
+
step a_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
5
|
+
set_config
|
|
6
|
+
------------
|
|
7
|
+
service_role
|
|
8
|
+
(1 row)
|
|
9
|
+
|
|
10
|
+
step a_post: select agent_board_test.xb_667_board_race('66790000-0000-4000-8000-000000000020','first') as outcome;
|
|
11
|
+
outcome
|
|
12
|
+
-------
|
|
13
|
+
allowed
|
|
14
|
+
(1 row)
|
|
15
|
+
|
|
16
|
+
step b_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
17
|
+
set_config
|
|
18
|
+
------------
|
|
19
|
+
service_role
|
|
20
|
+
(1 row)
|
|
21
|
+
|
|
22
|
+
step b_post: select agent_board_test.xb_667_board_race('66790000-0000-4000-8000-000000000021','second') as outcome; <waiting ...>
|
|
23
|
+
step a_commit: commit;
|
|
24
|
+
step b_post: <... completed>
|
|
25
|
+
outcome
|
|
26
|
+
-----------------------------------------
|
|
27
|
+
42501:thread belongs to a different board
|
|
28
|
+
(1 row)
|
|
29
|
+
|
|
30
|
+
step b_commit: commit;
|
|
31
|
+
step check: select t.board_id, (select count(*) from agent_board.messages m where m.thread_id=t.id) as messages, (select count(*) from agent_board.messages m where m.thread_id=t.id and m.body='first') as first_messages, (select count(*) from agent_board.messages m where m.thread_id=t.id and m.body='second') as second_messages, (select count(*) from agent_board.delivery_recipients d join agent_board.messages m on m.id=d.source_message_id where m.thread_id=t.id) as deliveries from agent_board.threads t where t.id='66790000-0000-4000-8000-000000000010';
|
|
32
|
+
board_id|messages|first_messages|second_messages|deliveries
|
|
33
|
+
------------------------------------+--------+--------------+---------------+----------
|
|
34
|
+
66790000-0000-4000-8000-000000000020| 1| 1| 0| 0
|
|
35
|
+
(1 row)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
starting permutation: b_begin b_post a_begin a_post b_commit a_commit check
|
|
39
|
+
step b_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
40
|
+
set_config
|
|
41
|
+
------------
|
|
42
|
+
service_role
|
|
43
|
+
(1 row)
|
|
44
|
+
|
|
45
|
+
step b_post: select agent_board_test.xb_667_board_race('66790000-0000-4000-8000-000000000021','second') as outcome;
|
|
46
|
+
outcome
|
|
47
|
+
-------
|
|
48
|
+
allowed
|
|
49
|
+
(1 row)
|
|
50
|
+
|
|
51
|
+
step a_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
52
|
+
set_config
|
|
53
|
+
------------
|
|
54
|
+
service_role
|
|
55
|
+
(1 row)
|
|
56
|
+
|
|
57
|
+
step a_post: select agent_board_test.xb_667_board_race('66790000-0000-4000-8000-000000000020','first') as outcome; <waiting ...>
|
|
58
|
+
step b_commit: commit;
|
|
59
|
+
step a_post: <... completed>
|
|
60
|
+
outcome
|
|
61
|
+
-----------------------------------------
|
|
62
|
+
42501:thread belongs to a different board
|
|
63
|
+
(1 row)
|
|
64
|
+
|
|
65
|
+
step a_commit: commit;
|
|
66
|
+
step check: select t.board_id, (select count(*) from agent_board.messages m where m.thread_id=t.id) as messages, (select count(*) from agent_board.messages m where m.thread_id=t.id and m.body='first') as first_messages, (select count(*) from agent_board.messages m where m.thread_id=t.id and m.body='second') as second_messages, (select count(*) from agent_board.delivery_recipients d join agent_board.messages m on m.id=d.source_message_id where m.thread_id=t.id) as deliveries from agent_board.threads t where t.id='66790000-0000-4000-8000-000000000010';
|
|
67
|
+
board_id|messages|first_messages|second_messages|deliveries
|
|
68
|
+
------------------------------------+--------+--------------+---------------+----------
|
|
69
|
+
66790000-0000-4000-8000-000000000021| 1| 0| 1| 0
|
|
70
|
+
(1 row)
|
|
71
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
Parsed test spec with 4 sessions
|
|
2
|
+
|
|
3
|
+
starting permutation: a_begin a_post_denied b_begin b_post a_commit b_end check_denied
|
|
4
|
+
step a_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
5
|
+
set_config
|
|
6
|
+
------------
|
|
7
|
+
service_role
|
|
8
|
+
(1 row)
|
|
9
|
+
|
|
10
|
+
step a_post_denied: select count(*) from agent_board.post_board_message('66750000-0000-4000-8000-000000000010','66750000-0000-4000-8000-000000000001','66750000-0000-4000-8000-000000000020','s','b');
|
|
11
|
+
count
|
|
12
|
+
-----
|
|
13
|
+
1
|
|
14
|
+
(1 row)
|
|
15
|
+
|
|
16
|
+
step b_begin: begin; set local role authenticated; select set_config('request.jwt.claim.role','authenticated',true); select set_config('request.jwt.claim.sub','66750000-0000-4000-8000-0000000000b1',true);
|
|
17
|
+
set_config
|
|
18
|
+
-------------
|
|
19
|
+
authenticated
|
|
20
|
+
(1 row)
|
|
21
|
+
|
|
22
|
+
set_config
|
|
23
|
+
------------------------------------
|
|
24
|
+
66750000-0000-4000-8000-0000000000b1
|
|
25
|
+
(1 row)
|
|
26
|
+
|
|
27
|
+
step b_post: select count(*) from agent_board.post_message('66750000-0000-4000-8000-000000000010','66750000-0000-4000-8000-000000000002','private after wait'); <waiting ...>
|
|
28
|
+
step a_commit: commit;
|
|
29
|
+
step b_post: <... completed>
|
|
30
|
+
ERROR: thread posting requires a non-observer board role
|
|
31
|
+
step b_end: end;
|
|
32
|
+
step check_denied: select count(*) as messages, max(message_sequence) as max_sequence from agent_board.messages where thread_id='66750000-0000-4000-8000-000000000010';
|
|
33
|
+
messages|max_sequence
|
|
34
|
+
--------+------------
|
|
35
|
+
1| 1
|
|
36
|
+
(1 row)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
starting permutation: a_begin a_post_member c_begin c_post a_commit c_end check_member
|
|
40
|
+
step a_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
41
|
+
set_config
|
|
42
|
+
------------
|
|
43
|
+
service_role
|
|
44
|
+
(1 row)
|
|
45
|
+
|
|
46
|
+
step a_post_member: select count(*) from agent_board.post_board_message('66750000-0000-4000-8000-000000000011','66750000-0000-4000-8000-000000000001','66750000-0000-4000-8000-000000000020','s','b');
|
|
47
|
+
count
|
|
48
|
+
-----
|
|
49
|
+
1
|
|
50
|
+
(1 row)
|
|
51
|
+
|
|
52
|
+
step c_begin: begin; set local role authenticated; select set_config('request.jwt.claim.role','authenticated',true); select set_config('request.jwt.claim.sub','66750000-0000-4000-8000-0000000000c1',true);
|
|
53
|
+
set_config
|
|
54
|
+
-------------
|
|
55
|
+
authenticated
|
|
56
|
+
(1 row)
|
|
57
|
+
|
|
58
|
+
set_config
|
|
59
|
+
------------------------------------
|
|
60
|
+
66750000-0000-4000-8000-0000000000c1
|
|
61
|
+
(1 row)
|
|
62
|
+
|
|
63
|
+
step c_post: select count(*) from agent_board.post_message('66750000-0000-4000-8000-000000000011','66750000-0000-4000-8000-000000000003','member after wait'); <waiting ...>
|
|
64
|
+
step a_commit: commit;
|
|
65
|
+
step c_post: <... completed>
|
|
66
|
+
count
|
|
67
|
+
-----
|
|
68
|
+
1
|
|
69
|
+
(1 row)
|
|
70
|
+
|
|
71
|
+
step c_end: end;
|
|
72
|
+
step check_member: select count(*) as messages, max(message_sequence) as max_sequence from agent_board.messages where thread_id='66750000-0000-4000-8000-000000000011';
|
|
73
|
+
messages|max_sequence
|
|
74
|
+
--------+------------
|
|
75
|
+
2| 2
|
|
76
|
+
(1 row)
|
|
77
|
+
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
unused step name: a_ru
|
|
2
|
+
unused step name: a_task
|
|
3
|
+
Parsed test spec with 4 sessions
|
|
4
|
+
|
|
5
|
+
starting permutation: a_rr w_begin w_artifact a_post w_commit a_end check
|
|
6
|
+
step a_rr: begin isolation level repeatable read; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66770000-0000-4000-8000-000000000010';
|
|
7
|
+
set_config
|
|
8
|
+
------------
|
|
9
|
+
service_role
|
|
10
|
+
(1 row)
|
|
11
|
+
|
|
12
|
+
count
|
|
13
|
+
-----
|
|
14
|
+
1
|
|
15
|
+
(1 row)
|
|
16
|
+
|
|
17
|
+
step w_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
18
|
+
set_config
|
|
19
|
+
------------
|
|
20
|
+
service_role
|
|
21
|
+
(1 row)
|
|
22
|
+
|
|
23
|
+
step w_artifact: select count(*) from agent_board.add_artifact('66770000-0000-4000-8000-000000000001','https://example.test/strong',p_thread_id=>'66770000-0000-4000-8000-000000000010');
|
|
24
|
+
count
|
|
25
|
+
-----
|
|
26
|
+
1
|
|
27
|
+
(1 row)
|
|
28
|
+
|
|
29
|
+
step a_post: select agent_board_test.xb_667_try_history_association() as outcome; <waiting ...>
|
|
30
|
+
step w_commit: commit;
|
|
31
|
+
step a_post: <... completed>
|
|
32
|
+
outcome
|
|
33
|
+
----------------------------------------------------------------
|
|
34
|
+
0A000:first thread association requires read committed isolation
|
|
35
|
+
(1 row)
|
|
36
|
+
|
|
37
|
+
step a_end: end;
|
|
38
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.artifacts where thread_id=t.id) as artifacts, (select count(*) from agent_board.conflicts where thread_id=t.id) as conflicts, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66770000-0000-4000-8000-000000000010';
|
|
39
|
+
stamped|artifacts|conflicts|messages
|
|
40
|
+
-------+---------+---------+--------
|
|
41
|
+
f | 1| 0| 0
|
|
42
|
+
(1 row)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
starting permutation: a_ser w_begin w_artifact a_post w_commit a_end check
|
|
46
|
+
step a_ser: begin isolation level serializable; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66770000-0000-4000-8000-000000000010';
|
|
47
|
+
set_config
|
|
48
|
+
------------
|
|
49
|
+
service_role
|
|
50
|
+
(1 row)
|
|
51
|
+
|
|
52
|
+
count
|
|
53
|
+
-----
|
|
54
|
+
1
|
|
55
|
+
(1 row)
|
|
56
|
+
|
|
57
|
+
step w_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
58
|
+
set_config
|
|
59
|
+
------------
|
|
60
|
+
service_role
|
|
61
|
+
(1 row)
|
|
62
|
+
|
|
63
|
+
step w_artifact: select count(*) from agent_board.add_artifact('66770000-0000-4000-8000-000000000001','https://example.test/strong',p_thread_id=>'66770000-0000-4000-8000-000000000010');
|
|
64
|
+
count
|
|
65
|
+
-----
|
|
66
|
+
1
|
|
67
|
+
(1 row)
|
|
68
|
+
|
|
69
|
+
step a_post: select agent_board_test.xb_667_try_history_association() as outcome; <waiting ...>
|
|
70
|
+
step w_commit: commit;
|
|
71
|
+
step a_post: <... completed>
|
|
72
|
+
outcome
|
|
73
|
+
----------------------------------------------------------------
|
|
74
|
+
0A000:first thread association requires read committed isolation
|
|
75
|
+
(1 row)
|
|
76
|
+
|
|
77
|
+
step a_end: end;
|
|
78
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.artifacts where thread_id=t.id) as artifacts, (select count(*) from agent_board.conflicts where thread_id=t.id) as conflicts, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66770000-0000-4000-8000-000000000010';
|
|
79
|
+
stamped|artifacts|conflicts|messages
|
|
80
|
+
-------+---------+---------+--------
|
|
81
|
+
f | 1| 0| 0
|
|
82
|
+
(1 row)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
starting permutation: a_rr w_begin w_conflict a_post w_commit a_end check
|
|
86
|
+
step a_rr: begin isolation level repeatable read; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66770000-0000-4000-8000-000000000010';
|
|
87
|
+
set_config
|
|
88
|
+
------------
|
|
89
|
+
service_role
|
|
90
|
+
(1 row)
|
|
91
|
+
|
|
92
|
+
count
|
|
93
|
+
-----
|
|
94
|
+
1
|
|
95
|
+
(1 row)
|
|
96
|
+
|
|
97
|
+
step w_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
98
|
+
set_config
|
|
99
|
+
------------
|
|
100
|
+
service_role
|
|
101
|
+
(1 row)
|
|
102
|
+
|
|
103
|
+
step w_conflict: select count(*) from agent_board.raise_conflict('66770000-0000-4000-8000-000000000010','66770000-0000-4000-8000-000000000001','private conflict');
|
|
104
|
+
count
|
|
105
|
+
-----
|
|
106
|
+
1
|
|
107
|
+
(1 row)
|
|
108
|
+
|
|
109
|
+
step a_post: select agent_board_test.xb_667_try_history_association() as outcome; <waiting ...>
|
|
110
|
+
step w_commit: commit;
|
|
111
|
+
step a_post: <... completed>
|
|
112
|
+
outcome
|
|
113
|
+
----------------------------------------------------------------
|
|
114
|
+
0A000:first thread association requires read committed isolation
|
|
115
|
+
(1 row)
|
|
116
|
+
|
|
117
|
+
step a_end: end;
|
|
118
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.artifacts where thread_id=t.id) as artifacts, (select count(*) from agent_board.conflicts where thread_id=t.id) as conflicts, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66770000-0000-4000-8000-000000000010';
|
|
119
|
+
stamped|artifacts|conflicts|messages
|
|
120
|
+
-------+---------+---------+--------
|
|
121
|
+
f | 0| 1| 0
|
|
122
|
+
(1 row)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
starting permutation: a_ser w_begin w_conflict a_post w_commit a_end check
|
|
126
|
+
step a_ser: begin isolation level serializable; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66770000-0000-4000-8000-000000000010';
|
|
127
|
+
set_config
|
|
128
|
+
------------
|
|
129
|
+
service_role
|
|
130
|
+
(1 row)
|
|
131
|
+
|
|
132
|
+
count
|
|
133
|
+
-----
|
|
134
|
+
1
|
|
135
|
+
(1 row)
|
|
136
|
+
|
|
137
|
+
step w_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
138
|
+
set_config
|
|
139
|
+
------------
|
|
140
|
+
service_role
|
|
141
|
+
(1 row)
|
|
142
|
+
|
|
143
|
+
step w_conflict: select count(*) from agent_board.raise_conflict('66770000-0000-4000-8000-000000000010','66770000-0000-4000-8000-000000000001','private conflict');
|
|
144
|
+
count
|
|
145
|
+
-----
|
|
146
|
+
1
|
|
147
|
+
(1 row)
|
|
148
|
+
|
|
149
|
+
step a_post: select agent_board_test.xb_667_try_history_association() as outcome; <waiting ...>
|
|
150
|
+
step w_commit: commit;
|
|
151
|
+
step a_post: <... completed>
|
|
152
|
+
outcome
|
|
153
|
+
----------------------------------------------------------------
|
|
154
|
+
0A000:first thread association requires read committed isolation
|
|
155
|
+
(1 row)
|
|
156
|
+
|
|
157
|
+
step a_end: end;
|
|
158
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.artifacts where thread_id=t.id) as artifacts, (select count(*) from agent_board.conflicts where thread_id=t.id) as conflicts, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66770000-0000-4000-8000-000000000010';
|
|
159
|
+
stamped|artifacts|conflicts|messages
|
|
160
|
+
-------+---------+---------+--------
|
|
161
|
+
f | 0| 1| 0
|
|
162
|
+
(1 row)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
starting permutation: w_rr p_begin p_post w_stale_artifact p_commit w_commit check
|
|
166
|
+
step w_rr: begin isolation level repeatable read; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66770000-0000-4000-8000-000000000010';
|
|
167
|
+
set_config
|
|
168
|
+
------------
|
|
169
|
+
service_role
|
|
170
|
+
(1 row)
|
|
171
|
+
|
|
172
|
+
count
|
|
173
|
+
-----
|
|
174
|
+
1
|
|
175
|
+
(1 row)
|
|
176
|
+
|
|
177
|
+
step p_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
178
|
+
set_config
|
|
179
|
+
------------
|
|
180
|
+
service_role
|
|
181
|
+
(1 row)
|
|
182
|
+
|
|
183
|
+
step p_post: select count(*) from agent_board.post_board_message('66770000-0000-4000-8000-000000000010','66770000-0000-4000-8000-000000000001','66770000-0000-4000-8000-000000000020','s','b');
|
|
184
|
+
count
|
|
185
|
+
-----
|
|
186
|
+
1
|
|
187
|
+
(1 row)
|
|
188
|
+
|
|
189
|
+
step w_stale_artifact: select agent_board_test.xb_667_try_stale_artifact() as outcome; <waiting ...>
|
|
190
|
+
step p_commit: commit;
|
|
191
|
+
step w_stale_artifact: <... completed>
|
|
192
|
+
outcome
|
|
193
|
+
---------------------------------------------------------
|
|
194
|
+
40001:could not serialize access due to concurrent update
|
|
195
|
+
(1 row)
|
|
196
|
+
|
|
197
|
+
step w_commit: commit;
|
|
198
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.artifacts where thread_id=t.id) as artifacts, (select count(*) from agent_board.conflicts where thread_id=t.id) as conflicts, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66770000-0000-4000-8000-000000000010';
|
|
199
|
+
stamped|artifacts|conflicts|messages
|
|
200
|
+
-------+---------+---------+--------
|
|
201
|
+
t | 0| 0| 1
|
|
202
|
+
(1 row)
|
|
203
|
+
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
Parsed test spec with 4 sessions
|
|
2
|
+
|
|
3
|
+
starting permutation: a_ru a_post a_end check
|
|
4
|
+
step a_ru: begin isolation level read uncommitted; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66740000-0000-4000-8000-000000000010';
|
|
5
|
+
set_config
|
|
6
|
+
------------
|
|
7
|
+
service_role
|
|
8
|
+
(1 row)
|
|
9
|
+
|
|
10
|
+
count
|
|
11
|
+
-----
|
|
12
|
+
1
|
|
13
|
+
(1 row)
|
|
14
|
+
|
|
15
|
+
step a_post: select agent_board_test.xb_667_try_association() as outcome;
|
|
16
|
+
outcome
|
|
17
|
+
----------------------------------------------------------------
|
|
18
|
+
0A000:first thread association requires read committed isolation
|
|
19
|
+
(1 row)
|
|
20
|
+
|
|
21
|
+
step a_end: end;
|
|
22
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.tasks where thread_id=t.id) as tasks, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66740000-0000-4000-8000-000000000010';
|
|
23
|
+
stamped|tasks|messages
|
|
24
|
+
-------+-----+--------
|
|
25
|
+
f | 0| 0
|
|
26
|
+
(1 row)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
starting permutation: a_rr w_begin w_task a_post w_commit a_end check
|
|
30
|
+
step a_rr: begin isolation level repeatable read; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66740000-0000-4000-8000-000000000010';
|
|
31
|
+
set_config
|
|
32
|
+
------------
|
|
33
|
+
service_role
|
|
34
|
+
(1 row)
|
|
35
|
+
|
|
36
|
+
count
|
|
37
|
+
-----
|
|
38
|
+
1
|
|
39
|
+
(1 row)
|
|
40
|
+
|
|
41
|
+
step w_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
42
|
+
set_config
|
|
43
|
+
------------
|
|
44
|
+
service_role
|
|
45
|
+
(1 row)
|
|
46
|
+
|
|
47
|
+
step w_task: select count(*) from agent_board.create_task('66740000-0000-4000-8000-000000000010','66740000-0000-4000-8000-000000000001','private task');
|
|
48
|
+
count
|
|
49
|
+
-----
|
|
50
|
+
1
|
|
51
|
+
(1 row)
|
|
52
|
+
|
|
53
|
+
step a_post: select agent_board_test.xb_667_try_association() as outcome; <waiting ...>
|
|
54
|
+
step w_commit: commit;
|
|
55
|
+
step a_post: <... completed>
|
|
56
|
+
outcome
|
|
57
|
+
----------------------------------------------------------------
|
|
58
|
+
0A000:first thread association requires read committed isolation
|
|
59
|
+
(1 row)
|
|
60
|
+
|
|
61
|
+
step a_end: end;
|
|
62
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.tasks where thread_id=t.id) as tasks, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66740000-0000-4000-8000-000000000010';
|
|
63
|
+
stamped|tasks|messages
|
|
64
|
+
-------+-----+--------
|
|
65
|
+
f | 1| 0
|
|
66
|
+
(1 row)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
starting permutation: a_ser w_begin w_task a_post w_commit a_end check
|
|
70
|
+
step a_ser: begin isolation level serializable; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66740000-0000-4000-8000-000000000010';
|
|
71
|
+
set_config
|
|
72
|
+
------------
|
|
73
|
+
service_role
|
|
74
|
+
(1 row)
|
|
75
|
+
|
|
76
|
+
count
|
|
77
|
+
-----
|
|
78
|
+
1
|
|
79
|
+
(1 row)
|
|
80
|
+
|
|
81
|
+
step w_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
82
|
+
set_config
|
|
83
|
+
------------
|
|
84
|
+
service_role
|
|
85
|
+
(1 row)
|
|
86
|
+
|
|
87
|
+
step w_task: select count(*) from agent_board.create_task('66740000-0000-4000-8000-000000000010','66740000-0000-4000-8000-000000000001','private task');
|
|
88
|
+
count
|
|
89
|
+
-----
|
|
90
|
+
1
|
|
91
|
+
(1 row)
|
|
92
|
+
|
|
93
|
+
step a_post: select agent_board_test.xb_667_try_association() as outcome; <waiting ...>
|
|
94
|
+
step w_commit: commit;
|
|
95
|
+
step a_post: <... completed>
|
|
96
|
+
outcome
|
|
97
|
+
----------------------------------------------------------------
|
|
98
|
+
0A000:first thread association requires read committed isolation
|
|
99
|
+
(1 row)
|
|
100
|
+
|
|
101
|
+
step a_end: end;
|
|
102
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.tasks where thread_id=t.id) as tasks, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66740000-0000-4000-8000-000000000010';
|
|
103
|
+
stamped|tasks|messages
|
|
104
|
+
-------+-----+--------
|
|
105
|
+
f | 1| 0
|
|
106
|
+
(1 row)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
starting permutation: p_begin p_post p_commit a_rr a_task a_end check
|
|
110
|
+
step p_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
111
|
+
set_config
|
|
112
|
+
------------
|
|
113
|
+
service_role
|
|
114
|
+
(1 row)
|
|
115
|
+
|
|
116
|
+
step p_post: select count(*) from agent_board.post_board_message('66740000-0000-4000-8000-000000000010','66740000-0000-4000-8000-000000000001','66740000-0000-4000-8000-000000000020','s','b');
|
|
117
|
+
count
|
|
118
|
+
-----
|
|
119
|
+
1
|
|
120
|
+
(1 row)
|
|
121
|
+
|
|
122
|
+
step p_commit: commit;
|
|
123
|
+
step a_rr: begin isolation level repeatable read; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66740000-0000-4000-8000-000000000010';
|
|
124
|
+
set_config
|
|
125
|
+
------------
|
|
126
|
+
service_role
|
|
127
|
+
(1 row)
|
|
128
|
+
|
|
129
|
+
count
|
|
130
|
+
-----
|
|
131
|
+
1
|
|
132
|
+
(1 row)
|
|
133
|
+
|
|
134
|
+
step a_task: select count(*) from agent_board.create_task('66740000-0000-4000-8000-000000000010','66740000-0000-4000-8000-000000000001','board task');
|
|
135
|
+
count
|
|
136
|
+
-----
|
|
137
|
+
1
|
|
138
|
+
(1 row)
|
|
139
|
+
|
|
140
|
+
step a_end: end;
|
|
141
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.tasks where thread_id=t.id) as tasks, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66740000-0000-4000-8000-000000000010';
|
|
142
|
+
stamped|tasks|messages
|
|
143
|
+
-------+-----+--------
|
|
144
|
+
t | 1| 1
|
|
145
|
+
(1 row)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
starting permutation: p_begin p_post p_commit a_ser a_task a_end check
|
|
149
|
+
step p_begin: begin; select set_config('request.jwt.claim.role','service_role',true);
|
|
150
|
+
set_config
|
|
151
|
+
------------
|
|
152
|
+
service_role
|
|
153
|
+
(1 row)
|
|
154
|
+
|
|
155
|
+
step p_post: select count(*) from agent_board.post_board_message('66740000-0000-4000-8000-000000000010','66740000-0000-4000-8000-000000000001','66740000-0000-4000-8000-000000000020','s','b');
|
|
156
|
+
count
|
|
157
|
+
-----
|
|
158
|
+
1
|
|
159
|
+
(1 row)
|
|
160
|
+
|
|
161
|
+
step p_commit: commit;
|
|
162
|
+
step a_ser: begin isolation level serializable; select set_config('request.jwt.claim.role','service_role',true); select count(*) from agent_board.threads where id='66740000-0000-4000-8000-000000000010';
|
|
163
|
+
set_config
|
|
164
|
+
------------
|
|
165
|
+
service_role
|
|
166
|
+
(1 row)
|
|
167
|
+
|
|
168
|
+
count
|
|
169
|
+
-----
|
|
170
|
+
1
|
|
171
|
+
(1 row)
|
|
172
|
+
|
|
173
|
+
step a_task: select count(*) from agent_board.create_task('66740000-0000-4000-8000-000000000010','66740000-0000-4000-8000-000000000001','board task');
|
|
174
|
+
count
|
|
175
|
+
-----
|
|
176
|
+
1
|
|
177
|
+
(1 row)
|
|
178
|
+
|
|
179
|
+
step a_end: end;
|
|
180
|
+
step check: select (t.board_id is not null) as stamped, (select count(*) from agent_board.tasks where thread_id=t.id) as tasks, (select count(*) from agent_board.messages where thread_id=t.id) as messages from agent_board.threads t where t.id='66740000-0000-4000-8000-000000000010';
|
|
181
|
+
stamped|tasks|messages
|
|
182
|
+
-------+-----+--------
|
|
183
|
+
t | 1| 1
|
|
184
|
+
(1 row)
|
|
185
|
+
|