publication_attempt_evidence.v1.json (2653B)
1 { 2 "schema": "radroots.rhi.publication-attempt-evidence", 3 "schema_version": 1, 4 "contract_version": 1, 5 "target_states": [ 6 "pending", 7 "submitted", 8 "accepted", 9 "rejected", 10 "rate_limited", 11 "auth_required", 12 "failed", 13 "unknown" 14 ], 15 "attempt_outcomes": [ 16 "submitted", 17 "accepted", 18 "rejected", 19 "rate_limited", 20 "auth_required", 21 "failed", 22 "unknown" 23 ], 24 "bounds": { 25 "target_ordinal": { "minimum": 0, "maximum": 31 }, 26 "attempt_number": { "minimum": 1, "maximum": 100 }, 27 "unix_milliseconds": { "minimum": 0, "maximum": 9223372036854775807 }, 28 "finished_at": "greater_than_or_equal_to_started_at" 29 }, 30 "attempt_identity": { 31 "algorithm": "sha256", 32 "domain": "radroots.rhi.publication_attempt.v1\u0000", 33 "framing": [ 34 "outbox_id_32_bytes", 35 "exact_committed_event_sha256_32_bytes", 36 "target_ordinal_u32_be", 37 "attempt_number_u32_be" 38 ] 39 }, 40 "evidence": { 41 "sealed_type": "RhiPublicationAttemptEvidence", 42 "forgeable": false, 43 "serializable": false, 44 "debug": "redacted", 45 "bound_fields": [ 46 "attempt_id", 47 "outbox_id", 48 "exact_committed_event_sha256", 49 "target_ordinal", 50 "attempt_number", 51 "started_at_unix_ms", 52 "finished_at_unix_ms", 53 "outcome" 54 ], 55 "result_code": "exact_closed_outcome_code", 56 "raw_relay_result_or_error": false 57 }, 58 "semantics": { 59 "pending_is_attempt_outcome": false, 60 "accepted_target_is_terminal": true, 61 "submission_alone_proves_delivery": false, 62 "unknown_may_be_refined_only_by_independent_evidence": true, 63 "constructor_is_claim_or_transition_authority": false 64 }, 65 "effects": { 66 "sqlite_read_or_mutation": false, 67 "relay_or_network": false, 68 "event_parse_rebuild_serialize_or_sign": false, 69 "task_spawn": false, 70 "ambient_clock": false, 71 "ambient_entropy": false 72 }, 73 "deferred_to_step_202": [ 74 "publication_claim_and_lease", 75 "durable_submitted_before_io", 76 "relay_submission", 77 "compare_and_swap_outcome_commit", 78 "cancellation_and_lost_acknowledgement", 79 "backoff_and_retry_schedule", 80 "lease_and_restart_recovery", 81 "unknown_outcome_reconciliation" 82 ], 83 "forbidden": [ 84 "arbitrary_target_state", 85 "arbitrary_attempt_outcome", 86 "arbitrary_result_code", 87 "raw_relay_error_text", 88 "unbounded_target_ordinal", 89 "unbounded_attempt_number", 90 "unbounded_or_reversed_time", 91 "caller_supplied_outbox_or_event_digest", 92 "sqlite_authority", 93 "relay_io", 94 "event_deserialization", 95 "event_rebuild", 96 "event_reserialization", 97 "event_resigning" 98 ] 99 }