tangle


git clone https://radroots.dev/git/tangle.git
Log | Files | Refs | README | LICENSE

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 }