"""Config constants.""" from typing import Any, Dict ## === ## General integration constants ## === DEFAULT_TITLE = "OpenID Connect (SSO)" DOMAIN = "auth_oidc" REPO_ROOT_URL = "https://github.com/christiaangoossens/hass-oidc-auth/tree/v1.0.1" ## === ## Config keys ## === CLIENT_ID = "client_id" CLIENT_SECRET = "client_secret" DISCOVERY_URL = "discovery_url" DISPLAY_NAME = "display_name" ID_TOKEN_SIGNING_ALGORITHM = "id_token_signing_alg" GROUPS_SCOPE = "groups_scope" ADDITIONAL_SCOPES = "additional_scopes" FEATURES = "features" FEATURES_AUTOMATIC_USER_LINKING = "automatic_user_linking" FEATURES_AUTOMATIC_PERSON_CREATION = "automatic_person_creation" FEATURES_DISABLE_PKCE = "disable_rfc7636" FEATURES_INCLUDE_GROUPS_SCOPE = "include_groups_scope" FEATURES_FORCE_HTTPS = "force_https" FEATURES_DEFAULT_REDIRECT = "default_redirect" CLAIMS = "claims" CLAIMS_DISPLAY_NAME = "display_name" CLAIMS_USERNAME = "username" CLAIMS_GROUPS = "groups" ROLES = "roles" ROLE_ADMINS = "admin" ROLE_USERS = "user" NETWORK = "network" NETWORK_TLS_VERIFY = "tls_verify" NETWORK_TLS_CA_PATH = "tls_ca_path" ## === ## Default configurations for providers ## === REQUIRED_SCOPES = "openid profile" DEFAULT_ID_TOKEN_SIGNING_ALGORITHM = "RS256" DEFAULT_GROUPS_SCOPE = "groups" DEFAULT_ADMIN_GROUP = "admins" OIDC_PROVIDERS: Dict[str, Dict[str, Any]] = { "authentik": { "name": "Authentik", "discovery_url": "", "default_admin_group": DEFAULT_ADMIN_GROUP, "supports_groups": True, "claims": { "display_name": "name", "username": "preferred_username", "groups": "groups", }, }, "authelia": { "name": "Authelia", "discovery_url": "", "default_admin_group": DEFAULT_ADMIN_GROUP, "supports_groups": True, "claims": { "display_name": "name", "username": "preferred_username", "groups": "groups", }, }, "pocketid": { "name": "Pocket ID", "discovery_url": "", "default_admin_group": DEFAULT_ADMIN_GROUP, "supports_groups": True, "claims": { "display_name": "name", "username": "preferred_username", "groups": "groups", }, }, "generic": { "name": "OpenID Connect (SSO)", "discovery_url": "", "supports_groups": False, "claims": {"display_name": "name", "username": "preferred_username"}, }, }