openova/core/services
e3mrah c9b8c13406
fix(tenant): JWT-bypass /tenant/internal/* — paid checkouts never provisioned (#1018) (#1019)
Billing's dispatchOrderPlaced enriches the order.placed NATS event by
calling /tenant/internal/tenants/<id>/subdomain over the in-cluster
ClusterIP. routes.go registers that path with the comment "Internal —
unauthenticated service-to-service", but main.go wraps everything
under /tenant/ in JWTAuth except /tenant/check-slug/. So billing got
401, returned "" for the subdomain, published order.placed with
subdomain="", and provisioning rejected every paid checkout with
"invalid subdomain expected=[a-z][a-z0-9-]{2,30}".

Add /tenant/internal/ to the public-paths bypass. Both gateways
already 401 the path externally, and subdomain values are public DNS
names — the documented threat model.

Co-authored-by: hatiyildiz <hatice@openova.io>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 02:09:55 +04:00
..
auth fix(sme-marketplace): unblock PIN signin — route /api/* to sme/gateway + add send-pin alias (#868) (#869) 2026-05-05 08:22:17 +04:00
billing feat(metering): NewAPI NATS publisher + sme-billing subscriber + POST /metering/record (#798) (#818) 2026-05-04 22:32:42 +04:00
catalog fix(bp-catalyst-platform+bp-newapi): unblock alice signup gates 2-6 on Sovereigns (#915) (#951) 2026-05-05 15:27:23 +04:00
domain fix(services): go mod tidy across sibling services after #798 shared deps bump (#821) 2026-05-04 22:35:46 +04:00
gateway fix(bp-catalyst-platform): wire VALKEY_PASSWORD into SME auth + gateway (#863) (#864) 2026-05-05 06:09:38 +04:00
metering-sidecar feat(metering): NewAPI NATS publisher + sme-billing subscriber + POST /metering/record (#798) (#818) 2026-05-04 22:32:42 +04:00
notification fix(services): go mod tidy across sibling services after #798 shared deps bump (#821) 2026-05-04 22:35:46 +04:00
provisioning fix(bp-catalyst-platform+bp-newapi): unblock alice signup gates 2-6 on Sovereigns (#915) (#951) 2026-05-05 15:27:23 +04:00
shared fix(bp-catalyst-platform): wire VALKEY_PASSWORD into SME auth + gateway (#863) (#864) 2026-05-05 06:09:38 +04:00
tenant fix(tenant): JWT-bypass /tenant/internal/* — paid checkouts never provisioned (#1018) (#1019) 2026-05-06 02:09:55 +04:00