- Shipped
- September 10, 2026 at 8:19 PM UTC
- Author
- Kamo
- Commit
- cd360dd
Add a strip-identity-headers Middleware. A customRequestHeaders value of "" deletes the header, so X-Org-Id, X-Member-Id, X-User-Id, X-God-Mode-Active, X-Member-Type, X-Public-Chat-Org-Id and X-Public-Chat-Key-Hash never reach a backend from a client. Attach it to the two carve-out routes that reach a backend without passing through APIService: - **************** strips /desktop-ws, so it reaches every SecurityService path from internal.*. /api/security/entitlements/me there took its caller from a client-sent X-Member-Id. - ai-chat-ws-route is a carve-out of api.*, so every router on that host now applies the same rule. api-route (APIService repo, k8s/ingressroute.yaml) references the same Middleware. This commit must be applied before that one: Traefik rejects a route naming a missing middleware, and every api.* host would 404. Not added to kamo-middlewares: that chain fronts the Next.js apps, and kamo-internal's billing and LOS proxies relay X-God-Mode-Active from the browser to services that re-check it against User.isGod. kubectl diff over every traefik/ apply target shows only these objects plus the existing meet-route label drift (app: kamomeet live, kamo-meet here). deployment.yaml and crds/ are unchanged, so the apply does not restart Traefik.