Merge pull request 'Onboard watchstate into Authentik (oauth2-proxy, admin-team-gated)' (#26) from benvin/watchstate-oidc into main
ci/woodpecker/push/apply Pipeline was successful

Reviewed-on: #26
This commit was merged in pull request #26.
This commit is contained in:
2026-08-25 20:48:01 +10:00
3 changed files with 26 additions and 0 deletions
@@ -0,0 +1,3 @@
# Permission group akP-watchstate-admin (name = filename). Grants admin
# access to watchstate: bound to the watchstate application, gating the UI.
application: watchstate
+22
View File
@@ -0,0 +1,22 @@
# OAuth2/OIDC provider + application for watchstate (the internal media
# watch-state sync admin tool, served at
# https://watchstate.k8s.syd1.au.unkin.net in the watchstate namespace). An
# oauth2-proxy in front of the UI performs the OIDC login; access is gated on
# the user's hierarchical ak_groups claim (akP-watchstate-admin).
# client_secret is read from Vault (seeded out of band), never committed.
name: watchstate
authorization_flow: default-provider-authorization-implicit-consent
invalidation_flow: default-provider-invalidation-flow
client_type: confidential
client_id: watchstate
launch_url: https://watchstate.k8s.syd1.au.unkin.net/
client_secret_vault:
mount: kv
path: kubernetes/namespace/watchstate/default/oauth-credentials
scope_mappings:
- goauthentik.io/providers/oauth2/scope-openid
- goauthentik.io/providers/oauth2/scope-email
- goauthentik.io/providers/oauth2/scope-profile
redirect_uris:
- matching_mode: strict
url: https://watchstate.k8s.syd1.au.unkin.net/oauth2/callback
+1
View File
@@ -7,6 +7,7 @@ permissions:
- akP-jellyfin-admin
- akP-traefik-admin
- akP-logviewer-admin
- akP-watchstate-admin
# arrstack has no admin tier (it is a proxy front door); grant global admins
# the front door plus every per-app entitlement so they reach all media apps.
- akP-arrstack-user