feat: move Prefect auth to Traefik IngressRoute for public read-only UI
disables Prefect's built-in BasicAuth so /api/ui-settings returns
"auth": null — the UI renders without a login prompt for public users.
auth is now enforced by Traefik at the HTTP layer:
- GETs and explicit read POST paths (/api/*/filter, /count, etc.) → no middleware
- all other routes (write POSTs, PATCH, DELETE) → BasicAuth middleware
new files:
- deploy/prefect-certificate.yaml: cert-manager Certificate CR (replaces ingress annotation)
- deploy/prefect-ingress-route.yaml: Middleware + prefect-public (priority 20) + prefect-admin (priority 10)
justfile:
- replaces prefect-auth secret with htpasswd-format prefect-traefik-auth secret
- adds certificate + ingress route apply steps to deploy recipe
- adds public-ingress recipe for re-applying without full deploy
rollback: git reset --hard e19e75f
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>