--- # Was a plain ConfigMap with client_secret hardcoded in plaintext - found # and fixed 2026-08-20. Same story as argocd-blueprint.yaml: the value # was already Vault's source of truth on the app side (secret/ # nextcloud-oauth), this blueprint just had its own separate hardcoded # plaintext copy. apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: authentik-blueprints-nextcloud namespace: authentik spec: refreshInterval: 1h secretStoreRef: kind: ClusterSecretStore name: vault-backend target: name: authentik-blueprints-nextcloud creationPolicy: Owner template: metadata: labels: goauthentik.io/blueprint: "true" data: nextcloud.yaml: |- version: 1 metadata: name: nextcloud-oidc entries: - model: authentik_providers_oauth2.oauth2provider id: nextcloud-provider state: present identifiers: name: Nextcloud attrs: name: Nextcloud client_id: HmTGnUfhCvjFFbUUAne7JLrucNC2X675JicPbEnQ client_secret: "{{ .clientSecret }}" authorization_flow: !Find [authentik_flows.flow, [slug, default-provider-authorization-implicit-consent]] authentication_flow: !Find [authentik_flows.flow, [slug, default-authentication-flow]] invalidation_flow: !Find [authentik_flows.flow, [slug, default-provider-invalidation-flow]] redirect_uris: - url: "https://nextcloud.kube.huskypup.net/apps/user_oidc/code" matching_mode: strict - url: "http://nextcloud.kube.huskypup.net/apps/user_oidc/code" matching_mode: strict enabled: true property_mappings: - !Find [authentik_providers_oauth2.scopemapping, [scope_name, openid]] - !Find [authentik_providers_oauth2.scopemapping, [scope_name, email]] - !Find [authentik_providers_oauth2.scopemapping, [scope_name, profile]] client_type: confidential access_code_validity: "minutes=10" access_token_validity: "days=7" refresh_token_validity: "days=30" signing_key: !Find [authentik_crypto.certificatekeypair, [name, "authentik Internal JWT Certificate"]] - model: authentik_core.application id: nextcloud-application state: present identifiers: slug: nextcloud attrs: name: Nextcloud slug: nextcloud policy_engine_mode: any provider: !KeyOf nextcloud-provider data: - secretKey: clientSecret remoteRef: key: nextcloud-oauth property: client-secret