2b39450ae2
## Why All Authentik OIDC logins (ArgoCD, Grafana, Rancher, LiteLLM, NetBox) fail with `invalid_request` / "The request is otherwise malformed". Authentik 2026.5 added an explicit `grant_types` allow-list to the OAuth2 provider (model default = empty list). Our module never set it, so every provider has `grant_types = []`, and `authorize.py` rejects the authorization_code grant (`if self.grant_type not in self.provider.grant_types`) before any user auth. ## Change - modules/authentik: add a `grant_types` field to the `providers_oauth2` variable, defaulting to `["authorization_code", "refresh_token"]` (the standard confidential web-app set), and wire it into `authentik_provider_oauth2`. ## Plan `0 to add, 5 to change, 0 to destroy` — each existing oauth2 provider's `grant_types` goes `[] -> ["authorization_code", "refresh_token"]`; no other attributes change. Baseline plan (pre-change) was clean (no netbox/state drift). Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv