2023-08-01 17:30:28 +00:00
---
2023-08-22 11:03:11 +00:00
title: Release 2023.8
slug: "/releases/2023.8"
2023-08-01 17:30:28 +00:00
---
## Breaking changes
- Removal of PostgreSQL 11 support
As announced in the [2023.5 ](./v2023.5.md ) release notes (and postponed by a release), this release requires PostgreSQL 12 or newer. This is due to a changed requirement in a framework we use, Django.
This does not affect docker-compose installations (as these already ship with PostgreSQL 12), however it is still recommended to upgrade to a newer version when convenient.
For Kubernetes install, a manual one-time migration has to be done: [Upgrading PostgreSQL on Kubernetes ](../../troubleshooting/postgres/upgrade_kubernetes.md )
2023-08-18 15:31:39 +00:00
- Changed nested Group membership behaviour
In previous versions, nested groups were handled very inconsistently. Binding a group to an application/etc would check the membership recursively, however when using `user.ak_groups.all()` would only return direct memberships. Additionally, using `user.group_attributes()` would do the same and only merge all group attributes for direct memberships.
This has been changed to always use the same logic as when checking for access, which means dealing with complex group structures is a lot more consistent.
Policies that do use `user.ak_groups.all()` will retain the current behaviour, to use the new behaviour replace the call with `user.all_groups()` .
2023-08-01 17:30:28 +00:00
## New features
2023-08-29 17:57:14 +00:00
- Enterprise (preview)
This is the first release to include the _Enterprise_ section, where you can acquire a license in our Customer Portal and get enterprise licenses for your authentik instance. See more info [here ](../../enterprise/index.md )
- Config reloading
For better security and to better support running in a cloud-native environment, authentik now supports dynamic PostgreSQL and Email credentials. In previous versions, both the authentik server and worker containers required restarting to detect the new credentials. In 2023.8, these credentials are automatically refreshed just before they are used. This means you can use something like [Hashicorp Vault ](https://vaultproject.io ) to manage short-term credentials that are rotated once a day or even more frequently without needing to restart authentik.
2023-08-01 17:30:28 +00:00
## Upgrading
2023-08-29 17:57:14 +00:00
This release changes the PostgreSQL dependency to require Version 12 or later, which only affects Kubernetes installs. See [here ](../../troubleshooting/postgres/upgrade_kubernetes.md ) for more info on upgrading.
2023-08-01 17:30:28 +00:00
### docker-compose
To upgrade, download the new docker-compose file and update the Docker stack with the new version, using these commands:
```
2023-08-22 11:03:11 +00:00
wget -O docker-compose.yml https://goauthentik.io/version/2023.8/docker-compose.yml
2023-08-01 17:30:28 +00:00
docker-compose up -d
```
The `-O` flag retains the downloaded file's name, overwriting any existing local file with the same name.
### Kubernetes
Update your values to use the new images:
```yaml
image:
repository: ghcr.io/goauthentik/server
2023-08-22 11:03:11 +00:00
tag: 2023.8.0
2023-08-01 17:30:28 +00:00
```
## Minor changes/fixes
2023-08-29 17:57:14 +00:00
- \*: fix api errors raised in general validate() to specify a field (#6663)
2023-08-22 12:19:37 +00:00
- api: optimise pagination in API schema (#6478)
- blueprints: fix blueprint importer logging potentially sensitive data (#6567)
2023-08-29 17:57:14 +00:00
- blueprints: fix tag values not resolved correctly (#6653)
2023-08-22 12:19:37 +00:00
- blueprints: prevent duplicate password stage in default flow when using combined identification stage (#6432)
- core: bump django from 4.1.7 to 4.2 (#5238)
- core: fix UUID filter field for users api (#6203)
2023-08-29 17:57:14 +00:00
- core: fix filtering users by type attribute (#6638)
2023-08-22 12:19:37 +00:00
- core: rework recursive group membership (#6017)
- enterprise: add more info to enterprise forecast (#6292)
- enterprise: initial enterprise (#5721)
- events: fix authentik_system_tasks metric status label (#6252)
- events: fix monitored task not removing state (#6386)
- outposts/ldap: add more tests (#6188)
- outposts/ldap: add test for attribute filtering (#6189)
- outposts: Fix infinite self-recursion in traefik reconciler (#6336)
2023-08-29 17:57:14 +00:00
- outposts: fix Kubernetes patch processing (#6338)
2023-08-22 12:19:37 +00:00
- outposts: make metrics compliant with Prometheus best-practices (#6398)
- outposts: support json patch for Kubernetes (#6319)
- providers/oauth2: fix aud (Audience) field type which can be a list of… (#6447)
- providers/oauth2: fix grant_type password raising an exception (#6333)
2023-08-29 17:57:14 +00:00
- providers/oauth2: fix id_token being saved incorrectly leading to lost claims (#6645)
- providers/proxy: fix JWKS URL in embedded outpost (#6644)
2023-08-22 12:19:37 +00:00
- providers/proxy: only intercept auth header when a value is set (#6488)
- providers/proxy: set outpost session cookie to httponly and secure wh… (#6482)
- root: always use persistent database connections (#6560)
2023-08-29 17:57:14 +00:00
- root: config: config discovery parity between Go and Python
- root: config: remove redundant default configs
2023-08-22 12:19:37 +00:00
- root: migrate bootstrap to blueprints (#6433)
- root: partial Live-updating config (#5959)
- root: replace builtin psycopg libpq binary implementation with distro… (#6448)
- root: set csrf cookie's secure flag same as session (#6350)
- sources/ldap: check nsaccountlock for FreeIPA/389-ds (#6270)
- sources/ldap: fix ldap_sync cli command not running in foreground (#6325)
- sources/ldap: fix syncing large LDAP directories (#6384)
- stages/authenticator_static: make static token size adjustable (#6565)
- web/admin: adjust style of page header (#6355)
- web/admin: fix EventMatcherPolicyForm empty values (#6539)
- web/admin: fix admin overview layout (#6220)
- web/admin: fix user sorting by active field (#6485)
- web/admin: hide pagination when no data is loaded yet (#6353)
2023-08-29 17:57:14 +00:00
- web/admin: make version clickable for stable releases (#6626)
- web/admin: only show token expiry when token is set to expire (#6643)
- web/admin: set required flag to false for user attributes (#6418)
- web/common: make API errors more prominent in developer tools (#6637)
- web/elements: improve table error handling, prevent infinite loading … (#6636)
2023-08-22 12:19:37 +00:00
- web/flows: fix identification stage band color (#6489)
- web/flows: update flow background (#6579)
- web/user: fix alignment between image icons and fallback text icons (#6416)
- web/user: fix app icon size for user interface
- web/user: fix background alignment (#6383)
- web/user: fix user settings colours on dark theme (#6499)
2023-08-29 17:57:14 +00:00
- web/user: fix user settings elements not being in cards (#6608)
- web/user: only render expand element when required (#6641)
2023-08-22 12:19:37 +00:00
- web: fix app icon rendering, style refinements (#6409)
- web: refactor locale handler into top-level context handler (#6022)
2023-08-29 17:57:14 +00:00
- web: replace deprecated terser rollup plugin, remove unused plugin (#6615)
2023-08-22 12:19:37 +00:00
- web: rework and expand tooltips (#6435)
2023-08-01 17:30:28 +00:00
## API Changes
2023-08-22 12:19:37 +00:00
#### What's New
---
##### `GET` /enterprise/license/
##### `POST` /enterprise/license/
##### `GET` /enterprise/license/{license_uuid}/
##### `PUT` /enterprise/license/{license_uuid}/
##### `DELETE` /enterprise/license/{license_uuid}/
##### `PATCH` /enterprise/license/{license_uuid}/
##### `GET` /enterprise/license/{license_uuid}/used_by/
##### `GET` /enterprise/license/forecast/
##### `GET` /enterprise/license/get_install_id/
##### `GET` /enterprise/license/summary/
#### What's Changed
---
##### `GET` /policies/event_matcher/{policy_uuid}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
##### `PUT` /policies/event_matcher/{policy_uuid}/
###### Request:
Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
##### `PATCH` /policies/event_matcher/{policy_uuid}/
###### Request:
Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
##### `GET` /schema/
###### Parameters:
Changed: `lang` in `query`
##### `GET` /core/tenants/
###### Parameters:
Changed: `branding_favicon` in `query`
Changed: `branding_logo` in `query`
Changed: `branding_title` in `query`
Changed: `default` in `query`
Changed: `domain` in `query`
Changed: `event_retention` in `query`
Changed: `flow_authentication` in `query`
Changed: `flow_device_code` in `query`
Changed: `flow_invalidation` in `query`
Changed: `flow_recovery` in `query`
Changed: `flow_unenrollment` in `query`
Changed: `flow_user_settings` in `query`
Changed: `tenant_uuid` in `query`
Changed: `web_certificate` in `query`
##### `GET` /core/tokens/{identifier}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
Enum values:
- `internal`
- `external`
- `service_account`
- `internal_service_account`
##### `PUT` /core/tokens/{identifier}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `PATCH` /core/tokens/{identifier}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /core/users/{id}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `PUT` /core/users/{id}/
###### Request:
Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `PATCH` /core/users/{id}/
###### Request:
Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /crypto/certificatekeypairs/
###### Parameters:
Changed: `managed` in `query`
Changed: `name` in `query`
##### `GET` /policies/bindings/{policy_binding_uuid}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `PUT` /policies/bindings/{policy_binding_uuid}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `PATCH` /policies/bindings/{policy_binding_uuid}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `POST` /policies/event_matcher/
###### Request:
Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
##### `GET` /policies/event_matcher/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > Event Matcher Policy Serializer
- Changed property `app` (string)
> - `authentik.admin` - authentik Admin
> - `authentik.api` - authentik API
> - `authentik.crypto` - authentik Crypto
> - `authentik.events` - authentik Events
> - `authentik.flows` - authentik Flows
> - `authentik.outposts` - authentik Outpost
> - `authentik.policies.dummy` - authentik Policies.Dummy
> - `authentik.policies.event_matcher` - authentik Policies.Event Matcher
> - `authentik.policies.expiry` - authentik Policies.Expiry
> - `authentik.policies.expression` - authentik Policies.Expression
> - `authentik.policies.password` - authentik Policies.Password
> - `authentik.policies.reputation` - authentik Policies.Reputation
> - `authentik.policies` - authentik Policies
> - `authentik.providers.ldap` - authentik Providers.LDAP
> - `authentik.providers.oauth2` - authentik Providers.OAuth2
> - `authentik.providers.proxy` - authentik Providers.Proxy
> - `authentik.providers.radius` - authentik Providers.Radius
> - `authentik.providers.saml` - authentik Providers.SAML
> - `authentik.providers.scim` - authentik Providers.SCIM
> - `authentik.recovery` - authentik Recovery
> - `authentik.sources.ldap` - authentik Sources.LDAP
> - `authentik.sources.oauth` - authentik Sources.OAuth
> - `authentik.sources.plex` - authentik Sources.Plex
> - `authentik.sources.saml` - authentik Sources.SAML
> - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo
> - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS
> - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static
> - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP
> - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate
> - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn
> - `authentik.stages.captcha` - authentik Stages.Captcha
> - `authentik.stages.consent` - authentik Stages.Consent
> - `authentik.stages.deny` - authentik Stages.Deny
> - `authentik.stages.dummy` - authentik Stages.Dummy
> - `authentik.stages.email` - authentik Stages.Email
> - `authentik.stages.identification` - authentik Stages.Identification
> - `authentik.stages.invitation` - authentik Stages.User Invitation
> - `authentik.stages.password` - authentik Stages.Password
> - `authentik.stages.prompt` - authentik Stages.Prompt
> - `authentik.stages.user_delete` - authentik Stages.User Delete
> - `authentik.stages.user_login` - authentik Stages.User Login
> - `authentik.stages.user_logout` - authentik Stages.User Logout
> - `authentik.stages.user_write` - authentik Stages.User Write
> - `authentik.tenants` - authentik Tenants
> - `authentik.blueprints` - authentik Blueprints
> - `authentik.core` - authentik Core
> - `authentik.enterprise` - authentik Enterprise
Removed enum value:
- `authentik.lib`
##### `POST` /core/tokens/
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /core/tokens/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > Token Serializer
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /core/user_consent/{id}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `POST` /core/users/
###### Request:
Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /core/users/
###### Parameters:
Added: `type` in `query`
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
Changed: `uuid` in `query`
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /core/users/me/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user` (object)
> User Serializer for information a user can retrieve about themselves
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /oauth2/access_tokens/{id}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /oauth2/authorization_codes/{id}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /oauth2/refresh_tokens/{id}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `POST` /policies/bindings/
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /policies/bindings/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > PolicyBinding Serializer
- Changed property `user_obj` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /stages/authenticator/static/{stage_uuid}/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
##### `PUT` /stages/authenticator/static/{stage_uuid}/
###### Request:
Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
##### `PATCH` /stages/authenticator/static/{stage_uuid}/
###### Request:
Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
##### `GET` /core/user_consent/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > UserConsent Serializer
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /oauth2/access_tokens/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and RefreshToken
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /oauth2/authorization_codes/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and ExpiringBaseGrant
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `GET` /oauth2/refresh_tokens/
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and RefreshToken
- Changed property `user` (object)
> User Serializer
- Added property `type` (string)
> - `internal` - Internal
> - `external` - External
> - `service_account` - Service Account
> - `internal_service_account` - Internal Service Account
##### `POST` /stages/authenticator/static/
###### Request:
Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Added property `token_length` (integer)
- Changed property `token_count` (integer)
##### `GET` /stages/authenticator/static/
###### Parameters:
Added: `token_length` in `query`
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed property `results` (array)
Changed items (object): > AuthenticatorStaticStage Serializer
- Added property `token_length` (integer)
- Changed property `token_count` (integer)