feat(binjovi): register the staging dashboard login client #703
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/binjovi-staging-ui-oauth"
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?
First of three pull requests that make the staging dashboard at
https://binjovi.dev/open in a normal browser.Why it does not today: staging routes straight to the app with no login proxy, and Kratos pins its session cookie to
sean.farm, so a.devhost can never carry the production session. The app then answers401 invalid_identityto every browser, which is what the availability gate expects of an anonymous request and also what every operator gets.The design: Oathkeeper stays the first hop for
binjovi.dev, exactly as for production, so the gate keeps its 401. A small oauth2-proxy on the host holds a session cookie of its own, and Oathkeeper'scookie_sessionauthenticator asks that proxy's/oauth2/userinfoinstead of Kratos. That proxy is a Hydra browser client, and this pull request registers it.kubernetes/flux/infrastructure/binjovi/staging-ui-oauth.yaml: the clientbinjovi-staging-ui(authorization code + refresh token,openid profile email offline_access, redirecthttps://binjovi.dev/oauth2/callback, consent skipped as for every first-party client here); generated client and cookie secrets; aClusterSecretStorewhose reader cangetexactly that one Secret and which serves onlybinjovi-staging. Modelled onavailability-agent-oauth.yaml, theargocd/registrar.yamlclient shape, and theprofiler-oauth.yamlread-back check.tests/binjovi.sh: the file in the exact resource list, plus twelve assertions on the client shape, the store's namespace condition and the reader'sresourceNames. Red before the file, green after.binjovi-staging.tests/check.shpasses in full. All eight objects validate withkubectl apply --dry-run=server. The oauth2-proxy Deployment, the route split and theBINJOVI_UI_ORIGINchange follow in the binjovi repository; the Oathkeeper rules and the ReferenceGrant follow insean/ory.https://claude.ai/code/session_01XdBRc9CHgFhAxCyHbdVtt6
cf1937de7cd97556176ad97556176aaaabf4115a