Files
zeekay 51460827d4 Merge the forge's lux/universe into GitHub's, the one main from here
The two mains shared no history, so this is a per-file three-way merge:
for each file the 65 forge-only commits touched (by patch-id), the base is
the newest version both histories held. 105 files merged or took one side
cleanly, 48 were already identical, and the 45 true conflicts and 31
modify/delete pairs were resolved by what runs on the cluster:

- The forge wins where it is live: explorer 1.5.56 (digest 45db11ff) and
  its archive readers, explore-fe-hanzo's ConfigMap env (AI coin,
  /v1/indexer/hanzo, /v1/chain/hanzo/rpc), exchange-api reading
  luxd-archive, and explore-fe-{lux,zoo}-testnet, pinned to what they run
  (v2.8.5-lux / v2.8.4-lux).
- GitHub wins where it is live: explore-fe-lux v2.8.5-lux, explore-fe-zoo
  v2.8.4-lux, bankd v1.0.18, lux-build's routes.
- The forge's retirement of workloads that run nowhere stands: lux-mainnet
  dex, lux-hb2, lux-market, traffic, wallet-web; the lux-testnet frontends,
  indexer, exchange and gateways; lux-operator. deploy/lux-testnet/luxd.yaml
  stays, since roll_luxd.sh reads it.
- GitHub's deletions stand: lux-finance and lux-financial (static sites
  now), the k8s/ operator manifests, .hanzo/workflows/cicd.yml.
- Paths are /v1/chain/C/rpc where the forge had written /v1/chain/c. All
  four spellings answer; this one is the documented form. The forge's
  /{network}/v1 doc lines are dropped: a network is a host, and the prefix
  404s.

