config.v1.example.toml (2864B)
1 schema = "radroots.rhi.config" 2 schema_version = 1 3 4 [service] 5 shutdown_grace_ms = 30000 6 7 [logging] 8 level = "info" 9 format = "json" 10 11 [operations] 12 enabled = false 13 14 [database] 15 busy_timeout_ms = 5000 16 max_connections = 8 17 minimum_free_bytes = 268435456 18 19 [identity.service] 20 provider = "encrypted_file" 21 envelope_path = "/var/lib/radroots/services/rhi/default/secrets/service.identity.ncrypt" 22 credential_reference = "service_wrapping_key" 23 expected_public_key = "2222222222222222222222222222222222222222222222222222222222222222" 24 25 [[relays]] 26 id = "relay-primary" 27 url = "wss://relay.example.com/" 28 read = true 29 write = true 30 required = true 31 authentication = "required" 32 33 [[relays]] 34 id = "relay-secondary" 35 url = "wss://relay-secondary.example.com/" 36 read = false 37 write = true 38 required = false 39 authentication = "none" 40 41 [network] 42 connect_deadline_ms = 10000 43 dns_answer_limit = 16 44 45 [evidence] 46 contract = "radroots.rhi.evidence-policy" 47 contract_version = 1 48 policy_id = "production-primary" 49 50 [[evidence.sources]] 51 source_id = "trade-primary" 52 kind = "nostr_relay" 53 relay_id = "relay-primary" 54 required = true 55 selector = "trade_mutation_lineage_v1" 56 deadline_ms = 10000 57 lookback_seconds = 86400 58 overlap_seconds = 300 59 60 [reconciliation] 61 concurrency = 8 62 queue_capacity = 4096 63 lease_ms = 30000 64 lease_renewal_ms = 10000 65 max_attempts = 10 66 initial_backoff_ms = 250 67 maximum_backoff_ms = 30000 68 attempt_deadline_ms = 30000 69 70 [attestation] 71 contract = "radroots.rhi.evidence_attestation.v1" 72 contract_version = 1 73 method = "signed_evidence_snapshot" 74 reducer_contract = "radroots.trade.reducer.v1" 75 reducer_contract_version = 1 76 77 [publication] 78 mode = "required" 79 target_relay_ids = ["relay-primary", "relay-secondary"] 80 81 [publication.retry] 82 max_attempts = 10 83 initial_backoff_ms = 250 84 maximum_backoff_ms = 30000 85 attempt_deadline_ms = 15000 86 87 [presence] 88 enabled = true 89 profile = true 90 application_handler = true 91 target_relay_ids = ["relay-primary", "relay-secondary"] 92 93 [resource_limits.admin] 94 header_count = 32 95 header_bytes = 16384 96 request_body_utf8_bytes = 65536 97 response_body_utf8_bytes = 1048576 98 concurrent_connections = 32 99 request_deadline_ms = 15000 100 idle_timeout_ms = 30000 101 query_items = 100 102 103 [resource_limits.events] 104 wire_bytes = 262144 105 content_bytes = 131072 106 tag_count = 1024 107 tag_total_elements = 4096 108 tag_element_bytes = 4096 109 tag_total_bytes = 131072 110 111 [resource_limits.source_results] 112 events = 4096 113 bytes = 8388608 114 115 [resource_limits.queues] 116 ingress = 1024 117 reconciliation = 4096 118 publication = 4096 119 presence = 64 120 121 [resource_limits.metrics] 122 descriptors = 64 123 samples = 512 124 labels_per_sample = 8 125 render_utf8_bytes = 1048576 126 127 [resource_limits.runtime] 128 worker_threads = 4 129 blocking_threads = 8 130 131 [retention] 132 duplicate_observations_ms = 604800000 133 completed_jobs_ms = 2592000000 134 terminal_publication_attempts_ms = 2592000000 135 terminal_presence_attempts_ms = 2592000000 136 operation_dedup_ms = 604800000 137 audit_ms = 31536000000