This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/website/docs/releases/2023/v2023.8.md
Jens L e467a91f44
website/docs: update 2023.8 actually (#6591)
* add actual changelog

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix source docs credentials

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2023-08-22 14:19:37 +02:00

1242 lines
47 KiB
Markdown

---
title: Release 2023.8
slug: "/releases/2023.8"
---
## 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)
- 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()`.
## New features
## Upgrading
This release does not introduce any new requirements.
### docker-compose
To upgrade, download the new docker-compose file and update the Docker stack with the new version, using these commands:
```
wget -O docker-compose.yml https://goauthentik.io/version/2023.8/docker-compose.yml
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
tag: 2023.8.0
```
## Minor changes/fixes
- api: optimise pagination in API schema (#6478)
- blueprints: fix blueprint importer logging potentially sensitive data (#6567)
- 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)
- 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)
- outposts: fix patch processing (#6338)
- 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)
- 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: add get_int to config loader instead of casting to int everywhere (#6436)
- root: always use persistent database connections (#6560)
- 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)
- 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)
- web: fix app icon rendering, style refinements (#6409)
- web: refactor locale handler into top-level context handler (#6022)
- web: rework and expand tooltips (#6435)
## API Changes
#### 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)