operator_contract.v1.json (36014B)
1 { 2 "schema": "radroots.myc.operator-contract.v1", 3 "contract_version": 1, 4 "decision_state": "implemented", 5 "service": "myc", 6 "shared_host_contract": { 7 "repository": "https://github.com/radrootslabs/lib", 8 "path": "contracts/architecture/decisions/services_hardening_host.v1.json", 9 "schema": "radroots.services-hardening.host-decisions.v1", 10 "contract_version": 1 11 }, 12 "admin": { 13 "transport": "http_1_1_over_unix_domain_socket", 14 "base_path": "/v1", 15 "route_inventory_closed": true, 16 "routes": [ 17 { "method": "GET", "path": "/v1/status", "operation_id": "radroots.myc.status.get.v1", "request_model": "empty", "response_model": "service_status_v1", "mutation": false }, 18 { "method": "GET", "path": "/v1/config/effective", "operation_id": "radroots.myc.config.effective.get.v1", "request_model": "empty", "response_model": "effective_config_v1", "mutation": false }, 19 { "method": "GET", "path": "/v1/identity/status", "operation_id": "radroots.myc.identity.status.get.v1", "request_model": "identity_status_query_v1", "response_model": "identity_status_v1", "mutation": false }, 20 { "method": "GET", "path": "/v1/identity/public", "operation_id": "radroots.myc.identity.public.get.v1", "request_model": "identity_public_query_v1", "response_model": "identity_public_v1", "mutation": false }, 21 { "method": "GET", "path": "/v1/state/status", "operation_id": "radroots.myc.state.status.get.v1", "request_model": "empty", "response_model": "state_status_v1", "mutation": false }, 22 { "method": "POST", "path": "/v1/state/backup", "operation_id": "radroots.myc.state.backup.create.v1", "request_model": "state_backup_request_v1", "response_model": "state_backup_receipt_v1", "mutation": true }, 23 { "method": "GET", "path": "/v1/metrics/snapshot", "operation_id": "radroots.myc.metrics.snapshot.get.v1", "request_model": "empty", "response_model": "metrics_snapshot_v1", "mutation": false }, 24 { "method": "GET", "path": "/v1/connections", "operation_id": "radroots.myc.connections.list.v1", "request_model": "connections_query_v1", "response_model": "connections_page_v1", "mutation": false }, 25 { "method": "POST", "path": "/v1/connections/{connection_id}/approve", "operation_id": "radroots.myc.connection.approve.v1", "request_model": "connection_approve_request_v1", "response_model": "connection_mutation_receipt_v1", "mutation": true }, 26 { "method": "POST", "path": "/v1/connections/{connection_id}/reject", "operation_id": "radroots.myc.connection.reject.v1", "request_model": "connection_reject_request_v1", "response_model": "connection_mutation_receipt_v1", "mutation": true }, 27 { "method": "POST", "path": "/v1/connections/{connection_id}/revoke", "operation_id": "radroots.myc.connection.revoke.v1", "request_model": "connection_revoke_request_v1", "response_model": "connection_mutation_receipt_v1", "mutation": true }, 28 { "method": "POST", "path": "/v1/authorization/challenges/require", "operation_id": "radroots.myc.authorization.challenge.require.v1", "request_model": "challenge_require_request_v1", "response_model": "challenge_v1", "mutation": true }, 29 { "method": "POST", "path": "/v1/authorization/challenges/{challenge_id}/authorize", "operation_id": "radroots.myc.authorization.challenge.authorize.v1", "request_model": "challenge_authorize_request_v1", "response_model": "challenge_authorization_receipt_v1", "mutation": true }, 30 { "method": "GET", "path": "/v1/audit/events", "operation_id": "radroots.myc.audit.events.list.v1", "request_model": "audit_events_query_v1", "response_model": "audit_events_page_v1", "mutation": false }, 31 { "method": "GET", "path": "/v1/audit/summary", "operation_id": "radroots.myc.audit.summary.get.v1", "request_model": "audit_summary_query_v1", "response_model": "audit_summary_v1", "mutation": false }, 32 { "method": "GET", "path": "/v1/discovery/desired", "operation_id": "radroots.myc.discovery.desired.get.v1", "request_model": "empty", "response_model": "discovery_desired_v1", "mutation": false }, 33 { "method": "POST", "path": "/v1/discovery/render", "operation_id": "radroots.myc.discovery.render.v1", "request_model": "discovery_render_request_v1", "response_model": "discovery_render_receipt_v1", "mutation": true }, 34 { "method": "POST", "path": "/v1/discovery/refresh", "operation_id": "radroots.myc.discovery.refresh.v1", "request_model": "discovery_refresh_request_v1", "response_model": "discovery_refresh_receipt_v1", "mutation": true }, 35 { "method": "POST", "path": "/v1/discovery/publish", "operation_id": "radroots.myc.discovery.publish.v1", "request_model": "discovery_publish_request_v1", "response_model": "discovery_publish_receipt_v1", "mutation": true } 36 ], 37 "model_wire_contract": { 38 "encoding": "utf8_json", 39 "object_unknown_fields": "reject", 40 "duplicate_fields": "reject", 41 "null": "forbidden", 42 "optional_field_representation": "absent", 43 "integer_representation": "exact_json_integer", 44 "utc_time_unit": "signed_integer_unix_seconds", 45 "string_length_unit": "utf8_bytes", 46 "array_order": "preserved_unless_type_declares_canonical_sort", 47 "response_body_max_utf8_bytes": 1048576 48 }, 49 "identity_contract": { 50 "roles": [ 51 { "id": "transport", "required": true, "disabled_allowed": false, "providers": ["encrypted_file", "local_signer"] }, 52 { "id": "user", "required": true, "disabled_allowed": false, "providers": ["encrypted_file", "local_signer"] }, 53 { "id": "discovery", "required": false, "disabled_allowed": true, "providers": ["encrypted_file", "local_signer"] } 54 ], 55 "live_mutation": false, 56 "rotation_mode": "offline_create_new_then_config_apply", 57 "in_place_overwrite": false 58 }, 59 "types": { 60 "myc_literal": { "kind": "literal", "value": "myc" }, 61 "myc_config_schema_literal": { "kind": "literal", "value": "radroots.myc.config" }, 62 "contract_version_literal": { "kind": "literal", "value": 1 }, 63 "bool": { "kind": "boolean" }, 64 "u64": { "kind": "integer", "minimum": 0, "maximum": 18446744073709551615 }, 65 "positive_u32": { "kind": "integer", "minimum": 1, "maximum": 4294967295 }, 66 "utc_seconds": { "kind": "integer", "unit": "unix_seconds", "minimum": 0, "maximum": 9223372036854775807 }, 67 "bounded_id": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 128, "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$" }, 68 "operation_id": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 128 }, 69 "reason_code": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 64, "pattern": "^[a-z][a-z0-9_]*$" }, 70 "reason_codes": { "kind": "array", "items": "reason_code", "maximum_items": 32, "unique": true, "canonical_sort": "ascending_utf8" }, 71 "sha256_hex": { "kind": "string", "utf8_bytes": 64, "pattern": "^[0-9a-f]{64}$" }, 72 "public_key_hex": { "kind": "string", "utf8_bytes": 64, "pattern": "^[0-9a-f]{64}$" }, 73 "absolute_path": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 4096, "pattern": "^/" }, 74 "confirmation": { "kind": "literal", "value": "confirm" }, 75 "identity_role": { "kind": "enum", "values": ["transport", "user", "discovery"] }, 76 "identity_provider_kind": { "kind": "enum", "values": ["encrypted_file", "local_signer"] }, 77 "service_phase": { "kind": "enum", "values": ["starting", "ready", "degraded", "unready", "stopping", "failed"] }, 78 "uptime_millis": { "kind": "integer", "minimum": 0, "maximum": 18446744073709551615, "unit": "milliseconds_from_injected_monotonic_clock" }, 79 "integrity_state": { "kind": "enum", "values": ["verified", "verification_required", "failed"] }, 80 "writer_lock_state": { "kind": "enum", "values": ["held_by_daemon", "free", "conflict"] }, 81 "configuration_source": { "kind": "enum", "values": ["explicit_config", "derived_repo_local"] }, 82 "configuration_identity": { "kind": "closed_object", "fields": { "schema": "myc_config_schema_literal", "schema_version": "contract_version_literal", "digest": "sha256_hex", "source": "configuration_source" } }, 83 "persistence_health": { "kind": "enum", "values": ["ready", "read_only", "repair_required", "unavailable"] }, 84 "persistence_state": { "kind": "closed_object", "fields": { "health": "persistence_health", "schema_version": "positive_u32", "generation": "u64", "integrity": "integrity_state", "reason_codes": "reason_codes" } }, 85 "provider_health": { "kind": "enum", "values": ["ready", "degraded", "unavailable"] }, 86 "provider_state": { "kind": "closed_object", "fields": { "health": "provider_health", "transport": "identity_health", "user": "identity_health", "discovery": "identity_health", "reason_codes": "reason_codes" } }, 87 "transport_health": { "kind": "enum", "values": ["ready", "degraded", "unavailable"] }, 88 "transport_state": { "kind": "closed_object", "fields": { "health": "transport_health", "required_relays_ready": "bool", "connected_relay_count": "u64", "reason_codes": "reason_codes" } }, 89 "connection_state": { "kind": "enum", "values": ["pending", "approved", "rejected", "revoked"] }, 90 "challenge_state": { "kind": "enum", "values": ["pending", "authorized", "expired", "rejected"] }, 91 "audit_outcome": { "kind": "enum", "values": ["succeeded", "rejected", "failed"] }, 92 "nip46_permission": { 93 "kind": "string_union", 94 "simple_values": ["nip04_decrypt", "nip04_encrypt", "nip44_decrypt", "nip44_encrypt", "switch_relays"], 95 "sign_event_pattern": "^sign_event:kind:(0|[1-9][0-9]{0,9})$", 96 "sign_event_kind_minimum": 0, 97 "sign_event_kind_maximum": 4294967295, 98 "sign_event_kind_encoding": "canonical_unsigned_decimal_no_leading_zeroes", 99 "maximum_utf8_bytes": 64, 100 "unpermissioned_methods": ["connect", "get_public_key", "get_session_capability", "ping", "logout"], 101 "custom_methods": "unsupported_v1", 102 "required_permission_api": "radroots_nostr_connect::server::required_permission", 103 "permission_type": "radroots_nostr_connect::Permission", 104 "fixed_vectors": { 105 "valid": ["sign_event:kind:0", "sign_event:kind:1", "sign_event:kind:4294967295", "switch_relays"], 106 "invalid": ["get_public_key", "ping", "sign_event", "sign_event:kind:", "sign_event:kind:00", "sign_event:kind:4294967296", "sign_event:kind:9999999999"] 107 } 108 }, 109 "permission_set": { 110 "kind": "canonical_delimited_set", 111 "items": "nip46_permission", 112 "delimiter": ",", 113 "maximum_items": 64, 114 "maximum_utf8_bytes": 4096, 115 "unique": true, 116 "canonical_sort": "ascending_rendered_permission_utf8", 117 "empty_allowed": true, 118 "sign_event_kind_ceiling": "every_parameterized_kind_must_also_be_allowed_by_configured_policy" 119 }, 120 "page_limit": { "kind": "integer", "minimum": 1, "maximum": 200 }, 121 "page_cursor": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 512, "encoding": "canonical_base64url_no_padding", "integrity": "server_authenticated" }, 122 "connection_state_filter": { "kind": "enum", "values": ["pending", "approved", "rejected", "revoked"] }, 123 "safe_code": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 64, "pattern": "^[a-z][a-z0-9_]*$" }, 124 "safe_url": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 2048, "allowed_schemes": ["https"] }, 125 "safe_counts": { "kind": "map", "key": "safe_code", "value": "u64", "maximum_entries": 128, "canonical_sort": "ascending_key_utf8" }, 126 "stable_metrics": { "kind": "map", "key": "safe_code", "value": "u64", "maximum_entries": 256, "high_cardinality_values_forbidden": true, "canonical_sort": "ascending_key_utf8" }, 127 "config_provenance": { "kind": "map", "key": "safe_code", "value": "config_provenance_value", "maximum_entries": 512, "canonical_sort": "ascending_key_utf8" }, 128 "config_provenance_value": { "kind": "enum", "values": ["bootstrap_cli", "toml", "safe_default", "derived_path"] }, 129 "redacted_config": { "kind": "canonical_json_object", "schema": "radroots.myc.config@1", "maximum_utf8_bytes": 786432, "protected_material": "redacted_or_omitted" }, 130 "build_info": { "kind": "closed_object", "fields": { "version": "bounded_id", "revision": "git_revision", "toolchain": "bounded_id", "contract_versions": "safe_counts" } }, 131 "git_revision": { "kind": "string", "utf8_bytes": 40, "pattern": "^[0-9a-f]{40}$" }, 132 "myc_status": { "kind": "closed_object", "fields": { "transport": "identity_health", "user": "identity_health", "discovery": "identity_health", "connection_counts": "safe_counts", "outbox": "outbox_status" } }, 133 "identity_health": { "kind": "closed_object", "fields": { "configured": "bool", "available": "bool", "reason_codes": "reason_codes" } }, 134 "outbox_status": { "kind": "closed_object", "fields": { "pending": "u64", "unknown": "u64", "oldest_pending_at_utc": "optional_utc_seconds" } }, 135 "optional_utc_seconds": { "kind": "optional", "representation": "absent_parent_field", "value": "utc_seconds" }, 136 "connection_summaries": { "kind": "array", "items": "connection_summary", "maximum_items": 200, "ordered": true }, 137 "connection_summary": { "kind": "closed_object", "fields": { "connection_id": "bounded_id", "client_public_key": "public_key_hex", "state": "connection_state", "permissions": "permission_set", "generation": "u64", "created_at_utc": "utc_seconds", "updated_at_utc": "utc_seconds" } }, 138 "request_identity": { "kind": "alias", "target": "sha256_hex" }, 139 "audit_kind": { "kind": "string", "minimum_utf8_bytes": 1, "maximum_utf8_bytes": 64, "pattern": "^[a-z][a-z0-9_]*$" }, 140 "audit_events": { "kind": "array", "items": "audit_event", "maximum_items": 200, "ordered": true }, 141 "audit_event": { "kind": "closed_object", "fields": { "audit_id": "bounded_id", "occurred_at_utc": "utc_seconds", "kind": "audit_kind", "outcome": "audit_outcome", "reason_code": "reason_code", "correlation_id": "bounded_id" } }, 142 "document_digests": { "kind": "map", "key": "bounded_id", "value": "sha256_hex", "maximum_entries": 16, "canonical_sort": "ascending_key_utf8" }, 143 "publication_state": { "kind": "enum", "values": ["disabled", "pending", "submitted", "delivered", "failed", "unknown"] }, 144 "source_completion": { "kind": "enum", "values": ["complete", "partial", "unavailable"] }, 145 "discovery_diff_state": { "kind": "enum", "values": ["in_sync", "drift", "conflict", "unavailable"] }, 146 "workflow_id": { "kind": "alias", "target": "bounded_id" }, 147 "target_count": { "kind": "integer", "minimum": 0, "maximum": 64 } 148 }, 149 "models": { 150 "empty": { "fields": {} }, 151 "service_status_v1": { "fields": { "contract_version": { "type": "contract_version_literal", "presence": "required" }, "service": { "type": "myc_literal", "presence": "required" }, "instance": { "type": "bounded_id", "presence": "required" }, "phase": { "type": "service_phase", "presence": "required" }, "ready": { "type": "bool", "presence": "required" }, "uptime_millis": { "type": "uptime_millis", "presence": "required" }, "reason_codes": { "type": "reason_codes", "presence": "required" }, "build_info": { "type": "build_info", "presence": "required" }, "configuration": { "type": "configuration_identity", "presence": "required" }, "persistence": { "type": "persistence_state", "presence": "required" }, "provider": { "type": "provider_state", "presence": "required" }, "transport": { "type": "transport_state", "presence": "required" }, "myc": { "type": "myc_status", "presence": "required" } } }, 152 "effective_config_v1": { "fields": { "schema": { "type": "myc_config_schema_literal", "presence": "required" }, "schema_version": { "type": "contract_version_literal", "presence": "required" }, "provenance": { "type": "config_provenance", "presence": "required" }, "redacted_config": { "type": "redacted_config", "presence": "required" }, "config_digest": { "type": "sha256_hex", "presence": "required" } } }, 153 "identity_status_query_v1": { "fields": { "role": { "type": "identity_role", "presence": "required" } } }, 154 "identity_status_v1": { "fields": { "role": { "type": "identity_role", "presence": "required" }, "provider": { "type": "identity_provider_kind", "presence": "optional" }, "configured": { "type": "bool", "presence": "required" }, "available": { "type": "bool", "presence": "required" }, "generation": { "type": "u64", "presence": "required" }, "reason_codes": { "type": "reason_codes", "presence": "required" }, "public_key": { "type": "public_key_hex", "presence": "optional" } } }, 155 "identity_public_query_v1": { "fields": { "role": { "type": "identity_role", "presence": "required" } } }, 156 "identity_public_v1": { "fields": { "role": { "type": "identity_role", "presence": "required" }, "public_key": { "type": "public_key_hex", "presence": "required" }, "generation": { "type": "u64", "presence": "required" } } }, 157 "state_status_v1": { "fields": { "schema_version": { "type": "positive_u32", "presence": "required" }, "generation": { "type": "u64", "presence": "required" }, "integrity": { "type": "integrity_state", "presence": "required" }, "writer_lock": { "type": "writer_lock_state", "presence": "required" }, "backup_eligible": { "type": "bool", "presence": "required" }, "reason_codes": { "type": "reason_codes", "presence": "required" } } }, 158 "state_backup_request_v1": { "fields": { "target_path": { "type": "absolute_path", "presence": "required" }, "expected_generation": { "type": "u64", "presence": "required" }, "confirmation": { "type": "confirmation", "presence": "required" } } }, 159 "state_backup_receipt_v1": { "fields": { "operation_id": { "type": "operation_id", "presence": "required" }, "manifest_digest": { "type": "sha256_hex", "presence": "required" }, "snapshot_generation": { "type": "u64", "presence": "required" }, "completed_at_utc": { "type": "utc_seconds", "presence": "required" } } }, 160 "metrics_snapshot_v1": { "fields": { "captured_at_utc": { "type": "utc_seconds", "presence": "required" }, "metrics": { "type": "stable_metrics", "presence": "required" } } }, 161 "connections_query_v1": { "fields": { "limit": { "type": "page_limit", "presence": "required" }, "cursor": { "type": "page_cursor", "presence": "optional" }, "state": { "type": "connection_state_filter", "presence": "optional" } } }, 162 "connections_page_v1": { "fields": { "snapshot_generation": { "type": "u64", "presence": "required" }, "items": { "type": "connection_summaries", "presence": "required" }, "next_cursor": { "type": "page_cursor", "presence": "optional" } } }, 163 "connection_approve_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" }, "permissions": { "type": "permission_set", "presence": "required" }, "confirmation": { "type": "confirmation", "presence": "required" } } }, 164 "connection_reject_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" }, "reason_code": { "type": "reason_code", "presence": "required" }, "confirmation": { "type": "confirmation", "presence": "required" } } }, 165 "connection_revoke_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" }, "reason_code": { "type": "reason_code", "presence": "required" }, "confirmation": { "type": "confirmation", "presence": "required" } } }, 166 "connection_mutation_receipt_v1": { "fields": { "operation_id": { "type": "operation_id", "presence": "required" }, "connection_id": { "type": "bounded_id", "presence": "required" }, "previous_state": { "type": "connection_state", "presence": "required" }, "current_state": { "type": "connection_state", "presence": "required" }, "generation": { "type": "u64", "presence": "required" } } }, 167 "challenge_require_request_v1": { "fields": { "connection_id": { "type": "bounded_id", "presence": "required" }, "request_identity": { "type": "request_identity", "presence": "required" }, "expected_policy_generation": { "type": "u64", "presence": "required" } } }, 168 "challenge_v1": { "fields": { "challenge_id": { "type": "bounded_id", "presence": "required" }, "connection_id": { "type": "bounded_id", "presence": "required" }, "request_identity": { "type": "request_identity", "presence": "required" }, "challenge_url": { "type": "safe_url", "presence": "required" }, "issued_at_utc": { "type": "utc_seconds", "presence": "required" }, "expires_at_utc": { "type": "utc_seconds", "presence": "required" }, "state": { "type": "challenge_state", "presence": "required" } } }, 169 "challenge_authorize_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" }, "confirmation": { "type": "confirmation", "presence": "required" } } }, 170 "challenge_authorization_receipt_v1": { "fields": { "operation_id": { "type": "operation_id", "presence": "required" }, "challenge_id": { "type": "bounded_id", "presence": "required" }, "request_identity": { "type": "request_identity", "presence": "required" }, "state": { "type": "challenge_state", "presence": "required" }, "generation": { "type": "u64", "presence": "required" } } }, 171 "audit_events_query_v1": { "fields": { "limit": { "type": "page_limit", "presence": "required" }, "cursor": { "type": "page_cursor", "presence": "optional" }, "from_utc": { "type": "utc_seconds", "presence": "optional" }, "to_utc": { "type": "utc_seconds", "presence": "optional" }, "kind": { "type": "audit_kind", "presence": "optional" }, "outcome": { "type": "audit_outcome", "presence": "optional" } } }, 172 "audit_events_page_v1": { "fields": { "snapshot_generation": { "type": "u64", "presence": "required" }, "items": { "type": "audit_events", "presence": "required" }, "next_cursor": { "type": "page_cursor", "presence": "optional" } } }, 173 "audit_summary_query_v1": { "fields": { "from_utc": { "type": "utc_seconds", "presence": "required" }, "to_utc": { "type": "utc_seconds", "presence": "required" } } }, 174 "audit_summary_v1": { "fields": { "from_utc": { "type": "utc_seconds", "presence": "required" }, "to_utc": { "type": "utc_seconds", "presence": "required" }, "counts": { "type": "safe_counts", "presence": "required" } } }, 175 "discovery_desired_v1": { "fields": { "enabled": { "type": "bool", "presence": "required" }, "generation": { "type": "u64", "presence": "required" }, "document_digests": { "type": "document_digests", "presence": "required" }, "publication_state": { "type": "publication_state", "presence": "required" } } }, 176 "discovery_render_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" } } }, 177 "discovery_render_receipt_v1": { "fields": { "operation_id": { "type": "operation_id", "presence": "required" }, "generation": { "type": "u64", "presence": "required" }, "document_digests": { "type": "document_digests", "presence": "required" } } }, 178 "discovery_refresh_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" } } }, 179 "discovery_refresh_receipt_v1": { "fields": { "operation_id": { "type": "operation_id", "presence": "required" }, "generation": { "type": "u64", "presence": "required" }, "source_completion": { "type": "source_completion", "presence": "required" }, "diff_state": { "type": "discovery_diff_state", "presence": "required" } } }, 180 "discovery_publish_request_v1": { "fields": { "expected_generation": { "type": "u64", "presence": "required" }, "confirmation": { "type": "confirmation", "presence": "required" } } }, 181 "discovery_publish_receipt_v1": { "fields": { "operation_id": { "type": "operation_id", "presence": "required" }, "generation": { "type": "u64", "presence": "required" }, "workflow_id": { "type": "workflow_id", "presence": "required" }, "exact_bytes_digest": { "type": "sha256_hex", "presence": "required" }, "target_count": { "type": "target_count", "presence": "required" } } } 182 }, 183 "path_parameters": { 184 "connection_id": { "type": "bounded_id", "source": "percent_decoded_single_path_segment", "slash_allowed": false }, 185 "challenge_id": { "type": "bounded_id", "source": "percent_decoded_single_path_segment", "slash_allowed": false } 186 }, 187 "pagination": { 188 "cursor_type": "page_cursor", 189 "limit_min": 1, 190 "limit_max": 200, 191 "terminal_page": "next_cursor_field_absent", 192 "cursor_reuse": "same_route_same_filters_only", 193 "filter_or_route_mismatch": "invalid_cursor", 194 "connections_order": ["created_at_utc_ascending", "connection_id_ascending"], 195 "connections_snapshot": "generation_fixed_by_first_page_cursor", 196 "audit_order": ["occurred_at_utc_descending", "audit_id_descending"], 197 "audit_snapshot": "maximum_audit_sequence_fixed_by_first_page_cursor" 198 }, 199 "mutation_contract": { 200 "request_envelope_required_fields": ["contract_version", "operation_id", "request"], 201 "request_envelope_optional_fields": ["correlation_id"], 202 "effective_correlation_id_required_in_response": true, 203 "identical_operation_id_reuse": "return_original_committed_result", 204 "different_request_operation_id_reuse": { "admin_error_code": "operation_id_conflict", "cli_exit": 5 }, 205 "success_visibility": "response_only_after_local_authoritative_commit", 206 "relay_submission_or_delivery_required_for_success": false, 207 "committed_effects": { 208 "radroots.myc.state.backup.create.v1": "verified_snapshot_manifest_digest_and_operation_audit", 209 "radroots.myc.connection.approve.v1": "connection_state_permissions_generation_and_operation_audit", 210 "radroots.myc.connection.reject.v1": "connection_state_reason_generation_and_operation_audit", 211 "radroots.myc.connection.revoke.v1": "connection_state_session_revocation_generation_and_operation_audit", 212 "radroots.myc.authorization.challenge.require.v1": "bounded_challenge_binding_rate_window_and_operation_audit", 213 "radroots.myc.authorization.challenge.authorize.v1": "challenge_state_bound_request_resume_generation_and_operation_audit", 214 "radroots.myc.discovery.render.v1": "deterministic_document_generation_digests_and_operation_audit", 215 "radroots.myc.discovery.refresh.v1": "source_completion_diff_state_generation_and_operation_audit", 216 "radroots.myc.discovery.publish.v1": "exact_signed_bytes_immutable_targets_outbox_workflow_and_operation_audit" 217 } 218 } 219 }, 220 "cli_dispatch": { 221 "parse_count": 1, 222 "primary_authorities": ["daemon", "offline", "live_unix_admin"], 223 "live_direct_sqlite_access": false, 224 "live_mutation_offline_fallback": false, 225 "read_only_offline_fallback_requires_free_daemon_writer_lock": true, 226 "bootstrap": { 227 "output_modes": ["human", "json"], 228 "default_output_mode": "human", 229 "stdout": "results_only", 230 "stderr": "diagnostics_only", 231 "config_init": { 232 "source": "bounded_nonsecret_toml_stdin", 233 "persistence": "create_new_selected_path_mode_0600_file_and_parent_sync" 234 }, 235 "config_loader": { 236 "path": "selected_absolute_explicit_or_canonical_default", 237 "maximum_utf8_bytes": 1048576, 238 "no_follow": true, 239 "regular_file": true, 240 "single_link": true, 241 "effective_user_owner": true, 242 "group_or_other_write": false, 243 "revalidate_after_read": ["parent_device_inode", "file_device_inode", "file_length"] 244 }, 245 "config_apply": { 246 "candidate_argument": "--candidate-config_absolute_path", 247 "current_source": "selected_config_path", 248 "mutates_config_files": false 249 }, 250 "identity": { 251 "role_argument": "--role_transport_user_discovery", 252 "init_provider": "configured_encrypted_file_only", 253 "init_secret_source": "stdin_fixed_binary_v1_117_bytes" 254 }, 255 "state_init": { 256 "source_generation": "system_entropy_nonzero_32_bytes", 257 "created_at": "system_wall_clock", 258 "existing_state_open": "sealed_intent_discovers_actual_metadata" 259 }, 260 "runtime": { 261 "owner": "myc_binary", 262 "count_per_process": 1, 263 "worker_threads_default": 4, 264 "worker_threads_range": [2, 32], 265 "blocking_threads_default": 8, 266 "blocking_threads_range": [1, 32], 267 "cpu_derived_defaults": false 268 }, 269 "backup": { 270 "operation_id_argument": "--operation-id", 271 "target_argument": "--target-new-absolute-directory", 272 "expected_generation_argument": "--expected-generation", 273 "confirmation_argument": "--confirm", 274 "offline_stdout": "exact_canonical_manifest_bytes_no_trailing_newline" 275 }, 276 "restore": { 277 "manifest_argument": "--manifest-absolute-file", 278 "manifest_digest_argument": "--manifest-sha256", 279 "bundle_argument": "--bundle-absolute-directory", 280 "maximum_state_bytes_argument": "--maximum-state-bytes", 281 "confirmation_argument": "--confirm", 282 "expected_identity_source": "trusted_digest_bound_manifest_before_live_database_open" 283 }, 284 "run": { 285 "config_source": "secure_selected_path_loader", 286 "runtime_owner": "myc_binary", 287 "graph_owner": "myc-runtime-graph-shutdown" 288 }, 289 "unsupported_command_success": false 290 }, 291 "commands": [ 292 { "command": "run", "primary_authority": "daemon" }, 293 { "command": "config init", "primary_authority": "offline", "offline_operation": "config" }, 294 { "command": "config validate", "primary_authority": "offline", "offline_operation": "config" }, 295 { "command": "config show", "primary_authority": "offline", "offline_operation": "config" }, 296 { "command": "config schema", "primary_authority": "offline", "offline_operation": "config" }, 297 { "command": "config apply", "primary_authority": "offline", "offline_operation": "config" }, 298 { "command": "state init", "primary_authority": "offline", "offline_operation": "state_exclusive" }, 299 { "command": "state status", "primary_authority": "live_unix_admin", "admin_route": "/v1/state/status", "offline_operation": "state_read_only", "daemon_unavailable_offline_fallback": true }, 300 { "command": "state backup", "primary_authority": "live_unix_admin", "admin_route": "/v1/state/backup", "offline_operation": "state_read_only", "daemon_unavailable_offline_fallback": true }, 301 { "command": "state restore", "primary_authority": "offline", "offline_operation": "state_exclusive" }, 302 { "command": "state verify", "primary_authority": "offline", "offline_operation": "state_exclusive" }, 303 { "command": "state migrate", "primary_authority": "offline", "offline_operation": "state_exclusive" }, 304 { "command": "identity init", "primary_authority": "offline", "offline_operation": "identity_exclusive" }, 305 { "command": "identity status", "primary_authority": "live_unix_admin", "admin_route": "/v1/identity/status", "offline_operation": "identity_read_only", "daemon_unavailable_offline_fallback": true }, 306 { "command": "identity export-public", "primary_authority": "live_unix_admin", "admin_route": "/v1/identity/public", "offline_operation": "identity_read_only", "daemon_unavailable_offline_fallback": true }, 307 { "command": "status", "primary_authority": "live_unix_admin", "admin_route": "/v1/status", "offline_operation": "state_read_only", "daemon_unavailable_offline_fallback": true }, 308 { "command": "doctor", "primary_authority": "offline", "offline_operation": "doctor" } 309 ] 310 }, 311 "doctor": { 312 "shared_schema": "radroots.service.doctor.v1", 313 "contract_version": 1, 314 "execution": "ordered", 315 "pass_requires_all_scope": true, 316 "probe_future_cancellation": "drop_stops_or_owns_cleanup", 317 "detached_probe_work": false, 318 "statuses": ["pass", "fail", "timeout", "skipped"], 319 "aggregate_statuses": ["pass", "degraded", "fail"], 320 "required_skipped": "forbidden", 321 "summary_max_utf8_bytes": 256, 322 "report_max_utf8_bytes": 8192, 323 "raw_error_or_path_allowed": false, 324 "required_fail_or_timeout_exit": 6, 325 "checks": [ 326 { "id": "paths_permissions", "required": true, "deadline_ms": 2000, "remediation_code": "correct_path_policy", "scope": ["resolved_path_containment", "owner", "type", "mode"] }, 327 { "id": "writer_lock", "required": true, "deadline_ms": 2000, "remediation_code": "release_writer_lock", "scope": ["state_directory_binding", "writer_lock_state"] }, 328 { "id": "sqlite_schema", "required": true, "deadline_ms": 5000, "remediation_code": "repair_schema", "scope": ["metadata_identity", "migration_history", "schema_catalog"] }, 329 { "id": "sqlite_integrity", "required": true, "deadline_ms": 15000, "remediation_code": "restore_verified_state", "scope": ["integrity_check", "foreign_key_check"] }, 330 { "id": "sqlite_free_space", "required": true, "deadline_ms": 2000, "remediation_code": "free_state_disk_space", "scope": ["state_filesystem_capacity", "minimum_free_bytes"] }, 331 { "id": "identity_binding", "required": true, "deadline_ms": 2000, "remediation_code": "restore_identity_binding", "scope": ["envelope_contract", "credential_reference", "public_identity"] }, 332 { "id": "signer_provider", "required": true, "deadline_ms": 15000, "remediation_code": "repair_signer_provider", "scope": ["capability", "contract_version", "identity", "correlation", "deadline"] }, 333 { "id": "admin_bind_policy", "required": true, "deadline_ms": 2000, "remediation_code": "correct_admin_bind_policy", "scope": ["unix_socket_path", "socket_mode", "peer_authorization"] }, 334 { "id": "operations_bind_policy", "required": true, "deadline_ms": 2000, "remediation_code": "correct_operations_bind_policy", "scope": ["enabled_posture", "listen_address", "bind_policy"] }, 335 { "id": "network_policy", "required": true, "deadline_ms": 2000, "remediation_code": "correct_network_policy", "scope": ["dns_policy", "tls_policy", "relay_url_policy"] }, 336 { "id": "required_relays", "required": true, "deadline_ms": 15000, "remediation_code": "restore_required_relays", "scope": ["required_read_relays", "required_write_relays", "connect_deadline"] }, 337 { "id": "outbox_invariants", "required": true, "deadline_ms": 5000, "remediation_code": "repair_outbox_state", "scope": ["claim_invariants", "retry_state", "exact_response_bytes"] }, 338 { "id": "clock_skew", "required": false, "deadline_ms": 5000, "remediation_code": "correct_clock", "scope": ["wall_clock_skew"] } 339 ] 340 }, 341 "exit_codes": [ 342 { "code": 0, "name": "success", "meaning": "successful command or completed graceful first-signal shutdown" }, 343 { "code": 1, "name": "unexpected_internal", "meaning": "unexpected invariant, critical task, or internal failure" }, 344 { "code": 2, "name": "input_or_configuration", "meaning": "CLI, config, validation, or unsupported contract input" }, 345 { "code": 3, "name": "service_or_dependency_unavailable", "meaning": "daemon, required provider, relay, source, or local dependency unavailable" }, 346 { "code": 4, "name": "state_or_identity_unavailable", "meaning": "state, schema, lock, credential, or identity unavailable" }, 347 { "code": 5, "name": "operation_rejected_or_conflict", "meaning": "authorization rejection, idempotency conflict, stale generation, or domain conflict" }, 348 { "code": 6, "name": "doctor_required_check_failed", "meaning": "one or more required doctor checks failed or timed out" } 349 ], 350 "tcp_operations": { 351 "routes": [ 352 { "method": "GET", "path": "/livez", "source": "cached_supervisor_state" }, 353 { "method": "GET", "path": "/readyz", "source": "cached_readiness_state" }, 354 { "method": "GET", "path": "/metrics", "source": "cached_bounded_metrics_snapshot" } 355 ], 356 "active_probe_per_request": false, 357 "additional_routes": false 358 } 359 }