feat(resources): add path routing and sticky sessions #5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/path-routing"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
feat/tcp-udp); retarget tomainonce #2, #3 and #4 are merged.Changes
sticky_sessionsto resources andpath_match,path,rewrite,rewrite_toto targets. Columns only, so it is portable and reversible.PathRouteis the single definition of valid routes, shared by the changeset and the renderer: URL path characters only (no backtick, so a path can never break out of a Traefik rule and reach another tenant's host), regexes must compile and may not use features Traefik's RE2 lacks. A path without a match type is an error, never a silent catch-all.DynamicConfigrenders one router, service and rewrite middleware per route. The catch-all keeps its names and output, so existing configs do not change. Path routers get explicit priorities (exact, then regex, then longer prefixes) and always include the resource's own host. The rewrite runs after forwardAuth, so access rules see the original path. One unprotected redirect router covers the whole host. Invalid or conflicting stored routes are dropped (lowest target id wins, in any order).tcs_<hash>, HttpOnly, SameSite=Lax, Secure over TLS); always off for TCP/UDP.Verification
compile --warnings-as-errors,credo --strictclean;mix dialyzer0 errors on both backends./api/does not match/apixwhile/uimatches/uix; a deny rule on/api/admin*still returns 403 on a resource whose/api/prefix is stripped (also for upper-case and percent-encoded forms); other hosts unaffected; disabling a route in the browser falls back to the catch-all.Not included