---
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`.
