Compare commits

...

441 Commits

Author SHA1 Message Date
Teffen Ellis
dea6e5d81a Fix typos. 2025-12-02 16:34:46 +01:00
Teffen Ellis
e9ebbc080c Clarify comment. 2025-12-02 16:34:46 +01:00
Teffen Ellis
be1052d428 Add additional regional codes. 2025-12-02 16:34:46 +01:00
Teffen Ellis
21cb17ca70 Remove comment. 2025-12-02 16:34:46 +01:00
Teffen Ellis
f646fa82fb Fix Han pattern. 2025-12-02 16:34:46 +01:00
Teffen Ellis
9982862826 web: Flesh out locale context. 2025-12-02 16:34:45 +01:00
Marcin Koziuk
f914af70f1 web/admin: fix brands default switch label (#18518) 2025-12-02 15:21:10 +00:00
dependabot[bot]
a46c5e5d89 web: bump express from 4.21.2 to 4.22.1 in /packages/docusaurus-config (#18520)
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.1.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/v4.22.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.2...v4.22.1)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 15:43:19 +01:00
dependabot[bot]
1ebd7cf0f4 website: bump the goauthentik group in /website with 2 updates (#18513)
Bumps the goauthentik group in /website with 2 updates: [@goauthentik/eslint-config](https://github.com/goauthentik/authentik/tree/HEAD/packages/eslint-config) and [@goauthentik/docusaurus-config](https://github.com/goauthentik/authentik/tree/HEAD/packages/docusaurus-config).


Updates `@goauthentik/eslint-config` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/goauthentik/authentik/releases)
- [Commits](https://github.com/goauthentik/authentik/commits/HEAD/packages/eslint-config)

Updates `@goauthentik/docusaurus-config` from 2.2.1 to 2.2.2
- [Release notes](https://github.com/goauthentik/authentik/releases)
- [Commits](https://github.com/goauthentik/authentik/commits/HEAD/packages/docusaurus-config)

---
updated-dependencies:
- dependency-name: "@goauthentik/eslint-config"
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: goauthentik
- dependency-name: "@goauthentik/docusaurus-config"
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: goauthentik
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 15:28:58 +01:00
authentik-automation[bot]
5a7a76f9b3 core, web: update translations (#18510)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-12-02 14:34:49 +01:00
dependabot[bot]
f607378487 ci: bump softprops/action-gh-release from 2.4.2 to 2.5.0 (#18512)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 14:32:47 +01:00
dependabot[bot]
e114a68505 core: bump astral-sh/uv from 0.9.13 to 0.9.14 (#18514)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 14:32:13 +01:00
dependabot[bot]
ebe028f3c9 core: bump goauthentik/fips-debian from de70579 to c718f60 (#18515)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 14:31:59 +01:00
Connor Peshek
eb60276846 integrations/slack: Add SCIM tutorial (#18508)
* integrations/slack: Add SCIM tutorial

* Update wording

* Update index.md

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>

* Small changes

---------

Signed-off-by: Connor Peshek <connor@connorpeshek.me>
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-12-02 04:28:26 -06:00
Teffen Ellis
952a0f796d translate: fix source locale not matching transifex (#18503)
Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-12-01 19:08:58 +00:00
Teffen Ellis
b7205ff167 web: Fixes for Docusaurus & ESlint Upgrade (#18452)
* Fix style regressions in Docusaurus 3.9

* Fix ignore file regression.

* Bump package versions.

* Update packages/docusaurus-config/css/navbar.css

Co-authored-by: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com>
Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>

---------

Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>
Co-authored-by: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com>
2025-12-01 13:57:32 -05:00
Marc 'risson' Schmitt
5379c509d6 translate: fix config (#18504)
Co-authored-by: Teffen Ellis <teffen@goauthentik.io>
2025-12-01 18:20:14 +00:00
Marc 'risson' Schmitt
63119df516 core, web: unified locales (#18502)
Co-authored-by: Teffen Ellis <teffen@goauthentik.io>
2025-12-01 18:47:44 +01:00
transifex-integration[bot]
cd53ab5eba translate: Updates for project authentik and language ko (#18488)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:56:30 +00:00
transifex-integration[bot]
5aa7a1c62d translate: Updates for project authentik and language es (#18485)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:54:55 +00:00
transifex-integration[bot]
092c8a3db4 translate: Updates for project authentik and language zh_TW (#18499)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:50:40 +00:00
transifex-integration[bot]
9d8427b1b4 translate: Updates for project authentik and language ru (#18500)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:49:31 +00:00
transifex-integration[bot]
92556ca783 translate: Updates for project authentik and language pt (#18498)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:46:20 +00:00
transifex-integration[bot]
d5c2aedc8e translate: Updates for project authentik and language fr (#18496)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:46:08 +00:00
transifex-integration[bot]
02304081ed translate: Updates for project authentik and language de (#18487)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:45:48 +00:00
transifex-integration[bot]
d60b6faa61 translate: Updates for project authentik and language nl (#18497)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:45:29 +00:00
transifex-integration[bot]
b12d1ed410 translate: Updates for project authentik and language fi (#18490)
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-12-01 16:44:45 +00:00
authentik-automation[bot]
1276d87d69 core, web: update translations (#18380)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-12-01 17:01:05 +01:00
Marc 'risson' Schmitt
0ba097ad95 web: re-add en.xlf locale (#18469) 2025-12-01 15:54:11 +01:00
Sebastian Knackstedt
3ff7332742 stages/user_write: Fix user attributes are not sanitized under certains conditions (#17890)
* stages/user_write: Fix user attributes are not sanitized under certain conditions

* add test and forbid attributes replacement

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-12-01 15:12:13 +01:00
Jens L.
72f0f98706 providers/scim: compare users/groups before sending update request (#18456)
* implement user

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

* add compare for groups

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-12-01 13:50:41 +01:00
Jens L.
873a47f9a2 enterprise/endpoints/connectors/agent: fix Apple JWE encryption when FIPS is enabled (#18464)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-12-01 13:31:03 +01:00
dependabot[bot]
382bd324c2 website: bump @types/react from 19.2.6 to 19.2.7 in /website (#18357)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.2.6 to 19.2.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 13:30:23 +01:00
dependabot[bot]
71e57611d0 core: bump goauthentik/fips-debian from ac4c80b to de70579 (#18419)
Bumps goauthentik/fips-debian from `ac4c80b` to `de70579`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 13:30:02 +01:00
dependabot[bot]
04a8f02b2a core: bump github.com/getsentry/sentry-go from 0.39.0 to 0.40.0 (#18416)
Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.39.0 to 0.40.0.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 13:29:28 +01:00
dependabot[bot]
2250cea934 website: bump prettier-plugin-packagejson from 2.5.19 to 2.5.20 in /website (#18460)
website: bump prettier-plugin-packagejson in /website

Bumps [prettier-plugin-packagejson](https://github.com/matzkoh/prettier-plugin-packagejson) from 2.5.19 to 2.5.20.
- [Release notes](https://github.com/matzkoh/prettier-plugin-packagejson/releases)
- [Commits](https://github.com/matzkoh/prettier-plugin-packagejson/compare/v2.5.19...v2.5.20)

---
updated-dependencies:
- dependency-name: prettier-plugin-packagejson
  dependency-version: 2.5.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 13:28:52 +01:00
dependabot[bot]
b6d21bad71 core: bump goauthentik.io/api/v3 from 3.2025120.7 to 3.2025120.11 (#18461)
Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2025120.7 to 3.2025120.11.
- [Release notes](https://github.com/goauthentik/client-go/releases)
- [Commits](https://github.com/goauthentik/client-go/compare/v3.2025120.7...v3.2025120.11)

---
updated-dependencies:
- dependency-name: goauthentik.io/api/v3
  dependency-version: 3.2025120.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 13:28:43 +01:00
lame
2bb86f6f12 website/integrations: add GLPI (#17937)
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-12-01 05:24:31 +00:00
Dewi Roberts
c75ff13770 website/integrations: small fixes (#18423)
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-30 23:59:21 -05:00
Jens L.
874a20b908 enterprise: Apple Platform SSO (#15318)
* init

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

* snap

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

* format

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

* it works

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

* give session

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

* fix session

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

* better endpoint

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

* add api

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

* attempt endpoint

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

* refactor into endpoints system

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

* start reworking

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

* make it work more

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

* re-add user data

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

* add jwks

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

* add rest of the endpoints

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

* fix test

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

* fix lookup

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

* fix device group selection

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

* fix incorrect device id

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

* fix register

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

* implement the thing

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

* fix a bunch of things

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

* fix issuer

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

* fix fully

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

* format

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

* add test for apple JWE

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

* add tests

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

* add more tests

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

* add token tests

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

* make auth session duration configurable, merge migrations

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

* update api & ui

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

* fix enterprise

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

* include platform sso in generated mdm config

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-12-01 00:28:09 +01:00
Jens L.
ea7cbafefb crypto: only generate managed keypair if non-existent (#18457)
* crypto: only generate managed keypair if non-existent

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

* fix translation

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-30 20:49:55 +01:00
Marc 'risson' Schmitt
46b889eab1 ci: remove translation-rename (#18444) 2025-11-28 20:38:01 +00:00
transifex-integration[bot]
c0744d6cf3 translate: Updates for project authentik and language tr (#18438)
translate: Translate django.po in tr

73% of minimum 60% translated source file: 'django.po'
on 'tr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:20:25 +00:00
transifex-integration[bot]
9bae5caee4 translate: Updates for project authentik and language fr (#18431)
translate: Translate django.po in fr

98% of minimum 60% translated source file: 'django.po'
on 'fr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:20:06 +00:00
transifex-integration[bot]
5756b189bb translate: Updates for project authentik and language ru (#18442)
translate: Translate django.po in ru

72% of minimum 60% translated source file: 'django.po'
on 'ru'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:19:48 +00:00
transifex-integration[bot]
af2f86e030 translate: Updates for project authentik and language cs_CZ (#18443)
translate: Translate django.po in cs_CZ

88% of minimum 60% translated source file: 'django.po'
on 'cs_CZ'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:19:27 +00:00
transifex-integration[bot]
be90f63f43 translate: Updates for project authentik and language pt (#18437)
translate: Translate django.po in pt

91% of minimum 60% translated source file: 'django.po'
on 'pt'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:18:58 +00:00
transifex-integration[bot]
7357b9cc58 translate: Updates for project authentik and language zh-Hans (#18439)
translate: Translate django.po in zh-Hans

83% of minimum 60% translated source file: 'django.po'
on 'zh-Hans'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:18:32 +00:00
transifex-integration[bot]
ec467bc2d1 translate: Updates for project authentik and language zh_CN (#18441)
translate: Translate django.po in zh_CN

97% of minimum 60% translated source file: 'django.po'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:17:00 +00:00
Dewi Roberts
d140e4fdd3 website/integrations: add local browser setting to seafile (#18428) 2025-11-28 18:16:33 +00:00
transifex-integration[bot]
75ead31448 translate: Updates for project authentik and language pl (#18430)
translate: Translate django.po in pl

69% of minimum 60% translated source file: 'django.po'
on 'pl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:16:07 +00:00
transifex-integration[bot]
713bb04c21 translate: Updates for project authentik and language pt_BR (#18436)
translate: Translate django.po in pt_BR

98% of minimum 60% translated source file: 'django.po'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:15:47 +00:00
transifex-integration[bot]
c14a029b23 translate: Updates for project authentik and language nl (#18434)
translate: Translate django.po in nl

64% of minimum 60% translated source file: 'django.po'
on 'nl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:15:17 +00:00
transifex-integration[bot]
6092a26450 translate: Updates for project authentik and language es (#18433)
translate: Translate django.po in es

90% of minimum 60% translated source file: 'django.po'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:14:41 +00:00
transifex-integration[bot]
6fba028404 translate: Updates for project authentik and language de (#18435)
translate: Translate django.po in de

93% of minimum 60% translated source file: 'django.po'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:13:49 +00:00
transifex-integration[bot]
678e1d87ba translate: Updates for project authentik and language fi (#18429)
translate: Translate django.po in fi

99% of minimum 60% translated source file: 'django.po'
on 'fi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-28 18:13:15 +00:00
Jens L.
f1a1f327cd endpoints: rework perms (#18422)
* fix api being incorrect

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

* more lenient facts

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

* fix authz flow not returning slug

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

* different auth header for multi-auth

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

* fix tests

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-28 17:26:11 +01:00
NiceDevil
d94117a8e3 website/integrations: Amazon Business (#17894)
* New Integration Guide Amazon Business

* WIP - Remove non metadata steps and standardize formatting

* Finished tidying up different sections, changed verification section, added resource.

* SSO Login Buttons not available

This Button isn't available, at least to me in germany.
I just open amazon and click on the normal login button where amazon is asking the user to enter the email address.

If you enter your businessemail here you get redirected to authentik. No separate button, I will post a screenshot :)

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* Spelling

* Update website/integrations/miscellaneous/amazon-business/index.mdx

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* as suggested

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestions from code review

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestions from code review

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

---------

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>
Signed-off-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: nicedevil007 <nicedevil007@users.noreply.github.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-28 07:44:52 -05:00
Timo Reusch
fa32567230 website/integrations: add Placetel (#18399)
* website/integrations: Add configuration guide for Placetel

* Small updates

* Suggestions

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Minor changes

* Improve clarity

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-27 20:33:56 +00:00
Jens L.
59da20e81c endpoints: include device ID in agent config (#18414)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-27 19:23:56 +01:00
Jens L.
1fb71371cb endpoints: AuthN and AuthZ (#18350)
* start agent auth

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

* also check windows system disk (hardcode C: for now)

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

* add process table

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

* include jwks

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

* nonce

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

* snap

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

* missing exp and username (temp values)

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

* fix missing meta

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

* rework auth and migrations

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

* include system config in agent config

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

* fix a bunch of broken stuff

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

* update ui

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

* format

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

* add device to login event

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

* add ssh

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

* fix tests

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

* start adding tests

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

* add tests

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

* policies

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

* remove domain name

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

* fix tests

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

* fix leftover

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

* add device to flow context

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

* dont allow access without policies

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

* some ui changes

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

* re-invent the wheel again

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

* start updating tests

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

* t

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

* Revert "t"

This reverts commit b74db5f5d4.

* Revert "start updating tests"

This reverts commit b2524c00b2.

* Revert "re-invent the wheel again"

This reverts commit c7cdf4c018.

* fixup

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

* fix ui

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

* re-migrate

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

* update tests

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

* fix web build

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

* f

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

* fix tests

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

* add device users and device groups

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

* expand users

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-27 19:05:57 +01:00
Jens L.
a7b42499b5 api: add decorator to validate serializer in @action endpoints (#17435)
* api: add decorator to validate serializer in @action endpoints

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

* rework to support query params

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

* docs

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

* migrate more

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

* aaand some more

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

* fix

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

* fix again

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-27 18:02:07 +01:00
Simonyi Gergő
7e8d2ad591 ci: remove unused local env (#18410)
remove unused local env

this is overwritten by the Generate config step of actions/setup
2025-11-27 17:48:23 +01:00
NiceDevil
dfa00cd1f8 website/integrations: Microsoft365 Federation (#17891)
* New Integration Guide Microsoft365

* Move Microsoft integration documentation to platforms

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* wip

* Added headers, changed language, moved some information around

* Add AuthnContextClassRef and change headers

* Update website/integrations/platforms/microsoft/index.md

Co-authored-by: Jens L. <jens@beryju.org>
Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* workflow

* typo

* added missing period

* omg moved period ughh

* sorry dewimake integrations

* I aggree

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* Minor changes

---------

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>
Co-authored-by: nicedevil007 <nicedevil007@users.noreply.github.com>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Jens L. <jens@beryju.org>
Co-authored-by: Tana M Berry <tana@goauthentik.io>
2025-11-27 14:18:08 +00:00
Dewi Roberts
c93872cb93 website/docs: improve creds recovery docs (#18385)
* Updates doc

* Fix links

* Typo

* Email link update

* Update website/docs/users-sources/user/user_basic_operations.md

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-27 14:09:04 +00:00
NiceDevil
1137f945f4 website/integrations: ChatGPT (#17893)
* New Integration Guide ChatGPT

* wip

* Minor changes

---------

Co-authored-by: nicedevil007 <nicedevil007@users.noreply.github.com>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-11-27 14:08:21 +00:00
Marc 'risson' Schmitt
08ccd3c25c providers/oauth2: optimize JWKS endpoint queries (#18405) 2025-11-27 14:29:48 +01:00
Marc 'risson' Schmitt
d6bf2131ee packages/django-channels-postgres: fix notify size check (#18347)
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-27 13:28:55 +00:00
dependabot[bot]
997da339a0 web: bump node-forge from 1.3.1 to 1.3.2 in /packages/docusaurus-config (#18398)
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-27 14:15:09 +01:00
Jens L.
d5f730a0d0 stages/prompt: set allow_blank for _read_only fields (#18297)
* stages/prompt: set allow_blank for _read_only fields

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

* fix

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-27 14:06:08 +01:00
dependabot[bot]
ce0d60bc83 core: bump openapitools/openapi-diff from 2.1.5 to 2.1.6 in /scripts/api (#18400)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-27 12:56:20 +00:00
Jens L.
3f53e41236 flows: remove SESSION_KEY_APPLICATION_PRE (#18388)
* flows: remove SESSION_KEY_APPLICATION_PRE

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

* fix tests

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-27 13:43:59 +01:00
dependabot[bot]
d7cf0179f5 core: bump axllent/mailpit from v1.27.11 to v1.28.0 in /tests/e2e (#18401)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-27 13:42:14 +01:00
dependabot[bot]
3717df1a72 core: bump astral-sh/uv from 0.9.12 to 0.9.13 (#18402)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-27 13:42:06 +01:00
Jens L.
0f972f2dc6 stages/captcha: allow dynamic public/private key (#18346)
* stages/captcha: allow dynamic public/private key

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

* add docs

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

* remove todo (oops)

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

* t

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

* fix tests

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

* fix version tag in docs

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-27 13:00:01 +01:00
NiceDevil
698c1ce817 website/integrations: KnowBe4 (#17899)
* New Integration Guide KnowBe4

* Update formatting and language

* removed values that are not present at this step

as @dominic-r already wrote.

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* Applied suggestions from review

* not different section on knowbe4 page

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* Change wording

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Update website/integrations/security/knowbe4/index.md

perfect, thats how I did it prior to my guide :)

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* Update

---------

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: nicedevil007 <nicedevil007@users.noreply.github.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-27 11:23:51 +00:00
dependabot[bot]
04d7f6cec8 core: bump goauthentik/fips-debian from 8c4ec98 to ac4c80b (#18403)
Bumps goauthentik/fips-debian from `8c4ec98` to `ac4c80b`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-27 12:16:46 +01:00
Tana M Berry
1f3fdbb7e3 website/docs: add some more info and tweak the full dev Docs (#18374)
* tweaks to steps

* huh?

* tweak

* more tweaks

* ken's edits

* typo

* more tweaks

* remove option B
2025-11-26 14:30:07 -06:00
Marc 'risson' Schmitt
0490f53eaa lib/sync/outgoing: check if there is a provider before creating tasks (#18394)
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-26 17:33:33 +00:00
Dewi Roberts
46ef933d33 web/admin: fix wording in password stage (#18393)
Remove word
2025-11-26 18:14:49 +01:00
dependabot[bot]
d211ea1560 core: bump goauthentik.io/api/v3 from 3.2025120.5 to 3.2025120.7 (#18381)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 13:51:16 +00:00
Jens L.
88dd0e84c0 web/admin: add entitlement search (#18291)
* web/admin: add entitlement search

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

* Apply suggestion from @GirlBossRush

Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>
Co-authored-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>
2025-11-26 14:29:51 +01:00
dependabot[bot]
fa300d5d10 core: bump goauthentik/fips-debian from 8b7e8d0 to 8c4ec98 (#18361)
Bumps goauthentik/fips-debian from `8b7e8d0` to `8c4ec98`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 14:16:18 +01:00
dependabot[bot]
08039b8249 website: bump the build group in /website with 3 updates (#18382)
Bumps the build group in /website with 3 updates: [@rspack/binding-darwin-arm64](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack), [@rspack/binding-linux-arm64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) and [@rspack/binding-linux-x64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack).


Updates `@rspack/binding-darwin-arm64` from 1.6.4 to 1.6.5
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.5/packages/rspack)

Updates `@rspack/binding-linux-arm64-gnu` from 1.6.4 to 1.6.5
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.5/packages/rspack)

Updates `@rspack/binding-linux-x64-gnu` from 1.6.4 to 1.6.5
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.5/packages/rspack)

---
updated-dependencies:
- dependency-name: "@rspack/binding-darwin-arm64"
  dependency-version: 1.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-arm64-gnu"
  dependency-version: 1.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-x64-gnu"
  dependency-version: 1.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 14:01:06 +01:00
dependabot[bot]
e786e8a17d core: bump astral-sh/uv from 0.9.11 to 0.9.12 (#18383)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.11 to 0.9.12.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.11...0.9.12)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 14:00:53 +01:00
Jens L.
02b8b52e09 root: improve testing helpers (#18379)
* *: improve test utils to generate request with session

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

* the rest of the owl

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

* fix

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

* fix

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-26 13:39:24 +01:00
dependabot[bot]
2cae8160c3 website: bump the goauthentik group across 1 directory with 4 updates (#18378)
Bumps the goauthentik group with 4 updates in the /website directory: [@goauthentik/eslint-config](https://github.com/goauthentik/authentik/tree/HEAD/packages/eslint-config), [@goauthentik/prettier-config](https://github.com/goauthentik/authentik/tree/HEAD/packages/prettier-config), [@goauthentik/tsconfig](https://github.com/goauthentik/authentik/tree/HEAD/packages/tsconfig) and [@goauthentik/docusaurus-config](https://github.com/goauthentik/authentik/tree/HEAD/packages/docusaurus-config).


Updates `@goauthentik/eslint-config` from 1.0.5 to 1.1.0
- [Release notes](https://github.com/goauthentik/authentik/releases)
- [Commits](https://github.com/goauthentik/authentik/commits/HEAD/packages/eslint-config)

Updates `@goauthentik/prettier-config` from 3.1.0 to 3.2.1
- [Release notes](https://github.com/goauthentik/authentik/releases)
- [Commits](https://github.com/goauthentik/authentik/commits/HEAD/packages/prettier-config)

Updates `@goauthentik/tsconfig` from 1.0.4 to 1.0.5
- [Release notes](https://github.com/goauthentik/authentik/releases)
- [Commits](https://github.com/goauthentik/authentik/commits/HEAD/packages/tsconfig)

Updates `@goauthentik/docusaurus-config` from 2.1.2 to 2.2.1
- [Release notes](https://github.com/goauthentik/authentik/releases)
- [Commits](https://github.com/goauthentik/authentik/commits/HEAD/packages/docusaurus-config)

---
updated-dependencies:
- dependency-name: "@goauthentik/eslint-config"
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: goauthentik
- dependency-name: "@goauthentik/prettier-config"
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: goauthentik
- dependency-name: "@goauthentik/tsconfig"
  dependency-version: 1.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: goauthentik
- dependency-name: "@goauthentik/docusaurus-config"
  dependency-version: 2.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: goauthentik
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 01:58:32 +01:00
dependabot[bot]
f6dc7acfdb website: bump the eslint group in /website with 3 updates (#18356)
Bumps the eslint group in /website with 3 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@typescript-eslint/eslint-plugin` from 8.47.0 to 8.48.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.48.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.47.0 to 8.48.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.48.0/packages/parser)

Updates `typescript-eslint` from 8.47.0 to 8.48.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.48.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 00:39:35 +01:00
Jens L.
5739d26bbb policies: use flow planner directly in PolicyAccessView to directly set flow context (#18372)
* policies: use flow planner directly in PolicyAccessView to directly set flow context

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

* fix oauth tests

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

* fix call to get default flow

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

* fix more tests

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

* fix handling of ?next

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

* slightly more tests

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

* fix issue in random test

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-26 00:20:35 +01:00
Pavel Pavel
2145d9221a providers/scim: fix PATCH for AWS (#18230)
* Fix SCIM for AWS

* Batch AWS PATCH requests

---------

Co-authored-by: Pavel Sinkevych <pavelsinkevych@gmail.com>
2025-11-26 00:12:34 +01:00
Connor Peshek
8bcdf162a1 enterprise/providers/scim: fix OAuth (#18358)
* fix logging error

* fix provider deletion on oauth to token change

---------

Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-11-25 16:40:22 -06:00
Teffen Ellis
171305ca47 web: Fix stale table rows (#17940)
web: Fix issues surrounding stale table rows.
2025-11-25 21:38:56 +00:00
Teffen Ellis
928e5b1a90 web: Bump packages. (#18371) 2025-11-25 15:35:30 -05:00
Marc 'risson' Schmitt
9621082f06 *: convert slugfields to textfields (#17411)
* *: convert slugfields to textfields

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* update migrations

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

---------

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-25 17:56:36 +00:00
Jens L.
40b6f4a115 outposts: set container healthcheck inline (#18298)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-25 17:07:00 +00:00
Teffen Ellis
6f9db3fccf web: ESLint Typing Fixes (#18362)
* Bump engine.

* Fix ESLint types.
2025-11-25 12:02:09 -05:00
dependabot[bot]
7e3c57a98c core: bump golang.org/x/crypto from 0.43.0 to 0.45.0 (#18275)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.43.0 to 0.45.0.
- [Commits](https://github.com/golang/crypto/compare/v0.43.0...v0.45.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 18:01:08 +01:00
dependabot[bot]
2b135805a1 lifecycle/aws: bump aws-cdk from 2.1032.0 to 2.1033.0 in /lifecycle/aws (#18278)
Bumps [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk) from 2.1032.0 to 2.1033.0.
- [Release notes](https://github.com/aws/aws-cdk-cli/releases)
- [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1033.0/packages/aws-cdk)

---
updated-dependencies:
- dependency-name: aws-cdk
  dependency-version: 2.1033.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 16:52:01 +00:00
dependabot[bot]
3dd0857a64 core: bump github.com/getsentry/sentry-go from 0.38.0 to 0.39.0 (#18353)
Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.38.0 to 0.39.0.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.38.0...v0.39.0)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 16:51:21 +00:00
dependabot[bot]
cb6cbcc412 ci: bump actions/setup-python from 6.0.0 to 6.1.0 in /.github/actions/setup (#18360)
ci: bump actions/setup-python in /.github/actions/setup

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](e797f83bcb...83679a892e)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 16:46:25 +00:00
Teffen Ellis
12c8bca8bf website: Unlisted & Draft Release Notes (#18210)
* website: Unlisted Release Notes

* Swizzle unlisted component. Revise copy for pre-release.
2025-11-25 11:36:53 -05:00
dependabot[bot]
a37162aebd core: bump goauthentik.io/api/v3 from 3.2025120.4 to 3.2025120.5 (#18354)
Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2025120.4 to 3.2025120.5.
- [Release notes](https://github.com/goauthentik/client-go/releases)
- [Changelog](https://github.com/goauthentik/client-go/blob/main/model_version_history.go)
- [Commits](https://github.com/goauthentik/client-go/compare/v3.2025120.4...v3.2025120.5)

---
updated-dependencies:
- dependency-name: goauthentik.io/api/v3
  dependency-version: 3.2025120.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 17:29:24 +01:00
dependabot[bot]
a6e7d2c02f ci: bump aws-actions/configure-aws-credentials from 5.1.0 to 5.1.1 (#18359)
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](00943011d9...61815dcd50)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: 5.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 17:28:27 +01:00
Dominic R
b8dee0c0c3 web/sources: Add promoted source (#18334)
* web/sources: Add promoted source

* fix some css

* fix test
2025-11-25 10:54:07 -05:00
Dewi Roberts
5b9f97deb4 website/docs: update info about docker socket mount (#18344)
* Update info about docker socket mounting

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Update website/docs/install-config/install/docker-compose.mdx

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: Jens L. <jens@goauthentik.io>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
2025-11-25 12:10:27 +00:00
dependabot[bot]
1c1e9af22b web: bump knip from 5.70.0 to 5.70.1 in /web (#18310)
Bumps [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) from 5.70.0 to 5.70.1.
- [Release notes](https://github.com/webpro-nl/knip/releases)
- [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json)
- [Commits](https://github.com/webpro-nl/knip/commits/5.70.1/packages/knip)

---
updated-dependencies:
- dependency-name: knip
  dependency-version: 5.70.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-25 02:45:52 +01:00
authentik-automation[bot]
3d5f975fbb core, web: update translations (#18304)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-25 00:39:11 +00:00
adns44
3dbecdbd30 website/integrations: harbor: fix slashes in URLs and group claim name (#18332)
Update index.md

Fixes:
- Authentik redirect URI fix
- Harbor OIDC URI fix
- Group Claim Name fix to fetch groups from Authentik

Signed-off-by: adns44 <52037190+adns44@users.noreply.github.com>
2025-11-24 20:39:30 +00:00
Teffen Ellis
a8e765257e web: Update Deprecated NPM Packages (#18335)
* core: Bump packages.

* Bump Live Reload dependencies.

* Bump tsconfig.

* Bum ESLint config deps. Fix formatting.

* Bump Prettier deps. Fix ESlint config.

* Bump live reload deps. Fix linter.

* Bump website deps.

* web: Update dependencies. Fix Playwright issues.

* Fix deprecations.

* Fix linter warnings.

* Fix override, run audit.

* Fix import path.

* Tidy types.

* Format.

* Update ignore patterns.

* Fix import path.

* Update deps. Clean up workspace linting.

* Update deps, options.

* Hide icons in navbar.

* Format.

* Remove deprecated option.

* Use relative packages.

* Add scripts. Tidy.

* Bump engines.

* Clarify order.

* Clarify order. Install base deps.

* Format.

* Fix stale user during tests.

* Fix runtime errors.

* Fix redirect during tests, UI change.

* web: Fix danger button hover background color.

* web: Adjust colors, padding.

* web: Fix sidebar colors, padding.

* Fix alignment.

* Fix background contrast.
2025-11-24 13:31:42 -05:00
Dominic R
e002243a8a web: Improve user display in modals by falling back to username (#18243)
* web: Improve user display in modals by falling back to username

Fixes UX issues in user-related modals where users without a display name would show empty text.

Previously:
* "Are you sure you want to update User ""?" (empty display name)
* "Successfully updated User undefined"

Now:
* "Are you sure you want to update User john_doe?" (falls back to username)
* "Successfully updated User john_doe"

Topics of discussion:
* Wether the object label should be lowercased to keep the sentence flowing (In this case, lowercasing User)

* oops it did have quotes actually

* pls
2025-11-24 08:36:35 -05:00
Dominic R
c18f6d2f21 root: regen schema (#18327) 2025-11-24 14:31:41 +01:00
dependabot[bot]
7d41e4c797 core: bump goauthentik.io/api/v3 from 3.2025120.3 to 3.2025120.4 (#18307)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 13:27:34 +00:00
dependabot[bot]
0b0a030e35 web: bump the rollup group across 1 directory with 4 updates (#18277)
Bumps the rollup group with 4 updates in the /web directory: [@rollup/rollup-darwin-arm64](https://github.com/rollup/rollup), [@rollup/rollup-linux-arm64-gnu](https://github.com/rollup/rollup), [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) and [rollup](https://github.com/rollup/rollup).


Updates `@rollup/rollup-darwin-arm64` from 4.53.2 to 4.53.3
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.2...v4.53.3)

Updates `@rollup/rollup-linux-arm64-gnu` from 4.53.2 to 4.53.3
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.2...v4.53.3)

Updates `@rollup/rollup-linux-x64-gnu` from 4.53.2 to 4.53.3
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.2...v4.53.3)

Updates `rollup` from 4.53.2 to 4.53.3
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.2...v4.53.3)

---
updated-dependencies:
- dependency-name: "@rollup/rollup-darwin-arm64"
  dependency-version: 4.53.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rollup
- dependency-name: "@rollup/rollup-linux-arm64-gnu"
  dependency-version: 4.53.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rollup
- dependency-name: "@rollup/rollup-linux-x64-gnu"
  dependency-version: 4.53.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rollup
- dependency-name: rollup
  dependency-version: 4.53.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rollup
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 14:01:15 +01:00
dependabot[bot]
18891b72e1 ci: bump actions/checkout from 5.0.1 to 6.0.0 (#18313)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](93cb6efe18...1af3b93b68)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 13:44:24 +01:00
dependabot[bot]
9a25fd4a3f ci: bump actions/setup-go from 6.0.0 to 6.1.0 (#18282)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4469467582...4dc6199c7b)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 12:46:56 +01:00
dependabot[bot]
d666019cd6 website: bump the build group in /website with 6 updates (#18308)
Bumps the build group in /website with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@swc/core-darwin-arm64](https://github.com/swc-project/swc) | `1.15.2` | `1.15.3` |
| [@swc/core-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.15.2` | `1.15.3` |
| [@swc/core-linux-x64-gnu](https://github.com/swc-project/swc) | `1.15.2` | `1.15.3` |
| [@swc/html-darwin-arm64](https://github.com/swc-project/swc) | `1.15.2` | `1.15.3` |
| [@swc/html-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.15.2` | `1.15.3` |
| [@swc/html-linux-x64-gnu](https://github.com/swc-project/swc) | `1.15.2` | `1.15.3` |


Updates `@swc/core-darwin-arm64` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-arm64-gnu` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-x64-gnu` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/html-darwin-arm64` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/html-linux-arm64-gnu` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/html-linux-x64-gnu` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

---
updated-dependencies:
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-darwin-arm64"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-linux-arm64-gnu"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-linux-x64-gnu"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 12:18:26 +01:00
dependabot[bot]
06ed7a428c web: bump the swc group across 1 directory with 11 updates (#18309)
Bumps the swc group with 1 update in the /web directory: [@swc/core](https://github.com/swc-project/swc).


Updates `@swc/core` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-darwin-arm64` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-darwin-x64` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-arm-gnueabihf` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-arm64-gnu` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-arm64-musl` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-x64-gnu` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-linux-x64-musl` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-win32-arm64-msvc` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-win32-ia32-msvc` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

Updates `@swc/core-win32-x64-msvc` from 1.15.2 to 1.15.3
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.2...v1.15.3)

---
updated-dependencies:
- dependency-name: "@swc/core"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-darwin-x64"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm-gnueabihf"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm64-musl"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-x64-musl"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-win32-arm64-msvc"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-win32-ia32-msvc"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-win32-x64-msvc"
  dependency-version: 1.15.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 12:11:51 +01:00
dependabot[bot]
d7beceb2c0 core: bump github.com/coreos/go-oidc/v3 from 3.16.0 to 3.17.0 (#18306)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc) from 3.16.0 to 3.17.0.
- [Release notes](https://github.com/coreos/go-oidc/releases)
- [Commits](https://github.com/coreos/go-oidc/compare/v3.16.0...v3.17.0)

---
updated-dependencies:
- dependency-name: github.com/coreos/go-oidc/v3
  dependency-version: 3.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:50:33 +01:00
dependabot[bot]
a804f7013b ci: bump svenstaro/upload-release-action from 2.11.2 to 2.11.3 (#18311)
Bumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.11.2 to 2.11.3.
- [Release notes](https://github.com/svenstaro/upload-release-action/releases)
- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)
- [Commits](81c65b7cd4...6b7fa9f267)

---
updated-dependencies:
- dependency-name: svenstaro/upload-release-action
  dependency-version: 2.11.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:49:55 +01:00
dependabot[bot]
1939ed8610 core: bump astral-sh/uv from 0.9.10 to 0.9.11 (#18312)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.10 to 0.9.11.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.10...0.9.11)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:49:18 +01:00
dependabot[bot]
70e275d24b ci: bump golangci/golangci-lint-action from 9.0.0 to 9.1.0 (#18336)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](0a35821d5c...e7fa5ac41e)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:47:19 +01:00
dependabot[bot]
6a671ac5b0 ci: bump astral-sh/setup-uv from 7.1.3 to 7.1.4 in /.github/actions/setup (#18339)
ci: bump astral-sh/setup-uv in /.github/actions/setup

Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.3 to 7.1.4.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](5a7eac68fb...1e862dfacb)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:45:26 +01:00
dependabot[bot]
9e1ca6def5 ci: bump actions/create-github-app-token from 2.1.4 to 2.2.0 (#18338)
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2.1.4 to 2.2.0.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](6701853927...7e473efe3c)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:45:13 +01:00
dependabot[bot]
91b75a2c47 ci: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (#18337)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.8 to 7.0.9.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](271a8d0340...84ae59a2cd)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: 7.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:44:56 +01:00
dependabot[bot]
f61445a342 core: bump goauthentik/fips-debian from 55c1514 to 8b7e8d0 (#18283)
Bumps goauthentik/fips-debian from `55c1514` to `8b7e8d0`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:44:38 +01:00
dependabot[bot]
eccc786eb2 ci: bump actions/setup-go from 6.0.0 to 6.1.0 in /.github/actions/setup (#18284)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4469467582...4dc6199c7b)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:43:21 +01:00
dependabot[bot]
dbf90c49a7 core: bump library/golang from 728cbef to a02d35e (#18340)
Bumps library/golang from `728cbef` to `a02d35e`.

---
updated-dependencies:
- dependency-name: library/golang
  dependency-version: 1.25.4-trixie
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:39:03 +01:00
Dewi Roberts
e9469faf89 website/docs: update certificate doc (#18295)
* Update line

* Add expiry information

* Apply suggestion from @dominic-r

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions

* Improve language

* Apply suggestions

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-21 19:15:19 +00:00
Dewi Roberts
2a6592737b website/docs: add high availability doc (#18182)
* Create document and intro

* Add high availability document and update sidebar

* Spelling and header

* Add mermaid diagram

* Applied suggestions

* More suggestions

* Fix links

* Update website/docs/install-config/high-availability.mdx

Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Update website/docs/install-config/high-availability.mdx

Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions

* Add monitoring link

* Apply Ken's suggestion

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestions

* Few wording changes

* Wording improvements

* Apply suggestions from code review

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestion

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestion from @tanberry

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
2025-11-21 19:14:33 +00:00
Tana M Berry
3cf18020bc website/docs: added missed edits on Blueprints docs (#18321)
added missed edits
2025-11-21 11:28:50 -06:00
Teffen Ellis
90d4555935 web: Prettier Config 3.2 (#18305)
* Update deps.

* Add types to sub-exports.

* Add keep unused check.
2025-11-21 17:04:25 +01:00
Dewi Roberts
a0278a6818 website/docs: further improvments to source switch doc (#18320)
Moves section and improves language
2025-11-21 14:25:35 +00:00
Dewi Roberts
ee9d12052e website/docs: fix broken link in source switching doc (#18317)
Fix link and policy example
2025-11-21 13:21:46 +00:00
dependabot[bot]
28ac595716 web: bump country-flag-icons from 1.5.21 to 1.6.1 in /web (#18280)
Bumps [country-flag-icons](https://gitlab.com/catamphetamine/country-flag-icons) from 1.5.21 to 1.6.1.
- [Changelog](https://gitlab.com/catamphetamine/country-flag-icons/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/country-flag-icons/compare/v1.5.21...v1.6.1)

---
updated-dependencies:
- dependency-name: country-flag-icons
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 19:53:48 -05:00
Simonyi Gergő
fc9d534cc5 ci: fix checkout stable (#18303)
If you don't happen to read the logs of this step, everything seems
fine and `git checkout $(prev_stable)` is just interpreted as the
no-op `git checkout`. That's because `$()` spawns a subshell and
subshell errors don't stop execution on `set -eo pipefail`. In fact, a
quick search didn't reveal any way to catch this typo with `set`.

I wonder how long this could have stayed hidden if I wasn't specifically
looking at this workflow for a completely different reason.
2025-11-21 00:45:45 +01:00
dependabot[bot]
74bb0904b4 web: bump js-yaml from 4.1.0 to 4.1.1 in /packages/eslint-config (#18301)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-21 00:25:28 +01:00
Jens L.
e9c2e10828 endpoints: initial data structure + agent (#11499)
* endpoints: initial data structure

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

* some moving

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

* more stuff

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

* rework models a bit

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

* small QOL

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

* fix API

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

* more structure, early UI

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

* start agent connector

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

* fix IDs

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

* fix schema

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

* init fleet

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

* t

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

* add more pages

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

* more

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

* more

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

* stage

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

* fix

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

* start challenge

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

* t

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

* I had an idea

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

* more stuf

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

* more frontend plumbing

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

* keep original gdtc for now

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

* move agent to non enterprise

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

* small stuff

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

* add last_update

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

* rework common facts

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

* add processes

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

* add last_update

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

* very basic UI

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

* update

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

* rework

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

* add path

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

* capacity in int64

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

* add support for multiple versions of data

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

* expiring snapshots

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

* update API

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

* better structure and query and fleet

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

* fix more

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

* add more metrics

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

* more UI

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

* more device data

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

* format

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

* correct task schedule

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

* ignore device snapshot

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

* fix more things, agent connector form

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

* connector edit

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

* fix some api stuff

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

* fix build

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

* add preview banner

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

* add percentage

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

* start agent view page

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

* add enrollment token api

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

* start agent connector view page

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

* more UI

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

* small fix

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

* ephemeral devices

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

* less hardcoded

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

* add refresh interval

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

* fix fleet os family, os family label

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

* fix some things

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

* start writing tests

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

* rework auth to be more rest-framework like

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

* move enterprise parts to enterprise

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

* remove chrome from this PR

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

* remove fleet from this PR

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

* optimise API to use cached facts on list

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

* rename some things

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

* use hostname

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

* re-migrate

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

* cleanup unused things

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

* remove stage for now

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

* format

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

* save connector related to user binding of device

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

* device attributes

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

* add device group selector

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

* fix expandable

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

* fix missing device group obj

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

* purge through cache if we get a snapshot from a new connection

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

* dont log devicetoken

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

* make device deletable

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

* handle no facts

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

* add device form

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

* fix device group not assigned

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

* add tests for facts merging

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

* fix lint

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

* start setup, generate mdm config

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

* connector -> controller to avoid duplicate names

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

* format

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

* add full how to

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

* format

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

* fix tests

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

* enable search

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

* more things

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

* add support on type create page for above form text

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

* fix enrollment token expiry (list and form)

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

* add token copy

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

* annotate mdm config correctly

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

* fix config download

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

* decent design

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

* remove placeholders

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

* pre-add fields for apple platform sso

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

* fix tests

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-20 22:31:30 +01:00
Tana M Berry
d4d6c466a9 website/docs: enhance blueprint docs (#15984)
* draft of note about bp behviour when modified

* Update website/docs/customize/blueprints/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>

* clarify title

* more tweaks

* tweaks

* more content, rearranged headings

* tweak

* more content about creating a bp instance

* create new page for procedures

* tweaks

* add to sidebar, tweaks

* fixed conflict

* add link to procedurals

* typo

* more content

* more links, more tips

* wip

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* final tweaks

* jens and dewi edits

* tweaks

* more Dewi and Jens edits yay

---------

Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-20 13:00:57 -06:00
Connor Peshek
64965e3750 Makefile: Fix kerberos tests for brew users (#17223)
Makefile: Fix kerberos tests for brew users

Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-11-19 09:52:26 -08:00
Jens L.
cd1693be28 website/docs: add 2025.8.5 and 2025.10.2 release notes (#18268)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-19 15:24:06 +01:00
authentik-automation[bot]
4d0abe30f1 internal: Automated internal backport: 5000-sidebar.sec.patch to authentik-main (#18266)
Automated internal backport of patch 5000-sidebar.sec.patch to authentik-main

Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-19 15:21:16 +01:00
authentik-automation[bot]
9dbdfc3f1b internal: Automated internal backport: 1498-oauth2-cc-user-active.sec.patch to authentik-main (#18265)
Automated internal backport of patch 1498-oauth2-cc-user-active.sec.patch to authentik-main

Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-19 15:01:06 +01:00
authentik-automation[bot]
6672e6aaa4 internal: Automated internal backport: 1487-invitation-expiry.sec.patch to authentik-main (#18264)
Automated internal backport of patch 1487-invitation-expiry.sec.patch to authentik-main

Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-19 14:54:24 +01:00
authentik-automation[bot]
545d42572f core, web: update translations (#18241)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-19 12:33:22 +00:00
dependabot[bot]
29b010b86b web: bump ts-pattern from 5.8.0 to 5.9.0 in /web (#18247)
Bumps [ts-pattern](https://github.com/gvergnaud/ts-pattern) from 5.8.0 to 5.9.0.
- [Release notes](https://github.com/gvergnaud/ts-pattern/releases)
- [Commits](https://github.com/gvergnaud/ts-pattern/compare/v5.8.0...v5.9.0)

---
updated-dependencies:
- dependency-name: ts-pattern
  dependency-version: 5.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 11:26:52 +01:00
dependabot[bot]
cf692d635a web: bump the react group across 2 directories with 1 update (#18244)
Bumps the react group with 1 update in the /packages/docusaurus-config directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).
Bumps the react group with 1 update in the /web directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.2.4 to 19.2.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react` from 19.2.4 to 19.2.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 11:26:04 +01:00
dependabot[bot]
eebc92552f web: bump knip from 5.66.2 to 5.70.0 in /web (#18245)
Bumps [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) from 5.66.2 to 5.70.0.
- [Release notes](https://github.com/webpro-nl/knip/releases)
- [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json)
- [Commits](https://github.com/webpro-nl/knip/commits/5.70.0/packages/knip)

---
updated-dependencies:
- dependency-name: knip
  dependency-version: 5.70.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 11:25:39 +01:00
dependabot[bot]
31b7bada88 core: bump library/nginx from b5b9e01 to 553f64a in /website (#18253)
Bumps library/nginx from `b5b9e01` to `553f64a`.

---
updated-dependencies:
- dependency-name: library/nginx
  dependency-version: 1.29-trixie
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 11:25:31 +01:00
dependabot[bot]
2f1bf7824c core: bump library/golang from 27e1c92 to 728cbef (#18252)
Bumps library/golang from `27e1c92` to `728cbef`.

---
updated-dependencies:
- dependency-name: library/golang
  dependency-version: 1.25.4-trixie
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 11:25:22 +01:00
dependabot[bot]
0c1ec687c5 core: bump goauthentik/fips-debian from 65a9f1f to 55c1514 (#18251)
Bumps goauthentik/fips-debian from `65a9f1f` to `55c1514`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 11:25:12 +01:00
Teffen Ellis
e8f8785e2f web: Bump Vitest, TypeScript config (#18238)
Upgrade deps. Fix imports.
2025-11-19 00:11:21 +01:00
dependabot[bot]
f4bad6a564 web: bump js-yaml from 4.1.0 to 4.1.1 in /packages/esbuild-plugin-live-reload (#18237)
web: bump js-yaml in /packages/esbuild-plugin-live-reload

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 23:45:06 +01:00
Teffen Ellis
b4b0142421 web/i18n: Remove English Locale (#18164) 2025-11-18 22:19:22 +01:00
dependabot[bot]
78b91fed5d web: bump js-yaml from 3.14.1 to 3.14.2 in /packages/docusaurus-config (#18239)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 19:26:12 +01:00
Teffen Ellis
de1b7d7d81 web/i18n: Clean up locale scripts (#18163)
* web/i81n: Clean up locale scripts.

* Fix logs, clean up caching.

* Use previous script name.

* Fix path.
2025-11-18 12:25:00 -05:00
Jens L.
0913b1050d stages/prompt: fix choices with labels causing error on submit (#18183)
* stages/prompt: fix choices with labels causing error on submit

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

* fix tests

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-18 18:04:45 +01:00
Teffen Ellis
5451e047c1 web: Patternfly 5 Prep: Part 2 (#18085)
* web: Fix missing block modifier. Remove redundant.

* Fix spacing.

* Fix status colors on dark themes.

* Add missing dark theme styles. Fix order of style rules.

* Only show ungrouped label when in high contrast.

* Consistent delete disable color.

* Split Patternfly variables into separate files. Prep for PF5.

* Fix contrast on light mode.

* Fix background base color.

* Fix issues surrounding color layering, overlay states, contrast, etc.

* Flesh out placeholder.

* Flesh out loading state, inspector toggle.

* Build static CSS for proxy. Remove loading entry.

* Fix types.

* some very small style adjustments

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-11-18 17:12:27 +01:00
dependabot[bot]
6f52899440 lifecycle/aws: bump aws-cdk from 2.1031.2 to 2.1032.0 in /lifecycle/aws (#18218)
Bumps [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk) from 2.1031.2 to 2.1032.0.
- [Release notes](https://github.com/aws/aws-cdk-cli/releases)
- [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1032.0/packages/aws-cdk)

---
updated-dependencies:
- dependency-name: aws-cdk
  dependency-version: 2.1032.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 15:30:55 +01:00
Marcelo Elizeche Landó
0ed903599a core: bump click from 8.3.0 to v8.3.1 (#18198) 2025-11-18 15:30:35 +01:00
dependabot[bot]
c0b5c4be22 website: bump the build group across 1 directory with 9 updates (#18231)
Bumps the build group with 9 updates in the /website directory:

| Package | From | To |
| --- | --- | --- |
| [@rspack/binding-darwin-arm64](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.6.3` | `1.6.4` |
| [@rspack/binding-linux-arm64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.6.3` | `1.6.4` |
| [@rspack/binding-linux-x64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.6.3` | `1.6.4` |
| [@swc/core-darwin-arm64](https://github.com/swc-project/swc) | `1.15.1` | `1.15.2` |
| [@swc/core-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.15.1` | `1.15.2` |
| [@swc/core-linux-x64-gnu](https://github.com/swc-project/swc) | `1.15.1` | `1.15.2` |
| [@swc/html-darwin-arm64](https://github.com/swc-project/swc) | `1.15.1` | `1.15.2` |
| [@swc/html-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.15.1` | `1.15.2` |
| [@swc/html-linux-x64-gnu](https://github.com/swc-project/swc) | `1.15.1` | `1.15.2` |



Updates `@rspack/binding-darwin-arm64` from 1.6.3 to 1.6.4
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.4/packages/rspack)

Updates `@rspack/binding-linux-arm64-gnu` from 1.6.3 to 1.6.4
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.4/packages/rspack)

Updates `@rspack/binding-linux-x64-gnu` from 1.6.3 to 1.6.4
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.4/packages/rspack)

Updates `@swc/core-darwin-arm64` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-arm64-gnu` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-x64-gnu` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/html-darwin-arm64` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/html-linux-arm64-gnu` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/html-linux-x64-gnu` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

---
updated-dependencies:
- dependency-name: "@rspack/binding-darwin-arm64"
  dependency-version: 1.6.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-arm64-gnu"
  dependency-version: 1.6.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-x64-gnu"
  dependency-version: 1.6.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-darwin-arm64"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-linux-arm64-gnu"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-linux-x64-gnu"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 15:22:06 +01:00
authentik-automation[bot]
12a85ee59f core, web: update translations (#18046)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-18 13:24:47 +00:00
dependabot[bot]
013b06b0b6 website: bump the eslint group in /website with 3 updates (#18214)
Bumps the eslint group in /website with 3 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@typescript-eslint/eslint-plugin` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/parser)

Updates `typescript-eslint` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:23:31 +01:00
dependabot[bot]
0e6eae2e90 web: bump the eslint group across 2 directories with 3 updates (#18216)
Bumps the eslint group with 1 update in the /packages/eslint-config directory: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).
Bumps the eslint group with 1 update in the /web directory: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/typescript-eslint)

Updates `typescript-eslint` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/typescript-eslint)

Updates `@typescript-eslint/eslint-plugin` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.46.4 to 8.47.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/parser)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.47.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:23:20 +01:00
Marcelo Elizeche Landó
c280558489 core: bump google-auth from 2.42.1 to v2.43.0 (#18199) 2025-11-18 14:22:59 +01:00
dependabot[bot]
d55c83a32f core: bump github.com/getsentry/sentry-go from 0.37.0 to 0.38.0 (#18212)
Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.37.0 to 0.38.0.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.37.0...v0.38.0)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:22:42 +01:00
dependabot[bot]
9dc167572b website: bump @types/react from 19.2.4 to 19.2.6 in /website (#18215)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.2.4 to 19.2.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:22:25 +01:00
dependabot[bot]
b7ba388b57 web: bump the storybook group across 1 directory with 5 updates (#18217)
Bumps the storybook group with 4 updates in the /web directory: [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs), [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links), [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) and [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite).


Updates `@storybook/addon-docs` from 10.0.7 to 10.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.8/code/addons/docs)

Updates `@storybook/addon-links` from 10.0.7 to 10.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.8/code/addons/links)

Updates `@storybook/web-components` from 10.0.7 to 10.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.8/code/renderers/web-components)

Updates `@storybook/web-components-vite` from 10.0.7 to 10.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.8/code/frameworks/web-components-vite)

Updates `storybook` from 10.0.7 to 10.0.8
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.8/code/core)

---
updated-dependencies:
- dependency-name: "@storybook/addon-docs"
  dependency-version: 10.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-version: 10.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components"
  dependency-version: 10.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components-vite"
  dependency-version: 10.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-version: 10.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:22:13 +01:00
dependabot[bot]
c3f1f68adc web: bump the swc group across 1 directory with 11 updates (#18219)
Bumps the swc group with 1 update in the /web directory: [@swc/core](https://github.com/swc-project/swc).


Updates `@swc/core` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-darwin-arm64` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-darwin-x64` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-arm-gnueabihf` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-arm64-gnu` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-arm64-musl` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-x64-gnu` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-linux-x64-musl` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-win32-arm64-msvc` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-win32-ia32-msvc` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

Updates `@swc/core-win32-x64-msvc` from 1.15.1 to 1.15.2
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.15.1...v1.15.2)

---
updated-dependencies:
- dependency-name: "@swc/core"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-darwin-x64"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm-gnueabihf"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm64-musl"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-linux-x64-musl"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-win32-arm64-msvc"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-win32-ia32-msvc"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core-win32-x64-msvc"
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:22:04 +01:00
dependabot[bot]
328c2fbca3 core: bump astral-sh/uv from 0.9.9 to 0.9.10 (#18224)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.9 to 0.9.10.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.9...0.9.10)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:20:12 +01:00
Marcelo Elizeche Landó
f01241421f core: bump jsii from 1.118.0 to v1.119.0 (#18201) 2025-11-18 14:07:50 +01:00
Marcelo Elizeche Landó
3a8b04ca60 core: bump pynacl from 1.6.0 to v1.6.1 (#18203) 2025-11-18 14:07:40 +01:00
Marcelo Elizeche Landó
70a65f79be core: bump boto3 from 1.40.66 to v1.40.75 (#18194) 2025-11-18 14:07:33 +01:00
Marcelo Elizeche Landó
02c8941b26 core: bump googleapis-common-protos from 1.71.0 to v1.72.0 (#18200) 2025-11-18 14:06:25 +01:00
Marcelo Elizeche Landó
4f0626a033 core: bump certifi from 2025.10.5 to v2025.11.12 (#18197) 2025-11-18 14:05:54 +01:00
Marcelo Elizeche Landó
ac5f22abe7 core: bump zope-interface from 8.0.1 to v8.1.1 (#18206) 2025-11-18 14:05:33 +01:00
Marcelo Elizeche Landó
1e552b3cbe core: bump zope-event from 6.0 to v6.1 (#18205) 2025-11-18 14:05:18 +01:00
Marcelo Elizeche Landó
db8600955f core: bump cachetools from 6.2.1 to v6.2.2 (#18195) 2025-11-18 14:05:09 +01:00
Marcelo Elizeche Landó
07fa0d90f2 core: bump rpds-py from 0.28.0 to v0.29.0 (#18204) 2025-11-18 14:05:02 +01:00
Marcelo Elizeche Landó
9d1571fd0e core: bump protobuf from 6.33.0 to v6.33.1 (#18202) 2025-11-18 14:04:41 +01:00
Marcelo Elizeche Landó
86ca79ce30 core: bump cattrs from 25.2.0 to v25.3.0 (#18196) 2025-11-18 14:04:34 +01:00
dependabot[bot]
61695adaa4 core: bump goauthentik/fips-debian from 40a1f32 to 65a9f1f (#18223)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:01:18 +01:00
dependabot[bot]
1999d60465 ci: bump actions/checkout from 5.0.0 to 5.0.1 (#18222)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:00:36 +01:00
dependabot[bot]
62f10273b5 core: bump library/nginx from 1beed3c to b5b9e01 in /website (#18225)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 14:00:10 +01:00
Connor Peshek
35329991ef providers/saml: fix front-end saml binding defaults (#18189)
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-11-17 15:55:48 -08:00
Teffen Ellis
0b2cc6370c web: Hide avatars when set to "none" (#17911) 2025-11-17 23:48:14 +00:00
Marcelo Elizeche Landó
166913c6c3 website/docs: Add instructions for installing RC versions (#18099)
* Add instructions for installing RC versions

* Moves the imports to the start and changed the docker wording

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions from code review

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>
Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-17 20:17:51 -03:00
Teffen Ellis
5c0ddf368f web/a11y: Update wizard form labels, placeholders. (#17811)
web: Update wizard form labels, placeholders.
2025-11-17 18:17:16 -05:00
Jens L.
f269c24b94 web: fix outpost build (#18190)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-17 21:43:27 +01:00
authentik-automation[bot]
b8dfe1aae0 stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#18166)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-17 21:26:55 +01:00
dependabot[bot]
09f4020770 build(deps): bump js-yaml from 4.1.0 to 4.1.1 (#18169)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 21:26:42 +01:00
dependabot[bot]
f6346a2823 web: bump js-yaml from 4.1.0 to 4.1.1 in /web (#18170)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 21:25:38 +01:00
dependabot[bot]
1333fff711 web: bump js-yaml from 4.1.0 to 4.1.1 in /packages/prettier-config (#18185)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 21:25:23 +01:00
Jake Nabasny, PhD
226b19d83c website/integrations: ubuntu landscape: remove appendix (#18188)
Remove appendix on OpenID-Connect User admin setup

Removed the appendix section detailing how to make an OpenID-Connect User an admin. Roles are now managed in the UI when you invite a user or afterwards in the Roles tab. There is no need for database edits.

Signed-off-by: Jake Nabasny, PhD <jake.nabasny@canonical.com>
2025-11-17 19:28:21 +00:00
NiceDevil
3296489790 website/integrations: FortiMail (#17900)
* New Integration Guide FortiMail

* WIP

* Fix formatting

* small typo ;)

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>

* rearranged section above tabs

---------

Signed-off-by: NiceDevil <17103076+nicedevil007@users.noreply.github.com>
Co-authored-by: nicedevil007 <nicedevil007@users.noreply.github.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Tana M Berry <tana@goauthentik.io>
2025-11-17 08:24:35 -06:00
Jens L.
4caece7fef web/sfe: downgrade bootstrap that was accidentally upgraded (#18157)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-15 12:09:52 +01:00
Teffen Ellis
90d9b2daf9 web: Fix ESBuild hanging process (#18162) 2025-11-15 02:13:28 +01:00
NiceDevil
4c92eff521 website/integrations: macmon NAC (#17898)
* New Integration Guide macmon NAC

* Bring doc in-line with current style guide, clarifies language and changes verification section

---------

Co-authored-by: nicedevil007 <nicedevil007@users.noreply.github.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-11-14 13:39:01 -06:00
Marc 'risson' Schmitt
779d98a808 packages/django-channels-postgres/layer: fix query when subscribed to multiple channels (#18152)
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-14 15:30:19 +01:00
Dominic R
5389709ab7 core: deduplicate user attribute constant definitions (#18138)
Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-14 13:59:55 +00:00
dependabot[bot]
650c1f93f2 web: bump @trivago/prettier-plugin-sort-imports from 5.2.2 to 6.0.0 in /web (#18146)
web: bump @trivago/prettier-plugin-sort-imports in /web

Bumps [@trivago/prettier-plugin-sort-imports](https://github.com/trivago/prettier-plugin-sort-imports) from 5.2.2 to 6.0.0.
- [Release notes](https://github.com/trivago/prettier-plugin-sort-imports/releases)
- [Changelog](https://github.com/trivago/prettier-plugin-sort-imports/blob/main/CHANGELOG.md)
- [Commits](https://github.com/trivago/prettier-plugin-sort-imports/compare/v5.2.2...v6.0.0)

---
updated-dependencies:
- dependency-name: "@trivago/prettier-plugin-sort-imports"
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 14:59:34 +01:00
Connor Peshek
2b794e616d crypto: update certificates on fs event (#18129)
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-11-14 14:37:00 +01:00
Dewi Roberts
fd7cea1344 github: converts issue templates to forms (#18133) 2025-11-14 14:30:05 +01:00
dependabot[bot]
8fdc6e44eb core: bump github.com/getsentry/sentry-go from 0.36.2 to 0.37.0 (#18140)
Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.36.2 to 0.37.0.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.36.2...v0.37.0)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:56:16 +01:00
dependabot[bot]
fb76f3e1ac web: bump type-fest from 5.1.0 to 5.2.0 in /web (#18144)
Bumps [type-fest](https://github.com/sindresorhus/type-fest) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/sindresorhus/type-fest/releases)
- [Commits](https://github.com/sindresorhus/type-fest/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: type-fest
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:56:02 +01:00
dependabot[bot]
f7e04b8bcf web: bump vite from 7.1.12 to 7.2.2 in /web (#18143)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.12 to 7.2.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.2.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:55:52 +01:00
dependabot[bot]
1026601085 website: bump the build group in /website with 3 updates (#18141)
Bumps the build group in /website with 3 updates: [@rspack/binding-darwin-arm64](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack), [@rspack/binding-linux-arm64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) and [@rspack/binding-linux-x64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack).


Updates `@rspack/binding-darwin-arm64` from 1.6.2 to 1.6.3
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.3/packages/rspack)

Updates `@rspack/binding-linux-arm64-gnu` from 1.6.2 to 1.6.3
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.3/packages/rspack)

Updates `@rspack/binding-linux-x64-gnu` from 1.6.2 to 1.6.3
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.3/packages/rspack)

---
updated-dependencies:
- dependency-name: "@rspack/binding-darwin-arm64"
  dependency-version: 1.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-arm64-gnu"
  dependency-version: 1.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-x64-gnu"
  dependency-version: 1.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:50:50 +01:00
dependabot[bot]
8b7cceadec web: bump globals from 16.4.0 to 16.5.0 in /web (#18145)
Bumps [globals](https://github.com/sindresorhus/globals) from 16.4.0 to 16.5.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v16.4.0...v16.5.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 16.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:50:39 +01:00
dependabot[bot]
232bc52960 core: bump astral-sh/uv from 0.9.8 to 0.9.9 (#18148)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.8 to 0.9.9.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.8...0.9.9)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:49:54 +01:00
dependabot[bot]
1c282c339b core: bump goauthentik/fips-debian from 5017d65 to 40a1f32 (#18149)
Bumps goauthentik/fips-debian from `5017d65` to `40a1f32`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 13:43:30 +01:00
mayswind
e99e5b7355 website/integrations: Add ezBookkeeping integration (#18040)
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-14 04:26:41 +00:00
Daniel Tihanyi
9e1244f764 website/integrations: Add Joplin (#18042)
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-14 04:05:15 +00:00
Teffen Ellis
1115e6f82f web: Disable library <datalist> on Firefox. (#18103)
web: Disable library autocomplete on Firefox.
2025-11-13 22:09:25 +01:00
Jens L.
3d66864735 web/admin: link to user on invitation list page (#18132)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-13 22:09:17 +01:00
Dewi Roberts
1cc5fa1412 web/admin: update stage descriptions (#18118)
* Updates the description for stages to standardize lanauge and clarify.

* Add "based"

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Remove "currently"

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Fix user_write stage

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
2025-11-13 20:40:13 +00:00
Christoph Dyllick-Brenzinger
60adbd9245 website/integrations: add SeaTable (#18115)
* website/integrations: add description for SeaTable

* fix wrong display of links in the section additional resources

* fix typo

* Change wording, update formatting, change curl command, add section headers, and bring in-line with style guide

* Spelling

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestion from @dominic-r

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Fix missing backticks

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Remove indentation

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Remove "the"

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Add intro to certs section

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

---------

Signed-off-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-13 20:38:31 +00:00
Dominic R
d4e0694cbe website/integrations: stripe: fix markdown (#18126)
* website/integrations: stripe: fix markdown

Signed-off-by: Dominic R <dominic@sdko.org>

* Linting

---------

Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-11-13 19:57:37 +00:00
Tealk
4821198f92 web/flows: improvements for hCaptcha (#16882)
* improvements for hCaptcha
Issue #16755

* web: Format.

---------

Co-authored-by: Teffen Ellis <teffen@goauthentik.io>
2025-11-13 20:23:53 +01:00
Dewi Roberts
b791737c47 website/docs: update application description (#18125)
Update due to 2025.10 changes
2025-11-13 19:09:20 +00:00
Dewi Roberts
f419173029 revert: github: convert issue templates to forms (#18121)
Revert "github: convert issue templates to forms (#18117)"

This reverts commit 75d4c2d2ee.
2025-11-13 16:57:27 +00:00
Dewi Roberts
75d4c2d2ee github: convert issue templates to forms (#18117)
* Updates templates to forms, changes project and label handling, mentions discussions and discord for questions rather than issues.

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

---------

Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-13 15:53:35 +00:00
Dewi Roberts
deb7765dee website/docs: fix wording in stages overview (#18061)
Change flow to stage
2025-11-13 15:43:03 +00:00
Marc 'risson' Schmitt
acf5b5f2ff packages/django-dramatiq-postgres: broker: ensure locking happens with the same connection (#18095) 2025-11-13 16:37:29 +01:00
Daniel Lo Nigro
9295d876a7 website/integrations: Frappe: update instructions (#18029)
* Update Frappe integration page

- Make it clearer that `provider` has to be replaced with the actual provider name.
- Add `ERPNext` into the title for SEO and clarity.

Signed-off-by: Daniel Lo Nigro <d@d.sb>

* Changed formatting of the note and added it to the authentik section

---------

Signed-off-by: Daniel Lo Nigro <d@d.sb>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-11-13 14:52:30 +00:00
dependabot[bot]
acbecff09c website: bump @types/react from 19.2.3 to 19.2.4 in /website (#18108)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.2.3 to 19.2.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 13:58:41 +01:00
dependabot[bot]
d7514c022a web: bump @types/node from 24.10.0 to 24.10.1 in /packages/esbuild-plugin-live-reload (#18111)
web: bump @types/node in /packages/esbuild-plugin-live-reload

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.10.0 to 24.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 13:05:01 +01:00
dependabot[bot]
d53f6e1035 website: bump the build group in /website with 3 updates (#18106)
Bumps the build group in /website with 3 updates: [@rspack/binding-darwin-arm64](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack), [@rspack/binding-linux-arm64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) and [@rspack/binding-linux-x64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack).


Updates `@rspack/binding-darwin-arm64` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.2/packages/rspack)

Updates `@rspack/binding-linux-arm64-gnu` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.2/packages/rspack)

Updates `@rspack/binding-linux-x64-gnu` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.2/packages/rspack)

---
updated-dependencies:
- dependency-name: "@rspack/binding-darwin-arm64"
  dependency-version: 1.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-arm64-gnu"
  dependency-version: 1.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-x64-gnu"
  dependency-version: 1.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 12:47:58 +01:00
dependabot[bot]
e4e9062096 web: bump the react group across 2 directories with 2 updates (#18110)
Bumps the react group with 2 updates in the /packages/docusaurus-config directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).
Bumps the react group with 2 updates in the /web directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `@types/react` from 19.2.3 to 19.2.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@types/react` from 19.2.3 to 19.2.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 12:47:07 +01:00
transifex-integration[bot]
d5bdea68c6 translate: Updates for file locale/en/LC_MESSAGES/django.po in fi (#18105)
Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-13 12:46:31 +01:00
dependabot[bot]
5415c7660f website: bump @types/react-dom from 19.2.2 to 19.2.3 in /website (#18107)
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 19.2.2 to 19.2.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 12:46:17 +01:00
dependabot[bot]
769e22c7ed web: bump @types/node from 24.10.0 to 24.10.1 in /packages/prettier-config (#18112)
web: bump @types/node in /packages/prettier-config

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.10.0 to 24.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 12:43:58 +01:00
dependabot[bot]
21b085b586 web: bump @types/node from 22.15.19 to 24.10.1 in /web (#18113)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.19 to 24.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 12:43:41 +01:00
transifex-integration[bot]
44ac0d0bda translate: Updates for file locale/en/LC_MESSAGES/django.po in fi (#18060)
* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate web/xliff/en.xlf in ja

100% translated source file: 'web/xliff/en.xlf'
on 'ja'.

* Translate locale/en/LC_MESSAGES/django.po in ja

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'ja'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

* Update translation units. Prep Japanese.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Teffen Ellis <teffen@goauthentik.io>
2025-11-13 03:48:07 +00:00
Teffen Ellis
c37ef6d728 web/i18n: Japanese Locale(日本語ロケール) (#17938)
web: Activate Japanese locale.
2025-11-13 03:06:31 +00:00
Teffen Ellis
7743774905 web/i18n: Locale message fixes (#17913)
* web: Fix issue where messages defined outside elements are not translated.

* web: Apply locale to Captchas.
2025-11-12 22:04:48 -05:00
Teffen Ellis
7bb593da22 web: Lit Session Context (#17903)
web: Flesh out client-side session context.
2025-11-13 02:15:32 +00:00
Teffen Ellis
bbacea5b9a web: Fix tab activation, blank provider URLs (#18031)
web: Fix tab activation.
2025-11-13 01:51:19 +00:00
Teffen Ellis
02072bda93 web: Fix RAC modal visibility. (#17941)
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-11-12 18:49:50 +01:00
Marc 'risson' Schmitt
a8327101c6 cmd/server/healthcheck: remove worker HTTP healthcheck (#18090)
* cmd/server/healthcheck: remove worker HTTP healthcheck

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* lint

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

---------

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-12 14:42:30 +00:00
dependabot[bot]
1905fbb58f web: bump @sentry/browser from 10.24.0 to 10.25.0 in /web in the sentry group across 1 directory (#18079)
web: bump @sentry/browser in /web in the sentry group across 1 directory

Bumps the sentry group with 1 update in the /web directory: [@sentry/browser](https://github.com/getsentry/sentry-javascript).


Updates `@sentry/browser` from 10.24.0 to 10.25.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/10.24.0...10.25.0)

---
updated-dependencies:
- dependency-name: "@sentry/browser"
  dependency-version: 10.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 13:26:55 +01:00
dependabot[bot]
5c05050de7 website: bump @types/react from 19.2.2 to 19.2.3 in /website (#18077)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.2.2 to 19.2.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 12:15:30 +01:00
dependabot[bot]
5bdd6815bf website: bump @types/node from 24.10.0 to 24.10.1 in /website (#18078)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.10.0 to 24.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 12:14:45 +01:00
dependabot[bot]
40645b8abe web: bump the storybook group across 1 directory with 5 updates (#18080)
Bumps the storybook group with 4 updates in the /web directory: [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs), [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links), [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) and [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite).


Updates `@storybook/addon-docs` from 10.0.6 to 10.0.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.7/code/addons/docs)

Updates `@storybook/addon-links` from 10.0.6 to 10.0.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.7/code/addons/links)

Updates `@storybook/web-components` from 10.0.6 to 10.0.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.7/code/renderers/web-components)

Updates `@storybook/web-components-vite` from 10.0.6 to 10.0.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.7/code/frameworks/web-components-vite)

Updates `storybook` from 10.0.6 to 10.0.7
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.7/code/core)

---
updated-dependencies:
- dependency-name: "@storybook/addon-docs"
  dependency-version: 10.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-version: 10.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components"
  dependency-version: 10.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components-vite"
  dependency-version: 10.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-version: 10.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 12:14:35 +01:00
dependabot[bot]
74742ff288 web: bump the rollup group across 1 directory with 4 updates (#18082)
Bumps the rollup group with 4 updates in the /web directory: [@rollup/rollup-darwin-arm64](https://github.com/rollup/rollup), [@rollup/rollup-linux-arm64-gnu](https://github.com/rollup/rollup), [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) and [rollup](https://github.com/rollup/rollup).


Updates `@rollup/rollup-darwin-arm64` from 4.52.5 to 4.53.2
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.52.5...v4.53.2)

Updates `@rollup/rollup-linux-arm64-gnu` from 4.52.5 to 4.53.2
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.52.5...v4.53.2)

Updates `@rollup/rollup-linux-x64-gnu` from 4.52.5 to 4.53.2
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.52.5...v4.53.2)

Updates `rollup` from 4.52.5 to 4.53.2
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.52.5...v4.53.2)

---
updated-dependencies:
- dependency-name: "@rollup/rollup-darwin-arm64"
  dependency-version: 4.53.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rollup
- dependency-name: "@rollup/rollup-linux-arm64-gnu"
  dependency-version: 4.53.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rollup
- dependency-name: "@rollup/rollup-linux-x64-gnu"
  dependency-version: 4.53.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rollup
- dependency-name: rollup
  dependency-version: 4.53.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rollup
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 12:14:16 +01:00
dependabot[bot]
d2dfcf5883 web: bump the react group across 2 directories with 1 update (#18083)
Bumps the react group with 1 update in the /packages/docusaurus-config directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).
Bumps the react group with 1 update in the /web directory: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react` from 19.2.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 12:13:45 +01:00
dependabot[bot]
ac5097dd14 core: bump goauthentik/fips-debian from f3228f8 to 5017d65 (#18084)
Bumps goauthentik/fips-debian from `f3228f8` to `5017d65`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 12:13:35 +01:00
Jens L.
b682299edd core: improve app launch URL formatting (#18076)
* core: improve app launch URL formatting

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

* format

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-12 12:06:16 +01:00
Jens L.
53426293aa providers/scim: allow custom schema data (#18073)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-12 00:20:46 +01:00
Teffen Ellis
e426f88401 web: Fix application of global styles in style roots. (#17444)
* web: Separate global styles from element roots.

* web: Flesh out style strategy plugin, fixes for imported styles.

* web: Clean up applying of dark theme.

web: unminify.

* web: Fix alignment, rendering on high contrast.

web: Apply footer resize.

web: Fix application of global styles in style roots.

web: Fix missing layout attribute.

web: Normalize background alignment.

web: Fix layout issues, color overrides.

web: Fix alignment, colors, jank.

web: Separate method into function.

web: Clean up alignment, reflow.

web: Fix colors, compatibility mode.

web: Add content left/right support.

web: Fix colors, compatibility mode overrides.

* Fix issue where missing config throws runtime error.

* web: Refactor.

* Update tests.

* web: Fix Storybook imports.

* Fix order of theme application.

* web: Fix storybook asset paths.

* web: Flesh out tests surrounding source buttons, fix alignment,
contrast.

* Update tests, clarify errors.

* Update test selectors, assertions.

* Clarify redirect handling.

* Adjust user check.

* Update logs.

* web: Fix selector timing.

* Fix alignment.

* Fix selectors, timing.

* Log current URL content.

* Refine shadow selector, add delay.

* Replace IDs with named elements.

* Fix overlay color.

* Fix footer padding.

* Fix contrast.

* Add selectable name to button.

* Fix alignment, mobile layout.

* web: Spread exported parts to stages.

* Fix z-index order.

* Tidy colors, behaviors, layout.

* Fix overflow scroll.

* Clean up duplicate color styles.

* Clarify selector order. Fix overrides, color contrast.

* Attempt to read JSON multiple times.

* Clarify error.

* web: Fix timeouts, URL changes.

* web: Fix disabled styles.

* Fix color flip.

* Fix selector.

* Fix issue where hidden tables will alter test URLs.

* Use DOM to look for connection, rather than API. Update selectors.

* Immediately navigate to tab.

* Upgrade Dex.

* Ensure Dex redirects.

* Use same host during tests.

* web: Update package-lock.json

* Add delay.
2025-11-11 15:49:00 -05:00
Jens L.
8ff1fc10ca events: fix timezone not set for log events (#18067)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-11 18:49:22 +01:00
Jens L.
c11f3d9f72 ci: attempt to fix integration tests using dind (#18066)
* ci: attempt to fix integration tests using dind

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

* bump dind version

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-11 17:31:07 +01:00
Jens L.
364ca70724 ci: revert to upstream GHA for release (#18058)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-11 13:17:42 +01:00
dependabot[bot]
89bcfef363 web: bump the swc group across 1 directory with 12 updates (#17998)
Bumps the swc group with 2 updates in the /web directory: [@swc/cli](https://github.com/swc-project/pkgs) and [@swc/core](https://github.com/swc-project/swc).


Updates `@swc/cli` from 0.7.8 to 0.7.9
- [Commits](https://github.com/swc-project/pkgs/commits)

Updates `@swc/core` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-darwin-arm64` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-darwin-x64` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-linux-arm-gnueabihf` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-linux-arm64-gnu` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-linux-arm64-musl` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-linux-x64-gnu` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-linux-x64-musl` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-win32-arm64-msvc` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-win32-ia32-msvc` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

Updates `@swc/core-win32-x64-msvc` from 1.13.19 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.19...v1.15.0)

---
updated-dependencies:
- dependency-name: "@swc/cli"
  dependency-version: 0.7.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swc
- dependency-name: "@swc/core"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-darwin-x64"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm-gnueabihf"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-linux-arm64-musl"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-linux-x64-musl"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-win32-arm64-msvc"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-win32-ia32-msvc"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
- dependency-name: "@swc/core-win32-x64-msvc"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: swc
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 13:02:19 +01:00
TMUniversal
80b79ab901 website/docs: update discord social login script example (#18026)
update the guild membership example to no longer cause an exception from a missing import.

Closes #18025

Signed-off-by: TMUniversal <10200399+TMUniversal@users.noreply.github.com>
2025-11-11 12:55:01 +01:00
dependabot[bot]
17f229e575 core: bump goauthentik/fips-debian from 9b4cedf to f3228f8 (#17819)
Bumps goauthentik/fips-debian from `9b4cedf` to `f3228f8`.

---
updated-dependencies:
- dependency-name: goauthentik/fips-debian
  dependency-version: trixie-slim-fips
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:52:35 +01:00
Teffen Ellis
efc8822469 web: Make Spotlight optional. (#17904)
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-11-11 12:37:50 +01:00
dependabot[bot]
c04b491125 website: bump @types/node from 24.9.2 to 24.10.0 in /website (#17909)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.2 to 24.10.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:22:10 +01:00
dependabot[bot]
0809927def web: bump @types/node from 24.9.1 to 24.10.0 in /packages/esbuild-plugin-live-reload (#17948)
web: bump @types/node in /packages/esbuild-plugin-live-reload

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.1 to 24.10.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:21:03 +01:00
dependabot[bot]
ec80106ee5 ci: bump calibreapp/image-actions from 05b1cf44e88c3b041b841452482df9497f046ef7 to 420075c115b26f8785e293c5bd5bef0911c506e5 (#17953)
ci: bump calibreapp/image-actions

Bumps [calibreapp/image-actions](https://github.com/calibreapp/image-actions) from 05b1cf44e88c3b041b841452482df9497f046ef7 to 420075c115b26f8785e293c5bd5bef0911c506e5.
- [Release notes](https://github.com/calibreapp/image-actions/releases)
- [Commits](05b1cf44e8...420075c115)

---
updated-dependencies:
- dependency-name: calibreapp/image-actions
  dependency-version: 420075c115b26f8785e293c5bd5bef0911c506e5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:20:54 +01:00
Marcelo Elizeche Landó
57ea7a3454 core: bump googleapis-common-protos from 1.70.0 to v1.71.0 (#17979) 2025-11-11 12:20:32 +01:00
dependabot[bot]
39c83c5048 web: bump the sentry group across 1 directory with 2 updates (#17997)
Bumps the sentry group with 2 updates in the /web directory: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and @spotlightjs/spotlight.


Updates `@sentry/browser` from 10.22.0 to 10.23.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/10.22.0...10.23.0)

Updates `@spotlightjs/spotlight` from 4.3.0 to 4.5.0

---
updated-dependencies:
- dependency-name: "@sentry/browser"
  dependency-version: 10.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@spotlightjs/spotlight"
  dependency-version: 4.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:20:13 +01:00
dependabot[bot]
413ee2dbb8 website: bump the build group across 1 directory with 9 updates (#17995)
Bumps the build group with 9 updates in the /website directory:

| Package | From | To |
| --- | --- | --- |
| [@rspack/binding-darwin-arm64](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.6.0` | `1.6.1` |
| [@rspack/binding-linux-arm64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.6.0` | `1.6.1` |
| [@rspack/binding-linux-x64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.6.0` | `1.6.1` |
| [@swc/core-darwin-arm64](https://github.com/swc-project/swc) | `1.14.0` | `1.15.0` |
| [@swc/core-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.14.0` | `1.15.0` |
| [@swc/core-linux-x64-gnu](https://github.com/swc-project/swc) | `1.14.0` | `1.15.0` |
| [@swc/html-darwin-arm64](https://github.com/swc-project/swc) | `1.14.0` | `1.15.0` |
| [@swc/html-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.14.0` | `1.15.0` |
| [@swc/html-linux-x64-gnu](https://github.com/swc-project/swc) | `1.14.0` | `1.15.0` |



Updates `@rspack/binding-darwin-arm64` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.1/packages/rspack)

Updates `@rspack/binding-linux-arm64-gnu` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.1/packages/rspack)

Updates `@rspack/binding-linux-x64-gnu` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.1/packages/rspack)

Updates `@swc/core-darwin-arm64` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.14.0...v1.15.0)

Updates `@swc/core-linux-arm64-gnu` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.14.0...v1.15.0)

Updates `@swc/core-linux-x64-gnu` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.14.0...v1.15.0)

Updates `@swc/html-darwin-arm64` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.14.0...v1.15.0)

Updates `@swc/html-linux-arm64-gnu` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.14.0...v1.15.0)

Updates `@swc/html-linux-x64-gnu` from 1.14.0 to 1.15.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.14.0...v1.15.0)

---
updated-dependencies:
- dependency-name: "@rspack/binding-darwin-arm64"
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-arm64-gnu"
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@rspack/binding-linux-x64-gnu"
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/html-darwin-arm64"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/html-linux-arm64-gnu"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/html-linux-x64-gnu"
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:19:33 +01:00
transifex-integration[bot]
566969c7bf translate: Updates for file locale/en/LC_MESSAGES/django.po in fi (#18056)
Translate locale/en/LC_MESSAGES/django.po in fi

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'fi'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-11-11 12:02:40 +01:00
dependabot[bot]
91650ea180 core: bump selenium/standalone-chromium from 141.0 to 142.0 in /tests/e2e (#17910)
core: bump selenium/standalone-chromium in /tests/e2e

Bumps selenium/standalone-chromium from 141.0 to 142.0.

---
updated-dependencies:
- dependency-name: selenium/standalone-chromium
  dependency-version: '142.0'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 12:00:09 +01:00
dependabot[bot]
70e70c9203 website: bump the eslint group across 1 directory with 5 updates (#17928)
Bumps the eslint group with 5 updates in the /website directory:

| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.38.0` | `9.39.1` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.46.2` | `8.46.3` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.46.2` | `8.46.3` |
| [eslint](https://github.com/eslint/eslint) | `9.38.0` | `9.39.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.46.2` | `8.46.3` |



Updates `@eslint/js` from 9.38.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v9.39.1/packages/js)

Updates `@typescript-eslint/eslint-plugin` from 8.46.2 to 8.46.3
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.46.2 to 8.46.3
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/parser)

Updates `eslint` from 9.38.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.38.0...v9.39.1)

Updates `typescript-eslint` from 8.46.2 to 8.46.3
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.46.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.46.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.46.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:59:50 +01:00
dependabot[bot]
e3a374f9c0 core: bump github.com/go-openapi/runtime from 0.29.0 to 0.29.2 (#18048)
Bumps [github.com/go-openapi/runtime](https://github.com/go-openapi/runtime) from 0.29.0 to 0.29.2.
- [Release notes](https://github.com/go-openapi/runtime/releases)
- [Commits](https://github.com/go-openapi/runtime/compare/v0.29.0...v0.29.2)

---
updated-dependencies:
- dependency-name: github.com/go-openapi/runtime
  dependency-version: 0.29.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:59:28 +01:00
dependabot[bot]
090f73b1f9 core: bump gorm.io/gorm from 1.31.0 to 1.31.1 (#17907)
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.31.0 to 1.31.1.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.31.0...v1.31.1)

---
updated-dependencies:
- dependency-name: gorm.io/gorm
  dependency-version: 1.31.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:58:34 +01:00
dependabot[bot]
6538e94961 core: bump github.com/getsentry/sentry-go from 0.36.1 to 0.36.2 (#17785)
Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.36.1 to 0.36.2.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.36.1...v0.36.2)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.36.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:58:20 +01:00
dependabot[bot]
0c9de742fc web: bump the eslint group across 2 directories with 5 updates (#18049)
Bumps the eslint group with 2 updates in the /packages/eslint-config directory: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).
Bumps the eslint group with 2 updates in the /web directory: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.38.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.38.0...v9.39.1)

Updates `typescript-eslint` from 8.46.2 to 8.46.4
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/typescript-eslint)

Updates `eslint` from 9.38.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.38.0...v9.39.1)

Updates `typescript-eslint` from 8.46.2 to 8.46.4
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/typescript-eslint)

Updates `@eslint/js` from 9.38.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v9.39.1/packages/js)

Updates `@typescript-eslint/eslint-plugin` from 8.46.2 to 8.46.4
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.46.2 to 8.46.4
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/parser)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.46.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.46.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: "@eslint/js"
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.46.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.46.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:58:02 +01:00
dependabot[bot]
5b450d07f6 web: bump the storybook group across 1 directory with 5 updates (#18050)
Bumps the storybook group with 4 updates in the /web directory: [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs), [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links), [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) and [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite).


Updates `@storybook/addon-docs` from 10.0.3 to 10.0.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.6/code/addons/docs)

Updates `@storybook/addon-links` from 10.0.3 to 10.0.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.6/code/addons/links)

Updates `@storybook/web-components` from 10.0.3 to 10.0.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.6/code/renderers/web-components)

Updates `@storybook/web-components-vite` from 10.0.3 to 10.0.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.6/code/frameworks/web-components-vite)

Updates `storybook` from 10.0.3 to 10.0.6
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.6/code/core)

---
updated-dependencies:
- dependency-name: "@storybook/addon-docs"
  dependency-version: 10.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-version: 10.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components"
  dependency-version: 10.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components-vite"
  dependency-version: 10.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-version: 10.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:57:16 +01:00
dependabot[bot]
2ce0db0515 ci: bump astral-sh/setup-uv from 7.1.2 to 7.1.3 in /.github/actions/setup (#18053)
ci: bump astral-sh/setup-uv in /.github/actions/setup

Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.2 to 7.1.3.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](85856786d1...5a7eac68fb)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-11 11:54:03 +01:00
Ken Sternberg
cbc1351ef2 website/release notes: fix broken urls (#18041)
* website: fix bad escaping of URLs in release notes

## What

Fixes bad escaping of URLs in the release notes that resulted in mangled output.

v2024.6.4 had entries that looked like this:

```
##### `GET` /providers/google_workspace/{#123;id}#125;/
```

v2025.4.md had entries that looked like this:

```
##### `GET` /policies/unique_password/{#125;#123;policy_uuid}/
```

A couple of straightforward search-and-replaces has fixed the issue.

## Notes

Two of the release notes had bad escaping of URLs. I'm not sure how the error was made or got past,
but it was obvious when visiting the page.

@Beryju suggested that the bug is due to our using `{...}` to symbolize parameters in a URL while
Docusaurus wants to interpret `{...}` as an internal template instruction, resulting in odd
behavior. In either case, docusarus interpreted the hashtagged entries as links to unrelated issues
in Github (the same two issues, which were "bump version of pylint" and "bump version of sentry"),
which could be very confusing.

The inconsistencies between the two releases, and the working releases, suggests that the error was
introduced manually.
2025-11-10 09:55:30 -08:00
authentik-automation[bot]
69000ea849 core, web: update translations (#17943)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-10 16:10:04 +01:00
dependabot[bot]
2aeb1b2448 web: bump @types/node from 24.9.1 to 24.10.0 in /packages/prettier-config (#17949)
web: bump @types/node in /packages/prettier-config

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.1 to 24.10.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 16:09:46 +01:00
dependabot[bot]
b513baf980 core: bump library/nginx from f547e3d to 1beed3c in /website (#17955)
Bumps library/nginx from `f547e3d` to `1beed3c`.

---
updated-dependencies:
- dependency-name: library/nginx
  dependency-version: 1.29-trixie
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 16:09:31 +01:00
dependabot[bot]
4506b9703d core: bump goauthentik.io/api/v3 from 3.2025120.2 to 3.2025120.3 (#17945)
Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2025120.2 to 3.2025120.3.
- [Release notes](https://github.com/goauthentik/client-go/releases)
- [Changelog](https://github.com/goauthentik/client-go/blob/main/model_version_history.go)
- [Commits](https://github.com/goauthentik/client-go/compare/v3.2025120.2...v3.2025120.3)

---
updated-dependencies:
- dependency-name: goauthentik.io/api/v3
  dependency-version: 3.2025120.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 16:09:11 +01:00
dependabot[bot]
daf3cf9ce3 web: bump @types/node from 22.15.19 to 24.10.0 in /web (#17950)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.19 to 24.10.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 16:08:58 +01:00
dependabot[bot]
abf5575001 ci: bump docker/setup-qemu-action from 3.6.0 to 3.7.0 (#17999)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](29109295f8...c7c5346462)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 15:57:48 +01:00
dependabot[bot]
dded84769f lifecycle/aws: bump aws-cdk from 2.1031.1 to 2.1031.2 in /lifecycle/aws (#18014)
Bumps [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk) from 2.1031.1 to 2.1031.2.
- [Release notes](https://github.com/aws/aws-cdk-cli/releases)
- [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1031.2/packages/aws-cdk)

---
updated-dependencies:
- dependency-name: aws-cdk
  dependency-version: 2.1031.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 15:56:59 +01:00
dependabot[bot]
fd44a206d9 core: bump golang.org/x/sync from 0.17.0 to 0.18.0 (#18033)
Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.17.0 to 0.18.0.
- [Commits](https://github.com/golang/sync/compare/v0.17.0...v0.18.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 15:56:00 +01:00
dependabot[bot]
9625270aed core: bump astral-sh/uv from 0.9.7 to 0.9.8 (#18037)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.7 to 0.9.8.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.7...0.9.8)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 14:41:35 +01:00
dependabot[bot]
2888f35e54 core: bump golang.org/x/oauth2 from 0.32.0 to 0.33.0 (#18034)
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.32.0 to 0.33.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.32.0...v0.33.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 14:40:57 +01:00
dependabot[bot]
8ed53627ff core: bump axllent/mailpit from v1.27.10 to v1.27.11 in /tests/e2e (#18035)
Bumps axllent/mailpit from v1.27.10 to v1.27.11.

---
updated-dependencies:
- dependency-name: axllent/mailpit
  dependency-version: v1.27.11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 14:40:42 +01:00
dependabot[bot]
7ce46ac301 ci: bump golangci/golangci-lint-action from 8.0.0 to 9.0.0 (#18036)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](4afd733a84...0a35821d5c)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 14:40:28 +01:00
dependabot[bot]
60dbaf1fa1 core: bump library/golang from a13297b to 27e1c92 (#18038)
* core: bump library/golang from `a13297b` to `27e1c92`

Bumps library/golang from `a13297b` to `27e1c92`.

---
updated-dependencies:
- dependency-name: library/golang
  dependency-version: 1.25.4-trixie
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix

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

* dont require python

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

* fix error code

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

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-11-10 14:40:11 +01:00
Jens L.
7068d4d978 ci: fix migrate-from-stable for old versions (#18019)
ci: better logic for picking previous stable version

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-08 13:22:10 +01:00
dependabot[bot]
ba331a093e core: bump library/golang from 1.25.3-trixie to 1.25.4-trixie (#18000)
Bumps library/golang from 1.25.3-trixie to 1.25.4-trixie.

---
updated-dependencies:
- dependency-name: library/golang
  dependency-version: 1.25.4-trixie
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-07 16:15:53 +01:00
Dewi Roberts
230b1b5850 website/docs: updates img-src csp (#18010) 2025-11-06 15:53:53 -05:00
Connor Peshek
fb868a6224 providers/saml: move sp binding location and default value (#17609)
* providers/saml: move sp binding location and default value in UI

---------

Signed-off-by: Connor Peshek <connor@connorpeshek.me>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: Teffen Ellis <592134+GirlBossRush@users.noreply.github.com>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-11-06 13:39:46 -06:00
Marcelo Elizeche Landó
9802d4bcdd core: Add example invitation blueprint (#17661)
* Add flows-invitation-enrollment.yaml blueprint example, make serializer add default anonymous user in blueprint context

* Add tests

* fix linting

* Update invitations docs

* Use custom attributes instead of fixed_data

* remove clutter

* Reworks the invitations doc to new styling standards

* Apply suggestions

* fix field

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

* fix

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

* Add manual steps for invitation creation

* add both options at the beginning

* use serializer.context in InvitationViewSet.perform_create

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>

* add description to bluprint

* Apply suggestions from code review

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>

* tweaks to structure and formatting

* Optimised images with calibre/image-actions

* Update website/docs/users-sources/user/invitations.md

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>

* fix linting

* imports

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

* less branch

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

* gen

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

* add docs

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: Tana M Berry <tana@goauthentik.io>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-06 20:29:04 +01:00
Dominic R
221b8431ef root: settings.py: fix comment (#18006)
Signed-off-by: Dominic R <dominic@sdko.org>
2025-11-06 17:47:21 +01:00
Marcelo Elizeche Landó
367100dde6 core: bump google-auth-httplib2 from 0.2.0 to v0.2.1 (#17978) 2025-11-06 14:58:02 +00:00
Marcelo Elizeche Landó
2f50903021 core: bump protobuf from 6.32.1 to v6.33.0 (#17984) 2025-11-06 14:55:28 +00:00
Marcelo Elizeche Landó
6a13b38740 core: bump django from 5.2.7 to 5.2.8 (#17967)
* bump django from 5.2.7 to 5.2.8

* longer urls

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

* add debug statements

* Remove debug statements

* import MAX_URL_LENGTH constant from django.http.response

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-11-06 15:10:46 +01:00
Jesse Johnson
34279ba8a5 website/docs: Update Homarr instructions to v1.43.1. (#17992) 2025-11-06 00:46:36 +00:00
Marcelo Elizeche Landó
94886dd33d core: bump python-dotenv from 1.1.1 to v1.2.1 (#17986) 2025-11-05 18:02:43 +00:00
Marcelo Elizeche Landó
e6ef5fd663 core: bump trio from 0.31.0 to v0.32.0 (#17989) 2025-11-05 18:01:14 +00:00
Marcelo Elizeche Landó
bc9bcc44f4 core: bump autobahn from 24.4.2 to v25.10.2 (#17970) 2025-11-05 17:59:53 +00:00
Marcelo Elizeche Landó
fa6ca4ced6 core: bump cwcwidth from 0.1.10 to v0.1.12 (#17975) 2025-11-05 18:42:28 +01:00
Marcelo Elizeche Landó
4cabc3975c core: bump jsii from 1.116.0 to v1.118.0 (#17981) 2025-11-05 18:42:20 +01:00
Marcelo Elizeche Landó
9a4c3dc9c7 core: bump blessed from 1.22.0 to v1.23.0 (#17972) 2025-11-05 18:41:50 +01:00
Marcelo Elizeche Landó
7ca0a667ba core: bump azure-core from 1.35.1 to v1.36.0 (#17971) 2025-11-05 18:41:41 +01:00
Marcelo Elizeche Landó
1c8f209274 core: bump boto3 from 1.40.51 to v1.40.66 (#17973) 2025-11-05 18:41:28 +01:00
Marcelo Elizeche Landó
69a9dadc43 core: bump cbor2 from 5.7.0 to v5.7.1 (#17974) 2025-11-05 18:40:55 +01:00
Marcelo Elizeche Landó
30e1cde6a2 core: bump google-api-core from 2.26.0 to v2.28.1 (#17976) 2025-11-05 18:40:46 +01:00
Marcelo Elizeche Landó
6e957977aa core: bump google-auth from 2.41.1 to v2.42.1 (#17977) 2025-11-05 18:40:35 +01:00
Marcelo Elizeche Landó
bccaf97cb9 core: bump opentelemetry-api from 1.37.0 to v1.38.0 (#17982) 2025-11-05 18:40:27 +01:00
Marcelo Elizeche Landó
78c9936bb7 core: bump orjson from 3.11.3 to v3.11.4 (#17983) 2025-11-05 18:40:13 +01:00
Marcelo Elizeche Landó
accb41959b core: bump psycopg-pool from 3.2.6 to v3.2.7 (#17985) 2025-11-05 18:40:07 +01:00
Marcelo Elizeche Landó
fd7851bfb4 core: bump rpds-py from 0.27.1 to v0.28.0 (#17987) 2025-11-05 18:39:57 +01:00
Marcelo Elizeche Landó
8f2f680668 core: bump std-uritemplate from 2.0.6 to v2.0.8 (#17988) 2025-11-05 18:39:49 +01:00
Marcelo Elizeche Landó
335805e2ba core: bump iniconfig from 2.1.0 to v2.3.0 (#17980) 2025-11-05 18:35:28 +01:00
Marcelo Elizeche Landó
6ccdbff511 core: bump aiohttp from 3.13.0 to v3.13.2 (#17969) 2025-11-05 18:34:23 +01:00
Marcelo Elizeche Landó
f9ed24362a core: bump uvloop from 0.21.0 to v0.22.1 (#17990) 2025-11-05 18:34:08 +01:00
Dewi Roberts
8a9291a9b5 webiste/docs: remove broken info box and fix sentence (#17963)
Remove broken info box and fix sentence.
2025-11-05 14:06:12 +00:00
Dewi Roberts
547d35e992 web/admin: fixes capitalization in application wizard title (#17959)
Changes 'The' to 'the'
2025-11-05 12:45:34 +00:00
Tana M Berry
8acd670fff website/docs: added Note about email_verified scope mapping is set to false by default (#17942)
* added Note about email_verified set to false

* Update website/docs/add-secure-apps/providers/property-mappings/index.md

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>

* edits

* more edits

* Update website/docs/add-secure-apps/providers/property-mappings/index.md

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>

---------

Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-11-04 19:17:23 -06:00
Connor Peshek
0b01f45b07 crypto: update certificate api and component (#17921)
* Update crypto api and front-end component

---------

Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-11-04 14:44:57 -06:00
dependabot[bot]
c45c76302d core: bump openapitools/openapi-diff from 2.1.4 to 2.1.5 in /scripts/api (#17929)
Bumps openapitools/openapi-diff from 2.1.4 to 2.1.5.

---
updated-dependencies:
- dependency-name: openapitools/openapi-diff
  dependency-version: 2.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 19:24:18 +01:00
dependabot[bot]
0fdfd88c23 ci: bump getsentry/action-release from 3.3.0 to 3.4.0 (#17931)
Bumps [getsentry/action-release](https://github.com/getsentry/action-release) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/getsentry/action-release/releases)
- [Changelog](https://github.com/getsentry/action-release/blob/master/CHANGELOG.md)
- [Commits](4f502acc1d...128c5058bb)

---
updated-dependencies:
- dependency-name: getsentry/action-release
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 19:12:00 +01:00
dependabot[bot]
08a380a875 ci: bump helm/kind-action from 1.12.0 to 1.13.0 (#17930)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 15:45:40 +01:00
Marc 'risson' Schmitt
52e613b368 tasks/schedules: fix rel obj not being associated or updated (#17934)
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
2025-11-04 15:04:49 +01:00
authentik-automation[bot]
c1338b0164 core, web: update translations (#17807)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-04 13:44:22 +00:00
Marc 'risson' Schmitt
945c2d8032 brands: sort matched brand by match length (#17920) 2025-11-04 14:22:10 +01:00
dependabot[bot]
e2e7021b62 web: bump the storybook group across 1 directory with 5 updates (#17787)
Bumps the storybook group with 5 updates in the /web directory:

| Package | From | To |
| --- | --- | --- |
| [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs) | `9.1.15` | `10.0.0` |
| [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `9.1.15` | `10.0.0` |
| [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `9.1.15` | `10.0.0` |
| [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `9.1.15` | `10.0.0` |
| [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/core) | `9.1.15` | `10.0.0` |



Updates `@storybook/addon-docs` from 9.1.15 to 10.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.0/code/addons/docs)

Updates `@storybook/addon-links` from 9.1.15 to 10.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.0/code/addons/links)

Updates `@storybook/web-components` from 9.1.15 to 10.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.0/code/renderers/web-components)

Updates `@storybook/web-components-vite` from 9.1.15 to 10.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.0/code/frameworks/web-components-vite)

Updates `storybook` from 9.1.15 to 10.0.0
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v10.0.0/code/core)

---
updated-dependencies:
- dependency-name: "@storybook/addon-docs"
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/web-components"
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: "@storybook/web-components-vite"
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: storybook
- dependency-name: storybook
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 04:37:46 +00:00
Marc 'risson' Schmitt
b02a0a79b8 brands: add more matching tests (#16185)
* brands: reproduce matching error

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* try some things

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* fix tests

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* fix tests

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* Update authentik/brands/tests.py

Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* fix tests again?

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

* wip

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>

---------

Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Co-authored-by: Jens L. <jens@goauthentik.io>
2025-11-03 20:31:56 +01:00
Jens L.
30f9d19f87 website/docs: 2025.10.1 release notes (#17918)
* website/docs: 2025.10.1 release notes

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

* Apply suggestions from code review

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Jens L. <jens@beryju.org>

* format

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Jens L. <jens@beryju.org>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
2025-11-03 16:53:58 +01:00
Jens L.
ddf463b2cd providers/oauth2: fix kid always required for federation (#17914)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-03 16:13:02 +01:00
Jens L.
1aff2c2b3a providers/radius: revert fix inverted message authenticator validation (#17855) (#17915)
Revert "providers/radius: fix inverted message authenticator validation (#17855)"

This reverts commit 09e3301c8f.
2025-11-03 16:10:41 +01:00
dependabot[bot]
6b08a932d1 website: bump @types/node from 24.9.1 to 24.9.2 in /website (#17786)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.1 to 24.9.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-02 16:11:35 -05:00
dependabot[bot]
a89e7e37d5 web: bump @rollup/plugin-commonjs from 28.0.8 to 28.0.9 in /web in the rollup group across 1 directory (#17788)
web: bump @rollup/plugin-commonjs

Bumps the rollup group with 1 update in the /web directory: [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs).


Updates `@rollup/plugin-commonjs` from 28.0.8 to 28.0.9
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.9/packages/commonjs)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-commonjs"
  dependency-version: 28.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rollup
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-02 15:49:39 -05:00
dependabot[bot]
754425aebe web: bump validator from 13.15.15 to 13.15.20 in /packages/docusaurus-config (#17866)
web: bump validator in /packages/docusaurus-config

Bumps [validator](https://github.com/validatorjs/validator.js) from 13.15.15 to 13.15.20.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20)

---
updated-dependencies:
- dependency-name: validator
  dependency-version: 13.15.20
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 20:08:37 +01:00
Jens L.
894db1237a internal: add default go http server timeouts (#17858)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-01 19:04:13 +01:00
Jens L.
09e3301c8f providers/radius: fix inverted message authenticator validation (#17855)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-11-01 17:58:48 +01:00
authentik-automation[bot]
3ae838293e stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#17871)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-11-01 16:40:10 +01:00
Dominic R
9763cf323b web: fix package-lock.json (#17809) 2025-10-31 18:18:31 +00:00
Dominic R
000f89e0bf website/integrations: oracle cloud: cleanup (#17808)
Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
2025-10-31 18:17:04 +00:00
Connor Peshek
9f92d6b334 website/integrations: Add Keycloak integration (#17813)
* web/integrations: Add Keycloak integration

* Update website/integrations/infrastructure/keycloak/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>

* Update website/integrations/infrastructure/keycloak/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>

* Update website/integrations/infrastructure/keycloak/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>

* update feedback

* Update realm name placeholder

* add feedback

* Update website/integrations/infrastructure/keycloak/index.mdx

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>

* Update website/integrations/infrastructure/keycloak/index.mdx

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>

* fix build

* Fix build

---------

Signed-off-by: Connor Peshek <connor@connorpeshek.me>
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-10-31 12:26:14 -05:00
dependabot[bot]
82ecd4168e website: bump the build group across 1 directory with 9 updates (#17849)
Bumps the build group with 9 updates in the /website directory:

| Package | From | To |
| --- | --- | --- |
| [@rspack/binding-darwin-arm64](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.5.8` | `1.6.0` |
| [@rspack/binding-linux-arm64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.5.8` | `1.6.0` |
| [@rspack/binding-linux-x64-gnu](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack) | `1.5.8` | `1.6.0` |
| [@swc/core-darwin-arm64](https://github.com/swc-project/swc) | `1.13.21` | `1.14.0` |
| [@swc/core-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.13.21` | `1.14.0` |
| [@swc/core-linux-x64-gnu](https://github.com/swc-project/swc) | `1.13.21` | `1.14.0` |
| [@swc/html-darwin-arm64](https://github.com/swc-project/swc) | `1.13.21` | `1.14.0` |
| [@swc/html-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.13.21` | `1.14.0` |
| [@swc/html-linux-x64-gnu](https://github.com/swc-project/swc) | `1.13.21` | `1.14.0` |



Updates `@rspack/binding-darwin-arm64` from 1.5.8 to 1.6.0
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.0/packages/rspack)

Updates `@rspack/binding-linux-arm64-gnu` from 1.5.8 to 1.6.0
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.0/packages/rspack)

Updates `@rspack/binding-linux-x64-gnu` from 1.5.8 to 1.6.0
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v1.6.0/packages/rspack)

Updates `@swc/core-darwin-arm64` from 1.13.21 to 1.14.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.21...v1.14.0)

Updates `@swc/core-linux-arm64-gnu` from 1.13.21 to 1.14.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.21...v1.14.0)

Updates `@swc/core-linux-x64-gnu` from 1.13.21 to 1.14.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.21...v1.14.0)

Updates `@swc/html-darwin-arm64` from 1.13.21 to 1.14.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.21...v1.14.0)

Updates `@swc/html-linux-arm64-gnu` from 1.13.21 to 1.14.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.21...v1.14.0)

Updates `@swc/html-linux-x64-gnu` from 1.13.21 to 1.14.0
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.21...v1.14.0)

---
updated-dependencies:
- dependency-name: "@rspack/binding-darwin-arm64"
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@rspack/binding-linux-arm64-gnu"
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@rspack/binding-linux-x64-gnu"
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/html-darwin-arm64"
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/html-linux-arm64-gnu"
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
- dependency-name: "@swc/html-linux-x64-gnu"
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 16:43:05 +01:00
dependabot[bot]
297d608e3d lifecycle/aws: bump aws-cdk from 2.1031.0 to 2.1031.1 in /lifecycle/aws (#17850)
Bumps [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk) from 2.1031.0 to 2.1031.1.
- [Release notes](https://github.com/aws/aws-cdk-cli/releases)
- [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1031.1/packages/aws-cdk)

---
updated-dependencies:
- dependency-name: aws-cdk
  dependency-version: 2.1031.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 16:42:40 +01:00
dependabot[bot]
f577b9cf95 core: bump astral-sh/uv from 0.9.6 to 0.9.7 (#17851)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 15:15:31 +01:00
Jens L.
f242de17f5 internal: full openssl path (#17856) 2025-10-31 15:14:43 +01:00
Jens L.
d57103ff39 outpost: revert breaking signals change (#17847)
I have no idea why this breaks tests

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-31 01:50:38 +01:00
Teffen Ellis
45d0c7c24b web/a11y: Isolated Outpost Error Page (#17683)
* web: Remove external resources from error page.

* web: Remove home link.
2025-10-30 23:00:01 +00:00
Connor Peshek
b65d163110 provider/saml: make signing kp singleton (#17703)
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-10-30 14:25:12 -05:00
Marc 'risson' Schmitt
bf19d572ae tasks: sanitize log attributes (#17833) 2025-10-30 18:43:53 +01:00
Connor Peshek
7a1e976fcd web/integrations: add information for slo supported integrations (#17836)
docs/integrations add slo supported integrations

Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-10-30 12:43:44 -05:00
Dominic R
ec00a918b3 outposts: update permissions more eagerly (#17783)
* wip

* wip

* a

* a

Signed-off-by: Dominic R <dominic@sdko.org>

* rm

* this

* rm test files

* cover one more case

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

---------

Signed-off-by: Dominic R <dominic@sdko.org>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-10-30 18:33:51 +01:00
dependabot[bot]
743e425894 core: bump astral-sh/uv from 0.9.5 to 0.9.6 (#17820)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.5 to 0.9.6.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.5...0.9.6)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-30 17:37:56 +01:00
dependabot[bot]
b8d7447283 core: bump library/nginx from b619c34 to f547e3d in /website (#17821)
Bumps library/nginx from `b619c34` to `f547e3d`.

---
updated-dependencies:
- dependency-name: library/nginx
  dependency-version: 1.29-trixie
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-30 17:34:35 +01:00
Jens L.
0c6eed1548 web/admin: fix scim provider form (#17831)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-30 17:26:41 +01:00
Marc 'risson' Schmitt
1b77e93ecb internal/web/proxy: fix return status code during startup (#17827) 2025-10-30 17:12:42 +01:00
Lukáš Kucharczyk
265b8abd83 website/integrations: miniflux: existing users must link accounts manually first (#17822)
* website/integrations: note about the last Miniflux setup

If a user already exists in Miniflux, trying to log in using Authentik will throw an error saying: "This user already exists". To enable logging in, the user must first log in using their existing credentials and manually link the account.

Signed-off-by: Lukáš Kucharczyk <lukas@kucharczyk.xyz>

* Modified language and changed to info box

---------

Signed-off-by: Lukáš Kucharczyk <lukas@kucharczyk.xyz>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-10-30 15:21:34 +00:00
Teffen Ellis
348e9b5625 web: Render Markdown in Blueprints descriptions (#17746)
* web: Render Markdown in Blueprints.

* web: Add MDX rendering to user notes.
2025-10-30 15:19:07 +00:00
Connor Peshek
cccce78e6c web/integrations: add slo supported integrations (#17810)
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
2025-10-30 15:18:19 +00:00
Dominic R
5410467569 internal: fix go deprecation for +build (#17806) 2025-10-30 14:50:28 +01:00
Teffen Ellis
42b96e82bb web/a11y: User library -- fix issues surrounding element focus, ARIA labeling. (#17522)
* web/a11y: Fix issues surrounding element focus, aria labeling.

* web: Fix focus

* web: Fix nested focus

* web: Fix menu visibility when anchor positioning is not supported.

* web: Fix icon fallback behavior, labels.

* web: Fix flickering, descriptions.

* web: Fix excess width on mobile.

* web: Fix rendering artifacts on mobile.

* web: Remove aria-controls behavior.

- This is buggy, similar to aria-owns, and may cause crashes.

* web: Fix tabpanel focus attempting to scroll page.

* web: Fix issues surrounding consistent tab panel parameter testing.

* web: add shared helpers.

* web: Tidy comments.
2025-10-29 13:59:27 -04:00
Teffen Ellis
7891046c89 web: Consistent Tab Panel URL Parameters (#17804)
* web: Fix tabpanel focus attempting to scroll page.

* web: Fix issues surrounding consistent tab panel parameter testing.

* web: add shared helpers.

* web: Tidy comments.
2025-10-29 13:30:15 -04:00
Marc 'risson' Schmitt
c4af2ee642 ci: use hashes for actions everywhere (#17803) 2025-10-29 14:53:51 +00:00
Mattes Rötschke
da2201bffc website/integrations: fixed paperless-ngx yml syntax issue and added additional info (#17739)
* website/integrations: fixed paperless-ngx yml syntax issue and added additional info

- added example for config in `docker-compose.env`
- added note about sign ups via authentik

* Added verification section, clarified some lanugage and moved some steps into the paperless configuration section

* website/integrations: minor improvements to wording in paperless-ngx page

* Moved docker instructions to correct section and duplicated language between both sections

---------

Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-10-29 08:28:31 -05:00
authentik-automation[bot]
8eec94b9f4 core, web: update translations (#17782)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-10-29 12:43:46 +00:00
Jens L.
4aa265c3b6 ci: rework internal repo (#17797)
* ci: rework internal repo

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

* also fix retention workflow

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-29 13:25:37 +01:00
Jens L.
6f35c32190 root: use hashes for dockerfile FROM (#17795)
* root: use hashes for dockerfile from

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

* fix website dockerfile not being updated

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

* update golang bookworm to trixie

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

* update outpost runtime to trixie

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

* node slim -> trixie slim

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

* nginx -> trixie

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-29 13:19:46 +01:00
dependabot[bot]
88affcc590 web: bump validator from 13.15.15 to 13.15.20 in /packages/prettier-config (#17776)
web: bump validator in /packages/prettier-config

Bumps [validator](https://github.com/validatorjs/validator.js) from 13.15.15 to 13.15.20.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20)

---
updated-dependencies:
- dependency-name: validator
  dependency-version: 13.15.20
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 22:12:47 +01:00
Marc 'risson' Schmitt
56d399a25e tasks: delay startup signals (#17769) 2025-10-28 17:56:13 +00:00
dependabot[bot]
0fd9ffa46d website: bump the build group in /website with 6 updates (#17712)
Bumps the build group in /website with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@swc/core-darwin-arm64](https://github.com/swc-project/swc) | `1.13.20` | `1.13.21` |
| [@swc/core-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.13.20` | `1.13.21` |
| [@swc/core-linux-x64-gnu](https://github.com/swc-project/swc) | `1.13.20` | `1.13.21` |
| [@swc/html-darwin-arm64](https://github.com/swc-project/swc) | `1.13.20` | `1.13.21` |
| [@swc/html-linux-arm64-gnu](https://github.com/swc-project/swc) | `1.13.20` | `1.13.21` |
| [@swc/html-linux-x64-gnu](https://github.com/swc-project/swc) | `1.13.20` | `1.13.21` |


Updates `@swc/core-darwin-arm64` from 1.13.20 to 1.13.21
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.20...v1.13.21)

Updates `@swc/core-linux-arm64-gnu` from 1.13.20 to 1.13.21
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.20...v1.13.21)

Updates `@swc/core-linux-x64-gnu` from 1.13.20 to 1.13.21
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.20...v1.13.21)

Updates `@swc/html-darwin-arm64` from 1.13.20 to 1.13.21
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.20...v1.13.21)

Updates `@swc/html-linux-arm64-gnu` from 1.13.20 to 1.13.21
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.20...v1.13.21)

Updates `@swc/html-linux-x64-gnu` from 1.13.20 to 1.13.21
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.13.20...v1.13.21)

---
updated-dependencies:
- dependency-name: "@swc/core-darwin-arm64"
  dependency-version: 1.13.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-linux-arm64-gnu"
  dependency-version: 1.13.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/core-linux-x64-gnu"
  dependency-version: 1.13.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-darwin-arm64"
  dependency-version: 1.13.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-linux-arm64-gnu"
  dependency-version: 1.13.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
- dependency-name: "@swc/html-linux-x64-gnu"
  dependency-version: 1.13.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 16:19:21 +01:00
authentik-automation[bot]
811c2e7322 core, web: update translations (#17660)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-10-28 16:18:58 +01:00
dependabot[bot]
40fc6b7277 web: bump vite from 7.1.11 to 7.1.12 in /web (#17689)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.11 to 7.1.12.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.1.12/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.12/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 16:15:16 +01:00
dependabot[bot]
f5afb5090d website: bump validator from 13.15.15 to 13.15.20 in /website (#17741)
Bumps [validator](https://github.com/validatorjs/validator.js) from 13.15.15 to 13.15.20.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20)

---
updated-dependencies:
- dependency-name: validator
  dependency-version: 13.15.20
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 16:14:53 +01:00
dependabot[bot]
ca5e8ad788 web: bump eslint-plugin-react-hooks from 7.0.0 to 7.0.1 in /packages/eslint-config in the eslint group across 1 directory (#17714)
web: bump eslint-plugin-react-hooks

Bumps the eslint group with 1 update in the /packages/eslint-config directory: [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks).


Updates `eslint-plugin-react-hooks` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 16:13:44 +01:00
dependabot[bot]
f54d196829 web: bump validator from 13.15.15 to 13.15.20 in /packages/eslint-config (#17742)
Bumps [validator](https://github.com/validatorjs/validator.js) from 13.15.15 to 13.15.20.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/validatorjs/validator.js/compare/13.15.15...13.15.20)

---
updated-dependencies:
- dependency-name: validator
  dependency-version: 13.15.20
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 16:12:38 +01:00
Marc 'risson' Schmitt
27ceb3ccf3 packages/django-postgres-cache: use upsert instead of select/update in a transaction (#17760) 2025-10-28 15:00:54 +00:00
Jens L.
9b6aa56df2 providers/radius: fix panic when no cert is configured (#17762)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-28 15:42:11 +01:00
Alex Whitehead-Smith
6b43ddc7bf sources/oauth: Make PKCE verifier 128 characters (#17763)
* sources/oauth: Make PKCE verifier 128 characters

The PKCE spec requires the code verifier to be 43-128 characters
inclusive[^1].

The default `length` argument to `generate_id` is 40 characters, which
meant the verifier is always shorter than required by the spec.
This could cause issues integrating authentik with PKCE-compliant OIDC
providers.

[^1]: https://datatracker.ietf.org/doc/html/rfc7636#section-4.1

* add length test

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-10-28 15:39:49 +01:00
Jens L.
e7235732bb providers/proxy: fix missing JWT/claims header (#17759)
* replace interface{} with any

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

* fix raw token not saved to map or json

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

* also fix proxy claims

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

* fix test

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-28 15:14:07 +01:00
Jens L.
e2904d13a9 providers/proxy: add gorm logging (#17758)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-28 14:39:47 +01:00
dependabot[bot]
e8013bf76a web: bump the sentry group across 1 directory with 2 updates (#17743)
Bumps the sentry group with 2 updates in the /web directory: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and @spotlightjs/spotlight.


Updates `@sentry/browser` from 10.21.0 to 10.22.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/10.21.0...10.22.0)

Updates `@spotlightjs/spotlight` from 4.2.0 to 4.3.0

---
updated-dependencies:
- dependency-name: "@sentry/browser"
  dependency-version: 10.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@spotlightjs/spotlight"
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 13:52:59 +01:00
Erwan Hervé
340803202e root: Add Dockerfile label org.opencontainers.image.source (#17756)
Add label source in dockerfiles
2025-10-28 13:47:24 +01:00
Teffen Ellis
0237ec2723 web/a11y: Prefers more field contrast (#17279)
* web/a11y: Prefers more field contrast

* web: Fix issue where Lit Analyzer cannot parse newer CSS.

* web: Remove commented out code.

* web: Move styles into separate files, remove Lit Analyzer warnings.

* web: Fix nested pointer event detection.

* web: Fix contrast ratios, alignment, placeholders.
2025-10-28 01:12:37 -04:00
Dominic R
eae14f215a root: update security.md's supported versions (#17736)
Signed-off-by: Dominic R <dominic@sdko.org>
2025-10-27 21:40:19 +01:00
Jens L.
60e5e7634b website/docs: fix placeholder leftover (#17737)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-27 21:30:34 +01:00
Jens L.
b61477972d website/docs: finalise 2025.10 release notes (#17728)
* website/docs: finalise 2025.10 release notes

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

* format

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-27 19:39:19 +01:00
Jens L.
078e308bcc website/docs: update flow context ref (#17723)
* website/docs: update flow context ref

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

* format

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

* Update website/docs/add-secure-apps/flows-stages/flow/context/index.mdx

Co-authored-by: Dominic R <dominic@sdko.org>
Signed-off-by: Jens L. <jens@beryju.org>

* Update website/docs/add-secure-apps/flows-stages/flow/context/index.mdx

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Jens L. <jens@beryju.org>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Jens L. <jens@beryju.org>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
2025-10-27 19:13:45 +01:00
Jens L.
60be9d2c94 lifecycle: set search_path in system migrations (#17721)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-27 18:54:33 +01:00
Jens L.
64483340b2 enterprise: handle cached naive timezone (#17695)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-27 18:53:54 +01:00
Jens L.
22292b396d providers/oauth2: move encryption key field (#17722)
it is often mis configured

closes #17678

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-27 18:48:43 +01:00
dependabot[bot]
12c2343c79 ci: bump astral-sh/setup-uv from 7.1.1 to 7.1.2 in /.github/actions/setup (#17718)
ci: bump astral-sh/setup-uv in /.github/actions/setup

Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](2ddd2b9cb3...85856786d1)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 12:03:11 +01:00
dependabot[bot]
5d7d3ffee7 web: bump the storybook group across 1 directory with 5 updates (#17715)
Bumps the storybook group with 4 updates in the /web directory: [@storybook/addon-docs](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/docs), [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links), [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) and [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite).


Updates `@storybook/addon-docs` from 9.1.13 to 9.1.15
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v9.1.15/code/addons/docs)

Updates `@storybook/addon-links` from 9.1.13 to 9.1.15
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v9.1.15/code/addons/links)

Updates `@storybook/web-components` from 9.1.13 to 9.1.15
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v9.1.15/code/renderers/web-components)

Updates `@storybook/web-components-vite` from 9.1.13 to 9.1.15
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v9.1.15/code/frameworks/web-components-vite)

Updates `storybook` from 9.1.13 to 9.1.15
- [Release notes](https://github.com/storybookjs/storybook/releases)
- [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md)
- [Commits](https://github.com/storybookjs/storybook/commits/v9.1.15/code/core)

---
updated-dependencies:
- dependency-name: "@storybook/addon-docs"
  dependency-version: 9.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/addon-links"
  dependency-version: 9.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components"
  dependency-version: 9.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: "@storybook/web-components-vite"
  dependency-version: 9.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
- dependency-name: storybook
  dependency-version: 9.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: storybook
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 11:59:10 +01:00
dependabot[bot]
c5017ad5cb ci: bump actions/upload-artifact from 4.6.2 to 5.0.0 (#17720)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](ea165f8d65...330a01c490)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 11:58:55 +01:00
dependabot[bot]
d4a76419c5 ci: bump actions/download-artifact from 5.0.0 to 6.0.0 (#17719)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](634f93cb29...018cc2cf5b)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 11:58:41 +01:00
Sylvain E
db0cc22857 website/integrations: grafana: replace deprecated redirect_uris usage by allowed_redirect_uris (#17710) 2025-10-27 02:54:32 +00:00
dependabot[bot]
077645ba43 web: bump @types/codemirror from 5.60.16 to 5.60.17 in /web (#17685)
Bumps [@types/codemirror](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/codemirror) from 5.60.16 to 5.60.17.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/codemirror)

---
updated-dependencies:
- dependency-name: "@types/codemirror"
  dependency-version: 5.60.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 23:35:27 +01:00
dependabot[bot]
94cfb5be76 web: bump @types/node from 22.15.19 to 24.9.1 in /web (#17687)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.19 to 24.9.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 23:35:12 +01:00
dependabot[bot]
6784d29b7f web: bump hono from 4.10.2 to 4.10.3 in /web (#17698)
Bumps [hono](https://github.com/honojs/hono) from 4.10.2 to 4.10.3.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.10.2...v4.10.3)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.10.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 23:35:00 +01:00
Dominic R
b5ae282bf3 website/docs: blueprints: add a bit more info (#17704)
* website/docs: blueprints: add a bit more info

* this might be worth mentioning

* fix

* a bit more info
2025-10-26 09:24:33 -04:00
Dominic R
5e4c9ad44c website/docs: release notes: Add Zot integration (#17700) 2025-10-24 23:59:12 +00:00
shcherbak
12fb630f5e website/integrations: zot oci registry integration (#17682)
Co-authored-by: iops <iops@syneforge.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-10-24 23:46:10 +00:00
AlexLArmstrong
813878f260 website/integrations: sonarr: clarify reverse proxy setup (#17485)
* Clarify Sonarr setup

The Sonarr setup documentation, especially the reverse proxy setup section, caused confusion.

The documentation was clarified by providing an architectural overview and slight change in wording in the Reverse Proxy Setup section.

Signed-off-by: AlexLArmstrong <143502247+AlexLArmstrong@users.noreply.github.com>

* Fix typo and move diagram in sonarr/index.md

Signed-off-by: AlexLArmstrong <143502247+AlexLArmstrong@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: AlexLArmstrong <143502247+AlexLArmstrong@users.noreply.github.com>

* Prettier fix

---------

Signed-off-by: AlexLArmstrong <143502247+AlexLArmstrong@users.noreply.github.com>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-10-24 16:01:04 -05:00
Tana M Berry
21d965d481 website/docs: eap add info about custom validation (#17642)
* add info about custom validation

* tweaked table

* remove bullet

* remove other bullet

---------

Co-authored-by: Tana M Berry <tana@goauthentik.io>
2025-10-24 20:36:40 +00:00
Teffen Ellis
06fcbfd5af web: Fix table row click handler. (#17697) 2025-10-24 19:26:42 +00:00
Dylan Kauling
d9707d4ad0 root: Fix transifex link (#17696)
readme: Fix transifex link

Previous link was giving a 404, looks like they moved projects to a different subdomain.

Signed-off-by: Dylan Kauling <gunsmithy@gmail.com>
2025-10-24 19:01:42 +02:00
Marc 'risson' Schmitt
b247ccdcfa translate: add cs_CZ (#17632) 2025-10-24 15:40:30 +02:00
dependabot[bot]
ee201ce73c web: bump @goauthentik/prettier-config from 1.0.5 to 3.1.0 in /web in the goauthentik group across 1 directory (#17684)
web: bump @goauthentik/prettier-config

Bumps the goauthentik group with 1 update in the /web directory: @goauthentik/prettier-config.


Updates `@goauthentik/prettier-config` from 1.0.5 to 3.1.0

---
updated-dependencies:
- dependency-name: "@goauthentik/prettier-config"
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: goauthentik
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-24 13:45:18 +02:00
Marcelo Elizeche Landó
3d38bcd859 web: Make action field search case insensitive in Event Matcher Policy Form (#17680)
* Make action field search case insensitive

* fix linting
2025-10-23 21:54:40 +02:00
Tana M Berry
c9bed1339c website/docs: add note about invite link not bound (#17657)
* invite link not bound

* marcelo's truth

* jens tweak

---------

Co-authored-by: Tana M Berry <tana@goauthentik.io>
2025-10-23 09:56:53 -05:00
Teffen Ellis
7d10f1555c web: Abstract Wizard Lifecycle (#17658)
* web: Remove wizard step element creation.

* web: Clean up abstract properties.
2025-10-23 15:43:52 +02:00
Teffen Ellis
03f4d7a9f5 web: Table row refinements (#17659)
* web: Reset selection state after refresh.

* web: Only select row when not expandable.

* web: Only render expandable content when row is expanded.

* web: Use `repeat` directive.
2025-10-23 15:42:31 +02:00
dependabot[bot]
a8908bdc26 core: bump goauthentik.io/api/v3 from 3.2025120.1 to 3.2025120.2 (#17662)
Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2025120.1 to 3.2025120.2.
- [Release notes](https://github.com/goauthentik/client-go/releases)
- [Changelog](https://github.com/goauthentik/client-go/blob/main/model_version_history.go)
- [Commits](https://github.com/goauthentik/client-go/compare/v3.2025120.1...v3.2025120.2)

---
updated-dependencies:
- dependency-name: goauthentik.io/api/v3
  dependency-version: 3.2025120.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-23 14:33:27 +02:00
dependabot[bot]
0cf346cb58 web: bump the sentry group across 1 directory with 2 updates (#17663)
Bumps the sentry group with 2 updates in the /web directory: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and @spotlightjs/spotlight.


Updates `@sentry/browser` from 10.20.0 to 10.21.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/10.20.0...10.21.0)

Updates `@spotlightjs/spotlight` from 4.1.4 to 4.2.0

---
updated-dependencies:
- dependency-name: "@sentry/browser"
  dependency-version: 10.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
- dependency-name: "@spotlightjs/spotlight"
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: sentry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-23 13:51:30 +02:00
dependabot[bot]
adca19d419 web: bump chromedriver from 141.0.3 to 141.0.4 in /web (#17665)
Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 141.0.3 to 141.0.4.
- [Commits](https://github.com/giggio/node-chromedriver/compare/141.0.3...141.0.4)

---
updated-dependencies:
- dependency-name: chromedriver
  dependency-version: 141.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-23 13:10:37 +02:00
dependabot[bot]
53ac1c93c6 lifecycle/aws: bump aws-cdk from 2.1030.0 to 2.1031.0 in /lifecycle/aws (#17667)
Bumps [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk) from 2.1030.0 to 2.1031.0.
- [Release notes](https://github.com/aws/aws-cdk-cli/releases)
- [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1031.0/packages/aws-cdk)

---
updated-dependencies:
- dependency-name: aws-cdk
  dependency-version: 2.1031.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-23 13:10:25 +02:00
dependabot[bot]
b205e823a0 website: bump the eslint group in /website with 3 updates (#17601)
Bumps the eslint group in /website with 3 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@typescript-eslint/eslint-plugin` from 8.46.1 to 8.46.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.46.1 to 8.46.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/parser)

Updates `typescript-eslint` from 8.46.1 to 8.46.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.46.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.46.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.46.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 18:15:42 +02:00
dependabot[bot]
2691ca0bdc web: bump hono from 4.9.12 to 4.10.2 in /web (#17653)
Bumps [hono](https://github.com/honojs/hono) from 4.9.12 to 4.10.2.
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.9.12...v4.10.2)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.10.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 18:14:46 +02:00
dependabot[bot]
2705c816e1 web: bump @types/node from 24.9.0 to 24.9.1 in /packages/esbuild-plugin-live-reload (#17616)
web: bump @types/node in /packages/esbuild-plugin-live-reload

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.0 to 24.9.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 17:51:37 +02:00
dependabot[bot]
724f2aac1f core: bump goauthentik.io/api/v3 from 3.2025100.25 to 3.2025120.1 (#17613)
Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2025100.25 to 3.2025120.1.
- [Release notes](https://github.com/goauthentik/client-go/releases)
- [Changelog](https://github.com/goauthentik/client-go/blob/main/model_version_history.go)
- [Commits](https://github.com/goauthentik/client-go/compare/v3.2025100.25...v3.2025120.1)

---
updated-dependencies:
- dependency-name: goauthentik.io/api/v3
  dependency-version: 3.2025120.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 17:51:27 +02:00
dependabot[bot]
7fa60ec0e5 website: bump @types/node from 24.9.0 to 24.9.1 in /website (#17612)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.0 to 24.9.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 17:51:16 +02:00
dependabot[bot]
12da0f3615 web: bump vite from 7.1.10 to 7.1.11 in /web (#17604)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.10 to 7.1.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.11/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 17:51:08 +02:00
Marc 'risson' Schmitt
e593933bca lib/sync/outgoing: store sync settings in database (#17630) 2025-10-22 17:15:37 +02:00
dependabot[bot]
6a594355d3 web: bump @types/node from 24.9.0 to 24.9.1 in /packages/prettier-config (#17617)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.0 to 24.9.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 16:52:06 +02:00
dependabot[bot]
42162620d6 web: bump @types/node from 22.15.19 to 24.9.1 in /web (#17618)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.19 to 24.9.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 16:51:48 +02:00
dependabot[bot]
b4bfa3689d web: bump knip from 5.66.1 to 5.66.2 in /web (#17619)
Bumps [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip) from 5.66.1 to 5.66.2.
- [Release notes](https://github.com/webpro-nl/knip/releases)
- [Changelog](https://github.com/webpro-nl/knip/blob/main/packages/knip/.release-it.json)
- [Commits](https://github.com/webpro-nl/knip/commits/5.66.2/packages/knip)

---
updated-dependencies:
- dependency-name: knip
  dependency-version: 5.66.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 16:51:35 +02:00
transifex-integration[bot]
4b54bd6b82 translate: Updates for file web/xliff/en.xlf in pt_BR (#17639)
Translate web/xliff/en.xlf in pt_BR

100% translated source file: 'web/xliff/en.xlf'
on 'pt_BR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-10-22 16:51:03 +02:00
authentik-automation[bot]
5ab0a4380f core, web: update translations (#17643)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-10-22 16:33:08 +02:00
Tana M Berry
7894c52764 website/docs: rel notes 2025.10: add 3 more integration guides (#17641)
* add 3 more int guides

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* is github's suggestion thingy usually this buggy

---------

Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: Tana M Berry <tana@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-10-22 09:28:49 -04:00
Jens L.
e9347e88e1 providers/proxy: drop headers with underscores (#17650)
drop any headers with underscores that we set in the remote system

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-22 15:19:34 +02:00
dependabot[bot]
92de2c3d25 core: bump astral-sh/uv from 0.9.4 to 0.9.5 (#17645)
Bumps [astral-sh/uv](https://github.com/astral-sh/uv) from 0.9.4 to 0.9.5.
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.9.4...0.9.5)

---
updated-dependencies:
- dependency-name: astral-sh/uv
  dependency-version: 0.9.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 13:26:53 +02:00
dependabot[bot]
b241f9b087 web: bump style-mod from 4.1.2 to 4.1.3 in /web (#17647)
Bumps [style-mod](https://github.com/marijnh/style-mod) from 4.1.2 to 4.1.3.
- [Commits](https://github.com/marijnh/style-mod/compare/4.1.2...4.1.3)

---
updated-dependencies:
- dependency-name: style-mod
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 13:26:34 +02:00
dependabot[bot]
38d399626e core: bump github.com/getsentry/sentry-go from 0.36.0 to 0.36.1 (#17646)
Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.36.0 to 0.36.1.
- [Release notes](https://github.com/getsentry/sentry-go/releases)
- [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-go/compare/v0.36.0...v0.36.1)

---
updated-dependencies:
- dependency-name: github.com/getsentry/sentry-go
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-22 13:26:23 +02:00
Dominic R
a972eab2fc website/integrations: add terraform cloud (#17610)
* website/integrations: add terraform cloud

* Added extra section and clarified verification section

* Update website/integrations/infrastructure/terraform-cloud/index.md

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dominic R <dominic@sdko.org>

* Update website/integrations/infrastructure/terraform-cloud/index.md

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dominic R <dominic@sdko.org>

* Update website/integrations/infrastructure/terraform-cloud/index.md

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dominic R <dominic@sdko.org>

* Update website/integrations/infrastructure/terraform-cloud/index.md

Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Dominic R <dominic@sdko.org>

---------

Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
2025-10-22 10:28:22 +01:00
Connor Peshek
157aef6a67 website/integrations: add zendesk (#17541)
* Add zendesk integration steps

---------

Signed-off-by: Connor Peshek <connor@connorpeshek.me>
Co-authored-by: connor peshek <connorpeshek@connors-MacBook-Pro.local>
Co-authored-by: Dominic R <dominic@sdko.org>
Co-authored-by: dewi-tik <dewi@goauthentik.io>
2025-10-21 15:58:21 -05:00
Marcelo Elizeche Landó
710714ab7a core: bump djangorestframework from 3.16.0 (our fork) to v3.16.1 (official package) (#16594)
* bump djangorestframework from 3.16.0 (our fork) to v3.16.1 (official package)

* maybe fix issues?

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

* check for .pk when state==ABSENT in blueprint importer

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
2025-10-21 18:37:01 +02:00
Jens L.
6ea8d7dbaf enterprise: add prometheus metrics for license usage and expiry (#17606)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-21 18:03:52 +02:00
Jens L.
3c4d106880 ci: link to next. for pre-release docs (#17634)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-21 17:44:55 +02:00
Marcelo Elizeche Landó
604ec1f9c1 web: sync web/package-lock.json (#17611)
sync web/package-lock.json
2025-10-21 17:32:02 +02:00
Dewi Roberts
75e93ca114 website/integrations: random fixes (#17631)
* Change miniflux and espo-crm formatting

* Fixes capitalization, bolding and wording.
2025-10-21 13:21:15 +00:00
Dewi Roberts
7a98b64855 website/docs: add short-lived certificate recommendation (#17628)
Add certificate recommendation
2025-10-21 13:02:27 +00:00
authentik-automation[bot]
7190a94095 core, web: update translations (#17605)
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-10-21 14:25:09 +02:00
transifex-integration[bot]
65f09d0cae translate: Updates for file locale/en/LC_MESSAGES/django.po in pt_BR (#17622)
Translate locale/en/LC_MESSAGES/django.po in pt_BR

100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'pt_BR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-10-21 14:23:15 +02:00
Jens L.
fa10a29727 ci: use forked release action to deal with large release notes (#17625)
* ci: use forked release action to deal with large release notes

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

* bump build

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

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2025-10-21 14:21:56 +02:00
Dominic R
d13d2e8abb website: fix active menu link background overlap (#17607) 2025-10-21 07:06:19 +02:00
Dominic R
be011e8676 website/integrations: Zoom: Fix punctuation in description (#17608) 2025-10-21 04:55:46 +02:00
authentik-automation[bot]
db213a8944 root: bump version to 2025.12.0-rc1 (#17603)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com>
2025-10-21 01:10:16 +02:00
867 changed files with 201463 additions and 227475 deletions

81
.github/ISSUE_TEMPLATE/1-bug-report.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: Bug report
description: Create a report to help us improve
labels: ["bug", "triage"]
type: bug
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to fill out this bug report!
- type: textarea
id: describe-the-bug
attributes:
label: Describe the bug
description: "A clear and concise description of what the bug is."
placeholder: "Describe the issue"
validations:
required: true
- type: textarea
id: how-to-reproduce
attributes:
label: How to reproduce
description: "Steps to reproduce the behavior."
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: "A clear and concise description of what you expected to happen."
placeholder: "The behavior that I expect to see is [...]"
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: "If applicable, add screenshots to help explain your problem."
validations:
required: false
- type: textarea
id: additional-context
attributes:
label: Additional context
description: "Add any other context about the problem here."
placeholder: "Also note that [...]"
validations:
required: false
- type: dropdown
id: deployment-method
attributes:
label: Deployment Method
description: "What deployment method are you using for authentik? Only Docker, Kubernetes and AWS CloudFormation are supported."
options:
- Docker
- Kubernetes
- AWS CloudFormation
- Other (please specify)
default: 0
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: "What version of authentik are you using?"
placeholder: "[e.g. 2025.10.1]"
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: "Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks."
render: shell
validations:
required: false

49
.github/ISSUE_TEMPLATE/2-docs-issue.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: Documentation suggestion/problem
description: Suggest an improvement or report a problem in our docs
labels: ["area: docs", "triage"]
type: task
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to fill out this documentation issue!
- type: markdown
attributes:
value: |
**Consider opening a PR!**
If the issue is one that you can fix, or even make a good pass at, we'd appreciate a PR.
For more information about making a contribution to the docs, and using our Style Guide and our templates, refer to ["Writing documentation"](https://docs.goauthentik.io/docs/developer-docs/docs/writing-documentation).
- type: textarea
id: issue
attributes:
label: Do you see an area that can be clarified or expanded, a technical inaccuracy, or a broken link?
description: "A clear and concise description of what the problem is, or where the document can be improved."
placeholder: "I believe we need more details about [...]"
validations:
required: true
- type: input
id: link
attributes:
label: Link
description: "Provide the URL or link to the exact page in the documentation to which you are referring."
placeholder: "If there are multiple pages, list them all"
validations:
required: true
- type: textarea
id: solution
attributes:
label: Solution
description: "A clear and concise description of what you suggest as a solution"
placeholder: "This issue could be resolved by [...]"
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
description: "Add any other context or screenshots about the documentation issue here."
placeholder: "Also note that [...]"
validations:
required: false

View File

@@ -0,0 +1,41 @@
name: Feature request
description: Suggest an idea for a feature
labels: ["enhancement", "triage"]
type: feature
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to fill out this feature request!
- type: textarea
id: related-to-problem
attributes:
label: Is your feature request related to a problem?
description: "A clear and concise description of what the problem is."
placeholder: "I'm always frustrated when [...]"
validations:
required: true
- type: textarea
id: feature
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
placeholder: "I'd like authentik to have [...]"
validations:
required: false
- type: textarea
id: alternatives
attributes:
label: Describe alternatives that you've considered
description: "A clear and concise description of any alternative solutions or features you've considered."
placeholder: "I've tried this but [...]"
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
description: "Add any other context or screenshots about the feature request here."
placeholder: "Also note that [...]"
validations:
required: false

View File

@@ -1,39 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ""
labels: bug
assignees: ""
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Logs**
Output of docker-compose logs or kubectl logs respectively
**Version and Deployment (please complete the following information):**
<!--
Notice: authentik supports installation via Docker, Kubernetes, and AWS CloudFormation only. Support is not available for other methods. For detailed installation and configuration instructions, please refer to the official documentation at https://docs.goauthentik.io/docs/install-config/.
-->
- authentik version: [e.g. 2025.2.0]
- Deployment: [e.g. docker-compose, helm]
**Additional context**
Add any other context about the problem here.

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Question
url: https://github.com/goauthentik/authentik/discussions
about: Please ask questions via GitHub Discussions rather than creating issues.
- name: authentik Discord
url: https://discord.com/invite/jg33eMhnj6
about: For community support, visit our Discord server.

View File

@@ -1,22 +0,0 @@
---
name: Documentation issue
about: Suggest an improvement or report a problem
title: ""
labels: documentation
assignees: ""
---
**Do you see an area that can be clarified or expanded, a technical inaccuracy, or a broken link? Please describe.**
A clear and concise description of what the problem is, or where the document can be improved. Ex. I believe we need more details about [...]
**Provide the URL or link to the exact page in the documentation to which you are referring.**
If there are multiple pages, list them all, and be sure to state the header or section where the content is.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Additional context**
Add any other context or screenshots about the documentation issue here.
**Consider opening a PR!**
If the issue is one that you can fix, or even make a good pass at, we'd appreciate a PR. For more information about making a contribution to the docs, and using our Style Guide and our templates, refer to ["Writing documentation"](https://docs.goauthentik.io/docs/developer-docs/docs/writing-documentation).

View File

@@ -1,19 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ""
labels: enhancement
assignees: ""
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -1,17 +0,0 @@
---
name: Hackathon Idea
about: Propose an idea for the hackathon
title: ""
labels: hackathon
assignees: ""
---
**Describe the idea**
A clear concise description of the idea you want to implement
You're also free to work on existing GitHub issues, whether they be feature requests or bugs, just link the existing GitHub issue here.
<!-- Don't modify below here -->
If you want to help working on this idea or want to contribute in any other way, react to this issue with a :rocket:

View File

@@ -0,0 +1,7 @@
---
name: Blank issue
about: This issue type is only for internal use
title:
labels:
assignees:
---

View File

@@ -1,32 +0,0 @@
---
name: Question
about: Ask a question about a feature or specific configuration
title: ""
labels: question
assignees: ""
---
**Describe your question/**
A clear and concise description of what you're trying to do.
**Relevant info**
i.e. Version of other software you're using, specifics of your setup
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Logs**
Output of docker-compose logs or kubectl logs respectively
**Version and Deployment (please complete the following information):**
<!--
Notice: authentik supports installation via Docker, Kubernetes, and AWS CloudFormation only. Support is not available for other methods. For detailed installation and configuration instructions, please refer to the official documentation at https://docs.goauthentik.io/docs/install-config/.
-->
- authentik version: [e.g. 2025.2.0]
- Deployment: [e.g. docker-compose, helm]
**Additional context**
Add any other context about the problem here.

View File

@@ -21,12 +21,12 @@ runs:
sudo apt-get install --no-install-recommends -y libpq-dev openssl libxmlsec1-dev pkg-config gettext libkrb5-dev krb5-kdc krb5-user krb5-admin-server
- name: Install uv
if: ${{ contains(inputs.dependencies, 'python') }}
uses: astral-sh/setup-uv@2ddd2b9cb38ad8efd50337e8ab201519a34c9f24 # v5
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v5
with:
enable-cache: true
- name: Setup python
if: ${{ contains(inputs.dependencies, 'python') }}
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v5
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v5
with:
python-version-file: "pyproject.toml"
- name: Install Python deps
@@ -43,7 +43,7 @@ runs:
registry-url: 'https://registry.npmjs.org'
- name: Setup go
if: ${{ contains(inputs.dependencies, 'go') }}
uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v5
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v5
with:
go-version-file: "go.mod"
- name: Setup docker cache

View File

@@ -142,7 +142,9 @@ updates:
labels:
- dependencies
- package-ecosystem: docker
directory: "/"
directories:
- /
- /website
schedule:
interval: daily
time: "04:00"

View File

@@ -1,3 +1,4 @@
---
git:
filters:
- filter_type: file

View File

@@ -42,8 +42,8 @@ jobs:
# Needed for checkout
contents: read
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
- name: prepare variables
uses: ./.github/actions/docker-push-variables

View File

@@ -49,7 +49,7 @@ jobs:
tags: ${{ steps.ev.outputs.imageTagsJSON }}
shouldPush: ${{ steps.ev.outputs.shouldPush }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: prepare variables
uses: ./.github/actions/docker-push-variables
id: ev
@@ -69,7 +69,7 @@ jobs:
matrix:
tag: ${{ fromJson(needs.get-tags.outputs.tags) }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: prepare variables
uses: ./.github/actions/docker-push-variables
id: ev

View File

@@ -15,15 +15,14 @@ permissions:
jobs:
build:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
steps:
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
token: ${{ steps.generate_token.outputs.token }}
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
@@ -47,7 +46,7 @@ jobs:
run: |
export VERSION=`node -e 'console.log(require("../gen-ts-api/package.json").version)'`
npm i @goauthentik/api@$VERSION
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
- uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
id: cpr
with:
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -21,7 +21,7 @@ jobs:
command:
- prettier-check
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Install Dependencies
working-directory: website/
run: npm ci
@@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
with:
node-version-file: website/package.json
@@ -55,7 +55,7 @@ jobs:
env:
NODE_ENV: production
run: npm run build -w api
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v4
with:
name: api-docs
path: website/api/build
@@ -66,8 +66,8 @@ jobs:
- lint
- build
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v5
with:
name: api-docs
path: website/api/build

View File

@@ -21,7 +21,7 @@ jobs:
check-changes-applied:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
@@ -42,6 +42,6 @@ jobs:
- check-changes-applied
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
with:
jobs: ${{ toJSON(needs) }}

View File

@@ -13,11 +13,10 @@ env:
jobs:
publish-source-docs:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- name: generate docs

View File

@@ -21,7 +21,7 @@ jobs:
command:
- prettier-check
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Install dependencies
working-directory: website/
run: npm ci
@@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
with:
node-version-file: website/package.json
@@ -48,7 +48,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
with:
node-version-file: website/package.json
@@ -61,7 +61,6 @@ jobs:
working-directory: website/
run: npm run build -w integrations
build-container:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
permissions:
# Needed to upload container images to ghcr.io
@@ -70,11 +69,11 @@ jobs:
id-token: write
attestations: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
- name: prepare variables
@@ -118,7 +117,6 @@ jobs:
- build-container
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
with:
jobs: ${{ toJSON(needs) }}
allowed-skips: ${{ github.repository == 'goauthentik/authentik-internal' && 'build-container' || '[]' }}

View File

@@ -9,7 +9,6 @@ on:
jobs:
test-container:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
@@ -19,7 +18,7 @@ jobs:
- version-2025-4
- version-2025-2
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- run: |
current="$(pwd)"
dir="/tmp/authentik/${{ matrix.version }}"

View File

@@ -37,7 +37,7 @@ jobs:
- mypy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- name: run job
@@ -45,7 +45,7 @@ jobs:
test-migrations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- name: run migrations
@@ -71,16 +71,23 @@ jobs:
- 18-alpine
run_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
fetch-depth: 0
- name: checkout stable
run: |
# Copy current, latest config to local
cp authentik/lib/default.yml local.env.yml
set -e -o pipefail
cp -R .github ..
cp -R scripts ..
git checkout $(git tag --sort=version:refname | grep '^version/' | grep -vE -- '-rc[0-9]+$' | tail -n1)
# Previous stable tag
prev_stable=$(git tag --sort=version:refname | grep '^version/' | grep -vE -- '-rc[0-9]+$' | tail -n1)
# Current version family based on
current_version_family=$(cat internal/constants/VERSION | grep -vE -- 'rc[0-9]+$' || true)
if [[ -n $current_version_family ]]; then
prev_stable=$current_version_family
fi
echo "::notice::Checking out ${prev_stable} as stable version..."
git checkout ${prev_stable}
rm -rf .github/ scripts/
mv ../.github ../scripts .
- name: Setup authentik env (stable)
@@ -129,7 +136,7 @@ jobs:
- 18-alpine
run_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
with:
@@ -149,11 +156,11 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- name: Create k8s Kind Cluster
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0
uses: helm/kind-action@92086f6be054225fa813e0a4b13787fc9088faab # v1.13.0
- name: run integration
run: |
uv run coverage run manage.py test tests/integration
@@ -187,7 +194,7 @@ jobs:
- name: flows
glob: tests/e2e/test_flows*
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- name: Setup e2e env (chrome, etc)
@@ -225,7 +232,7 @@ jobs:
- test-e2e
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
with:
jobs: ${{ toJSON(needs) }}
build:
@@ -253,7 +260,7 @@ jobs:
pull-requests: write
timeout-minutes: 120
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: prepare variables

View File

@@ -21,8 +21,8 @@ jobs:
lint-golint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6
with:
go-version-file: "go.mod"
- name: Prepare and generate API
@@ -34,7 +34,7 @@ jobs:
- name: Generate API
run: make gen-client-go
- name: golangci-lint
uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8
uses: golangci/golangci-lint-action@e7fa5ac41e1cf5b7d48e45e42232ce7ada589601 # v8
with:
version: latest
args: --timeout 5000s --verbose
@@ -42,8 +42,8 @@ jobs:
test-unittest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6
with:
go-version-file: "go.mod"
- name: Setup authentik env
@@ -63,11 +63,10 @@ jobs:
- test-unittest
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
with:
jobs: ${{ toJSON(needs) }}
build-container:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
timeout-minutes: 120
needs:
- ci-outpost-mark
@@ -87,11 +86,11 @@ jobs:
id-token: write
attestations: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
- name: prepare variables
@@ -146,10 +145,10 @@ jobs:
goos: [linux]
goarch: [amd64, arm64]
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6
with:
go-version-file: "go.mod"
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5

View File

@@ -31,7 +31,7 @@ jobs:
- command: lit-analyse
project: web
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
with:
node-version-file: ${{ matrix.project }}/package.json
@@ -48,7 +48,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
with:
node-version-file: web/package.json
@@ -68,7 +68,7 @@ jobs:
- lint
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
with:
jobs: ${{ toJSON(needs) }}
test:
@@ -76,7 +76,7 @@ jobs:
- ci-web-mark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
with:
node-version-file: web/package.json

View File

@@ -29,20 +29,20 @@ jobs:
github.event.pull_request.head.repo.full_name == github.repository)
steps:
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
token: ${{ steps.generate_token.outputs.token }}
- name: Compress images
id: compress
uses: calibreapp/image-actions@05b1cf44e88c3b041b841452482df9497f046ef7 # main
uses: calibreapp/image-actions@420075c115b26f8785e293c5bd5bef0911c506e5 # main
with:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
compressOnly: ${{ github.event_name != 'pull_request' }}
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
- uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
if: "${{ github.event_name != 'pull_request' && steps.compress.outputs.markdown != '' }}"
id: cpr
with:

View File

@@ -13,21 +13,20 @@ env:
jobs:
build:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
steps:
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
token: ${{ steps.generate_token.outputs.token }}
- name: Setup authentik env
uses: ./.github/actions/setup
- run: uv run ak update_webauthn_mds
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
- uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
id: cpr
with:
token: ${{ steps.generate_token.outputs.token }}

View File

@@ -10,14 +10,14 @@ jobs:
steps:
- id: app-token
name: Generate app token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
if: ${{ env.GH_APP_ID != '' }}
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
env:
GH_APP_ID: ${{ secrets.GH_APP_ID }}
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
if: ${{ steps.app-token.outcome != 'skipped' }}
with:
fetch-depth: 0

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Cleanup
run: |

View File

@@ -5,25 +5,28 @@ on:
# schedule:
# - cron: "0 0 * * *" # every day at midnight
workflow_dispatch:
inputs:
dry-run:
type: boolean
description: Enable dry-run mode
jobs:
clean-ghcr:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
name: Delete old unused container images
runs-on: ubuntu-latest
steps:
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Delete 'dev' containers older than a week
uses: snok/container-retention-policy@3b0972b2276b171b212f8c4efbca59ebba26eceb # v2
uses: snok/container-retention-policy@3b0972b2276b171b212f8c4efbca59ebba26eceb # v3.0.1
with:
image-names: dev-server,dev-ldap,dev-proxy
image-tags: "!gh-next,!gh-main"
cut-off: One week ago UTC
account-type: org
org-name: goauthentik
untagged-only: false
account: goauthentik
tag-selection: untagged
token: ${{ steps.generate_token.outputs.token }}
skip-tags: gh-next,gh-main
dry-run: ${{ inputs.dry-run }}

View File

@@ -5,10 +5,10 @@ on:
push:
branches: [main]
paths:
- packages/docusaurus-config/**
- packages/tsconfig/**
- packages/eslint-config/**
- packages/prettier-config/**
- packages/tsconfig/**
- packages/docusaurus-config/**
- packages/esbuild-plugin-live-reload/**
workflow_dispatch:
@@ -19,19 +19,19 @@ permissions:
jobs:
publish:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
package:
- packages/docusaurus-config
# The order of the `*config` packages should not be changed, as they depend on each other.
- packages/tsconfig
- packages/eslint-config
- packages/prettier-config
- packages/tsconfig
- packages/docusaurus-config
- packages/esbuild-plugin-live-reload
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
fetch-depth: 2
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
@@ -44,6 +44,8 @@ jobs:
with:
files: |
${{ matrix.package }}/package.json
- name: Install Dependencies
run: npm ci
- name: Publish package
if: steps.changed-files.outputs.any_changed == 'true'
working-directory: ${{ matrix.package }}

View File

@@ -24,7 +24,7 @@ jobs:
language: ["go", "javascript", "python"]
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Setup authentik env
uses: ./.github/actions/setup
- name: Initialize CodeQL

View File

@@ -26,5 +26,5 @@ jobs:
image: semgrep/semgrep
if: (github.actor != 'dependabot[bot]')
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- run: semgrep ci

View File

@@ -29,12 +29,12 @@ jobs:
steps:
- id: app-token
name: Generate app token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Checkout main
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: main
token: "${{ steps.app-token.outputs.token }}"
@@ -57,12 +57,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Checkout main
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: main
token: ${{ steps.generate_token.outputs.token }}
@@ -73,7 +73,7 @@ jobs:
- name: Bump version
run: "make bump version=${{ inputs.next_version }}.0-rc1"
- name: Create pull request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
with:
token: ${{ steps.generate_token.outputs.token }}
branch: release-bump-${{ inputs.next_version }}

View File

@@ -12,11 +12,10 @@ permissions:
jobs:
update-next:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
environment: internal-production
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: main
- run: |

View File

@@ -31,9 +31,9 @@ jobs:
id-token: write
attestations: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
- name: prepare variables
@@ -83,12 +83,12 @@ jobs:
- radius
- rac
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6
with:
go-version-file: "go.mod"
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3
- name: prepare variables
@@ -146,8 +146,8 @@ jobs:
goos: [linux, darwin]
goarch: [amd64, arm64]
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6
with:
go-version-file: "go.mod"
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v5
@@ -168,7 +168,7 @@ jobs:
export CGO_ENABLED=0
go build -tags=outpost_static_embed -v -o ./authentik-outpost-${{ matrix.type }}_${{ matrix.goos }}_${{ matrix.goarch }} ./cmd/${{ matrix.type }}
- name: Upload binaries to release
uses: svenstaro/upload-release-action@81c65b7cd4de9b2570615ce3aad67a41de5b1a13 # v2
uses: svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./authentik-outpost-${{ matrix.type }}_${{ matrix.goos }}_${{ matrix.goarch }}
@@ -186,8 +186,8 @@ jobs:
AWS_REGION: eu-central-1
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: aws-actions/configure-aws-credentials@00943011d9042930efac3dcd3a170e4273319bc8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5
with:
role-to-assume: "arn:aws:iam::016170277896:role/github_goauthentik_authentik"
aws-region: ${{ env.AWS_REGION }}
@@ -202,7 +202,7 @@ jobs:
- build-outpost-binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: Run test suite in final docker images
run: |
echo "PG_PASS=$(openssl rand 32 | base64 -w 0)" >> .env
@@ -218,7 +218,7 @@ jobs:
- build-outpost-binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- name: prepare variables
uses: ./.github/actions/docker-push-variables
id: ev
@@ -232,7 +232,7 @@ jobs:
container=$(docker container create ${{ steps.ev.outputs.imageMainName }})
docker cp ${container}:web/ .
- name: Create a Sentry.io release
uses: getsentry/action-release@4f502acc1df792390abe36f2dcb03612ef144818 # v3
uses: getsentry/action-release@128c5058bbbe93c8e02147fe0a9c713f166259a6 # v3
continue-on-error: true
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}

View File

@@ -35,8 +35,10 @@ jobs:
echo "major_version=${{ inputs.version }}" | grep -oE "^major_version=[0-9]{4}\.[0-9]{1,2}" >> "$GITHUB_OUTPUT"
- id: changelog-url
run: |
if [ "${{ inputs.release_reason }}" = "feature" ] || [ "${{ inputs.release_reason }}" = "prerelease" ]; then
if [ "${{ inputs.release_reason }}" = "feature" ]; then
changelog_url="https://docs.goauthentik.io/docs/releases/${{ steps.check.outputs.major_version }}"
elif [ "${{ inputs.release_reason }}" = "prerelease" ]; then
changelog_url="https://next.goauthentik.io/docs/releases/${{ steps.check.outputs.major_version }}"
else
changelog_url="https://docs.goauthentik.io/docs/releases/${{ steps.check.outputs.major_version }}#fixed-in-$(echo -n ${{ inputs.version }} | sed 's/\.//g')"
fi
@@ -48,7 +50,7 @@ jobs:
name: Pre-release test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
- run: make test-docker
bump-authentik:
name: Bump authentik version
@@ -59,7 +61,7 @@ jobs:
steps:
- id: app-token
name: Generate app token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
@@ -68,7 +70,7 @@ jobs:
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: "${{ steps.app-token.outputs.token }}"
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
ref: "version-${{ needs.check-inputs.outputs.major_version }}"
token: "${{ steps.app-token.outputs.token }}"
@@ -87,7 +89,7 @@ jobs:
git tag "version/${{ inputs.version }}" HEAD -m "version/${{ inputs.version }}"
git push --follow-tags
- name: Create Release
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
with:
token: "${{ steps.app-token.outputs.token }}"
tag_name: "version/${{ inputs.version }}"
@@ -106,7 +108,7 @@ jobs:
steps:
- id: app-token
name: Generate app token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
@@ -116,7 +118,7 @@ jobs:
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: "${{ steps.app-token.outputs.token }}"
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
repository: "${{ github.repository_owner }}/helm"
token: "${{ steps.app-token.outputs.token }}"
@@ -128,7 +130,7 @@ jobs:
sed -E -i 's/[0-9]{4}\.[0-9]{1,2}\.[0-9]+$/${{ inputs.version }}/' charts/authentik/Chart.yaml
./scripts/helm-docs.sh
- name: Create pull request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
with:
token: "${{ steps.app-token.outputs.token }}"
branch: bump-${{ inputs.version }}
@@ -148,7 +150,7 @@ jobs:
steps:
- id: app-token
name: Generate app token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
@@ -158,7 +160,7 @@ jobs:
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: "${{ steps.app-token.outputs.token }}"
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
with:
repository: "${{ github.repository_owner }}/version"
token: "${{ steps.app-token.outputs.token }}"
@@ -183,7 +185,7 @@ jobs:
'.stable.version = $version | .stable.changelog = $changelog | .stable.changelog_url = $changelog_url' version.json > version.new.json
mv version.new.json version.json
- name: Create pull request
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
with:
token: "${{ steps.app-token.outputs.token }}"
branch: bump-${{ inputs.version }}

View File

@@ -1,22 +0,0 @@
---
name: Repo - Cleanup internal mirror
on:
workflow_dispatch:
jobs:
to_internal:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
- if: ${{ env.MIRROR_KEY != '' }}
uses: BeryJu/repository-mirroring-action@5cf300935bc2e068f73ea69bcc411a8a997208eb # 5cf300935bc2e068f73ea69bcc411a8a997208eb
with:
target_repo_url: git@github.com:goauthentik/authentik-internal.git
ssh_private_key: ${{ secrets.GH_MIRROR_KEY }}
args: --tags --force --prune
env:
MIRROR_KEY: ${{ secrets.GH_MIRROR_KEY }}

View File

@@ -1,21 +0,0 @@
---
name: Repo - Mirror to internal
on: [push, delete]
jobs:
to_internal:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
- if: ${{ env.MIRROR_KEY != '' }}
uses: BeryJu/repository-mirroring-action@5cf300935bc2e068f73ea69bcc411a8a997208eb # 5cf300935bc2e068f73ea69bcc411a8a997208eb
with:
target_repo_url: git@github.com:goauthentik/authentik-internal.git
ssh_private_key: ${{ secrets.GH_MIRROR_KEY }}
args: --tags --force
env:
MIRROR_KEY: ${{ secrets.GH_MIRROR_KEY }}

View File

@@ -12,11 +12,10 @@ permissions:
jobs:
stale:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
steps:
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}

View File

@@ -17,20 +17,19 @@ env:
jobs:
compile:
if: ${{ github.repository != 'goauthentik/authentik-internal' }}
runs-on: ubuntu-latest
steps:
- id: generate_token
if: ${{ github.event_name != 'pull_request' }}
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
if: ${{ github.event_name != 'pull_request' }}
with:
token: ${{ steps.generate_token.outputs.token }}
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v5
if: ${{ github.event_name == 'pull_request' }}
- name: Setup authentik env
uses: ./.github/actions/setup
@@ -45,7 +44,7 @@ jobs:
make web-check-compile
- name: Create Pull Request
if: ${{ github.event_name != 'pull_request' }}
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7
with:
token: ${{ steps.generate_token.outputs.token }}
branch: extract-compile-backend-translation

View File

@@ -1,41 +0,0 @@
---
# Rename transifex pull requests to have a correct naming
# Also enables auto squash-merge
name: Translation - Auto-rename Transifex PRs
on:
pull_request:
types: [opened, reopened]
permissions:
# Permission to rename PR
pull-requests: write
jobs:
rename_pr:
runs-on: ubuntu-latest
if: ${{ github.event.pull_request.user.login == 'transifex-integration[bot]'}}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- id: generate_token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Get current title
id: title
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
title=$(gh pr view ${{ github.event.pull_request.number }} --json "title" -q ".title")
echo "title=${title}" >> "$GITHUB_OUTPUT"
- name: Rename
env:
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
run: |
gh pr edit ${{ github.event.pull_request.number }} -t "translate: ${{ steps.title.outputs.title }}" --add-label dependencies
- uses: peter-evans/enable-pull-request-automerge@a660677d5469627102a1c1e11409dd063606628d # v3
with:
token: ${{ steps.generate_token.outputs.token }}
pull-request-number: ${{ github.event.pull_request.number }}
merge-method: squash

View File

@@ -26,6 +26,10 @@ website/api/reference
node_modules
coverage
## Vendored files
vendored
*.min.js
## Configs
*.log
*.yaml

View File

@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1
# Stage 1: Build webui
FROM --platform=${BUILDPLATFORM} docker.io/library/node:24-slim AS node-builder
FROM --platform=${BUILDPLATFORM} docker.io/library/node:24-trixie-slim@sha256:45babd1b4ce0349fb12c4e24bf017b90b96d52806db32e001e3013f341bef0fe AS node-builder
ARG GIT_BUILD_HASH
ENV GIT_BUILD_HASH=$GIT_BUILD_HASH
@@ -26,7 +26,7 @@ RUN npm run build && \
npm run build:sfe
# Stage 2: Build go proxy
FROM --platform=${BUILDPLATFORM} docker.io/library/golang:1.25.3-bookworm AS go-builder
FROM --platform=${BUILDPLATFORM} docker.io/library/golang:1.25.4-trixie@sha256:a02d35efc036053fdf0da8c15919276bf777a80cbfda6a35c5e9f087e652adfc AS go-builder
ARG TARGETOS
ARG TARGETARCH
@@ -63,7 +63,7 @@ RUN --mount=type=cache,sharing=locked,target=/go/pkg/mod \
go build -o /go/authentik ./cmd/server
# Stage 3: MaxMind GeoIP
FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v7.1.1 AS geoip
FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v7.1.1@sha256:faecdca22579730ab0b7dea5aa9af350bb3c93cb9d39845c173639ead30346d2 AS geoip
ENV GEOIPUPDATE_EDITION_IDS="GeoLite2-City GeoLite2-ASN"
ENV GEOIPUPDATE_VERBOSE="1"
@@ -76,9 +76,9 @@ RUN --mount=type=secret,id=GEOIPUPDATE_ACCOUNT_ID \
/bin/sh -c "GEOIPUPDATE_LICENSE_KEY_FILE=/run/secrets/GEOIPUPDATE_LICENSE_KEY /usr/bin/entry.sh || echo 'Failed to get GeoIP database, disabling'; exit 0"
# Stage 4: Download uv
FROM ghcr.io/astral-sh/uv:0.9.4 AS uv
FROM ghcr.io/astral-sh/uv:0.9.14@sha256:fef8e5fb8809f4b57069e919ffcd1529c92b432a2c8d8ad1768087b0b018d840 AS uv
# Stage 5: Base python image
FROM ghcr.io/goauthentik/fips-python:3.13.9-slim-trixie-fips AS python-base
FROM ghcr.io/goauthentik/fips-python:3.13.9-slim-trixie-fips@sha256:700fc8c1e290bd14e5eaca50b1d8e8c748c820010559cbfb4c4f8dfbe2c4c9ff AS python-base
ENV VENV_PATH="/ak-root/.venv" \
PATH="/lifecycle:/ak-root/.venv/bin:$PATH" \
@@ -139,6 +139,7 @@ ARG GIT_BUILD_HASH
ENV GIT_BUILD_HASH=$GIT_BUILD_HASH
LABEL org.opencontainers.image.authors="Authentik Security Inc." \
org.opencontainers.image.source="https://github.com/goauthentik/authentik" \
org.opencontainers.image.description="goauthentik.io Main server image, see https://goauthentik.io for more info." \
org.opencontainers.image.documentation="https://docs.goauthentik.io" \
org.opencontainers.image.licenses="https://github.com/goauthentik/authentik/blob/main/LICENSE" \

View File

@@ -17,21 +17,20 @@ pg_user := $(shell uv run python -m authentik.lib.config postgresql.user 2>/dev/
pg_host := $(shell uv run python -m authentik.lib.config postgresql.host 2>/dev/null)
pg_name := $(shell uv run python -m authentik.lib.config postgresql.name 2>/dev/null)
UNAME := $(shell uname)
# For macOS users, add the libxml2 installed from brew libxmlsec1 to the build path
# to prevent SAML-related tests from failing and ensure correct pip dependency compilation
ifeq ($(UNAME), Darwin)
# Only add for brew users who installed libxmlsec1
BREW_EXISTS := $(shell command -v brew 2> /dev/null)
ifdef BREW_EXISTS
LIBXML2_EXISTS := $(shell brew list libxml2 2> /dev/null)
ifdef LIBXML2_EXISTS
BREW_LDFLAGS := -L$(shell brew --prefix libxml2)/lib $(LDFLAGS)
BREW_CPPFLAGS := -I$(shell brew --prefix libxml2)/include $(CPPFLAGS)
BREW_PKG_CONFIG_PATH := $(shell brew --prefix libxml2)/lib/pkgconfig:$(PKG_CONFIG_PATH)
endif
endif
# These functions are only evaluated when called in specific targets
LIBXML2_EXISTS = $(shell brew list libxml2 2> /dev/null)
KRB5_EXISTS = $(shell brew list krb5 2> /dev/null)
LIBXML2_LDFLAGS = -L$(shell brew --prefix libxml2)/lib $(LDFLAGS)
LIBXML2_CPPFLAGS = -I$(shell brew --prefix libxml2)/include $(CPPFLAGS)
LIBXML2_PKG_CONFIG = $(shell brew --prefix libxml2)/lib/pkgconfig:$(PKG_CONFIG_PATH)
KRB_PATH =
ifneq ($(KRB5_EXISTS),)
KRB_PATH = PATH="$(shell brew --prefix krb5)/sbin:$(shell brew --prefix krb5)/bin:$$PATH"
endif
all: lint-fix lint gen web test ## Lint, build, and test everything
@@ -50,7 +49,7 @@ go-test:
go test -timeout 0 -v -race -cover ./...
test: ## Run the server tests and produce a coverage report (locally)
uv run coverage run manage.py test --keepdb authentik
$(KRB_PATH) uv run coverage run manage.py test --keepdb $(or $(filter-out $@,$(MAKECMDGOALS)),authentik)
uv run coverage html
uv run coverage report
@@ -66,11 +65,11 @@ lint: ## Lint the python and golang sources
golangci-lint run -v
core-install:
ifdef LIBXML2_EXISTS
ifneq ($(LIBXML2_EXISTS),)
# Clear cache to ensure fresh compilation
uv cache clean
# Force compilation from source for lxml and xmlsec with correct environment
LDFLAGS="$(BREW_LDFLAGS)" CPPFLAGS="$(BREW_CPPFLAGS)" PKG_CONFIG_PATH="$(BREW_PKG_CONFIG_PATH)" uv sync --frozen --reinstall-package lxml --reinstall-package xmlsec --no-binary-package lxml --no-binary-package xmlsec
LDFLAGS="$(LIBXML2_LDFLAGS)" CPPFLAGS="$(LIBXML2_CPPFLAGS)" PKG_CONFIG_PATH="$(LIBXML2_PKG_CONFIG)" uv sync --frozen --reinstall-package lxml --reinstall-package xmlsec --no-binary-package lxml --no-binary-package xmlsec
else
uv sync --frozen
endif
@@ -197,11 +196,12 @@ endif
cp ${PWD}/schema.yml ${PWD}/${GEN_API_PY}
make -C ${PWD}/${GEN_API_PY} build version=${NPM_VERSION}
gen-client-go: gen-clean-go ## Build and install the authentik API for Golang
gen-client-go: ## Build and install the authentik API for Golang
mkdir -p ${PWD}/${GEN_API_GO}
ifeq ($(wildcard ${PWD}/${GEN_API_GO}/.*),)
git clone --depth 1 https://github.com/goauthentik/client-go.git ${PWD}/${GEN_API_GO}
else
cd ${PWD}/${GEN_API_GO} && git reset --hard
cd ${PWD}/${GEN_API_GO} && git pull
endif
cp ${PWD}/schema.yml ${PWD}/${GEN_API_GO}

View File

@@ -10,7 +10,7 @@
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/goauthentik/authentik/ci-web.yml?branch=main&label=web%20build&style=for-the-badge)](https://github.com/goauthentik/authentik/actions/workflows/ci-web.yml)
[![Code Coverage](https://img.shields.io/codecov/c/gh/goauthentik/authentik?style=for-the-badge)](https://codecov.io/gh/goauthentik/authentik)
![Latest version](https://img.shields.io/docker/v/authentik/server?sort=semver&style=for-the-badge)
[![](https://img.shields.io/badge/Help%20translate-transifex-blue?style=for-the-badge)](https://www.transifex.com/authentik/authentik/)
[![](https://img.shields.io/badge/Help%20translate-transifex-blue?style=for-the-badge)](https://explore.transifex.com/authentik/authentik/)
## What is authentik?

View File

@@ -18,10 +18,10 @@ Even if the issue is not a CVE, we still greatly appreciate your help in hardeni
(.x being the latest patch release for each version)
| Version | Supported |
| --------- | --------- |
| 2025.6.x | ✅ |
| 2025.8.x | ✅ |
| Version | Supported |
| ---------- | ---------- |
| 2025.8.x | ✅ |
| 2025.10.x | ✅ |
## Reporting a Vulnerability

View File

@@ -3,7 +3,7 @@
from functools import lru_cache
from os import environ
VERSION = "2025.10.0-rc1"
VERSION = "2025.12.0-rc1"
ENV_GIT_HASH_KEY = "GIT_BUILD_HASH"

View File

@@ -27,16 +27,16 @@ except OSError:
ipc_key = None
def validate_auth(header: bytes) -> str | None:
def validate_auth(header: bytes, format="bearer") -> str | None:
"""Validate that the header is in a correct format,
returns type and credentials"""
auth_credentials = header.decode().strip()
if auth_credentials == "" or " " not in auth_credentials:
return None
auth_type, _, auth_credentials = auth_credentials.partition(" ")
if auth_type.lower() != "bearer":
if not compare_digest(auth_type.lower(), format):
LOGGER.debug("Unsupported authentication type, denying", type=auth_type.lower())
raise AuthenticationFailed("Unsupported authentication type")
return None
if auth_credentials == "": # nosec # noqa
raise AuthenticationFailed("Malformed header")
return auth_credentials

View File

@@ -24,8 +24,7 @@ class TestAPIAuth(TestCase):
def test_invalid_type(self):
"""Test invalid type"""
with self.assertRaises(AuthenticationFailed):
bearer_auth(b"foo bar")
self.assertIsNone(bearer_auth(b"foo bar"))
def test_invalid_empty(self):
"""Test invalid type"""
@@ -34,9 +33,8 @@ class TestAPIAuth(TestCase):
def test_invalid_no_token(self):
"""Test invalid with no token"""
with self.assertRaises(AuthenticationFailed):
auth = b64encode(b":abc").decode()
self.assertIsNone(bearer_auth(f"Basic :{auth}".encode()))
auth = b64encode(b":abc").decode()
self.assertIsNone(bearer_auth(f"Basic :{auth}".encode()))
def test_bearer_valid(self):
"""Test valid token"""

View File

@@ -5,6 +5,7 @@ from pathlib import Path
from django.conf import settings
from django.db import models
from django.dispatch import Signal
from django.http import HttpRequest
from drf_spectacular.utils import extend_schema
from rest_framework.fields import (
BooleanField,
@@ -63,7 +64,8 @@ class ConfigView(APIView):
permission_classes = [AllowAny]
def get_capabilities(self) -> list[Capabilities]:
@staticmethod
def get_capabilities(request: HttpRequest) -> list[Capabilities]:
"""Get all capabilities this server instance supports"""
caps = []
deb_test = settings.DEBUG or settings.TEST
@@ -76,18 +78,19 @@ class ConfigView(APIView):
for processor in get_context_processors():
if cap := processor.capability():
caps.append(cap)
if self.request.tenant.impersonation:
if request.tenant.impersonation:
caps.append(Capabilities.CAN_IMPERSONATE)
if settings.DEBUG: # pragma: no cover
caps.append(Capabilities.CAN_DEBUG)
if "authentik.enterprise" in settings.INSTALLED_APPS:
caps.append(Capabilities.IS_ENTERPRISE)
for _, result in capabilities.send(sender=self):
for _, result in capabilities.send(sender=ConfigView):
if result:
caps.append(result)
return caps
def get_config(self) -> ConfigSerializer:
@staticmethod
def get_config(request: HttpRequest) -> ConfigSerializer:
"""Get Config"""
return ConfigSerializer(
{
@@ -98,7 +101,7 @@ class ConfigView(APIView):
"send_pii": CONFIG.get("error_reporting.send_pii"),
"traces_sample_rate": float(CONFIG.get("error_reporting.sample_rate", 0.4)),
},
"capabilities": self.get_capabilities(),
"capabilities": ConfigView.get_capabilities(request),
"cache_timeout": CONFIG.get_int("cache.timeout"),
"cache_timeout_flows": CONFIG.get_int("cache.timeout_flows"),
"cache_timeout_policies": CONFIG.get_int("cache.timeout_policies"),
@@ -108,4 +111,4 @@ class ConfigView(APIView):
@extend_schema(responses={200: ConfigSerializer(many=False)})
def get(self, request: Request) -> Response:
"""Retrieve public configuration options"""
return Response(self.get_config().data)
return Response(ConfigView.get_config(request).data)

View File

@@ -0,0 +1,50 @@
from collections.abc import Callable
from functools import wraps
from typing import Literal
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.serializers import Serializer
from rest_framework.viewsets import ViewSet
def validate(serializer_type: type[Serializer], location: Literal["body", "query"] = "body"):
"""Validate incoming data with the specified serializer. Raw data can either be taken
from request body or query string, defaulting to body.
Validated data is added to the function this decorator is used on with a named parameter
based on the location of the data.
Example:
@validate(MySerializer)
@validate(MyQuerySerializer, location="query")
def my_action(self, request, *, body: MySerializer, query: MyQuerySerializer):
...
"""
def wrapper_outer(func: Callable):
@wraps(func)
def wrapper(self: ViewSet, request: Request, *args, **kwargs) -> Response:
data = {}
if location == "body":
data = request.data
elif location == "query":
data = request.query_params
else:
raise ValueError(f"Invalid data location '{location}'")
instance = serializer_type(
data=data,
context={
"request": request,
},
)
instance.is_valid(raise_exception=True)
kwargs[location] = instance
return func(self, request, *args, **kwargs)
return wrapper
return wrapper_outer

View File

@@ -118,7 +118,10 @@ class Command(BaseCommand):
model_instance: Model = model()
if not isinstance(model_instance, SerializerModel):
continue
serializer_class = model_instance.serializer
try:
serializer_class = model_instance.serializer
except NotImplementedError as exc:
raise NotImplementedError(model_instance) from exc
serializer = serializer_class(
context={
SERIALIZER_CONTEXT_BLUEPRINT: False,

View File

@@ -42,6 +42,15 @@ from authentik.core.models import (
User,
UserSourceConnection,
)
from authentik.endpoints.connectors.agent.models import (
AgentDeviceConnection,
AppleNonce,
DeviceAuthenticationToken,
)
from authentik.endpoints.connectors.agent.models import (
DeviceToken as EndpointDeviceToken,
)
from authentik.endpoints.models import Connector, Device, DeviceConnection, DeviceFactSnapshot
from authentik.enterprise.license import LicenseKey
from authentik.enterprise.models import LicenseUsage
from authentik.enterprise.providers.google_workspace.models import (
@@ -112,6 +121,7 @@ def excluded_models() -> list[type[Model]]:
OutpostServiceConnection,
Policy,
PolicyBindingModel,
Connector,
# Classes that have other dependencies
Session,
AuthenticatedSession,
@@ -139,6 +149,13 @@ def excluded_models() -> list[type[Model]]:
MicrosoftEntraProviderGroup,
EndpointDevice,
EndpointDeviceConnection,
EndpointDeviceToken,
Device,
DeviceConnection,
DeviceAuthenticationToken,
AppleNonce,
AgentDeviceConnection,
DeviceFactSnapshot,
DeviceToken,
StreamEvent,
UserConsent,
@@ -313,6 +330,7 @@ class Importer:
serializer_kwargs = {}
model_instance = existing_models.first()
override_serializer_instance = False
if (
not isinstance(model(), BaseMetaModel)
and model_instance
@@ -341,11 +359,7 @@ class Importer:
model=model,
**cleanse_dict(updated_identifiers),
)
model_instance = model()
# pk needs to be set on the model instance otherwise a new one will be generated
if "pk" in updated_identifiers:
model_instance.pk = updated_identifiers["pk"]
serializer_kwargs["instance"] = model_instance
override_serializer_instance = True
try:
full_data = self.__update_pks_for_attrs(entry.get_attrs(self._import))
except ValueError as exc:
@@ -368,6 +382,12 @@ class Importer:
entry=entry,
serializer=serializer,
) from exc
if override_serializer_instance:
model_instance = model()
# pk needs to be set on the model instance otherwise a new one will be generated
if "pk" in updated_identifiers:
model_instance.pk = updated_identifiers["pk"]
serializer.instance = model_instance
return serializer
def _apply_permissions(self, instance: Model, entry: BlueprintEntry):
@@ -446,7 +466,7 @@ class Importer:
self._apply_permissions(instance, entry)
elif state == BlueprintEntryDesiredState.ABSENT:
instance: Model | None = serializer.instance
if instance.pk:
if instance and instance.pk:
instance.delete()
self.logger.debug("Deleted model", mode=instance)
continue

View File

@@ -1,8 +1,11 @@
"""Test brands"""
from json import loads
from django.urls import reverse
from rest_framework.test import APITestCase
from authentik.blueprints.tests import apply_blueprint
from authentik.brands.api import Themes
from authentik.brands.models import Brand
from authentik.core.models import Application
@@ -23,6 +26,7 @@ class TestBrands(APITestCase):
_flag = flag()
if _flag.visibility == "public":
self.default_flags[_flag.key] = _flag.get()
Brand.objects.all().delete()
def test_current_brand(self):
"""Test Current brand API"""
@@ -44,7 +48,6 @@ class TestBrands(APITestCase):
def test_brand_subdomain(self):
"""Test Current brand API"""
Brand.objects.all().delete()
Brand.objects.create(domain="bar.baz", branding_title="custom")
self.assertJSONEqual(
self.client.get(
@@ -65,7 +68,6 @@ class TestBrands(APITestCase):
def test_fallback(self):
"""Test fallback brand"""
Brand.objects.all().delete()
self.assertJSONEqual(
self.client.get(reverse("authentik_api:brand-current")).content.decode(),
{
@@ -81,6 +83,109 @@ class TestBrands(APITestCase):
},
)
@apply_blueprint("default/default-brand.yaml")
def test_blueprint(self):
"""Test Current brand API"""
response = loads(self.client.get(reverse("authentik_api:brand-current")).content.decode())
response.pop("flow_authentication", None)
response.pop("flow_invalidation", None)
response.pop("flow_user_settings", None)
self.assertEqual(
response,
{
"branding_logo": "/static/dist/assets/icons/icon_left_brand.svg",
"branding_favicon": "/static/dist/assets/icons/icon.png",
"branding_title": "authentik",
"branding_custom_css": "",
"matched_domain": "authentik-default",
"ui_footer_links": [],
"ui_theme": Themes.AUTOMATIC,
"default_locale": "",
"flags": self.default_flags,
},
)
@apply_blueprint("default/default-brand.yaml")
def test_blueprint_with_other_brand(self):
"""Test Current brand API"""
Brand.objects.create(domain="bar.baz", branding_title="custom")
response = loads(self.client.get(reverse("authentik_api:brand-current")).content.decode())
response.pop("flow_authentication", None)
response.pop("flow_invalidation", None)
response.pop("flow_user_settings", None)
self.assertEqual(
response,
{
"branding_logo": "/static/dist/assets/icons/icon_left_brand.svg",
"branding_favicon": "/static/dist/assets/icons/icon.png",
"branding_title": "authentik",
"branding_custom_css": "",
"matched_domain": "authentik-default",
"ui_footer_links": [],
"ui_theme": Themes.AUTOMATIC,
"default_locale": "",
"flags": self.default_flags,
},
)
self.assertJSONEqual(
self.client.get(
reverse("authentik_api:brand-current"), HTTP_HOST="foo.bar.baz"
).content.decode(),
{
"branding_logo": "/static/dist/assets/icons/icon_left_brand.svg",
"branding_favicon": "/static/dist/assets/icons/icon.png",
"branding_title": "custom",
"branding_custom_css": "",
"matched_domain": "bar.baz",
"ui_footer_links": [],
"ui_theme": Themes.AUTOMATIC,
"default_locale": "",
"flags": self.default_flags,
},
)
def test_brand_subdomain_same_suffix(self):
"""Test Current brand API"""
Brand.objects.create(domain="bar.baz", branding_title="custom-weak")
Brand.objects.create(domain="foo.bar.baz", branding_title="custom-strong")
self.assertJSONEqual(
self.client.get(
reverse("authentik_api:brand-current"), HTTP_HOST="foo.bar.baz"
).content.decode(),
{
"branding_logo": "/static/dist/assets/icons/icon_left_brand.svg",
"branding_favicon": "/static/dist/assets/icons/icon.png",
"branding_title": "custom-strong",
"branding_custom_css": "",
"matched_domain": "foo.bar.baz",
"ui_footer_links": [],
"ui_theme": Themes.AUTOMATIC,
"default_locale": "",
"flags": self.default_flags,
},
)
def test_brand_subdomain_other_suffix(self):
"""Test Current brand API"""
Brand.objects.create(domain="bar.baz", branding_title="custom-weak")
Brand.objects.create(domain="foo.bar.baz", branding_title="custom-strong")
self.assertJSONEqual(
self.client.get(
reverse("authentik_api:brand-current"), HTTP_HOST="other.bar.baz"
).content.decode(),
{
"branding_logo": "/static/dist/assets/icons/icon_left_brand.svg",
"branding_favicon": "/static/dist/assets/icons/icon.png",
"branding_title": "custom-weak",
"branding_custom_css": "",
"matched_domain": "bar.baz",
"ui_footer_links": [],
"ui_theme": Themes.AUTOMATIC,
"default_locale": "",
"flags": self.default_flags,
},
)
def test_create_default_multiple(self):
"""Test attempted creation of multiple default brands"""
Brand.objects.create(

View File

@@ -2,8 +2,8 @@
from typing import Any
from django.db.models import F, Q
from django.db.models import Value as V
from django.db.models import Case, F, IntegerField, Q, Value, When
from django.db.models.functions import Length
from django.http.request import HttpRequest
from django.utils.html import _json_script_escapes
from django.utils.safestring import mark_safe
@@ -19,15 +19,36 @@ DEFAULT_BRAND = Brand(domain="fallback")
def get_brand_for_request(request: HttpRequest) -> Brand:
"""Get brand object for current request"""
db_brands = (
Brand.objects.annotate(host_domain=V(request.get_host()))
.filter(Q(host_domain__iendswith=F("domain")) | _q_default)
.order_by("default")
brand = (
Brand.objects.annotate(
host_domain=Value(request.get_host()),
domain_length=Length("domain"),
match_priority=Case(
When(
condition=Q(host_domain__iendswith=F("domain")),
then=F("domain_length"),
),
default=Value(-1),
output_field=IntegerField(),
),
is_default_fallback=Case(
When(
condition=Q(default=True),
then=Value(0),
),
default=Value(-2),
output_field=IntegerField(),
),
)
.filter(Q(match_priority__gt=-1) | Q(default=True))
.order_by("-match_priority", "-is_default_fallback")
.first()
)
brands = list(db_brands.all())
if len(brands) < 1:
if brand is None:
return DEFAULT_BRAND
return brands[0]
return brand
def context_processor(request: HttpRequest) -> dict[str, Any]:

View File

@@ -13,6 +13,7 @@ from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.viewsets import ViewSet
from authentik.api.validation import validate
from authentik.core.api.users import ParamUserSerializer
from authentik.core.api.utils import MetaNameSerializer
from authentik.enterprise.stages.authenticator_endpoint_gdtc.models import EndpointDevice
@@ -85,8 +86,7 @@ class AdminDeviceViewSet(ViewSet):
parameters=[ParamUserSerializer],
responses={200: DeviceSerializer(many=True)},
)
def list(self, request: Request) -> Response:
@validate(ParamUserSerializer, "query")
def list(self, request: Request, query: ParamUserSerializer) -> Response:
"""Get all devices for current user"""
args = ParamUserSerializer(data=request.query_params)
args.is_valid(raise_exception=True)
return Response(DeviceSerializer(self.get_devices(**args.validated_data), many=True).data)
return Response(DeviceSerializer(self.get_devices(**query.validated_data), many=True).data)

View File

@@ -14,6 +14,7 @@ from drf_spectacular.utils import (
extend_schema_field,
)
from guardian.shortcuts import get_objects_for_user
from rest_framework.authentication import SessionAuthentication
from rest_framework.decorators import action
from rest_framework.fields import CharField, IntegerField, SerializerMethodField
from rest_framework.request import Request
@@ -22,9 +23,12 @@ from rest_framework.serializers import ListSerializer, ValidationError
from rest_framework.validators import UniqueValidator
from rest_framework.viewsets import ModelViewSet
from authentik.api.authentication import TokenAuthentication
from authentik.api.validation import validate
from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.utils import JSONDictField, ModelSerializer, PassiveSerializer
from authentik.core.models import Group, User
from authentik.endpoints.connectors.agent.auth import AgentAuth
from authentik.rbac.api.roles import RoleSerializer
from authentik.rbac.decorators import permission_required
@@ -227,6 +231,11 @@ class GroupViewSet(UsedByMixin, ModelViewSet):
search_fields = ["name", "is_superuser"]
filterset_class = GroupFilter
ordering = ["name"]
authentication_classes = [
TokenAuthentication,
SessionAuthentication,
AgentAuth,
]
def get_ql_fields(self):
from djangoql.schema import BoolField, StrField
@@ -289,13 +298,14 @@ class GroupViewSet(UsedByMixin, ModelViewSet):
filter_backends=[],
permission_classes=[],
)
def add_user(self, request: Request, pk: str) -> Response:
@validate(UserAccountSerializer)
def add_user(self, request: Request, body: UserAccountSerializer, pk: str) -> Response:
"""Add user to group"""
group: Group = self.get_object()
user: User = (
get_objects_for_user(request.user, "authentik_core.view_user")
.filter(
pk=request.data.get("pk"),
pk=body.validated_data.get("pk"),
)
.first()
)
@@ -319,13 +329,14 @@ class GroupViewSet(UsedByMixin, ModelViewSet):
filter_backends=[],
permission_classes=[],
)
def remove_user(self, request: Request, pk: str) -> Response:
@validate(UserAccountSerializer)
def remove_user(self, request: Request, body: UserAccountSerializer, pk: str) -> Response:
"""Remove user from group"""
group: Group = self.get_object()
user: User = (
get_objects_for_user(request.user, "authentik_core.view_user")
.filter(
pk=request.data.get("pk"),
pk=body.validated_data.get("pk"),
)
.first()
)

View File

@@ -21,6 +21,7 @@ from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet
from authentik.api.validation import validate
from authentik.blueprints.api import ManagedSerializer
from authentik.core.api.object_types import TypesMixin
from authentik.core.api.used_by import UsedByMixin
@@ -128,23 +129,20 @@ class PropertyMappingViewSet(
],
)
@action(detail=True, pagination_class=None, filter_backends=[], methods=["POST"])
def test(self, request: Request, pk: str) -> Response:
@validate(PropertyMappingTestSerializer)
def test(self, request: Request, pk: str, body: PropertyMappingTestSerializer) -> Response:
"""Test Property Mapping"""
_mapping: PropertyMapping = self.get_object()
# Use `get_subclass` to get correct class and correct `.evaluate` implementation
mapping: PropertyMapping = PropertyMapping.objects.get_subclass(pk=_mapping.pk)
# FIXME: when we separate policy mappings between ones for sources
# and ones for providers, we need to make the user field optional for the source mapping
test_params = self.PropertyMappingTestSerializer(data=request.data)
if not test_params.is_valid():
return Response(test_params.errors, status=400)
format_result = str(request.GET.get("format_result", "false")).lower() == "true"
context: dict = test_params.validated_data.get("context", {})
context: dict = body.validated_data.get("context", {})
context.setdefault("user", None)
if user := test_params.validated_data.get("user"):
if user := body.validated_data.get("user"):
# User permission check, only allow mapping testing for users that are readable
users = get_objects_for_user(request.user, "authentik_core.view_user").filter(
pk=user.pk
@@ -152,7 +150,7 @@ class PropertyMappingViewSet(
if not users.exists():
raise PermissionDenied()
context["user"] = user
if group := test_params.validated_data.get("group"):
if group := body.validated_data.get("group"):
# Group permission check, only allow mapping testing for groups that are readable
groups = get_objects_for_user(request.user, "authentik_core.view_group").filter(
pk=group.pk

View File

@@ -56,6 +56,7 @@ class SourceSerializer(ModelSerializer, MetaNameSerializer):
"name",
"slug",
"enabled",
"promoted",
"authentication_flow",
"enrollment_flow",
"user_property_mappings",

View File

@@ -3,7 +3,7 @@
from typing import Any
from django.utils.timezone import now
from drf_spectacular.utils import OpenApiResponse, extend_schema, inline_serializer
from drf_spectacular.utils import OpenApiResponse, extend_schema
from guardian.shortcuts import assign_perm, get_anonymous_user
from rest_framework.decorators import action
from rest_framework.exceptions import ValidationError
@@ -12,6 +12,7 @@ from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet
from authentik.api.validation import validate
from authentik.blueprints.api import ManagedSerializer
from authentik.blueprints.v1.importer import SERIALIZER_CONTEXT_BLUEPRINT
from authentik.core.api.used_by import UsedByMixin
@@ -107,6 +108,12 @@ class TokenSerializer(ManagedSerializer, ModelSerializer):
}
class TokenSetKeySerializer(PassiveSerializer):
"""Set token's key"""
key = CharField()
class TokenViewSerializer(PassiveSerializer):
"""Show token's current key"""
@@ -170,12 +177,7 @@ class TokenViewSet(UsedByMixin, ModelViewSet):
@permission_required("authentik_core.set_token_key")
@extend_schema(
request=inline_serializer(
"TokenSetKey",
{
"key": CharField(),
},
),
request=TokenSetKeySerializer(),
responses={
204: OpenApiResponse(description="Successfully changed key"),
400: OpenApiResponse(description="Missing key"),
@@ -183,11 +185,12 @@ class TokenViewSet(UsedByMixin, ModelViewSet):
},
)
@action(detail=True, pagination_class=None, filter_backends=[], methods=["POST"])
def set_key(self, request: Request, identifier: str) -> Response:
@validate(TokenSetKeySerializer)
def set_key(self, request: Request, identifier: str, body: TokenSetKeySerializer) -> Response:
"""Set token key. Action is logged as event. `authentik_core.set_token_key` permission
is required."""
token: Token = self.get_object()
key = request.data.get("key")
key = body.validated_data.get("key")
if not key:
return Response(status=400)
token.key = key

View File

@@ -12,6 +12,7 @@ from rest_framework.response import Response
from rest_framework.views import APIView
from yaml import ScalarNode
from authentik.api.validation import validate
from authentik.blueprints.v1.common import (
Blueprint,
BlueprintEntry,
@@ -160,11 +161,10 @@ class TransactionalApplicationView(APIView):
200: TransactionApplicationResponseSerializer(),
},
)
def put(self, request: Request) -> Response:
@validate(TransactionApplicationSerializer)
def put(self, request: Request, body: TransactionApplicationSerializer) -> Response:
"""Convert data into a blueprint, validate it and apply it"""
data = TransactionApplicationSerializer(data=request.data)
data.is_valid(raise_exception=True)
blueprint: Blueprint = data.validated_data
blueprint: Blueprint = body.validated_data
for entry in blueprint.entries:
full_model = entry.get_model(blueprint)
app, __, model = full_model.partition(".")

View File

@@ -31,6 +31,7 @@ from drf_spectacular.utils import (
inline_serializer,
)
from guardian.shortcuts import get_objects_for_user
from rest_framework.authentication import SessionAuthentication
from rest_framework.decorators import action
from rest_framework.exceptions import ValidationError
from rest_framework.fields import (
@@ -52,6 +53,8 @@ from rest_framework.validators import UniqueValidator
from rest_framework.viewsets import ModelViewSet
from structlog.stdlib import get_logger
from authentik.api.authentication import TokenAuthentication
from authentik.api.validation import validate
from authentik.blueprints.v1.importer import SERIALIZER_CONTEXT_BLUEPRINT
from authentik.brands.models import Brand
from authentik.core.api.used_by import UsedByMixin
@@ -75,6 +78,7 @@ from authentik.core.models import (
User,
UserTypes,
)
from authentik.endpoints.connectors.agent.auth import AgentAuth
from authentik.events.models import Event, EventAction
from authentik.flows.exceptions import FlowNonApplicableException
from authentik.flows.models import FlowToken
@@ -432,6 +436,11 @@ class UserViewSet(UsedByMixin, ModelViewSet):
serializer_class = UserSerializer
filterset_class = UsersFilter
search_fields = ["email", "name", "uuid", "username"]
authentication_classes = [
TokenAuthentication,
SessionAuthentication,
AgentAuth,
]
def get_ql_fields(self):
from djangoql.schema import BoolField, StrField
@@ -529,14 +538,13 @@ class UserViewSet(UsedByMixin, ModelViewSet):
pagination_class=None,
filter_backends=[],
)
def service_account(self, request: Request) -> Response:
@validate(UserServiceAccountSerializer)
def service_account(self, request: Request, body: UserServiceAccountSerializer) -> Response:
"""Create a new user account that is marked as a service account"""
data = UserServiceAccountSerializer(data=request.data)
data.is_valid(raise_exception=True)
expires = data.validated_data.get("expires", now() + timedelta(days=360))
expires = body.validated_data.get("expires", now() + timedelta(days=360))
username = data.validated_data["name"]
expiring = data.validated_data["expiring"]
username = body.validated_data["name"]
expiring = body.validated_data["expiring"]
with atomic():
try:
user: User = User.objects.create(
@@ -554,7 +562,7 @@ class UserViewSet(UsedByMixin, ModelViewSet):
"user_uid": user.uid,
"user_pk": user.pk,
}
if data.validated_data["create_group"] and self.request.user.has_perm(
if body.validated_data["create_group"] and self.request.user.has_perm(
"authentik_core.add_group"
):
group = Group.objects.create(name=username)
@@ -625,13 +633,12 @@ class UserViewSet(UsedByMixin, ModelViewSet):
},
)
@action(detail=True, methods=["POST"], permission_classes=[])
def set_password(self, request: Request, pk: int) -> Response:
@validate(UserPasswordSetSerializer)
def set_password(self, request: Request, pk: int, body: UserPasswordSetSerializer) -> Response:
"""Set password for user"""
data = UserPasswordSetSerializer(data=request.data)
data.is_valid(raise_exception=True)
user: User = self.get_object()
try:
user.set_password(data.validated_data["password"], request=request)
user.set_password(body.validated_data["password"], request=request)
user.save()
except (ValidationError, IntegrityError) as exc:
LOGGER.debug("Failed to set password", exc=exc)

View File

@@ -0,0 +1,21 @@
# Generated by Django 5.2.8 on 2025-11-23 14:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("authentik_core", "0051_group_authentik_c_is_supe_1e5a97_idx"),
]
operations = [
migrations.AddField(
model_name="source",
name="promoted",
field=models.BooleanField(
default=False,
help_text="When enabled, this source will be displayed as a prominent button on the login page, instead of a small icon.",
),
),
]

View File

@@ -0,0 +1,45 @@
# Generated by Django 5.2.8 on 2025-11-25 16:36
import django.core.validators
import re
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("authentik_core", "0052_source_promoted"),
]
operations = [
migrations.AlterField(
model_name="application",
name="slug",
field=models.TextField(
help_text="Internal application name, used in URLs.",
unique=True,
validators=[
django.core.validators.RegexValidator(
re.compile("^[-a-zA-Z0-9_]+\\Z"),
"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.",
"invalid",
)
],
),
),
migrations.AlterField(
model_name="source",
name="slug",
field=models.TextField(
help_text="Internal source name, used in URLs.",
unique=True,
validators=[
django.core.validators.RegexValidator(
re.compile("^[-a-zA-Z0-9_]+\\Z"),
"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.",
"invalid",
)
],
),
),
]

View File

@@ -11,11 +11,12 @@ from django.contrib.auth.hashers import check_password
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import UserManager as DjangoUserManager
from django.contrib.sessions.base_session import AbstractBaseSession
from django.core.validators import validate_slug
from django.db import models
from django.db.models import Q, QuerySet, options
from django.db.models.constants import LOOKUP_SEP
from django.http import HttpRequest
from django.utils.functional import SimpleLazyObject, cached_property
from django.utils.functional import cached_property
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
from django_cte import CTE, with_cte
@@ -44,18 +45,19 @@ from authentik.tenants.models import DEFAULT_TOKEN_DURATION, DEFAULT_TOKEN_LENGT
from authentik.tenants.utils import get_current_tenant, get_unique_identifier
LOGGER = get_logger()
USER_ATTRIBUTE_DEBUG = "goauthentik.io/user/debug"
USER_ATTRIBUTE_GENERATED = "goauthentik.io/user/generated"
USER_ATTRIBUTE_EXPIRES = "goauthentik.io/user/expires"
USER_ATTRIBUTE_DELETE_ON_LOGOUT = "goauthentik.io/user/delete-on-logout"
USER_ATTRIBUTE_SOURCES = "goauthentik.io/user/sources"
USER_ATTRIBUTE_TOKEN_EXPIRING = "goauthentik.io/user/token-expires" # nosec
USER_ATTRIBUTE_TOKEN_MAXIMUM_LIFETIME = "goauthentik.io/user/token-maximum-lifetime" # nosec
USER_ATTRIBUTE_CHANGE_USERNAME = "goauthentik.io/user/can-change-username"
USER_ATTRIBUTE_CHANGE_NAME = "goauthentik.io/user/can-change-name"
USER_ATTRIBUTE_CHANGE_EMAIL = "goauthentik.io/user/can-change-email"
USER_PATH_SYSTEM_PREFIX = "goauthentik.io"
USER_PATH_SERVICE_ACCOUNT = USER_PATH_SYSTEM_PREFIX + "/service-accounts"
_USER_ATTR_PREFIX = f"{USER_PATH_SYSTEM_PREFIX}/user"
USER_ATTRIBUTE_DEBUG = f"{_USER_ATTR_PREFIX}/debug"
USER_ATTRIBUTE_GENERATED = f"{_USER_ATTR_PREFIX}/generated"
USER_ATTRIBUTE_EXPIRES = f"{_USER_ATTR_PREFIX}/expires"
USER_ATTRIBUTE_DELETE_ON_LOGOUT = f"{_USER_ATTR_PREFIX}/delete-on-logout"
USER_ATTRIBUTE_SOURCES = f"{_USER_ATTR_PREFIX}/sources"
USER_ATTRIBUTE_TOKEN_EXPIRING = f"{_USER_ATTR_PREFIX}/token-expires" # nosec
USER_ATTRIBUTE_TOKEN_MAXIMUM_LIFETIME = f"{_USER_ATTR_PREFIX}/token-maximum-lifetime" # nosec
USER_ATTRIBUTE_CHANGE_USERNAME = f"{_USER_ATTR_PREFIX}/can-change-username"
USER_ATTRIBUTE_CHANGE_NAME = f"{_USER_ATTR_PREFIX}/can-change-name"
USER_ATTRIBUTE_CHANGE_EMAIL = f"{_USER_ATTR_PREFIX}/can-change-email"
USER_PATH_SERVICE_ACCOUNT = f"{USER_PATH_SYSTEM_PREFIX}/service-accounts"
options.DEFAULT_NAMES = options.DEFAULT_NAMES + (
# used_by API that allows models to specify if they shadow an object
@@ -533,7 +535,11 @@ class Application(SerializerModel, PolicyBindingModel):
add custom fields and other properties"""
name = models.TextField(help_text=_("Application's display Name."))
slug = models.SlugField(help_text=_("Internal application name, used in URLs."), unique=True)
slug = models.TextField(
validators=[validate_slug],
help_text=_("Internal application name, used in URLs."),
unique=True,
)
group = models.TextField(blank=True, default="")
provider = models.OneToOneField(
@@ -585,18 +591,16 @@ class Application(SerializerModel, PolicyBindingModel):
def get_launch_url(self, user: Optional["User"] = None) -> str | None:
"""Get launch URL if set, otherwise attempt to get launch URL based on provider."""
from authentik.core.api.users import UserSerializer
url = None
if self.meta_launch_url:
url = self.meta_launch_url
elif provider := self.get_provider():
url = provider.launch_url
if user and url:
if isinstance(user, SimpleLazyObject):
user._setup()
user = user._wrapped
try:
return url % user.__dict__
return url % UserSerializer(instance=user).data
except Exception as exc: # noqa
LOGGER.warning("Failed to format launch url", exc=exc)
return url
@@ -721,11 +725,22 @@ class Source(ManagedModel, SerializerModel, PolicyBindingModel):
MANAGED_INBUILT = "goauthentik.io/sources/inbuilt"
name = models.TextField(help_text=_("Source's display Name."))
slug = models.SlugField(help_text=_("Internal source name, used in URLs."), unique=True)
slug = models.TextField(
validators=[validate_slug],
help_text=_("Internal source name, used in URLs."),
unique=True,
)
user_path_template = models.TextField(default="goauthentik.io/sources/%(slug)s")
enabled = models.BooleanField(default=True)
promoted = models.BooleanField(
default=False,
help_text=_(
"When enabled, this source will be displayed as a prominent button on the "
"login page, instead of a small icon."
),
)
user_property_mappings = models.ManyToManyField(
"PropertyMapping", default=None, blank=True, related_name="source_userpropertymappings_set"
)
@@ -930,7 +945,7 @@ class ExpiringModel(models.Model):
return self.delete(*args, **kwargs)
@classmethod
def filter_not_expired(cls, **kwargs) -> QuerySet["Token"]:
def filter_not_expired(cls, **kwargs) -> QuerySet["Self"]:
"""Filer for tokens which are not expired yet or are not expiring,
and match filters in `kwargs`"""
for obj in cls.objects.filter(**kwargs).filter(Q(expires__lt=now(), expiring=True)):

View File

@@ -1,11 +1,13 @@
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
<script>
<script data-id="authentik-config">
"use strict";
window.authentik = {
locale: "{{ LANGUAGE_CODE }}",
config: JSON.parse('{{ config_json|escapejs }}'),
brand: JSON.parse('{{ brand_json|escapejs }}'),
config: JSON.parse('{{ config_json|escapejs }}' || "{}"),
brand: JSON.parse('{{ brand_json|escapejs }}' || "{}"),
versionFamily: "{{ version_family }}",
versionSubdomain: "{{ version_subdomain }}",
build: "{{ build }}",

View File

@@ -0,0 +1,13 @@
{% load i18n %}
<div class="ak-c-placeholder" id="ak-placeholder" slot="placeholder">
<span
class="pf-c-spinner"
role="progressbar"
aria-valuetext="Loading..."
>
<span class="pf-c-spinner__clipper"></span>
<span class="pf-c-spinner__lead-ball"></span>
<span class="pf-c-spinner__tail-ball"></span>
</span>
</div>

View File

@@ -1,10 +1,14 @@
{% load static %}
{% load i18n %}
{% load authentik_core %}
{% get_current_language as LANGUAGE_CODE %}
<!DOCTYPE html>
<html>
<html
lang="{{ LANGUAGE_CODE }}"
data-theme="{% if ui_theme == "dark" %}dark{% else %}light{% endif %}"
data-theme-choice="{% if ui_theme == "dark" %}dark{% elif ui_theme == "light" %}light{% else %}auto{% endif %}"
>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
@@ -13,16 +17,14 @@
<title>{% block title %}{% trans title|default:brand.branding_title %}{% endblock %}</title>
<link rel="icon" href="{{ brand.branding_favicon_url }}">
<link rel="shortcut icon" href="{{ brand.branding_favicon_url }}">
{% block head_before %}
{% endblock %}
{% include "base/theme.html" %}
<link rel="stylesheet" type="text/css" href="{% static 'dist/authentik.css' %}">
<style>{{ brand_css }}</style>
<style data-id="brand-css">{{ brand_css }}</style>
<script src="{% versioned_script 'dist/poly-%v.js' %}" type="module"></script>
<script src="{% versioned_script 'dist/standalone/loading/index-%v.js' %}" type="module"></script>
{% block head %}
{% endblock %}
{% for key, value in html_meta.items %}

View File

@@ -1,10 +1,45 @@
{% load static %}
{% load authentik_core %}
<link rel="stylesheet" type="text/css" href="{% versioned_script 'dist/styles/interface-%v.css' %}" />
{% if ui_theme == "dark" %}
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="#18191a">
{% elif ui_theme == "light" %}
{% elif ui_theme == "light" %}
<meta name="color-scheme" content="light" />
<meta name="theme-color" content="#ffffff">
{% else %}
<script data-id="theme-script">
"use strict";
(function () {
try {
const initialThemeChoice =
new URLSearchParams(window.location.search).get("theme") ||
window.localStorage?.getItem("theme");
const themeChoice =
initialThemeChoice || document.documentElement.dataset.themeChoice || "auto";
document.documentElement.dataset.themeChoice = themeChoice;
if (themeChoice === "auto") {
document.documentElement.dataset.theme = window.matchMedia(
"(prefers-color-scheme: dark)",
).matches
? "dark"
: "light";
} else {
document.documentElement.dataset.theme = themeChoice;
}
} catch (e) {
console.error("Failed to apply theme", e);
}
})();
</script>
<meta name="color-scheme" content="light dark" />
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#18191a" media="(prefers-color-scheme: dark)">

View File

@@ -11,6 +11,6 @@
<ak-skip-to-content></ak-skip-to-content>
<ak-message-container alignment="bottom"></ak-message-container>
<ak-interface-admin>
<ak-loading></ak-loading>
{% include "base/placeholder.html" %}
</ak-interface-admin>
{% endblock %}

View File

@@ -12,10 +12,13 @@
{% endblock %}
{% block card %}
<form method="POST" class="pf-c-form">
<div class="pf-c-form">
<p>{% trans message %}</p>
<a id="ak-back-home" href="{% url 'authentik_core:root-redirect' %}" class="pf-c-button pf-m-primary">
{% trans 'Go home' %}
</a>
</form>
<div class="pf-c-form__group">
<a id="ak-back-home" href="{% url 'authentik_core:root-redirect' %}" class="pf-c-button pf-m-primary pf-m-block">
{% trans 'Go home' %}
</a>
</div>
</div>
{% endblock %}

View File

@@ -11,6 +11,6 @@
<ak-skip-to-content></ak-skip-to-content>
<ak-message-container></ak-message-container>
<ak-interface-user>
<ak-loading></ak-loading>
{% include "base/placeholder.html" %}
</ak-interface-user>
{% endblock %}

View File

@@ -2,82 +2,66 @@
{% load static %}
{% load i18n %}
{% load authentik_core %}
{% block head_before %}
<link rel="prefetch" href="{{ request.brand.branding_default_flow_background_url }}" />
<link rel="stylesheet" type="text/css" href="{% static 'dist/patternfly.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'dist/theme-dark.css' %}" media="(prefers-color-scheme: dark)">
{% include "base/header_js.html" %}
{% endblock %}
{% block head %}
<style>
:root {
--ak-flow-background: url("{{ request.brand.branding_default_flow_background_url }}");
--pf-c-background-image--BackgroundImage: var(--ak-flow-background);
--pf-c-background-image--BackgroundImage-2x: var(--ak-flow-background);
--pf-c-background-image--BackgroundImage--sm: var(--ak-flow-background);
--pf-c-background-image--BackgroundImage--sm-2x: var(--ak-flow-background);
--pf-c-background-image--BackgroundImage--lg: var(--ak-flow-background);
}
/* Form with user */
.form-control-static {
margin-top: var(--pf-global--spacer--sm);
display: flex;
align-items: center;
justify-content: space-between;
}
.form-control-static .avatar {
display: flex;
align-items: center;
}
.form-control-static img {
margin-right: var(--pf-global--spacer--xs);
}
.form-control-static a {
padding-top: var(--pf-global--spacer--xs);
padding-bottom: var(--pf-global--spacer--xs);
line-height: var(--pf-global--spacer--xl);
}
<style data-id="static-styles">
:root {
--ak-global--background-image: url("{{ request.brand.branding_default_flow_background_url }}");
}
</style>
<link rel="stylesheet" type="text/css" href="{% versioned_script 'dist/styles/static-%v.css' %}" />
{% endblock %}
{% block body %}
<div class="pf-c-background-image">
</div>
<ak-skip-to-content></ak-skip-to-content>
<ak-message-container></ak-message-container>
<div class="pf-c-login stacked">
<div class="ak-login-container">
<main class="pf-c-login__main">
<div class="pf-c-login__main-header pf-c-brand ak-brand">
<img src="{{ brand.branding_logo_url }}" alt="authentik Logo" />
<div class="pf-c-page__drawer">
<div class="pf-c-drawer pf-m-collapsed">
<div class="pf-c-drawer__main">
<div class="pf-c-drawer__content">
<div class="pf-c-drawer__body">
<div class="pf-c-login" data-layout="stacked">
<main class="pf-c-login__main" aria-label="Authentication form">
<div class="pf-c-login__main-header pf-c-brand">
<img class="branding-logo" src="{{ brand.branding_logo_url }}" alt="authentik Logo" />
</div>
<div class="pf-c-login__main-header">
<h1 class="pf-c-title pf-m-3xl" data-test-id="card-title">
{% block card_title %}
{% endblock %}
</h1>
</div>
<div class="pf-c-login__main-body">
{% block card %}
{% endblock %}
</div>
</main>
<footer aria-label="Site footer" class="pf-c-login__footer pf-m-dark">
<ul class="pf-c-list pf-m-inline">
{% for link in footer_links %}
<li>
<a href="{{ link.href }}">{{ link.name }}</a>
</li>
{% endfor %}
<li>
<span>
{% trans 'Powered by authentik' %}
</span>
</li>
</ul>
</footer>
</div>
</div>
</div>
<header class="pf-c-login__main-header">
<h1 class="pf-c-title pf-m-3xl">
{% block card_title %}
{% endblock %}
</h1>
</header>
<div class="pf-c-login__main-body">
{% block card %}
{% endblock %}
</div>
</main>
<footer class="pf-c-login__footer">
<ul class="pf-c-list pf-m-inline">
{% for link in footer_links %}
<li>
<a href="{{ link.href }}">{{ link.name }}</a>
</li>
{% endfor %}
<li>
<span>
{% trans 'Powered by authentik' %}
</span>
</li>
</ul>
</footer>
</div>
</div>
</div>
{% endblock %}

View File

@@ -8,6 +8,8 @@ from authentik.brands.models import Brand
from authentik.core.models import Application
from authentik.core.tests.utils import create_test_admin_user, create_test_brand, create_test_flow
from authentik.flows.tests import FlowTestCase
from authentik.lib.generators import generate_id
from authentik.providers.oauth2.models import OAuth2Provider
class TestApplicationsViews(FlowTestCase):
@@ -15,7 +17,7 @@ class TestApplicationsViews(FlowTestCase):
def setUp(self) -> None:
self.user = create_test_admin_user()
self.allowed = Application.objects.create(
self.app = Application.objects.create(
name="allowed", slug="allowed", meta_launch_url="https://goauthentik.io/%(username)s"
)
@@ -28,7 +30,7 @@ class TestApplicationsViews(FlowTestCase):
response = self.client.get(
reverse(
"authentik_core:application-launch",
kwargs={"application_slug": self.allowed.slug},
kwargs={"application_slug": self.app.slug},
),
follow=True,
)
@@ -52,8 +54,63 @@ class TestApplicationsViews(FlowTestCase):
response = self.client.get(
reverse(
"authentik_core:application-launch",
kwargs={"application_slug": self.allowed.slug},
kwargs={"application_slug": self.app.slug},
),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, f"https://goauthentik.io/{self.user.username}")
def test_redirect_application_auth_flow(self):
"""Test launching an application with a provider and an authentication flow set"""
self.client.logout()
auth_flow = create_test_flow()
prov = OAuth2Provider.objects.create(
name=generate_id(),
authentication_flow=auth_flow,
)
self.app.provider = prov
self.app.save()
with self.assertFlowFinishes() as plan:
response = self.client.get(
reverse(
"authentik_core:application-launch",
kwargs={"application_slug": self.app.slug},
),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(
response.url,
reverse("authentik_core:if-flow", kwargs={"flow_slug": auth_flow.slug}),
)
plan = plan()
self.assertEqual(len(plan.bindings), 1)
self.assertTrue(plan.bindings[0].stage.is_in_memory)
def test_redirect_application_no_auth(self):
"""Test launching an application with a provider and an authentication flow set"""
self.client.logout()
empty_flow = create_test_flow()
brand: Brand = create_test_brand()
brand.flow_authentication = empty_flow
brand.save()
prov = OAuth2Provider.objects.create(
name=generate_id(),
)
self.app.provider = prov
self.app.save()
with self.assertFlowFinishes() as plan:
response = self.client.get(
reverse(
"authentik_core:application-launch",
kwargs={"application_slug": self.app.slug},
),
)
self.assertEqual(response.status_code, 302)
self.assertEqual(
response.url,
reverse("authentik_core:if-flow", kwargs={"flow_slug": empty_flow.slug}),
)
plan = plan()
self.assertEqual(len(plan.bindings), 1)
self.assertTrue(plan.bindings[0].stage.is_in_memory)

View File

@@ -8,11 +8,10 @@ from guardian.utils import get_anonymous_user
from authentik.core.models import SourceUserMatchingModes, User
from authentik.core.sources.flow_manager import Action
from authentik.core.sources.stage import PostSourceStage
from authentik.core.tests.utils import create_test_flow
from authentik.core.tests.utils import RequestFactory, create_test_flow
from authentik.flows.planner import FlowPlan
from authentik.flows.views.executor import SESSION_KEY_PLAN
from authentik.lib.generators import generate_id
from authentik.lib.tests.utils import get_request
from authentik.policies.denied import AccessDeniedResponse
from authentik.policies.expression.models import ExpressionPolicy
from authentik.policies.models import PolicyBinding
@@ -34,10 +33,11 @@ class TestSourceFlowManager(TestCase):
enrollment_flow=self.enrollment_flow,
)
self.identifier = generate_id()
self.request_factory = RequestFactory()
def test_unauthenticated_enroll(self):
"""Test un-authenticated user enrolling"""
request = get_request("/", user=AnonymousUser())
request = self.request_factory.get("/", user=AnonymousUser())
flow_manager = OAuthSourceFlowManager(
self.source, request, self.identifier, {"info": {}}, {}
)
@@ -53,7 +53,7 @@ class TestSourceFlowManager(TestCase):
UserOAuthSourceConnection.objects.create(
user=get_anonymous_user(), source=self.source, identifier=self.identifier
)
request = get_request("/", user=AnonymousUser())
request = self.request_factory.get("/", user=AnonymousUser())
flow_manager = OAuthSourceFlowManager(
self.source, request, self.identifier, {"info": {}}, {}
)
@@ -67,7 +67,7 @@ class TestSourceFlowManager(TestCase):
def test_authenticated_link(self):
"""Test authenticated user linking"""
user = User.objects.create(username="foo", email="foo@bar.baz")
request = get_request("/", user=user)
request = self.request_factory.get("/", user=user)
flow_manager = OAuthSourceFlowManager(
self.source, request, self.identifier, {"info": {}}, {}
)
@@ -87,7 +87,7 @@ class TestSourceFlowManager(TestCase):
UserOAuthSourceConnection.objects.create(
user=user, source=self.source, identifier=self.identifier
)
request = get_request("/", user=user)
request = self.request_factory.get("/", user=user)
flow_manager = OAuthSourceFlowManager(
self.source, request, self.identifier, {"info": {}}, {}
)
@@ -100,7 +100,11 @@ class TestSourceFlowManager(TestCase):
def test_unauthenticated_link(self):
"""Test un-authenticated user linking"""
flow_manager = OAuthSourceFlowManager(
self.source, get_request("/"), self.identifier, {"info": {}}, {}
self.source,
self.request_factory.get("/", user=get_anonymous_user()),
self.identifier,
{"info": {}},
{},
)
action, connection = flow_manager.get_action()
self.assertEqual(action, Action.LINK)
@@ -114,7 +118,11 @@ class TestSourceFlowManager(TestCase):
# Without email, deny
flow_manager = OAuthSourceFlowManager(
self.source, get_request("/", user=AnonymousUser()), self.identifier, {"info": {}}, {}
self.source,
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{"info": {}},
{},
)
action, _ = flow_manager.get_action()
self.assertEqual(action, Action.DENY)
@@ -122,7 +130,7 @@ class TestSourceFlowManager(TestCase):
# With email
flow_manager = OAuthSourceFlowManager(
self.source,
get_request("/", user=AnonymousUser()),
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{
"info": {
@@ -142,7 +150,11 @@ class TestSourceFlowManager(TestCase):
# Without username, deny
flow_manager = OAuthSourceFlowManager(
self.source, get_request("/", user=AnonymousUser()), self.identifier, {"info": {}}, {}
self.source,
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{"info": {}},
{},
)
action, _ = flow_manager.get_action()
self.assertEqual(action, Action.DENY)
@@ -150,7 +162,7 @@ class TestSourceFlowManager(TestCase):
# With username
flow_manager = OAuthSourceFlowManager(
self.source,
get_request("/", user=AnonymousUser()),
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{
"info": {"username": "foo"},
@@ -169,7 +181,7 @@ class TestSourceFlowManager(TestCase):
# With non-existent username, enroll
flow_manager = OAuthSourceFlowManager(
self.source,
get_request("/", user=AnonymousUser()),
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{
"info": {
@@ -184,7 +196,7 @@ class TestSourceFlowManager(TestCase):
# With username
flow_manager = OAuthSourceFlowManager(
self.source,
get_request("/", user=AnonymousUser()),
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{
"info": {"username": "foo"},
@@ -201,7 +213,7 @@ class TestSourceFlowManager(TestCase):
flow_manager = OAuthSourceFlowManager(
self.source,
get_request("/", user=AnonymousUser()),
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{
"info": {"username": "foo"},
@@ -230,7 +242,7 @@ class TestSourceFlowManager(TestCase):
flow_manager = OAuthSourceFlowManager(
self.source,
get_request("/", user=AnonymousUser()),
self.request_factory.get("/", user=AnonymousUser()),
self.identifier,
{
"info": {"username": "foo"},

View File

@@ -4,9 +4,9 @@ from django.test import TestCase
from authentik.core.auth import TokenBackend
from authentik.core.models import Token, TokenIntents, User
from authentik.core.tests.utils import RequestFactory
from authentik.flows.planner import FlowPlan
from authentik.flows.views.executor import SESSION_KEY_PLAN
from authentik.lib.tests.utils import get_request
class TestTokenAuth(TestCase):
@@ -17,8 +17,9 @@ class TestTokenAuth(TestCase):
self.token = Token.objects.create(
expiring=False, user=self.user, intent=TokenIntents.INTENT_APP_PASSWORD
)
self.request_factory = RequestFactory()
# To test with session we need to create a request and pass it through all middlewares
self.request = get_request("/")
self.request = self.request_factory.get("/")
self.request.session[SESSION_KEY_PLAN] = FlowPlan("test")
def test_token_auth(self):

View File

@@ -1,5 +1,12 @@
"""Test Utils"""
from typing import Any
from django.contrib.auth.models import AnonymousUser
from django.contrib.messages.middleware import MessageMiddleware
from django.contrib.sessions.middleware import SessionMiddleware
from django.http import HttpRequest
from django.test import RequestFactory as BaseRequestFactory
from django.utils.text import slugify
from authentik.brands.models import Brand
@@ -60,3 +67,45 @@ def create_test_cert(alg=PrivateKeyAlg.RSA) -> CertificateKeyPair:
)
builder.common_name = generate_id()
return builder.save()
def dummy_get_response(request: HttpRequest): # pragma: no cover
"""Dummy get_response for SessionMiddleware"""
return None
class RequestFactory(BaseRequestFactory):
def generic(
self,
method: str,
path: str,
data: Any = "",
content_type="application/octet-stream",
secure=False,
*,
headers=None,
query_params=None,
**extra,
):
user = extra.pop("user", None)
request = super().generic(
method,
path,
data,
content_type,
secure,
headers=headers,
query_params=query_params,
**extra,
)
request.user = user if user else AnonymousUser()
middleware = SessionMiddleware(dummy_get_response)
middleware.process_request(request)
request.session.save()
middleware = MessageMiddleware(dummy_get_response)
middleware.process_request(request)
request.session.save()
return request

View File

@@ -21,6 +21,9 @@ class UILoginButton:
# Icon URL, used as-is
icon_url: str | None = None
# Whether this source should be displayed as a prominent button
promoted: bool = False
class UserSettingSerializer(PassiveSerializer):
"""Serializer for User settings for stages and sources"""

View File

@@ -16,7 +16,6 @@ from authentik.flows.models import FlowDesignation, in_memory_stage
from authentik.flows.planner import PLAN_CONTEXT_APPLICATION, FlowPlanner
from authentik.flows.stage import ChallengeStageView
from authentik.flows.views.executor import (
SESSION_KEY_APPLICATION_PRE,
ToDefaultFlow,
)
from authentik.stages.consent.stage import (
@@ -37,10 +36,14 @@ class RedirectToAppLaunch(View):
# Check if we're authenticated already, saves us the flow run
if request.user.is_authenticated:
return HttpResponseRedirect(app.get_launch_url(request.user))
self.request.session[SESSION_KEY_APPLICATION_PRE] = app
# otherwise, do a custom flow plan that includes the application that's
# being accessed, to improve usability
flow = ToDefaultFlow(request=request, designation=FlowDesignation.AUTHENTICATION).get_flow()
if app and app.provider and app.provider.authentication_flow:
flow = app.provider.authentication_flow
else:
flow = ToDefaultFlow.get_flow(
request=request, designation=FlowDesignation.AUTHENTICATION
)
planner = FlowPlanner(flow)
planner.allow_empty_flows = True
try:
@@ -55,6 +58,8 @@ class RedirectToAppLaunch(View):
)
except FlowNonApplicableException:
raise Http404 from None
# We redirect with an in_memory stage instead of `?next=...` as the launch URL
# might be formatted with the user, which hasn't logged in yet
plan.append_stage(in_memory_stage(RedirectToAppStage))
return plan.to_redirect(request, flow)

View File

@@ -8,7 +8,6 @@ from django.http.response import HttpResponse
from django.shortcuts import redirect
from django.utils.translation import gettext as _
from django.views.generic.base import RedirectView, TemplateView
from rest_framework.request import Request
from authentik import authentik_build_hash
from authentik.admin.tasks import LOCAL_VERSION
@@ -47,7 +46,7 @@ class InterfaceView(TemplateView):
def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
brand = CurrentBrandSerializer(self.request.brand)
kwargs["config_json"] = dumps(ConfigView(request=Request(self.request)).get_config().data)
kwargs["config_json"] = dumps(ConfigView.get_config(self.request).data)
kwargs["ui_theme"] = brand.data["ui_theme"]
kwargs["brand_json"] = dumps(brand.data)
kwargs["version_family"] = f"{LOCAL_VERSION.major}.{LOCAL_VERSION.minor}"

View File

@@ -9,9 +9,14 @@ from django.http.response import HttpResponse
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from django_filters import FilterSet
from django_filters.filters import BooleanFilter
from django_filters.filters import BooleanFilter, MultipleChoiceFilter
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter, OpenApiResponse, extend_schema
from drf_spectacular.utils import (
OpenApiParameter,
OpenApiResponse,
extend_schema,
extend_schema_field,
)
from rest_framework.decorators import action
from rest_framework.exceptions import ValidationError
from rest_framework.fields import (
@@ -28,12 +33,13 @@ from rest_framework.validators import UniqueValidator
from rest_framework.viewsets import ModelViewSet
from structlog.stdlib import get_logger
from authentik.api.validation import validate
from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.utils import ModelSerializer, PassiveSerializer
from authentik.core.models import UserTypes
from authentik.crypto.apps import MANAGED_KEY
from authentik.crypto.builder import CertificateBuilder, PrivateKeyAlg
from authentik.crypto.models import CertificateKeyPair
from authentik.crypto.models import CertificateKeyPair, KeyType
from authentik.events.models import Event, EventAction
from authentik.rbac.decorators import permission_required
from authentik.rbac.filters import ObjectFilter, SecretKeyFilter
@@ -50,7 +56,7 @@ class CertificateKeyPairSerializer(ModelSerializer):
cert_expiry = SerializerMethodField()
cert_subject = SerializerMethodField()
private_key_available = SerializerMethodField()
private_key_type = SerializerMethodField()
key_type = SerializerMethodField()
certificate_download_url = SerializerMethodField()
private_key_download_url = SerializerMethodField()
@@ -90,14 +96,12 @@ class CertificateKeyPairSerializer(ModelSerializer):
"""Show if this keypair has a private key configured or not"""
return instance.key_data != "" and instance.key_data is not None
def get_private_key_type(self, instance: CertificateKeyPair) -> str | None:
"""Get the private key's type, if set"""
@extend_schema_field(ChoiceField(choices=KeyType.choices, allow_null=True))
def get_key_type(self, instance: CertificateKeyPair) -> str | None:
"""Get the key algorithm type from the certificate's public key"""
if not self._should_include_details:
return None
key = instance.private_key
if key:
return key.__class__.__name__.replace("_", "").lower().replace("privatekey", "")
return None
return instance.key_type
def get_certificate_download_url(self, instance: CertificateKeyPair) -> str:
"""Get URL to download certificate"""
@@ -161,7 +165,7 @@ class CertificateKeyPairSerializer(ModelSerializer):
"cert_expiry",
"cert_subject",
"private_key_available",
"private_key_type",
"key_type",
"certificate_download_url",
"private_key_download_url",
"managed",
@@ -198,12 +202,31 @@ class CertificateKeyPairFilter(FilterSet):
label="Only return certificate-key pairs with keys", method="filter_has_key"
)
key_type = MultipleChoiceFilter(
choices=KeyType.choices,
label="Filter by key algorithm type",
method="filter_key_type",
)
def filter_has_key(self, queryset, name, value): # pragma: no cover
"""Only return certificate-key pairs with keys"""
if not value:
return queryset
return queryset.exclude(key_data__exact="")
def filter_key_type(self, queryset, name, value): # pragma: no cover
"""Filter certificates by key type using the public key from the certificate"""
if not value:
return queryset
# value is a list of KeyType enum values from MultipleChoiceFilter
filtered_pks = []
for cert in queryset:
if cert.key_type in value:
filtered_pks.append(cert.pk)
return queryset.filter(pk__in=filtered_pks)
class Meta:
model = CertificateKeyPair
fields = ["name", "managed"]
@@ -228,6 +251,17 @@ class CertificateKeyPairViewSet(UsedByMixin, ModelViewSet):
required=False,
description="Only return certificate-key pairs with keys",
),
OpenApiParameter(
"key_type",
OpenApiTypes.STR,
required=False,
many=True,
enum=[choice[0] for choice in KeyType.choices],
description=(
"Filter by key algorithm type (RSA, EC, DSA, etc). "
"Can be specified multiple times (e.g. '?key_type=rsa&key_type=ec')"
),
),
OpenApiParameter("include_details", bool, default=True),
]
)
@@ -243,17 +277,16 @@ class CertificateKeyPairViewSet(UsedByMixin, ModelViewSet):
},
)
@action(detail=False, methods=["POST"])
def generate(self, request: Request) -> Response:
@validate(CertificateGenerationSerializer)
def generate(self, request: Request, body: CertificateGenerationSerializer) -> Response:
"""Generate a new, self-signed certificate-key pair"""
data = CertificateGenerationSerializer(data=request.data)
data.is_valid(raise_exception=True)
raw_san = data.validated_data.get("subject_alt_name", "")
raw_san = body.validated_data.get("subject_alt_name", "")
sans = raw_san.split(",") if raw_san != "" else []
builder = CertificateBuilder(data.validated_data["name"])
builder.alg = data.validated_data["alg"]
builder = CertificateBuilder(body.validated_data["name"])
builder.alg = body.validated_data["alg"]
builder.build(
subject_alt_names=sans,
validity_days=int(data.validated_data["validity_days"]),
validity_days=int(body.validated_data["validity_days"]),
)
instance = builder.save()
serializer = self.get_serializer(instance)

View File

@@ -1,6 +1,6 @@
"""authentik crypto app config"""
from datetime import UTC, datetime
from dramatiq.broker import get_broker
from authentik.blueprints.apps import ManagedAppConfig
from authentik.lib.generators import generate_id
@@ -45,10 +45,7 @@ class AuthentikCryptoConfig(ManagedAppConfig):
cert: CertificateKeyPair | None = CertificateKeyPair.objects.filter(
managed=MANAGED_KEY
).first()
now = datetime.now(tz=UTC)
if not cert or (
now < cert.certificate.not_valid_after_utc or now > cert.certificate.not_valid_after_utc
):
if not cert:
self._create_update_cert()
@ManagedAppConfig.reconcile_tenant
@@ -70,6 +67,12 @@ class AuthentikCryptoConfig(ManagedAppConfig):
},
)
@ManagedAppConfig.reconcile_global
def tasks_middlewares(self):
from authentik.crypto.tasks import CertificateWatcherMiddleware
get_broker().add_middleware(CertificateWatcherMiddleware())
@property
def tenant_schedule_specs(self) -> list[ScheduleSpec]:
from authentik.crypto.tasks import certificate_discovery

View File

@@ -6,6 +6,11 @@ from uuid import uuid4
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric.dsa import DSAPublicKey
from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePublicKey
from cryptography.hazmat.primitives.asymmetric.ed448 import Ed448PublicKey
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPublicKey
from cryptography.hazmat.primitives.asymmetric.types import PrivateKeyTypes, PublicKeyTypes
from cryptography.hazmat.primitives.serialization import load_pem_private_key
from cryptography.x509 import Certificate, load_pem_x509_certificate
@@ -20,6 +25,16 @@ from authentik.lib.models import CreatedUpdatedModel, SerializerModel
LOGGER = get_logger()
class KeyType(models.TextChoices):
"""Cryptographic key algorithm types"""
RSA = "rsa", _("RSA")
EC = "ec", _("Elliptic Curve")
DSA = "dsa", _("DSA")
ED25519 = "ed25519", _("Ed25519")
ED448 = "ed448", _("Ed448")
def fingerprint_sha256(cert: Certificate) -> str:
"""Get SHA256 Fingerprint of certificate"""
return hexlify(cert.fingerprint(hashes.SHA256()), ":").decode("utf-8")
@@ -103,6 +118,22 @@ class CertificateKeyPair(SerializerModel, ManagedModel, CreatedUpdatedModel):
else ""
) # nosec
@property
def key_type(self) -> str | None:
"""Get the key algorithm type from the certificate's public key"""
public_key = self.certificate.public_key()
if isinstance(public_key, RSAPublicKey):
return KeyType.RSA
if isinstance(public_key, EllipticCurvePublicKey):
return KeyType.EC
if isinstance(public_key, DSAPublicKey):
return KeyType.DSA
if isinstance(public_key, Ed25519PublicKey):
return KeyType.ED25519
if isinstance(public_key, Ed448PublicKey):
return KeyType.ED448
return None
def __str__(self) -> str:
return f"Certificate-Key Pair {self.name}"

View File

@@ -2,17 +2,29 @@
from glob import glob
from pathlib import Path
from sys import platform
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.serialization import load_pem_private_key
from cryptography.x509.base import load_pem_x509_certificate
from django.conf import settings
from django.utils.translation import gettext_lazy as _
from dramatiq.actor import actor
from dramatiq.middleware import Middleware
from structlog.stdlib import get_logger
from watchdog.events import (
FileCreatedEvent,
FileModifiedEvent,
FileSystemEvent,
FileSystemEventHandler,
)
from watchdog.observers import Observer
from authentik.crypto.models import CertificateKeyPair
from authentik.lib.config import CONFIG
from authentik.tasks.middleware import CurrentTask
from authentik.tasks.schedules.models import Schedule
from authentik.tenants.models import Tenant
LOGGER = get_logger()
@@ -35,6 +47,65 @@ def ensure_certificate_valid(body: str):
return body
class CertificateWatcherMiddleware(Middleware):
"""Middleware to start certificate file watcher"""
def start_certificate_watcher(self):
"""Start certificate file watcher"""
observer = Observer()
kwargs = {}
if platform.startswith("linux"):
kwargs["event_filter"] = (FileCreatedEvent, FileModifiedEvent)
observer.schedule(
CertificateEventHandler(),
CONFIG.get("cert_discovery_dir"),
recursive=True,
**kwargs,
)
observer.start()
def after_worker_boot(self, broker, worker):
if not settings.TEST:
self.start_certificate_watcher()
class CertificateEventHandler(FileSystemEventHandler):
"""Event handler for certificate file events"""
# We only ever get creation and modification events.
# See the creation of the Observer instance above for the event filtering.
# Even though we filter to only get file events, we might still get
# directory events as some implementations such as inotify do not support
# filtering on file/directory.
def dispatch(self, event: FileSystemEvent) -> None:
"""Call specific event handler method. Ignores directory changes."""
if event.is_directory:
return None
return super().dispatch(event)
def on_created(self, event: FileSystemEvent):
"""Process certificate file creation"""
LOGGER.debug(
"Certificate file created, triggering discovery",
file=event.src_path,
)
for tenant in Tenant.objects.filter(ready=True):
with tenant:
Schedule.dispatch_by_actor(certificate_discovery)
def on_modified(self, event: FileSystemEvent):
"""Process certificate file modification"""
LOGGER.debug(
"Certificate file modified, triggering discovery",
file=event.src_path,
)
for tenant in Tenant.objects.filter(ready=True):
with tenant:
Schedule.dispatch_by_actor(certificate_discovery)
@actor(description=_("Discover, import and update certificates from the filesystem."))
def certificate_discovery():
self = CurrentTask.get_task()
@@ -66,12 +137,35 @@ def certificate_discovery():
except (OSError, ValueError) as exc:
LOGGER.warning("Failed to open file or invalid format", exc=exc, file=path)
for name, cert_data in certs.items():
# First, try to find by filename-based managed field
cert = CertificateKeyPair.objects.filter(managed=MANAGED_DISCOVERED % name).first()
# If not found by filename and we have a private key, check for existing key match
if not cert and name in private_keys:
existing_with_key = (
CertificateKeyPair.objects.filter(
managed__startswith="goauthentik.io/crypto/discovered/",
key_data=private_keys[name],
)
.exclude(key_data="")
.first()
)
if existing_with_key:
cert = existing_with_key
# Update name and managed field to reflect the new filename
if cert.name != name:
cert.name = name
cert.managed = MANAGED_DISCOVERED % name
cert.save()
# Create new certificate if not found
if not cert:
cert = CertificateKeyPair(
name=name,
managed=MANAGED_DISCOVERED % name,
)
# Update certificate data if changed
dirty = False
if cert.certificate_data != cert_data:
cert.certificate_data = cert_data

View File

@@ -2,6 +2,7 @@
from json import loads
from os import makedirs
from pathlib import Path
from tempfile import TemporaryDirectory
from cryptography.x509.extensions import SubjectAlternativeName
@@ -319,6 +320,8 @@ class TestCrypto(APITestCase):
def test_discovery(self):
"""Test certificate discovery"""
# This test generates 2 separate cert/key combinations
# and verifies they both import properly
name = generate_id()
builder = CertificateBuilder(name)
with self.assertRaises(ValueError):
@@ -327,6 +330,15 @@ class TestCrypto(APITestCase):
subject_alt_names=[],
validity_days=3,
)
name2 = generate_id()
builder2 = CertificateBuilder(name2)
with self.assertRaises(ValueError):
builder2.save()
builder2.build(
subject_alt_names=[],
validity_days=3,
)
with TemporaryDirectory() as temp_dir:
with open(f"{temp_dir}/foo.pem", "w+", encoding="utf-8") as _cert:
_cert.write(builder.certificate)
@@ -334,9 +346,9 @@ class TestCrypto(APITestCase):
_key.write(builder.private_key)
makedirs(f"{temp_dir}/foo.bar", exist_ok=True)
with open(f"{temp_dir}/foo.bar/fullchain.pem", "w+", encoding="utf-8") as _cert:
_cert.write(builder.certificate)
_cert.write(builder2.certificate)
with open(f"{temp_dir}/foo.bar/privkey.pem", "w+", encoding="utf-8") as _key:
_key.write(builder.private_key)
_key.write(builder2.private_key)
with CONFIG.patch("cert_discovery_dir", temp_dir):
certificate_discovery.send()
keypair: CertificateKeyPair = CertificateKeyPair.objects.filter(
@@ -348,3 +360,58 @@ class TestCrypto(APITestCase):
self.assertTrue(
CertificateKeyPair.objects.filter(managed=MANAGED_DISCOVERED % "foo.bar").exists()
)
def test_discovery_updating_same_private_key(self):
"""Test certificate discovery updating certs with matching private keys"""
name = generate_id()
builder = CertificateBuilder(name)
builder.build(
subject_alt_names=[],
validity_days=3,
)
with TemporaryDirectory() as temp_dir:
# First discovery: write cert as "original"
with open(f"{temp_dir}/original.pem", "w+", encoding="utf-8") as _cert:
_cert.write(builder.certificate)
with open(f"{temp_dir}/original.key", "w+", encoding="utf-8") as _key:
_key.write(builder.private_key)
with CONFIG.patch("cert_discovery_dir", temp_dir):
certificate_discovery.send()
# Verify "original" cert was created
original = CertificateKeyPair.objects.filter(
managed=MANAGED_DISCOVERED % "original"
).first()
self.assertIsNotNone(original)
self.assertEqual(original.name, "original")
self.assertIsNotNone(original.private_key)
# Second discovery: write same cert/key as "renamed"
Path(f"{temp_dir}/original.pem").unlink()
Path(f"{temp_dir}/original.key").unlink()
with open(f"{temp_dir}/renamed.pem", "w+", encoding="utf-8") as _cert:
_cert.write(builder.certificate)
with open(f"{temp_dir}/renamed.key", "w+", encoding="utf-8") as _key:
_key.write(builder.private_key)
with CONFIG.patch("cert_discovery_dir", temp_dir):
certificate_discovery.send()
# Verify the cert was updated
renamed = CertificateKeyPair.objects.filter(
managed=MANAGED_DISCOVERED % "renamed"
).first()
self.assertIsNotNone(renamed, "Renamed certificate should exist")
self.assertEqual(renamed.name, "renamed")
self.assertEqual(renamed.pk, original.pk, "Should be same database object")
# Verify no new cert was created
final_count = CertificateKeyPair.objects.filter(
managed__startswith="goauthentik.io/crypto/discovered/"
).count()
self.assertEqual(
1, final_count, "Should not create duplicate cert for same private key"
)

View File

View File

View File

@@ -0,0 +1,51 @@
from rest_framework import mixins
from rest_framework.fields import SerializerMethodField
from rest_framework.viewsets import GenericViewSet
from authentik.core.api.object_types import TypesMixin
from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.utils import MetaNameSerializer, ModelSerializer
from authentik.endpoints.models import Connector
class ConnectorSerializer(ModelSerializer, MetaNameSerializer):
component = SerializerMethodField()
def get_component(self, obj: Connector) -> str: # pragma: no cover
"""Get object component so that we know how to edit the object"""
if obj.__class__ == Connector:
return ""
return obj.component
class Meta:
model = Connector
fields = [
"connector_uuid",
"name",
"enabled",
"component",
"verbose_name",
"verbose_name_plural",
"meta_model_name",
]
class ConnectorViewSet(
TypesMixin,
mixins.RetrieveModelMixin,
mixins.DestroyModelMixin,
UsedByMixin,
mixins.ListModelMixin,
GenericViewSet,
):
"""Connector Viewset"""
queryset = Connector.objects.none()
serializer_class = ConnectorSerializer
search_fields = [
"name",
]
def get_queryset(self): # pragma: no cover
return Connector.objects.select_subclasses()

View File

@@ -0,0 +1,31 @@
from rest_framework.viewsets import ModelViewSet
from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.utils import ModelSerializer
from authentik.endpoints.models import DeviceAccessGroup
class DeviceAccessGroupSerializer(ModelSerializer):
class Meta:
model = DeviceAccessGroup
fields = [
"pbm_uuid",
"name",
]
class DeviceAccessGroupViewSet(UsedByMixin, ModelViewSet):
"""DeviceAccessGroup Viewset"""
queryset = DeviceAccessGroup.objects.all()
serializer_class = DeviceAccessGroupSerializer
search_fields = [
"pbm_uuid",
"name",
]
filterset_fields = [
"pbm_uuid",
"name",
]
ordering = ["name"]

View File

@@ -0,0 +1,27 @@
from rest_framework.fields import SerializerMethodField
from authentik.core.api.utils import ModelSerializer
from authentik.endpoints.api.connectors import ConnectorSerializer
from authentik.endpoints.api.device_fact_snapshots import DeviceFactSnapshotSerializer
from authentik.endpoints.models import DeviceConnection
class DeviceConnectionSerializer(ModelSerializer):
connector_obj = ConnectorSerializer(source="connector", read_only=True)
latest_snapshot = SerializerMethodField(allow_null=True)
def get_latest_snapshot(self, instance: DeviceConnection) -> DeviceFactSnapshotSerializer:
snapshot = instance.devicefactsnapshot_set.order_by("-created").first()
if not snapshot:
return None
return DeviceFactSnapshotSerializer(snapshot).data
class Meta:
model = DeviceConnection
fields = [
"device",
"connector",
"connector_obj",
"latest_snapshot",
]

View File

@@ -0,0 +1,21 @@
from authentik.core.api.utils import ModelSerializer
from authentik.endpoints.facts import DeviceFacts
from authentik.endpoints.models import DeviceFactSnapshot
class DeviceFactSnapshotSerializer(ModelSerializer):
data = DeviceFacts()
class Meta:
model = DeviceFactSnapshot
fields = [
"data",
"connection",
"created",
"expires",
]
extra_kwargs = {
"created": {"read_only": True},
"expires": {"read_only": True},
}

View File

@@ -0,0 +1,27 @@
from authentik.endpoints.api.connectors import ConnectorSerializer
from authentik.endpoints.models import DeviceUserBinding
from authentik.policies.api.bindings import PolicyBindingSerializer, PolicyBindingViewSet
class DeviceUserBindingSerializer(PolicyBindingSerializer):
connector_obj = ConnectorSerializer(source="connector", read_only=True)
class Meta:
model = DeviceUserBinding
fields = PolicyBindingSerializer.Meta.fields + [
"is_primary",
"connector",
"connector_obj",
]
extra_kwargs = {"connector": {"read_only": True}}
class DeviceUserBindingViewSet(PolicyBindingViewSet):
"""PolicyBinding Viewset"""
queryset = (
DeviceUserBinding.objects.all()
.select_related("target", "group", "user")
.prefetch_related("policy")
) # prefetching policy so we resolve the subclass

View File

@@ -0,0 +1,78 @@
from rest_framework import mixins
from rest_framework.fields import SerializerMethodField
from rest_framework.viewsets import GenericViewSet
from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.utils import ModelSerializer
from authentik.endpoints.api.device_access_group import DeviceAccessGroupSerializer
from authentik.endpoints.api.device_connections import DeviceConnectionSerializer
from authentik.endpoints.api.device_fact_snapshots import DeviceFactSnapshotSerializer
from authentik.endpoints.models import Device
class EndpointDeviceSerializer(ModelSerializer):
access_group_obj = DeviceAccessGroupSerializer(source="access_group", required=False)
facts = SerializerMethodField()
def get_facts(self, instance: Device) -> DeviceFactSnapshotSerializer:
return DeviceFactSnapshotSerializer(instance.cached_facts).data
class Meta:
model = Device
fields = [
"device_uuid",
"pbm_uuid",
"name",
"access_group",
"access_group_obj",
"expiring",
"expires",
"facts",
"attributes",
]
class EndpointDeviceDetailsSerializer(EndpointDeviceSerializer):
connections_obj = DeviceConnectionSerializer(many=True, source="deviceconnection_set")
def get_facts(self, instance: Device) -> DeviceFactSnapshotSerializer:
return DeviceFactSnapshotSerializer(instance.facts).data
class Meta(EndpointDeviceSerializer.Meta):
fields = EndpointDeviceSerializer.Meta.fields + [
"connections_obj",
"policies",
"connections",
]
class DeviceViewSet(
UsedByMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet,
):
queryset = Device.objects.all().select_related("access_group")
serializer_class = EndpointDeviceSerializer
search_fields = [
"name",
"identifier",
]
ordering = ["identifier"]
filterset_fields = ["name", "identifier"]
def get_serializer_class(self):
if self.action == "retrieve":
return EndpointDeviceDetailsSerializer
return super().get_serializer_class()
def get_queryset(self):
if self.action == "retrieve":
return super().get_queryset().prefetch_related("connections")
return super().get_queryset()

View File

@@ -0,0 +1,32 @@
from rest_framework.viewsets import ModelViewSet
from authentik.core.api.used_by import UsedByMixin
from authentik.endpoints.api.connectors import ConnectorSerializer
from authentik.endpoints.models import EndpointStage
from authentik.enterprise.api import EnterpriseRequiredMixin
from authentik.flows.api.stages import StageSerializer
class EndpointStageSerializer(EnterpriseRequiredMixin, StageSerializer):
"""EndpointStage Serializer"""
connector_obj = ConnectorSerializer(source="connector", read_only=True)
class Meta:
model = EndpointStage
fields = StageSerializer.Meta.fields + [
"connector",
"connector_obj",
]
class EndpointStageViewSet(UsedByMixin, ModelViewSet):
"""EndpointStage Viewset"""
queryset = EndpointStage.objects.all()
serializer_class = EndpointStageSerializer
filterset_fields = [
"name",
]
search_fields = ["name"]
ordering = ["name"]

View File

@@ -0,0 +1,12 @@
"""authentik endpoints app config"""
from authentik.blueprints.apps import ManagedAppConfig
class AuthentikEndpointsConfig(ManagedAppConfig):
"""authentik endpoints app config"""
name = "authentik.endpoints"
label = "authentik_endpoints"
verbose_name = "authentik Endpoints"
default = True

View File

@@ -0,0 +1,66 @@
from rest_framework.fields import (
BooleanField,
CharField,
IntegerField,
SerializerMethodField,
)
from authentik.api.v3.config import ConfigSerializer, ConfigView
from authentik.core.api.utils import PassiveSerializer
from authentik.crypto.apps import MANAGED_KEY
from authentik.crypto.models import CertificateKeyPair
from authentik.endpoints.connectors.agent.models import AgentConnector
from authentik.endpoints.models import Device
from authentik.lib.utils.time import timedelta_from_string
from authentik.providers.oauth2.views.jwks import JWKSView
class AgentConfigSerializer(PassiveSerializer):
device_id = SerializerMethodField()
refresh_interval = SerializerMethodField()
authorization_flow = SerializerMethodField()
jwks = SerializerMethodField()
nss_uid_offset = IntegerField()
nss_gid_offset = IntegerField()
auth_terminate_session_on_expiry = BooleanField()
system_config = SerializerMethodField()
def get_device_id(self, instance: AgentConnector) -> str:
device: Device = self.context["device"]
return device.pk
def get_refresh_interval(self, instance: AgentConnector) -> int:
return int(timedelta_from_string(instance.refresh_interval).total_seconds())
def get_authorization_flow(self, instance: AgentConnector) -> str | None:
if not instance.authorization_flow:
return None
return instance.authorization_flow.slug
def get_jwks(self, instance: AgentConnector) -> dict:
kp = CertificateKeyPair.objects.filter(managed=MANAGED_KEY).first()
return {"keys": [JWKSView.get_jwk_for_key(kp, "sig")]}
def get_system_config(self, instance: AgentConnector) -> ConfigSerializer:
return ConfigView.get_config(self.context["request"]).data
class EnrollSerializer(PassiveSerializer):
device_serial = CharField(required=True)
device_name = CharField(required=True)
class AgentTokenResponseSerializer(PassiveSerializer):
token = CharField(required=True)
expires_in = IntegerField(required=0)
class AgentAuthenticationResponse(PassiveSerializer):
url = CharField()

View File

@@ -0,0 +1,169 @@
from typing import cast
from django.utils.translation import gettext_lazy as _
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiResponse, extend_schema
from rest_framework.decorators import action
from rest_framework.exceptions import PermissionDenied, ValidationError
from rest_framework.fields import (
CharField,
ChoiceField,
)
from rest_framework.relations import PrimaryKeyRelatedField
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet
from authentik.core.api.used_by import UsedByMixin
from authentik.core.api.utils import PassiveSerializer
from authentik.endpoints.api.connectors import ConnectorSerializer
from authentik.endpoints.connectors.agent.api.agent import (
AgentConfigSerializer,
AgentTokenResponseSerializer,
EnrollSerializer,
)
from authentik.endpoints.connectors.agent.auth import (
AgentAuth,
AgentEnrollmentAuth,
)
from authentik.endpoints.connectors.agent.models import (
AgentConnector,
AgentDeviceConnection,
DeviceToken,
EnrollmentToken,
)
from authentik.endpoints.facts import DeviceFacts, OSFamily
from authentik.endpoints.models import Device
from authentik.lib.utils.reflection import ConditionalInheritance
class AgentConnectorSerializer(ConnectorSerializer):
class Meta(ConnectorSerializer.Meta):
model = AgentConnector
fields = ConnectorSerializer.Meta.fields + [
"snapshot_expiry",
"auth_session_duration",
"auth_terminate_session_on_expiry",
"refresh_interval",
"authorization_flow",
"nss_uid_offset",
"nss_gid_offset",
"challenge_key",
"jwt_federation_providers",
]
class MDMConfigSerializer(PassiveSerializer):
platform = ChoiceField(choices=OSFamily.choices)
enrollment_token = PrimaryKeyRelatedField(queryset=EnrollmentToken.objects.all())
def validate_platform(self, platform: OSFamily) -> OSFamily:
if platform not in [OSFamily.iOS, OSFamily.macOS, OSFamily.windows]:
raise ValidationError(_("Selected platform not supported"))
return platform
def validate_enrollment_token(self, token: EnrollmentToken) -> EnrollmentToken:
if token.is_expired:
raise ValidationError(_("Token is expired"))
if token.connector != self.context["connector"]:
raise ValidationError(_("Invalid token for connector"))
return token
class MDMConfigResponseSerializer(PassiveSerializer):
config = CharField(required=True)
class AgentConnectorViewSet(
ConditionalInheritance(
"authentik.enterprise.endpoints.connectors.agent.api.connectors.AgentConnectorViewSetMixin"
),
UsedByMixin,
ModelViewSet,
):
queryset = AgentConnector.objects.all()
serializer_class = AgentConnectorSerializer
search_fields = ["name"]
ordering = ["name"]
filterset_fields = ["name", "enabled"]
@extend_schema(
request=MDMConfigSerializer(),
responses=MDMConfigResponseSerializer(),
)
@action(methods=["POST"], detail=True)
def mdm_config(self, request: Request, pk) -> Response:
"""Generate configuration for MDM systems to deploy authentik Agent"""
connector = cast(AgentConnector, self.get_object())
data = MDMConfigSerializer(data=request.data, context={"connector": connector})
data.is_valid(raise_exception=True)
token = data.validated_data["enrollment_token"]
if not request.user.has_perm("view_enrollment_token_key", token):
raise PermissionDenied()
ctrl = connector.controller(connector)
payload = ctrl.generate_mdm_config(data.validated_data["platform"], request, token)
return Response({"config": payload})
@extend_schema(
request=EnrollSerializer(),
responses={200: AgentTokenResponseSerializer},
)
@action(
methods=["POST"],
detail=False,
authentication_classes=[AgentEnrollmentAuth],
)
def enroll(self, request: Request):
token: EnrollmentToken = request.auth
data = EnrollSerializer(data=request.data)
data.is_valid(raise_exception=True)
device, _ = Device.objects.get_or_create(
identifier=data.validated_data["device_serial"],
defaults={
"name": data.validated_data["device_name"],
"expiring": False,
"access_group": token.device_group,
},
)
connection, _ = AgentDeviceConnection.objects.update_or_create(
device=device,
connector=token.connector,
)
token = DeviceToken.objects.create(device=connection, expiring=False)
return Response(
{
"token": token.key,
"expires_in": 0,
}
)
@extend_schema(
request=OpenApiTypes.NONE,
responses=AgentConfigSerializer(),
)
@action(methods=["GET"], detail=False, authentication_classes=[AgentAuth])
def agent_config(self, request: Request):
token: DeviceToken = request.auth
connector: AgentConnector = token.device.connector.agentconnector
return Response(
AgentConfigSerializer(
connector, context={"request": request, "device": token.device.device}
).data
)
@extend_schema(
request=DeviceFacts(),
responses={204: OpenApiResponse(description="Successfully checked in")},
)
@action(methods=["POST"], detail=False, authentication_classes=[AgentAuth])
def check_in(self, request: Request):
token: DeviceToken = request.auth
data = DeviceFacts(data=request.data)
data.is_valid(raise_exception=True)
connection: AgentDeviceConnection = token.device
connection.create_snapshot(data.validated_data)
return Response(status=204)

Some files were not shown because too many files have changed in this diff Show More