stage/invitation: Send invite via email UI#19823
Conversation
✅ Deploy Preview for authentik-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for authentik-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #19823 +/- ##
==========================================
- Coverage 93.24% 93.23% -0.01%
==========================================
Files 968 968
Lines 53616 53692 +76
==========================================
+ Hits 49994 50061 +67
- Misses 3622 3631 +9
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
authentik PR Installation instructions Instructions for docker-composeAdd the following block to your AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-e519d70f69d7ba37d69e9a5550104c9c972c622d
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)sAfterwards, run the upgrade commands from the latest release notes. Instructions for KubernetesAdd the following block to your authentik:
outposts:
container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
image:
repository: ghcr.io/goauthentik/dev-server
tag: gh-e519d70f69d7ba37d69e9a5550104c9c972c622dAfterwards, run the upgrade commands from the latest release notes. |
✅ Deploy Preview for authentik-integrations ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
kensternberg-authentik
left a comment
There was a problem hiding this comment.
The front-end code is straightforward and looks correct. I made recommendations which you can choose to implement or not.
Co-authored-by: Dewi Roberts <dewi@goauthentik.io> Signed-off-by: Marcelo Elizeche Landó <marce@melizeche.com>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
BeryJu
left a comment
There was a problem hiding this comment.
LGTM, ready to merge after addressing @kensternberg-authentik's comments
…p-v3 * main: (105 commits) website/docs: Custom CSS (#19991) core: bump goauthentik.io/api/v3 to 3.2026.5.0-rc1-1770992049 (#20285) stage/invitation: Send invite via email UI (#19823) root: remove unused `django-cte` (#20090) core: bump ruff from 0.15.0 to 0.15.1 (#20273) core, web: update translations (#20271) ci: bump docker/build-push-action from 6.19.1 to 6.19.2 (#20274) enterprise/lifecycle: fix multiple reviews showing up in "Reviews" when the user is a member of multiple reviewer groups (#20266) ci: fix binary outpost build on release (#20248) web: add pretty names for lifecycle review events in event logs (#20264) web: fix italic formatting in lifecycle rule help text (#20263) website/docs: 2025.8.6 release notes (#20243) website/docs: 2025.12.4 release notes (#20226) website/docs: 2025.10.4 release notes (#20242) security: CVE-2026-25748 (#20240) security: CVE-2026-25922 (#20241) security: CVE-2026-25227 (#20239) ci: fix release testing (#20207) core: Apply CSpell corrections. (#20191) core: bump goauthentik.io/api/v3 to 3.2026.5.0-rc1-1770842608 (#20213) ...
…web/flow/tablize-token-component-relationship * web/flow/tablize-token-component-relationship-v3: (75 commits) Removed the cache; it's extra code for no benefit whatsoever; the table is constructed ONCE at start-up, there's never going to be a cache hit. The FlowExecutorStageFactory produces StageMappings (StageMapping[]), which is itself a warehouse of singular server-component -> client-component relationships, fetching the client from the bundle as needed. The StageMapping only does the fetch once per instance, so (for example) a password failure will reinstantiate a PasswordStage, but it will not fetch it a second time. Tidy. website/docs: Custom CSS (#19991) core: bump goauthentik.io/api/v3 to 3.2026.5.0-rc1-1770992049 (#20285) stage/invitation: Send invite via email UI (#19823) root: remove unused `django-cte` (#20090) core: bump ruff from 0.15.0 to 0.15.1 (#20273) core, web: update translations (#20271) ci: bump docker/build-push-action from 6.19.1 to 6.19.2 (#20274) enterprise/lifecycle: fix multiple reviews showing up in "Reviews" when the user is a member of multiple reviewer groups (#20266) ci: fix binary outpost build on release (#20248) web: add pretty names for lifecycle review events in event logs (#20264) web: fix italic formatting in lifecycle rule help text (#20263) website/docs: 2025.8.6 release notes (#20243) website/docs: 2025.12.4 release notes (#20226) website/docs: 2025.10.4 release notes (#20242) security: CVE-2026-25748 (#20240) security: CVE-2026-25922 (#20241) security: CVE-2026-25227 (#20239) ci: fix release testing (#20207) ...
…/flow/20030-one-true-api * web/flow/tablize-token-component-relationship: (76 commits) Removed comments about the cache. Added comments about where to find the FlowExecutor stage table. Moved the import of WebAuthnAuthenticticatorRegisterState from FlowExecutor.ts to FlowExecutorStages.ts; both files are bundled together, so this is a no-op functionally, but it's easier to confirm that StageEntries without import expressions (STageModuleCallbacks) have their stages bundled (pre-imported) if the import statement is in the same file. Removed the cache; it's extra code for no benefit whatsoever; the table is constructed ONCE at start-up, there's never going to be a cache hit. The FlowExecutorStageFactory produces StageMappings (StageMapping[]), which is itself a warehouse of singular server-component -> client-component relationships, fetching the client from the bundle as needed. The StageMapping only does the fetch once per instance, so (for example) a password failure will reinstantiate a PasswordStage, but it will not fetch it a second time. Tidy. website/docs: Custom CSS (#19991) core: bump goauthentik.io/api/v3 to 3.2026.5.0-rc1-1770992049 (#20285) stage/invitation: Send invite via email UI (#19823) root: remove unused `django-cte` (#20090) core: bump ruff from 0.15.0 to 0.15.1 (#20273) core, web: update translations (#20271) ci: bump docker/build-push-action from 6.19.1 to 6.19.2 (#20274) enterprise/lifecycle: fix multiple reviews showing up in "Reviews" when the user is a member of multiple reviewer groups (#20266) ci: fix binary outpost build on release (#20248) web: add pretty names for lifecycle review events in event logs (#20264) web: fix italic formatting in lifecycle rule help text (#20263) website/docs: 2025.8.6 release notes (#20243) website/docs: 2025.12.4 release notes (#20226) website/docs: 2025.10.4 release notes (#20242) security: CVE-2026-25748 (#20240) security: CVE-2026-25922 (#20241) security: CVE-2026-25227 (#20239) ...
…t-flow-inspector * web/flow/20030-one-true-api: Removed comments about the cache. Added comments about where to find the FlowExecutor stage table. Moved the import of WebAuthnAuthenticticatorRegisterState from FlowExecutor.ts to FlowExecutorStages.ts; both files are bundled together, so this is a no-op functionally, but it's easier to confirm that StageEntries without import expressions (STageModuleCallbacks) have their stages bundled (pre-imported) if the import statement is in the same file. Removed the cache; it's extra code for no benefit whatsoever; the table is constructed ONCE at start-up, there's never going to be a cache hit. The FlowExecutorStageFactory produces StageMappings (StageMapping[]), which is itself a warehouse of singular server-component -> client-component relationships, fetching the client from the bundle as needed. The StageMapping only does the fetch once per instance, so (for example) a password failure will reinstantiate a PasswordStage, but it will not fetch it a second time. Tidy. website/docs: Custom CSS (#19991) core: bump goauthentik.io/api/v3 to 3.2026.5.0-rc1-1770992049 (#20285) stage/invitation: Send invite via email UI (#19823) root: remove unused `django-cte` (#20090) core: bump ruff from 0.15.0 to 0.15.1 (#20273) core, web: update translations (#20271) ci: bump docker/build-push-action from 6.19.1 to 6.19.2 (#20274) enterprise/lifecycle: fix multiple reviews showing up in "Reviews" when the user is a member of multiple reviewer groups (#20266) ci: fix binary outpost build on release (#20248) web: add pretty names for lifecycle review events in event logs (#20264) web: fix italic formatting in lifecycle rule help text (#20263) website/docs: 2025.8.6 release notes (#20243) web/flow: optimize table for type safety web: Flesh out module driven tag names.
…261-tidy-identification-stage * web/flow/20063-extract-flow-inspector: Move the inspector into its own folder. Since the check for `this.can(CapabilitiesEnum.CanDebug))` has been moved into the FlowInspectorButton, FlowExecutor no longer needs the capabilities check at all. Of COURSE prettier had opinions! Removed comments about the cache. Added comments about where to find the FlowExecutor stage table. Moved the import of WebAuthnAuthenticticatorRegisterState from FlowExecutor.ts to FlowExecutorStages.ts; both files are bundled together, so this is a no-op functionally, but it's easier to confirm that StageEntries without import expressions (STageModuleCallbacks) have their stages bundled (pre-imported) if the import statement is in the same file. Removed the cache; it's extra code for no benefit whatsoever; the table is constructed ONCE at start-up, there's never going to be a cache hit. The FlowExecutorStageFactory produces StageMappings (StageMapping[]), which is itself a warehouse of singular server-component -> client-component relationships, fetching the client from the bundle as needed. The StageMapping only does the fetch once per instance, so (for example) a password failure will reinstantiate a PasswordStage, but it will not fetch it a second time. Tidy. website/docs: Custom CSS (#19991) core: bump goauthentik.io/api/v3 to 3.2026.5.0-rc1-1770992049 (#20285) stage/invitation: Send invite via email UI (#19823) root: remove unused `django-cte` (#20090) core: bump ruff from 0.15.0 to 0.15.1 (#20273) core, web: update translations (#20271) ci: bump docker/build-push-action from 6.19.1 to 6.19.2 (#20274) enterprise/lifecycle: fix multiple reviews showing up in "Reviews" when the user is a member of multiple reviewer groups (#20266) ci: fix binary outpost build on release (#20248) web: add pretty names for lifecycle review events in event logs (#20264) web: fix italic formatting in lifecycle rule help text (#20263) website/docs: 2025.8.6 release notes (#20243) web/flow: optimize table for type safety web: Flesh out module driven tag names.
Details
Adds the ability to send invitation links directly via email from the Admin UI, eliminating the need to manually copy and share invitation URLs.
LAST:

Checklist
ak test authentik/)make lint-fix)If an API change has been made
make gen-build)If changes to the frontend have been made
make web)If applicable
make docs)