Dry-run against the running objects (server-side, as CD applies), the
merged explorer shows no change where GitHub's showed 152 lines, and no
other live workload moves further from what runs. Every deploy/*/*.yaml
renders with charts/app; price.yaml, which failed on GitHub, now renders.

Claude-Session: https://claude.ai/code/session_01TzirYkGmD88w4GipqivUtV
2026-09-23 20:20:03 -07:00

1047 lines
32 KiB
JSON

{
"cache_ttl": "0s",
"endpoints": [
{
"endpoint": "/v1/chain/c/rpc",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/c/rpc"
}
]
},
{
"endpoint": "/v1/chain/c/ws",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/c/ws"
}
]
},
{
"endpoint": "/v1/chain/x",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/x"
}
]
},
{
"endpoint": "/v1/chain/p",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/p"
}
]
},
{
"endpoint": "/v1/chain/M",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/M"
}
]
},
{
"endpoint": "/v1/chain/K",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/K"
}
]
},
{
"endpoint": "/v1/P",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/p"
}
]
},
{
"endpoint": "/v1/X",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/x"
}
]
},
{
"endpoint": "/v1/info",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/info"
}
],
"extra_config": {
"validation/cel": [
{
"check_expr": "req_body.matches('.*\"info\\\\.getNetworkID\".*') || req_body.matches('.*\"info\\\\.getNetworkName\".*') || req_body.matches('.*\"info\\\\.getBlockchainID\".*') || req_body.matches('.*\"info\\\\.isBootstrapped\".*')",
"message": "Method not allowed: only info.getNetworkID, info.getNetworkName, info.getBlockchainID, and info.isBootstrapped are permitted"
}
],
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/health",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 30,
"client_max_rate": 5,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/health"
}
]
},
{
"endpoint": "/v1/health/ops/liveness",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 30,
"client_max_rate": 5,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/health/ops/liveness"
}
]
},
{
"endpoint": "/api/indexer/indexer-c",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-c-indexer.lux-mainnet.svc:4000"
],
"url_pattern": "/"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/indexer/indexer-zoo",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-zoo-indexer.lux-mainnet.svc:4000"
],
"url_pattern": "/"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/indexer/indexer-hanzo",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-hanzo-indexer.lux-mainnet.svc:4000"
],
"url_pattern": "/"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/indexer/indexer-spc",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-spc-indexer.lux-mainnet.svc:4000"
],
"url_pattern": "/"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/indexer/indexer-pars",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-pars-indexer.lux-mainnet.svc:4000"
],
"url_pattern": "/"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/zoo/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/zoo/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "60s",
"url_pattern": "/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/ws"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/hanzo/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/hanzo/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "60s",
"url_pattern": "/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/ws"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/spc/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/spc/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "60s",
"url_pattern": "/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/ws"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/pars/rpc",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "30s",
"url_pattern": "/v1/chain/pars/rpc"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip",
"capacity": 200
}
}
},
{
"endpoint": "/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"timeout": "60s",
"url_pattern": "/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/ws"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/Q/rpc",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"capacity": 100,
"max_rate": 50,
"client_max_rate": 20,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/Q/rpc",
"timeout": "30s"
}
]
},
{
"endpoint": "/v1/chain/Q/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/Q/ws",
"timeout": "60s"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/Z/rpc",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"capacity": 100,
"max_rate": 50,
"client_max_rate": 20,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/Z/rpc",
"timeout": "30s"
}
]
},
{
"endpoint": "/v1/chain/Z/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/Z/ws",
"timeout": "60s"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/T/rpc",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"capacity": 100,
"max_rate": 50,
"client_max_rate": 20,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/T/rpc",
"timeout": "30s"
}
]
},
{
"endpoint": "/v1/chain/T/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/T/ws",
"timeout": "60s"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/A/rpc",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"capacity": 100,
"max_rate": 50,
"client_max_rate": 20,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/A/rpc",
"timeout": "30s"
}
]
},
{
"endpoint": "/v1/chain/A/ws",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/A/ws",
"timeout": "60s"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/v1/chain/D/rpc",
"method": "POST",
"output_encoding": "no-op",
"extra_config": {
"qos/ratelimit/router": {
"capacity": 200,
"max_rate": 100,
"client_max_rate": 20,
"strategy": "ip"
}
},
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/chain/D/rpc",
"timeout": "30s"
}
]
},
{
"endpoint": "/api/chains",
"method": "POST",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://luxd-headless.lux-mainnet.svc:9630"
],
"url_pattern": "/v1/info"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/qchain/health",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-qchain.lux-mainnet.svc:4300"
],
"url_pattern": "/health"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 30,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/qchain/stats",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-qchain.lux-mainnet.svc:4300"
],
"url_pattern": "/api/v2/stats"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/zchain/health",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-zchain.lux-mainnet.svc:4400"
],
"url_pattern": "/health"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 30,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/zchain/stats",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-zchain.lux-mainnet.svc:4400"
],
"url_pattern": "/api/v2/stats"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/tchain/health",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-tchain.lux-mainnet.svc:4700"
],
"url_pattern": "/health"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 30,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/tchain/stats",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-tchain.lux-mainnet.svc:4700"
],
"url_pattern": "/api/v2/stats"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/achain/health",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-achain.lux-mainnet.svc:4500"
],
"url_pattern": "/health"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 30,
"client_max_rate": 5,
"strategy": "ip"
}
}
},
{
"endpoint": "/api/v2/dag/achain/stats",
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"http://indexer-achain.lux-mainnet.svc:4500"
],
"url_pattern": "/api/v2/stats"
}
],
"extra_config": {
"qos/ratelimit/router": {
"max_rate": 50,
"client_max_rate": 10,
"strategy": "ip"
}
}
}
],
"extra_config": {
"router": {
"return_error_msg": false
},
"security/cors": {
"allow_headers": [
"Content-Type",
"Authorization"
],
"allow_methods": [
"GET",
"POST",
"OPTIONS"
],
"allow_origins": [
"https://*.lux.network",
"https://*.lux.exchange",
"https://lux.network",
"https://lux.exchange",
"https://lux.market"
],
"expose_headers": [
"Content-Length"
],
"max_age": "12h"
},
"security/http": {
"allowed_hosts": [],
"browser_xss_filter": true,
"content_type_nosniff": true,
"custom_frame_options_value": "DENY",
"force_sts_header": true,
"sts_include_subdomains": true,
"sts_seconds": 31536000
},
"modifier/response-headers-blacklist": {
"blacklist": [
"X-Gateway-Completed",
"node-id",
"Node-Id",
"Server"
]
},
"qos/ratelimit/service": {
"max_rate": 5000,
"capacity": 5000
}
},
"name": "Lux Gateway - api.lux.network",
"port": 8080,
"timeout": "30s",
"version": 3
}