farmers_market.example.json (4166B)
1 { 2 "tenant_id": "farmers-market", 3 "tenant_schema": "farmers_market", 4 "host": "relay.radroots.test", 5 "relay_url": "wss://relay.radroots.test", 6 "inactive": false, 7 "info": { 8 "name": "Radroots Farmers Market", 9 "description": "Tangle virtual relay tenant for the Radroots farmers market", 10 "contact": "mailto:operators@radroots.test", 11 "icon": "https://radroots.test/icon.png" 12 }, 13 "pocket": { 14 "data_directory": "runtime/tenants/farmers_market/pocket", 15 "sync_policy": "flush_on_shutdown" 16 }, 17 "pocket_query": { 18 "allow_scraping": false, 19 "allow_scrape_if_limited_to": 100, 20 "allow_scrape_if_max_seconds": 3600 21 }, 22 "groups": { 23 "enabled": true, 24 "canonical_relay_url": "wss://relay.radroots.test", 25 "relay_secret": "7777777777777777777777777777777777777777777777777777777777777777", 26 "owner_pubkeys": [ 27 "0000000000000000000000000000000000000000000000000000000000000001" 28 ], 29 "admin_pubkeys": [ 30 "0000000000000000000000000000000000000000000000000000000000000002" 31 ], 32 "policy": { 33 "public_join": false, 34 "invites_enabled": false 35 }, 36 "limits": { 37 "max_group_id_bytes": 128, 38 "max_group_tags_per_event": 8, 39 "max_supported_kinds": 512, 40 "max_member_list_pubkeys": 100000, 41 "max_outbox_replay_batch": 1000 42 } 43 }, 44 "auth": { 45 "challenge_ttl_seconds": 300, 46 "created_at_skew_seconds": 600 47 }, 48 "limits": { 49 "max_message_length": 1048576, 50 "max_subid_length": 64, 51 "max_subscriptions_per_connection": 64, 52 "max_filters_per_request": 10, 53 "max_tag_values_per_filter": 100, 54 "max_query_complexity": 2048, 55 "max_limit": 500, 56 "default_limit": 100, 57 "max_event_tags": 200, 58 "max_content_length": 65536, 59 "broadcast_channel_capacity": 4096, 60 "per_connection_outbound_queue": 256 61 }, 62 "rate_limits": { 63 "auth": { 64 "per_ip": { 65 "window_seconds": 60, 66 "max_hits": 120 67 }, 68 "per_pubkey": { 69 "window_seconds": 60, 70 "max_hits": 30 71 }, 72 "failures": { 73 "window_seconds": 300, 74 "max_hits": 5 75 }, 76 "failures_per_ip": { 77 "window_seconds": 300, 78 "max_hits": 20 79 } 80 }, 81 "event": { 82 "per_ip": { 83 "window_seconds": 60, 84 "max_hits": 600 85 }, 86 "per_pubkey": { 87 "window_seconds": 60, 88 "max_hits": 120 89 }, 90 "per_kind": { 91 "window_seconds": 60, 92 "max_hits": 1000 93 } 94 }, 95 "group": { 96 "write_per_ip": { 97 "window_seconds": 60, 98 "max_hits": 300 99 }, 100 "write_per_pubkey": { 101 "window_seconds": 60, 102 "max_hits": 60 103 }, 104 "write_per_group": { 105 "window_seconds": 60, 106 "max_hits": 90 107 }, 108 "write_per_kind": { 109 "window_seconds": 60, 110 "max_hits": 300 111 }, 112 "join_flow": { 113 "window_seconds": 300, 114 "max_hits": 10 115 }, 116 "join_flow_per_ip": { 117 "window_seconds": 300, 118 "max_hits": 30 119 } 120 }, 121 "req": { 122 "per_ip": { 123 "window_seconds": 60, 124 "max_hits": 600 125 }, 126 "per_connection": { 127 "window_seconds": 60, 128 "max_hits": 120 129 }, 130 "per_pubkey": { 131 "window_seconds": 60, 132 "max_hits": 240 133 }, 134 "per_group": { 135 "window_seconds": 60, 136 "max_hits": 240 137 }, 138 "per_kind": { 139 "window_seconds": 60, 140 "max_hits": 500 141 }, 142 "broad": { 143 "window_seconds": 60, 144 "max_hits": 30 145 } 146 }, 147 "count": { 148 "per_ip": { 149 "window_seconds": 60, 150 "max_hits": 300 151 }, 152 "per_connection": { 153 "window_seconds": 60, 154 "max_hits": 60 155 }, 156 "per_pubkey": { 157 "window_seconds": 60, 158 "max_hits": 120 159 }, 160 "per_group": { 161 "window_seconds": 60, 162 "max_hits": 120 163 }, 164 "per_kind": { 165 "window_seconds": 60, 166 "max_hits": 240 167 }, 168 "broad": { 169 "window_seconds": 60, 170 "max_hits": 20 171 } 172 } 173 }, 174 "backup_export": { 175 "backup_enabled": true, 176 "export_enabled": true 177 } 178 }