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
1112 lines
30 KiB
YAML
1112 lines
30 KiB
YAML
# Gateway config for api.lux-test.network (namespace lux-testnet).
|
|
#
|
|
# 2026-07-26 — REAL CONTENT, no longer a placeholder. This file was previously
|
|
# a stub and was excluded from kustomization.yaml because applying it would
|
|
# have destroyed live routing. It is now the verbatim live config, so git is
|
|
# the durable source of truth and `kubectl diff` is clean.
|
|
#
|
|
# Two repairs are baked in (both verified against api.lux-test.network):
|
|
#
|
|
# 1. Backend host is the READY-GATED ClusterIP Service `luxd`, NOT the
|
|
# headless `luxd-headless`. luxd-headless sets publishNotReadyAddresses:true
|
|
# (it must — the per-pod DNS names luxd-N.luxd-headless:9641 are how the
|
|
# startup gate and --bootstrap-nodes find peers, so a not-ready pod has to
|
|
# stay resolvable). That means DNS round-robin over the headless name hands
|
|
# out wedged pods, and a node whose C-Chain failed to initialise answers
|
|
# 404. Measured 11/20 success on the public endpoint. Routing through the
|
|
# ClusterIP Service instead means kube-proxy only ever picks endpoints that
|
|
# pass the readiness probe. Measured 30/30 after.
|
|
#
|
|
# Peer discovery and request serving are different concerns and now use
|
|
# different Services: headless = identity/discovery, ClusterIP = serving.
|
|
#
|
|
# 2. Backend url_pattern for info/health is /v1/*, not /ext/*. Six endpoints
|
|
# (/v1/info, /v1/health, /v1/health/ops/liveness and their /v1 twins) all
|
|
# proxied to /ext/* on the node, which luxd no longer serves — so
|
|
# https://api.lux-test.network/v1/info returned 404 while the very same
|
|
# call against the pod returned 200.
|
|
#
|
|
# To regenerate from the cluster:
|
|
# kubectl --context=lux-k8s -n lux-testnet get cm \
|
|
# api-gateway-gateway-config -o go-template='{{index .data "gateway.json"}}'
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: api-gateway-gateway-config
|
|
namespace: lux-testnet
|
|
data:
|
|
gateway.json: |-
|
|
{
|
|
"$schema": "https://www.krakend.io/schema/v2.7/krakend.json",
|
|
"cache_ttl": "0s",
|
|
"endpoints": [
|
|
{
|
|
"endpoint": "/api/indexer/indexer-c",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-c/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-c/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-c/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-c/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-hanzo",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-hanzo/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-hanzo/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-hanzo/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-hanzo/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-zoo",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-zoo/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-zoo/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-zoo/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-zoo/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-pars",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-pars/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-pars/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-pars/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-pars/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-spc",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-spc/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-spc/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-spc/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/api/indexer/indexer-spc/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/P",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/P"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/X",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/X"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/info",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/info"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/health",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/health"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/health/ops/liveness",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/health/ops/liveness"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-c",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-c/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-c/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-c/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-c/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/cchain/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-hanzo",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-hanzo/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-hanzo/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-hanzo/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-hanzo/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/hanzo/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-zoo",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-zoo/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-zoo/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-zoo/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-zoo/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/zoo/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-pars",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-pars/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-pars/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-pars/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-pars/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/pars/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-spc",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-spc/v1",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-spc/v1/{r1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc/{r1}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-spc/v1/{r1}/{r2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc/{r1}/{r2}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/indexer/indexer-spc/v1/{r1}/{r2}/{r3}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"input_query_strings": [
|
|
"*"
|
|
],
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://explorer.lux-testnet.svc:80"
|
|
],
|
|
"url_pattern": "/v1/indexer/spc/{r1}/{r2}/{r3}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/{chain}",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/{chain}",
|
|
"timeout": "60s"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"capacity": 200,
|
|
"max_rate": 100
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/{chain}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/{chain}",
|
|
"timeout": "60s"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"capacity": 200,
|
|
"max_rate": 100
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/{chain}/{p1}",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/{chain}/{p1}",
|
|
"timeout": "60s"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"capacity": 200,
|
|
"max_rate": 100
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/{chain}/{p1}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/{chain}/{p1}",
|
|
"timeout": "60s"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"capacity": 200,
|
|
"max_rate": 100
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/{chain}/{p1}/{p2}",
|
|
"method": "POST",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/{chain}/{p1}/{p2}",
|
|
"timeout": "60s"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"capacity": 200,
|
|
"max_rate": 100
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"endpoint": "/v1/chain/{chain}/{p1}/{p2}",
|
|
"method": "GET",
|
|
"output_encoding": "no-op",
|
|
"backend": [
|
|
{
|
|
"encoding": "no-op",
|
|
"host": [
|
|
"http://luxd-rpc.lux-testnet.svc:9640"
|
|
],
|
|
"url_pattern": "/v1/chain/{chain}/{p1}/{p2}",
|
|
"timeout": "60s"
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"qos/ratelimit/router": {
|
|
"capacity": 200,
|
|
"max_rate": 100
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"extra_config": {
|
|
"security/cors": {
|
|
"allow_headers": [
|
|
"Content-Type",
|
|
"Authorization"
|
|
],
|
|
"allow_methods": [
|
|
"GET",
|
|
"POST",
|
|
"OPTIONS"
|
|
],
|
|
"allow_origins": [
|
|
"*"
|
|
],
|
|
"expose_headers": [
|
|
"Content-Length"
|
|
],
|
|
"max_age": "12h"
|
|
}
|
|
},
|
|
"name": "Lux Gateway - api.lux-test.network",
|
|
"port": 8080,
|
|
"timeout": "30s",
|
|
"version": 3
|
|
} |