Files
zeekay 3d1efd30f4 Drop the hanzo.team /api/ route
The catch-all already carries it; the gate fails if it returns.

Claude-Session: https://claude.ai/code/session_011i2AG9nwpiKUCVxAdDzYuU
2026-09-29 19:44:10 -07:00

237 lines
7.7 KiB
YAML

# Gateway routing configuration.
# Loaded from KMS at startup (KMS_ROUTES_PATH), falls back to this file.
# Hot-reloaded when KMS secret changes (via annotation secrets.lux.network/auto-reload).
#
# Pattern:
# host:
# paths:
# - prefix: /v1/
# backend: http://service.namespace.svc.cluster.local:port
# - prefix: /
# backend: http://static.namespace.svc.cluster.local:80
#
# redirect:
# old.domain.com: https://new.domain.com
# --- Redirects (301 permanent) ---
redirects:
app.hanzo.ai: https://hanzo.app
app.hanzo.bot: https://hanzo.bot
docs.hanzo.bot: https://hanzo.bot/docs
skills.hanzo.bot: https://hanzo.bot/skills
market.hanzo.bot: https://hanzo.bot/market
hub.hanzo.bot: https://hanzo.bot/hub
gw.hanzo.bot: https://hanzo.bot/gw
dev.hanzo.team: https://hanzo.team
# Legacy console hosts → the one canonical Cloud Console.
console.hanzo.ai: https://cloud.hanzo.ai
console2.hanzo.ai: https://cloud.hanzo.ai
# Legacy API hosts → the ONE canonical gated API host (no .cloud., no cloud-api.).
cloud-api.hanzo.ai: https://api.hanzo.ai
api.cloud.hanzo.ai: https://api.hanzo.ai
api.commerce.hanzo.ai: https://commerce.hanzo.ai/v1
admin.commerce.hanzo.ai: https://commerce.hanzo.ai/admin
store.commerce.hanzo.ai: https://commerce.hanzo.ai/store
api.platform.hanzo.ai: https://platform.hanzo.ai/v1
api.zen.hanzo.ai: https://zen.hanzo.ai/v1
vm.hanzo.ai: https://visor.hanzo.ai
ztc.hanzo.ai: https://zt.hanzo.ai
orm.hanzo.ai: https://hanzo.app
studio.hanzo.ai: https://hanzo.app
# --- Core domains (static + app on same origin) ---
routes:
hanzo.app:
- prefix: /v1/
backend: http://hanzo-app.hanzo.svc.cluster.local:8080
- prefix: /
backend: http://hanzo-app.hanzo.svc.cluster.local:80
hanzo.bot:
- prefix: /api/
backend: http://hanzo-playground.hanzo.svc.cluster.local:8080
- prefix: /ws/
backend: http://hanzo-playground.hanzo.svc.cluster.local:8080
- prefix: /docs/
backend: http://bot-docs.hanzo.svc.cluster.local:80
- prefix: /skills/
backend: http://bot-docs.hanzo.svc.cluster.local:80
- prefix: /market/
backend: http://hanzo-market-site.hanzo.svc.cluster.local:80
- prefix: /hub/api/
backend: http://bot-hub.hanzo.svc.cluster.local:3001
- prefix: /hub/
backend: http://bot-hub.hanzo.svc.cluster.local:80
- prefix: /gw/
backend: http://bot-gateway.hanzo.svc.cluster.local:80
- prefix: /
backend: http://hanzo-playground.hanzo.svc.cluster.local:8080
hanzo.team:
- prefix: /
backend: http://team-nginx.team.svc.cluster.local:80
hanzo.id:
- prefix: /
backend: http://hanzo-login.hanzo.svc.cluster.local:80
hanzo.chat:
- prefix: /
backend: http://chat.hanzo.svc.cluster.local:80
base.hanzo.ai:
- prefix: /v1/
backend: http://base.hanzo.svc.cluster.local:8090
- prefix: /_/
backend: http://base.hanzo.svc.cluster.local:8090
- prefix: /docs/
backend: http://docs-landing.hanzo.svc.cluster.local:3000
- prefix: /
backend: http://base-site.hanzo.svc.cluster.local:80
# --- hanzo.ai services ---
# admin.hanzo.ai → the same console app (admin surface is host-resolved inside).
admin.hanzo.ai:
- prefix: /v1/
backend: http://cloud.hanzo.svc.cluster.local:8000
- prefix: /
backend: http://console.hanzo.svc.cluster.local:4000
platform.hanzo.ai:
- prefix: /sync/
backend: http://sync.hanzo.svc.cluster.local:4000
- prefix: /socket.io/
backend: http://platform.hanzo.svc.cluster.local:4000
- prefix: /v1/
backend: http://platform.hanzo.svc.cluster.local:4000
- prefix: /
backend: http://paas-ui.hanzo.svc.cluster.local:80
llm.hanzo.ai:
- prefix: /v1/
backend: http://cloud.hanzo.svc.cluster.local:8000
- prefix: /health
backend: http://cloud.hanzo.svc.cluster.local:8000
- prefix: /docs/
backend: http://docs-landing.hanzo.svc.cluster.local:3000
- prefix: /
backend: http://cloud.hanzo.svc.cluster.local:80
# Canonical Cloud Console: console SPA + the gated cloud /v1 on one origin.
# /v1 → cloud passes through this gateway (global IAM-JWT + rate-limit),
# so the SPA's same-origin /v1 client is gated without any cross-origin/CORS.
# Everything else (the Next app + its /ai,/paas,/keys,/admin server routes) →
# console. (Order matters: /v1 before / — first prefix match wins.)
cloud.hanzo.ai:
- prefix: /v1/
backend: http://cloud.hanzo.svc.cluster.local:8000
- prefix: /
backend: http://console.hanzo.svc.cluster.local:4000
chat.hanzo.ai:
- prefix: /
backend: http://chat.hanzo.svc.cluster.local:80
flow.hanzo.ai:
- prefix: /
backend: http://flow.hanzo.svc.cluster.local:80
commerce.hanzo.ai:
- prefix: /v1/
backend: http://commerce.hanzo.svc.cluster.local:8001
- prefix: /admin/
backend: http://commerce-admin.hanzo.svc.cluster.local:80
- prefix: /store/
backend: http://commerce-store.hanzo.svc.cluster.local:80
- prefix: /
backend: http://commerce-site.hanzo.svc.cluster.local:80
zen.hanzo.ai:
- prefix: /v1/
backend: http://zen-gateway.zen.svc.cluster.local:4100
- prefix: /health
backend: http://zen-gateway.zen.svc.cluster.local:4100
- prefix: /
backend: http://zen-landing.zen.svc.cluster.local:80
insights.hanzo.ai:
- prefix: /capture/
backend: http://insights-capture.hanzo.svc.cluster.local:3000
- prefix: /batch/
backend: http://insights-capture.hanzo.svc.cluster.local:3000
- prefix: /e/
backend: http://insights-capture.hanzo.svc.cluster.local:3000
- prefix: /
backend: http://insights-web.hanzo.svc.cluster.local:80
docs.hanzo.ai:
- prefix: /
backend: http://docs-landing.hanzo.svc.cluster.local:3000
# --- Infrastructure (API-only) ---
iam.hanzo.ai:
- prefix: /
backend: http://iam.hanzo.svc.cluster.local:80
kms.hanzo.ai:
- prefix: /
backend: http://kms.hanzo.svc.cluster.local:80
s3.hanzo.ai:
- prefix: /
backend: http://s3.hanzo.svc.cluster.local:9000
s3-api.hanzo.ai:
- prefix: /
backend: http://s3.hanzo.svc.cluster.local:9000
mpc.hanzo.ai:
- prefix: /
backend: http://hanzo-mpc.hanzo.svc.cluster.local:8080
status.hanzo.ai:
- prefix: /
backend: http://status.hanzo.svc.cluster.local:80
visor.hanzo.ai:
- prefix: /
backend: http://visor.hanzo.svc.cluster.local:19000
analytics.hanzo.ai:
- prefix: /
backend: http://analytics.hanzo.svc.cluster.local:80
billing.hanzo.ai:
- prefix: /
backend: http://billing.hanzo.svc.cluster.local:80
pricing.hanzo.ai:
- prefix: /
backend: http://pricing.hanzo.svc.cluster.local:8080
# --- Partner IAM (white-label) ---
pars.id:
- prefix: /
backend: http://hanzo-login.hanzo.svc.cluster.local:80
lux.id:
- prefix: /
backend: http://hanzo-login.hanzo.svc.cluster.local:80
id.bootno.de:
- prefix: /
backend: http://iam.hanzo.svc.cluster.local:80
id.zoo.network:
- prefix: /
backend: http://iam.hanzo.svc.cluster.local:80
# --- Lux blockchain ---
api.lux.network:
- prefix: /
backend: http://luxd.lux-mainnet.svc.cluster.local:9650
rpc.lux.network:
- prefix: /
backend: http://luxd.lux-mainnet.svc.cluster.local:9650
# --- ZeroTrust ---
zt.hanzo.ai:
- prefix: /
backend: http://hanzo-zt-console.hanzo-zt.svc.cluster.local:80
zt-api.hanzo.ai:
- prefix: /
backend: http://hanzo-zt-controller.hanzo-zt.svc.cluster.local:443
# --- Subdomain wildcard patterns ---
subdomains:
lux-test: http://luxd.lux-testnet.svc.cluster.local:9640
lux-dev: http://luxd.lux-devnet.svc.cluster.local:9650