---
title: Release 2022.1
slug: "/releases/2022.1"
---

## Breaking changes

This release mostly removes legacy fields and features that have been deprecated for several releases.

- LDAP Outposts:

    This release removes the `accountStatus` and `superuser` fields. Use the direct replacements `goauthentik.io/ldap/active` and `goauthentik.io/ldap/superuser`.

- Proxy Outposts:

    This release consolidates headers sent by authentik to have a common prefix.

    The following headers have been removed:

    - X-Auth-Username, use `X-authentik-username`
    - X-Auth-Groups, use `X-authentik-groups`
    - X-Forwarded-Email, use `X-authentik-email`
    - X-Forwarded-Preferred-Username, use `X-authentik-username`
    - X-Forwarded-User, use `X-authentik-uid`

    The proxy now also sets the host header based on what is configured as upstream in the proxy provider. The original Host is forwarded as `X-Forwarded-Host`.

    Additionally, the header requirements for nginx have changed. Either a `X-Original-URL` or `X-Original-URI` header are now required. See the [_Proxy provider_](../../add-secure-apps/providers/proxy/forward_auth.mdx) documentation for updated snippets.

- API:

    The deprecated /api/v2beta/ Endpoint is removed. Use `/api/v3/`.

- Backup:

    The integrated backup has been deprecated for the following reasons:

    - Difficulty with restores not working properly
    - Inflexible configuration (fixed retention, limited to once a day, only S3 supported)
    - Most users will already have an existing backup infrastructure

## Minor changes/fixes

- core: dont return 404 when trying to view key of expired token
- crypto: fully parse certificate on validation in serializer to prevent invalid certificates from being saved
- flows: handle error if flow title contains invalid format string
- internal: route traffic to proxy providers based on cookie domain when multiple domain-level providers exist
- internal: use math.MaxInt for compatibility
- lifecycle: add early check for missing/invalid secret key
- outposts/proxyv2: allow access to /outpost.goauthentik.io urls in forward auth mode to make routing in nginx/traefik easier
- outposts/proxyv2: fix before-redirect url not being saved in proxy mode
- outposts/proxyv2: fix JWKS url pointing to localhost on embedded outpost
- providers/oauth2: change default redirect uri behaviour; set first used url when blank and use star for wildcard
- root: allow customisation of ports in compose without override
- root: decrease to 10 backup history
- root: fix backups running every minute instead of once
- stages/authenticator_webauthn: make more WebAuthn options configurable
- web: add polyfill for Intl.ListFormat
- web: directly read csrf token before injecting into request
- web: fix double plural in label
- web/admin: also set embedded outpost host when it doesn't include scheme
- web/admin: fix missing configure flow setting on webuahtn setup stage form
- web/flows: remove node directly instead of using removeChild()

## Fixed in 2022.1.2

- internal/proxyv2: only allow access to /outpost.goauthentik.io in nginx mode when forward url could be extracted
- lib: disable backup by default, add note to configuration
- lifecycle: replace lowercase, deprecated prometheus_multiproc_dir
- outposts: allow custom label for docker containers
- policies/hibp: ensure password is encodable
- providers/proxy: add PathPrefix to auto-traefik labels
- root: upgrade python dependencies

## Fixed in 2022.1.3

- internal: add support for X-Original-URL
- internal: add optional debug server listening on 9900
- internal: don't override server header
- internal: start adding tests to outpost
- lifecycle: make secret_key warning more prominent
- lifecycle: wait for db in worker
- outposts/ldap: Fix more case sensitivity issues. (#2144)
- outposts/proxy: add more test cases for domain-level auth
- outposts/proxy: fix potential empty redirect, add tests
- outposts/proxy: trace full headers to debug
- providers/proxy: fix traefik label
- root: add max-requests for gunicorn and max tasks for celery
- root: fix redis passwords not being encoded correctly
- web/admin: fix links which look like labels
- web/admin: fix SMS Stage form not working

## Fixed in 2022.1.4

- core: fix view_token permission not being assigned on token creation for non-admin user
- lifecycle: remove gunicorn reload option
- lifecycle: send analytics in gunicorn config to decrease outgoing requests when workers get restarted
- providers/proxy: add support for X-Original-URI in nginx, better handle missing headers and report errors to authentik
- providers/proxy: don't include hostname and scheme in redirect when we only got a path and not a full URL
- providers/proxy: fix routing for external_host when using forward_auth_domain
- providers/proxy: set traefik labels using object_naming_template instead of UUID
- sources/ldap: add list_flatten function to property mappings, enable on managed LDAP mappings
- web: add es locale
- web: add pl locale
- web/admin: only check first half of locale when detecting
- web/flows: fix width on flow container
- web/user: include locale code in locale selection

## Fixed in 2022.1.5

- build(deps): bump uvicorn from 0.17.1 to 0.17.3 (#2229)
- core: allow formatting strings to be used for applications' launch URLs
- internal: don't attempt to lookup SNI Certificate if no SNI is sent
- internal: fix CSRF error caused by Host header
- internal: improve error handling for internal reverse proxy
- internal: remove uvicorn server header
- internal: trace headers and url for backend requests
- outposts: fix channel not always having a logger attribute
- outposts: fix compare_ports to support both service and container ports
- outposts: fix service reconciler re-creating services
- outposts: remove node_port on V1ServicePort checks to prevent service creation loops
- providers/proxy: fix Host/:Authority not being modified
- providers/proxy: fix nil error in claims
- providers/proxy: improve error handling for invalid backend_override
- sources/ldap: log entire exception
- sources/saml: fix incorrect ProtocolBinding being sent
- sources/saml: fix server error
- stages/authenticator_validate: handle non-existent device_challenges
- web/admin: fix mismatched icons in overview and lists

## Upgrading

This release does not introduce any new requirements.

### docker-compose

Download the docker-compose file for 2022.1 from [here](https://goauthentik.io/version/2022.1/docker-compose.yml). Afterwards, simply run `docker-compose up -d`.

### Kubernetes

Update your values to use the new images:

```yaml
image:
    repository: ghcr.io/goauthentik/server
    tag: 2022.1.1
```
