--- title: Release 2021.4 slug: "/releases/2021.4" --- ## Headline Changes - Configurable Policy engine mode In the past, all objects, which could have policies attached to them, required _all_ policies to pass to consider an action successful. You can now configure if _all_ policies need to pass, or if _any_ policy needs to pass. This can now be configured for the following objects: - Applications (access restrictions) - Sources - Flows - Flow-stage bindings For backwards compatibility, this is set to _all_, but new objects will default to _any_. - Expiring Events Previously, events would stay in the database forever, and had to eventually be cleaned up manually. This version add expiry to events with a default timeout of 1 Year. This also applies to existing events, and their expiry will be set during the migration. - New UI While the UI mostly looks the same, under the hood a lot has changed. The Web UI is now a Single-page application based on rollup and lit-html. This has several consequences and new features, for example: - You can now see a user's OAuth Access/Refresh tokens and the consents they've given - You can now see a per-object changelog based on the model_create/update/delete events being created. - A new API Browser is available under `https://authentink.company/api/v2beta/` - Several new charts, new pages and quality-of-life improvements - Credentials of objects are no longer shown while editing them - Deprecated Group membership has been removed. ## Minor changes - You can now specify the amount of processes started in docker-compose using the `WORKERS` environment variable. ## Fixed in 2021.4.2 - core: fix propertymapping API returning invalid value for components (https://github.com/goauthentik/authentik/issues/746) - core: improve messaging when creating a recovery link for a user when no recovery flow exists - flows: annotate flows executor 404 error - flows: include configure_flow in stages API - helm: make storage class, size and mode configurable - helm: turn off monitoring by default (https://github.com/goauthentik/authentik/issues/741) - outposts: fix errors when creating multiple outposts - root: add restart: unless-stopped to compose - root: base Websocket message storage on Base not fallback - root: fix healthcheck part in docker-compose - root: fix setting of EMAIL_USE_TLS and EMAIL_USE_SSL - sources/ldap: improve error handling during sync - sources/oauth: fix error when creating an oauth source which has fixed URLs - sources/oauth: fix resolution of sources' provider type - web: fix background-color on router outlet on light mode - web/admin: fix error when user doesn't have permissions to read source - web/admin: fix errors in user profile when non-superuser ## Fixed in 2021.4.3 - \*: add model_name to TypeCreate API to distinguish between models sharing a component - api: fix CSRF error when using POST/PATCH/PUT in API Browser - api: make 401 messages clearer - api: mount outposts under outposts/instances to match flows - core: add parameter to output property mapping test result formatted - core: add superuser_full_list to applications list, shows all applications when superuser - core: fix Tokens being created with incorrect intent by default - outposts: don't run outpost_controller when no service connection is set - providers/oauth2: Set CORS Headers for token endpoint, check Origin header against redirect URLs - root: auto-migrate on startup, lock database using pg_advisory_lock - sources/oauth: add login with plex support - sources/oauth: fix redirect loop for source with non-configurable URLs - sources/oauth: save null instead of empty string for sources without configurable URLs - web/admin: add ability to add users to a group whilst creating a group - web/admin: fix default for codemirror - web/admin: fix group member table order - web/admin: fix non-matching provider type being selected when creating an OAuth Source - web/admin: fix provider type resetting when changing provider type - web/admin: fix undefined being shown when viewing application - web/admin: improve default selection for property-mappings ## Fixed in 2021.4.4 - \*: make tasks run every 60 minutes not :00 every hour - outposts: check for X-Forwarded-Host to switch context - outposts: improve update performance - outposts: move local connection check to task, run every 60 minutes - providers/oauth2: add proper support for non-http schemes as redirect URIs - providers/oauth2: fix TokenView not having CORS headers set even with proper Origin - sources/oauth: fix error whilst fetching user profile when source uses fixed URLs - sources/oauth: handle error in AzureAD when ID Can't be extracted - stages/user_login: add default backend - web: fix title not being loaded from config - web: only report http errors for 500 and above - web: send response info when response is thrown - web/admin: add description for fields in proxy provider form - web/admin: adjust phrasing of cards on overview page - web/admin: fix display for user supseruser status - web/admin: fix error when me() returns 403 - web/admin: fix error when updating identification stage - web/admin: fix invalid group member count - web/admin: fix link to providers on overview page - web/admin: fix mismatched required tags - web/admin: improve phrasing for Policy bindings - web/admin: only allow policies to be bound to sources as users/groups cannot be checked - web/admin: only pre-select items when creating a new object - web/flows: fix Sentry not being loaded correctly ## Fixed in 2021.4.5 - core: fix text on error pages being hard to read - outposts: only kill docker container if its running - root: add middleware to properly report websocket connection to sentry - root: don't use .error of structlog to not send to sentry - stages/email: catch ValueError when global email settings are invalid - stages/invitation: accept token from prompt_data - stages/invitation: fix token not being loaded correctly from query string - web: fix text-colour for form help text - web: ignore network errors for sentry - web/admin: don't show docker certs as required - web/flows: fix redirect loop when sentry is enabled on flow views - web/flows: include ShadyDOM, always enable ShadyDOM for flow interface, improve compatibility with password - web/flows/identification: fix phrasing account recovery ## Upgrading This release does not introduce any new requirements. ### docker-compose Download the docker-compose file for 2021.4 from [here](https://goauthentik.io/version/2021.4/docker-compose.yml). Afterwards, simply run `docker-compose up -d`. ### Kubernetes Run `helm repo update` and then upgrade your release with `helm upgrade authentik authentik/authentik -f values.yaml`.