Files
gateway/configs/hanzo/ingress.json
zeekay 387fe26bcc feat(ingress): IAM-gate hosts via shared iamauth pkg; add goproxy.hanzo.ai
Extract edge IAM validation — JWKS cache, JWT validation, token extraction
(Bearer + HTTP Basic password for go/.netrc + cookie), and the identity-header
trust boundary — into package iamauth, the single implementation shared by the
gin/KrakenD gateway middleware and the lightweight cmd/ingress host router. The
gateway middleware delegates via auth_compat.go; behavior unchanged, security
tests intact.

cmd/ingress gains optional per-host "auth": true — validates a Hanzo IAM token,
strips client identity headers, injects X-User-*, and drops the credential
before proxying. Wire goproxy.hanzo.ai (Athens module proxy) as the first
IAM-gated host; declare AUTH_* on the hanzo-ingress Deployment.

iamauth has unit tests (extraction precedence, strip⊇mint contract, identity
injection). go.sum gains the pinned go-jose/v4 v4.0.5 hash (completion, no bump).
2026-06-17 10:25:52 -07:00

995 lines
21 KiB
JSON

{
"listen": ":8080",
"health_path": "/healthz",
"routes": [
{
"host": "goproxy.hanzo.ai",
"auth": true,
"backends": [
{
"path": "/",
"url": "http://goproxy.hanzo.svc.cluster.local:3000"
}
]
},
{
"host": "ad.nexus",
"backends": [
{
"path": "/",
"url": "http://web.adnexus.svc.cluster.local:80"
}
]
},
{
"host": "adx.ad.nexus",
"backends": [
{
"path": "/",
"url": "http://adx.adnexus.svc.cluster.local:8080"
}
]
},
{
"host": "ai.ad.nexus",
"backends": [
{
"path": "/",
"url": "http://api-ai.adnexus.svc.cluster.local:8083"
}
]
},
{
"host": "analytics.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://analytics.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "api-explore-dev.lux.network",
"backends": [
{
"path": "/",
"url": "http://blockscout-backend-devnet.lux-explorer.svc.cluster.local:4000"
}
]
},
{
"host": "api-explore-test.lux.network",
"backends": [
{
"path": "/",
"url": "http://blockscout-backend-testnet.lux-explorer.svc.cluster.local:4000"
}
]
},
{
"host": "api-explore.lux.network",
"backends": [
{
"path": "/",
"url": "http://blockscout-backend-mainnet.lux-explorer.svc.cluster.local:4000"
}
]
},
{
"host": "api.bootno.de",
"backends": [
{
"path": "/",
"url": "http://bootnode-api.bootnode.svc.cluster.local:80"
}
]
},
{
"host": "api.cloud.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://cloud-api.hanzo.svc.cluster.local:8000"
}
]
},
{
"host": "api.cloud.lux.network",
"backends": [
{
"path": "/",
"url": "http://bootnode-api.bootnode.svc.cluster.local:80"
}
]
},
{
"host": "api.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://gateway.hanzo.svc.cluster.local:8080"
}
]
},
{
"host": "s3-api.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://s3.hanzo.svc.cluster.local:9000"
}
]
},
{
"host": "api.platform.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://platform.hanzo.svc.cluster.local:4000"
}
]
},
{
"host": "api.web3.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://bootnode-api.bootnode.svc.cluster.local:80"
}
]
},
{
"host": "api.zen.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://zen-gateway.zen.svc.cluster.local:4100"
}
]
},
{
"host": "app.flow.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://flow.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "auth.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "auth.lux.network",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "auth.pars.ai",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "auth.zoo.ngo",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "auto.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://auto.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "billing.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://billing.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "bootno.de",
"backends": [
{
"path": "/",
"url": "http://bootnode-web.bootnode.svc.cluster.local:3001"
}
]
},
{
"host": "bot.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://bot-gateway.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "bridge-api.lux.network",
"backends": [
{
"path": "/",
"url": "http://bridge-server.lux-bridge.svc.cluster.local:3000"
}
]
},
{
"host": "bridge.lux.network",
"backends": [
{
"path": "/",
"url": "http://bridge-ui.lux-bridge.svc.cluster.local:80"
}
]
},
{
"host": "chat.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://chat.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "cloud-api.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://cloud-api.hanzo.svc.cluster.local:8000"
}
]
},
{
"host": "cloud.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://cloud.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "cloud.lux.network",
"backends": [
{
"path": "/",
"url": "http://lux-cloud-web.bootnode.svc.cluster.local:3001"
}
]
},
{
"host": "commerce.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://commerce.hanzo.svc.cluster.local:8001"
}
]
},
{
"host": "console.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://console.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "docs.ad.nexus",
"backends": [
{
"path": "/",
"url": "http://docs.adnexus.svc.cluster.local:80"
}
]
},
{
"host": "docs.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://minio.hanzo.svc.cluster.local:9001"
}
]
},
{
"host": "docs.hanzo.bot",
"backends": [
{
"path": "/",
"url": "http://bot-docs.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "docs.s3.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://minio.hanzo.svc.cluster.local:9001"
}
]
},
{
"host": "dsp.ad.nexus",
"backends": [
{
"path": "/openrtb2",
"url": "http://api-dsp.adnexus.svc.cluster.local:8081"
},
{
"path": "/openrtb3",
"url": "http://api-dsp.adnexus.svc.cluster.local:8081"
},
{
"path": "/health",
"url": "http://api-dsp.adnexus.svc.cluster.local:8081"
},
{
"path": "/exads",
"url": "http://api-dsp.adnexus.svc.cluster.local:8081"
},
{
"path": "/auth",
"url": "http://api-dsp.adnexus.svc.cluster.local:8081"
},
{
"path": "/api",
"url": "http://api-dsp.adnexus.svc.cluster.local:8081"
},
{
"path": "/",
"url": "http://dsp-ui.adnexus.svc.cluster.local:3000"
}
]
},
{
"host": "explore-dev.lux.network",
"backends": [
{
"path": "/",
"url": "http://blockscout-frontend-devnet.lux-explorer.svc.cluster.local:3000"
}
]
},
{
"host": "explore-test.lux.network",
"backends": [
{
"path": "/",
"url": "http://blockscout-frontend-testnet.lux-explorer.svc.cluster.local:3000"
}
]
},
{
"host": "explore.lux.network",
"backends": [
{
"path": "/",
"url": "http://blockscout-frontend-mainnet.lux-explorer.svc.cluster.local:3000"
}
]
},
{
"host": "explorer.devnet.lux.network",
"backends": [
{
"path": "/",
"url": "http://explorer-explorer.lux-devnet.svc.cluster.local:3000"
}
]
},
{
"host": "explorer.lux.network",
"backends": [
{
"path": "/",
"url": "http://explorer-explorer.lux-mainnet.svc.cluster.local:3000"
}
]
},
{
"host": "explorer.testnet.lux.network",
"backends": [
{
"path": "/",
"url": "http://explorer-explorer.lux-testnet.svc.cluster.local:3000"
}
]
},
{
"host": "flow.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://flow-site.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "gw.hanzo.bot",
"backends": [
{
"path": "/",
"url": "http://bot-gateway.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "hanzo.app",
"backends": [
{
"path": "/",
"url": "http://hanzo-app.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "hanzo.bot",
"backends": [
{
"path": "/",
"url": "http://bot-docs.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "hanzo.chat",
"backends": [
{
"path": "/",
"url": "http://chat.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "hanzo.id",
"backends": [
{
"path": "/",
"url": "http://hanzo-login.hanzo.svc.cluster.local:80"
},
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "s3.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://s3.hanzo.svc.cluster.local:9001"
}
]
},
{
"host": "hanzo.team",
"backends": [
{
"path": "/",
"url": "http://team-nginx.team.svc.cluster.local:80"
}
]
},
{
"host": "hub.hanzo.bot",
"backends": [
{
"path": "/health",
"url": "http://bot-hub.hanzo.svc.cluster.local:3001"
},
{
"path": "/api",
"url": "http://bot-hub.hanzo.svc.cluster.local:3001"
},
{
"path": "/",
"url": "http://bot-hub.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "iam.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "iam.lux.network",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "id.ad.nexus",
"backends": [
{
"path": "/",
"url": "http://login.adnexus.svc.cluster.local:80"
},
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "id.bootno.de",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "id.zoo.network",
"backends": [
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "insights.hanzo.ai",
"backends": [
{
"path": "/capture",
"url": "http://insights-capture.hanzo.svc.cluster.local:3000"
},
{
"path": "/batch",
"url": "http://insights-capture.hanzo.svc.cluster.local:3000"
},
{
"path": "/e",
"url": "http://insights-capture.hanzo.svc.cluster.local:3000"
},
{
"path": "/",
"url": "http://insights-web.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "kms.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://kms.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "kms.lux.network",
"backends": [
{
"path": "/",
"url": "http://kms-proxy.lux-system.svc.cluster.local:443"
}
]
},
{
"host": "llm.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://llm.hanzo.svc.cluster.local:4000"
}
]
},
{
"host": "lux.exchange",
"backends": [
{
"path": "/api/v1",
"url": "http://exchange-gateway.lux-exchange.svc.cluster.local:8080"
},
{
"path": "/",
"url": "http://exchange.lux-exchange.svc.cluster.local:3000"
}
]
},
{
"host": "lux.id",
"backends": [
{
"path": "/",
"url": "http://hanzo-login.hanzo.svc.cluster.local:80"
},
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "luxstat.us",
"backends": [
{
"path": "/",
"url": "http://status.lux-status.svc.cluster.local:3000"
}
]
},
{
"host": "market.hanzo.bot",
"backends": [
{
"path": "/",
"url": "http://hanzo-market-site.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "megastore.lol",
"backends": [
{
"path": "/api/commerce(/|$)(.*)",
"url": "http://commerce-proxy.adxyz.svc.cluster.local:8001"
},
{
"path": "/",
"url": "http://mega-store.adxyz.svc.cluster.local:80"
}
]
},
{
"host": "metrics.ad.nexus",
"backends": [
{
"path": "/",
"url": "http://grafana.adnexus.svc.cluster.local:3000"
}
]
},
{
"host": "mpc.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-mpc.hanzo.svc.cluster.local:8080"
}
]
},
{
"host": "mpc.lux.network",
"backends": [
{
"path": "/",
"url": "http://mpc.lux-bridge.svc.cluster.local:80"
}
]
},
{
"host": "oauth.platform.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://oauth-proxy.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "orm.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-app.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "pars.id",
"backends": [
{
"path": "/",
"url": "http://hanzo-login.hanzo.svc.cluster.local:80"
},
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "platform.hanzo.ai",
"backends": [
{
"path": "/sync(/|$)(.*)",
"url": "http://sync.hanzo.svc.cluster.local:4000"
},
{
"path": "/api(/|$)(.*)",
"url": "http://platform.hanzo.svc.cluster.local:4000"
},
{
"path": "/socket.io/",
"url": "http://platform.hanzo.svc.cluster.local:4000"
},
{
"path": "/v1/",
"url": "http://platform.hanzo.svc.cluster.local:4000"
},
{
"path": "/",
"url": "http://paas-ui.hanzo.svc.cluster.local:80"
},
{
"path": "/",
"url": "http://studio.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "pricing.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://pricing.hanzo.svc.cluster.local:8080"
}
]
},
{
"host": "registry.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://registry.hanzo.svc.cluster.local:5000"
}
]
},
{
"host": "s3.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://s3.hanzo.svc.cluster.local:9000"
}
]
},
{
"host": "skills.hanzo.bot",
"backends": [
{
"path": "/",
"url": "http://bot-docs.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "ssp.ad.nexus",
"backends": [
{
"path": "/impression",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/openrtb2",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/health",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/click",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/vast",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/auth",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/api",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/ad",
"url": "http://api-ssp.adnexus.svc.cluster.local:8082"
},
{
"path": "/",
"url": "http://ssp-ui.adnexus.svc.cluster.local:3000"
}
]
},
{
"host": "status.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://status.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "status.lux.network",
"backends": [
{
"path": "/",
"url": "http://status.lux-status.svc.cluster.local:3000"
}
]
},
{
"host": "studio.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://studio.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "sync.platform.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://sync.hanzo.svc.cluster.local:4000"
}
]
},
{
"host": "vm.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://visor.hanzo.svc.cluster.local:19000"
}
]
},
{
"host": "web3.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-web3.bootnode.svc.cluster.local:3001"
}
]
},
{
"host": "webhook.platform.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-webhook.hanzo.svc.cluster.local:8080"
}
]
},
{
"host": "ws.bootno.de",
"backends": [
{
"path": "/",
"url": "http://bootnode-api.bootnode.svc.cluster.local:80"
}
]
},
{
"host": "ws.cloud.lux.network",
"backends": [
{
"path": "/",
"url": "http://bootnode-api.bootnode.svc.cluster.local:80"
}
]
},
{
"host": "ws.web3.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://bootnode-api.bootnode.svc.cluster.local:80"
}
]
},
{
"host": "www.megastore.lol",
"backends": [
{
"path": "/",
"url": "http://mega-store.adxyz.svc.cluster.local:80"
}
]
},
{
"host": "zen.hanzo.ai",
"backends": [
{
"path": "/health",
"url": "http://zen-gateway.zen.svc.cluster.local:4100"
},
{
"path": "/v1",
"url": "http://zen-gateway.zen.svc.cluster.local:4100"
},
{
"path": "/",
"url": "http://zen-landing.zen.svc.cluster.local:80"
}
]
},
{
"host": "zoo.id",
"backends": [
{
"path": "/",
"url": "http://hanzo-login.hanzo.svc.cluster.local:80"
},
{
"path": "/",
"url": "http://iam.hanzo.svc.cluster.local:80"
}
]
},
{
"host": "zt-api.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-zt-controller.hanzo-zt.svc.cluster.local:443"
}
]
},
{
"host": "zt.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-zt-controller.hanzo-zt.svc.cluster.local:443"
}
]
},
{
"host": "ztc.hanzo.ai",
"backends": [
{
"path": "/",
"url": "http://hanzo-zt-console.hanzo-zt.svc.cluster.local:80"
}
]
}
]
}