After talking with @GirlBossRush, I realized that my architecture would be simplified by separating
the style controller from the renderer. Lit uses Controllers just for that purpose, so:
1. A renderer that either puts down the button or puts down the documentation
2. A controller that monitors the button for its state and, when that state changes, updates the
host's CSS to fit within the page correctly when the button is rotated.
3. Some helper styles the container needs to help the button display correctly.
Run the thing and click on the button.
This changes the look and feel of the application to a small degree. Screenshots may need to be
updated.
None.
\# What
\# Why
\# How
\# Designs
\# Test Steps
\# Other Notes
# What
1. Adds a new component, 'ak-sidebar-help-toggle', which creates a vertical button that reads
"Documentation" by default. When clicked, will display a sidebar entry of the markdown
documentation sent to it.
2. Updates the ApplicationList page to demonstrate how this might look in practice.
This feature does not memoize; it returns to the default condition every time you return to the
page. Long-term memoization may be by-device (using LocalStorage) or by user (using attributes), but
these changes are not part of this proposal.
# Testing
Run the thing and click on the button.
# User documentation changes required.
This changes the look and feel of the application to a small degree. Screenshots may need to be
updated.
# Developer documentation changes required.
None.
* main:
web: update gen-client-ts to OpenAPI 7.11.0 (#12756)
website/integrations: rustdesk-server-pro (#12706)
core: bump codespell from 2.3.0 to 2.4.0 (#12762)
root: docker: ensure apt packages are up-to-date (#12683)
ci: fix missing build args for dev and release (#12760)
web: bump vite from 5.4.11 to 5.4.14 in /web (#12757)
web: bump undici from 6.21.0 to 6.21.1 in /web (#12755)
lifecycle: fix cryptography's OpenSSL path (#12753)
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* This (temporary) change is needed to prevent the unit tests from failing.
\# What
\# Why
\# How
\# Designs
\# Test Steps
\# Other Notes
* Revert "This (temporary) change is needed to prevent the unit tests from failing."
This reverts commit dddde09be5.
* web: Update to OpenAPI 7.11.
This commit updates our Makefile to generate the Typescript api using OpenAPI 7.11, and updates
names (mostly of enum targets) in our product to correspond to the changes in how OpenAPI generates
enum source names.
1. Replaced `ProviderModelEnum.` (note terminal period) with `ProviderModelEnum.AuthentikProvider`.
For example:
```
- ProviderModelEnum.SamlSamlprovider
+ ProviderModelEnum.AuthentikProvidersSamlSamlprovider
```
2. Replaced `RbacPermissionsAssignedByUsersListModelEnum.` (note terminal period) with
`RbacPermissionsAssignedByUsersListModelEnum.Authentik`. For example:
```
- RbacPermissionsAssignedByUsersListModelEnum.ProvidersLdapLdapprovider.toString(),
+ RbacPermissionsAssignedByUsersListModelEnum.AuthentikProvidersLdapLdapprovider.toString(),
```
3. Replaced `SyncObjectModelEnum.` (note terminal period) with
`SyncObjectModelEnum.AuthentikCoreModels`. For example:
```
- model=${SyncObjectModelEnum.Group}
+ model=${SyncObjectModelEnum.AuthentikCoreModelsGroup}
```
4. Replaced `SignatureAlgorithmEnum._` (note terminal symbols) with
`SignatureAlgorithmEnum.HttpWwwW3Org`. For example:
```
- ["ECDSA-SHA256", SignatureAlgorithmEnum._200104XmldsigMoreecdsaSha256],
+ ["ECDSA-SHA256", SignatureAlgorithmEnum.HttpWwwW3Org200104XmldsigMoreecdsaSha256],
```
5. Replaced `DigestAlgorithmEnum._` (note terminal symbols) with `DigestAlgorithmEnum.HttpWwwW3Org`.
For example:
```
- ["SHA256", DigestAlgorithmEnum._200104Xmlencsha256, true],
+ ["SHA256", DigestAlgorithmEnum.HttpWwwW3Org200104Xmlencsha256, true],
```
6. Replaced `NameIdPolicyEnum._` (note terminal symbols) with
`NameIdPolicyEnum.UrnOasisNamesTcSaml`. This one is trickier than the others: If you look
closely, you'll see that how OpenAPI generates the names has changed, with `nameid` now being
`Nameid`, and `FormatemailAddress` now being `FormatEmailAddress`.
```
- value=${NameIdPolicyEnum._11nameidFormatemailAddress}
+ value=${NameIdPolicyEnum.UrnOasisNamesTcSaml11NameidFormatEmailAddress}
```
# How
After determining how the enum prefixes had changed, I just ran six of these, testing after each
step to ensure that `npm run lint:types` had fewer errors than the previous run, until the product
built without type errors.
``` sh
$ perl -pi.bak -e 's/DigestAlgorithmEnum\._/DigestAlgorithmEnum.HttpWwwW3Org/' $(rg -l 'DigestAlgorithmEnum\.' src/)
```
# Testing
You can validate that these items have changed by finding the prefixes in the source code and
assuring yourself that every option, checkbox, or radio associated with them is populated correctly.
# User documentation changes required.
None.
# Developer documentation changes required.
None.
* main: (65 commits)
stages/redirect: fix query parameter when redirecting to flow (#12750)
website/integrations: cloudflare-access: refactor (#12663)
sources/kerberos: handle principal expire time (#12748)
lifecycle: build binary dependencies which link against SSL directly (#12724)
website/docs: style guide: document styling preferences for URLs (#12715)
website/integrations: nextcloud: fix broken link (#12744)
core: bump selenium from 4.27.1 to 4.28.0 (#12745)
lifecycle: move AWS CFN generation to lifecycle and fix CI (#12743)
core: search users' attributes (#12740)
web/components: ak-number-input: add support for min (#12703)
website/integrations: nextcloud: fix url for "disable username changes" (#12725)
core: bump pytest-github-actions-annotate-failures from 0.2.0 to 0.3.0 (#12735)
website: bump katex from 0.16.11 to 0.16.21 in /website (#12731)
web: bump katex from 0.16.11 to 0.16.21 in /web (#12730)
website/integrations: Fix URL for authentik installation instead of mobilizon installation (#12729)
core: bump debugpy from 1.8.11 to 1.8.12 (#12718)
core: bump ruff from 0.9.1 to 0.9.2 (#12717)
core: bump webauthn from 2.4.0 to 2.5.0 (#12719)
core: bump structlog from 24.4.0 to 25.1.0 (#12720)
website/integrations: all: install -> installation (#12676)
...
* website/integrations: cloudflare-access: rename
A .mdx file is not needed for this integration. As a result, it has been renamed
* website/integrations: cloudflare access: refactor main document
* website/integrations: cloudflare-access: lint
* Update website/integrations/services/cloudflare-access/index.md
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: 4d62 <git@sdko.org>
* website/integrations: all: install -> installation (#12676)
* website/integrations: all: install -> installation
* fix for new integr
Signed-off-by: 4d62 <git@sdko.org>
---------
Signed-off-by: 4d62 <git@sdko.org>
* website/integrations: cloudflare-access: rename
A .mdx file is not needed for this integration. As a result, it has been renamed
---------
Signed-off-by: 4d62 <git@sdko.org>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
* website/integrations: pgadmin: refactor
Refactors the pgAdmin integration documentation, makes it match existing style guide, and adds subsection for configuration for containerized deployments
* website/integrations: pgadmin: lint
Lints refactored documentation page
* Update website/integrations/services/pgadmin/index.md
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: 4d62 <git@sdko.org>
* website/integrations: pgadmin: updates note
Adds back "based on" note with updated versions
* website/integrations: pgadmin: specify strict/regex rediect uri
Not sure on wording tho
* website/integrations: pgadmin: add configuration validation step
Adds configuration validation step. Log out, log back in with authentik. Button on login page
* website/integrations: pgadmin: fix redirect uri
Fixes incorrect redirect uri introduced during refactor. Probably forgot to copy slug or something. Important thing is that it's fixed
Signed-off-by: 4d62 <git@sdko.org>
* website/integrations: pgadmin: fix another stupidity I probably made
Glorious https://img.sdko.org/u/0k3f46.png
Signed-off-by: 4d62 <git@sdko.org>
---------
Signed-off-by: 4d62 <git@sdko.org>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website docs for docker outpost integration
- Changed the docker socket proxy link to point to a better and more maintained solution.
- Changed permissions to include System/Info.
- Added a section on how to connect to a docker socket proxy.
Signed-off-by: itskagee <17406594+itskagee@users.noreply.github.com>
* add description for System Info permission
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: itskagee <17406594+itskagee@users.noreply.github.com>
* website/docs: updated docker outpost integration for docker socket proxies
- Added additional information regarding docker socket proxies.
- Changed the layout to better present said information.
* Update website/docs/add-secure-apps/outposts/integrations/docker.md
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
---------
Signed-off-by: itskagee <17406594+itskagee@users.noreply.github.com>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Update index.md
The scope needs to include 'profile' for Komga to be able to retrieve the 'preferred_username'.
Signed-off-by: SeeJayEmm <chris@threesheets.org>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* This (temporary) change is needed to prevent the unit tests from failing.
\# What
\# Why
\# How
\# Designs
\# Test Steps
\# Other Notes
* Revert "This (temporary) change is needed to prevent the unit tests from failing."
This reverts commit dddde09be5.
* web: adjust spacing issue for the login container
# What
Replaces the `space-evenly` flexbox instruction with `space-between`. `space-evenly` introduced
whitespace in column mode that pushed visible content off the page by introducing new margins inside
the flex container, which made content pushed around by those margins inaccessable via scrolling.
`space-between` creates the same desired effect, but with the margins top and bottom of the flexbox
column controlled by the parent container, which gives both more control and more suitable layout
handling.
# Links:
- Zendesk Ticket: [Tall Prompts/Flows cut off on
Safari](https://authentiksecurityinc.zendesk.com/agent/tickets/186). (This link is only visible to
Authentik employees. Sorry.)
* web/admin: migrate user interface and stop impersonation to nav bar
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* move version diff to banner
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* make click on backdrop close about modal
just for you @rissson
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* This (temporary) change is needed to prevent the unit tests from failing.
\# What
\# Why
\# How
\# Designs
\# Test Steps
\# Other Notes
* Revert "This (temporary) change is needed to prevent the unit tests from failing."
This reverts commit dddde09be5.
* web: fix error handling bug in ui
# What
When I converted all of the Provider forms over to a unified structure, the RAC form
stood out as one that couldn't be directly converted, so two copies were retained.
The error handling was updated to a new format, but this one bit of older handling
was missed.
For now, we're going back to using `Record<string, string>` for errors, to stay as
close to the `./admin/providers/` style of handling.
# Testing
This error prevented the RAC Provider form from loading in the wizard. Seeing that it works in the
wizard should be sufficient.
feat(doc): update argocd oidc doc
Add `signing_key` to terraform example as it is needed for ArgoCD. They require a RS256 key and without it you get a HS256 key
Signed-off-by: ImOverlord <9958853+ImOverlord@users.noreply.github.com>
* main:
website: revise full development environment instructions (#12638)
website: bump typescript from 5.7.2 to 5.7.3 in /website (#12620)
website: bump aws-cdk from 2.174.1 to 2.175.0 in /website (#12621)
ci: bump docker/setup-qemu-action from 3.2.0 to 3.3.0 (#12622)
core: bump twilio from 9.4.1 to 9.4.2 (#12623)
core: bump python-kadmin-rs from 0.5.2 to 0.5.3 (#12624)
core: bump ruff from 0.8.6 to 0.9.0 (#12625)
core: bump pydantic from 2.10.4 to 2.10.5 (#12626)
core: bump google-api-python-client from 2.157.0 to 2.158.0 (#12628)
core: bump goauthentik.io/api/v3 from 3.2024121.3 to 3.2024122.1 (#12629)
web: bump API Client version (#12617)
release: 2024.12.2 (#12615)
website/docs: prepare 2024.12.2 release notes (#12614)
providers/saml: fix invalid SAML Response when assertion and response are signed (#12611)
core: fix error when creating new user with default path (#12609)
rbac: permissions endpoint: allow authenticated users (#12608)
website/docs: update customer portal (#12603)
website/docs: policy for email whitelist: modernize (#12558)
* website: revise full development environment instructions
Updates the full development environment instructions to make it clear you *will* need both
Docker and Golangci-Lint installed.
Adds the `poetry-plugin-shell` requirement, now that Poetry requires it.
Updates the per-platform development environment requirements to have a Linux-specific section,
and update the MacOS section to include poetry-plugin-shell and golangci-lint
Moves the instructions on what to do before committing to the bottom of the document; its location
was confusing and didn't clarify what steps were to be taken in what order.
Includes the instruction that, for a first-time run, you must run `make migrate` and `make gen` or
the TS-API won't be built, and in turn the WebUI build would otherwise fail.
We still need instructions for Windows.
* Prettier had opinions.
* Format error: "macOS," not "MacOS"
* Fixed some typos and cleaned up some prompts.
* Fixed 'under windows' -> 'on Windows'
* providers/saml: fix invalid SAML Response when assertion and response are signed
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* validate against schema too
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* website/docs: policy for email whitelist: revamp
Updates the documentation to add an expression for source authentication. Then, it fixes the existing expression to work with authentik 2024.12.1 . Finally, the documentation page it-self is cleaned up and touched up.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/docs: policy for email whitelist: lowercase title
Sets the title back to being lowercase, oops
Signed-off-by: 4d62 <github-user@sdko.org>
* website/docs: customize: whatever-title-i-put-before: lint
Lints the code with prettier.
* remind me to not run npx prettier --write website/docs/
* suggestions
* Update website/docs/customize/policies/expression/whitelist_email.md
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: 4d62 <git@sdko.org>
* Update website/docs/customize/policies/expression/whitelist_email.md
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
---------
Signed-off-by: 4d62 <github-user@sdko.org>
Signed-off-by: 4d62 <git@sdko.org>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
* main:
lib: add expression helper ak_create_jwt to create JWTs (#12599)
api: cleanup owner permissions (#12598)
website: bump aws-cdk from 2.174.0 to 2.174.1 in /website (#12593)
core: bump aws-cdk-lib from 2.174.0 to 2.174.1 (#12594)
website/integrations: portainer: group config steps (#12548)
translate: Updates for file web/xliff/en.xlf in fi (#12586)
translate: Updates for file locale/en/LC_MESSAGES/django.po in fi (#12584)
website/docs: fix Nginx redirection example (#12561)
* Translate web/xliff/en.xlf in fi
100% translated source file: 'web/xliff/en.xlf'
on 'fi'.
* Translate web/xliff/en.xlf in fi
100% translated source file: 'web/xliff/en.xlf'
on 'fi'.
* Translate web/xliff/en.xlf in fi
100% translated source file: 'web/xliff/en.xlf'
on 'fi'.
* Translate web/xliff/en.xlf in fi
100% translated source file: 'web/xliff/en.xlf'
on 'fi'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
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>
* main:
core: bump golang.org/x/oauth2 from 0.24.0 to 0.25.0 (#12571)
website: bump the docusaurus group in /website with 9 updates (#12569)
core: bump github.com/coreos/go-oidc/v3 from 3.11.0 to 3.12.0 (#12572)
core: bump ruff from 0.8.5 to 0.8.6 (#12573)
ci: release: fix AWS cfn template permissions (#12576)
translate: Updates for file web/xliff/en.xlf in fr (#12578)
translate: Updates for file locale/en/LC_MESSAGES/django.po in fr (#12577)
sources/kerberos: authenticate with the user's username instead of the first username in authentik (#12497)
website/integrations: Fix deprecated terraform ressource authentik_scope_mapping in docs (#12554)
website/user-sources Fix Free IPA docs page (#12549)
core: bump aws-cdk-lib from 2.173.4 to 2.174.0 (#12574)
website/integrations: semaphore: fix formatting (#12567)
website: bump aws-cdk from 2.173.4 to 2.174.0 in /website (#12570)
website/integrations: Update Frappe Application index.md (#12527)
website: add api reference docs to redirect file (#12551)
* website/integrations/komga: add integration to sidebar
Adds the Komga integration to the sidebar
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: main body
Rewrite previous documentation. Update YML to new format as per the example in the [advanced configuration documentation](https://komga.org/docs/installation/oauth2/#advanced-configuration). Just a few changes
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: add user-name-attribute warning & change default
Updates the default `user-name-attribute` from `sub` to `preferred_username` (I would assume that's what users prefer if there's collaboration, idk) & adds a warning similar to what I did in that latest Mastodon MR.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: fix
Fixes markdown for service link and updates `authentik.company` placeholder.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: cleanup phrasing
Restructures the "authentik configuration" section and updates the first sentence of the "Komga configuration" section
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: lint
Lints modified file with Prettier.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: fix bold elements
Accidentally removed bold from step 1 of "authentik configuration". This fixes the issue.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: remove hyphen from yml
Others don't have it so this one should not
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: komga: Address review comments
Addresses comments & applies suggestions from the first review round.
---------
Signed-off-by: 4d62 <github-user@sdko.org>
Each Cloudflare Access company has a subdomain of `cloudflareaccess.com`. As a result, `cloudflareaccess.com` should be hardcoded into the documentation and only the company subdomain changes.
Signed-off-by: 4d62 <github-user@sdko.org>
By hardcoding the version to 100 with `?ver=100`, the user will get an outdated introduction documentation page. Removing that parameter results in a redirection to version 120, which is more recent. Small QOL change.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: init
Adds the version proposed in 8ac6761920/website/integrations/services/chronograf/index.md .
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: start cleanup
Adds a `sidebar_label`, updates the start of the documentation to the follow the template, and updates `service.company` to `chronograf.company` in the preparation documentation.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: add to sidebar
Adds the integration to the `sidebarsIntegration.js` file.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: main body
Rewrite most of the documentation, cleanup unneeded bits, and update format.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: finishing touches
This PR is now ready for review. Cleans up sentence structure, grammar, and visual stuff.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: lint
Links modified file with prettier.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: add `USE_ID_TOKEN=true`
Adds `USE_ID_TOKEN=true` to the list of needed environment following this comment in the initial merge request: https://github.com/goauthentik/authentik/pull/7766#issuecomment-1951393510
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: chronograf: apply review suggestions
Applies suggestions from the first review round
---------
Signed-off-by: 4d62 <github-user@sdko.org>
Docs: New "Whats Up Docker" URL
"Whats up docker" got renamed and has a new github website.
Signed-off-by: RogueThorn <DunklerPhoenix@users.noreply.github.com>
* main: (118 commits)
outposts: fix version label (#12486)
web: only load version context when authenticated (#12482)
core: bump goauthentik.io/api/v3 from 3.2024120.2 to 3.2024121.2 (#12478)
ci: bump helm/kind-action from 1.11.0 to 1.12.0 (#12479)
web: fix build dev build (#12473)
root: fix dev build version being invalid semver (#12472)
internal: fix missing trailing slash in outpost websocket (#12470)
web: bump API Client version (#12469)
admin: monitor worker version (#12463)
core: bump jinja2 from 3.1.4 to 3.1.5 (#12467)
web: bump API Client version (#12468)
release: 2024.12.1 (#12466)
web: misc fixes for admin and flow inspector (#12461)
website/docs: 2024.12.1 release notes (#12462)
core: bump goauthentik.io/api/v3 from 3.2024120.1 to 3.2024120.2 (#12456)
core: bump urllib3 from 2.2.3 to 2.3.0 (#12457)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#12454)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#12453)
translate: Updates for file web/xliff/en.xlf in zh-Hans (#12455)
translate: Updates for file web/xliff/en.xlf in zh_CN (#12458)
...
* 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'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* 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'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* web: fix Flash of Unstructured Content while SearchSelect is loading from the backend
Provide an alternative, readonly, disabled, unindexed input object with the text "Loading...", to be
replaced with the _real_ input element after the content is loaded.
This provides the correct appearance and spacing so the content doesn't jiggle about between the
start of loading and the SearchSelect element being finalized. It was visually distracting and
unappealing.
* web: comment on state management in API layer, move file to point to correct component under test.
* web: test for flash of unstructured content
- Add a unit test to ensure the "Loading..." element is displayed correctly before data arrives
- Demo how to mock a `fetchObjects()` call in testing. Very cool.
- Make distinguishing rule sets for code, tests, and scripts in nightmare mode
- In SearchSelect, Move the `styles()` declaration to the top of the class for consistency.
- To test for the FLOUC issue in SearchSelect.
This is both an exercise in mocking @beryju's `fetchObjects()` protocol, and shows how we can unit
test generic components that render API objects.
* web: interim commit of the basic sortable & selectable table.
* web: added basic unit testing to API-free tables
Mostly these tests assert that the table renders and that the content we give it
is where we expect it to be after sorting. For select tables, it also asserts that
the overall value of the table is what we expect it to be when we click on a
single row, or on the "select all" button.
* web: finalize testing for tables
Includes documentation updates and better tests for select-table.
* Provide unit test accessibility to Firefox and Safari; wrap calls to manipulate test DOMs directly in a browser.exec call so they run in the proper context and be await()ed properly
* web: repeat is needed to make sure sub-elements move around correctly. Map does not do full tracking.
* web: Update HorizontalLightComponent to accurately convey its value "upwards."
* interim commit, gods, the CSS is finally working.
* web: update
Got the binding editor in. The tests complete. Removed sonarjs.
* web: fixed tests to complete.
* web: fixed round-trip between binding list and binding editor. Fixed 'delete'. TODO: Fix error reporting on home page, the edit button is ugly, and the height is off somehow, but I'm not yet sure how. I just know it bugs my eyes.
* core: add support to set policy bindings in transactional endpoint
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* improve permission checks
especially since we'll be using the wizard as default in the future, it shouldn't be superuser only
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* web: update api-less tables
- Replace `th` with `td` in `thead` components. Because Patternfly.
- Add @beryju's styling to the tables, which make it much better looking
* web: wizard for applications, now with bindings!
- Add policy bindings to the application wizard
- Restructures the Wizard base code.
- ak-wizard-steps holds the steps and listens for NavigationRequest events to move
from one step to the next.
- WizardStep is a base class (no component registration provided) that provides the *whole frame*,
not just the form. It receives the navigation content for the sidebar from ak-wizard-steps,
and provides the styling for the header, footer, sidebar, and main form. It has abstractions
for `buttons`, `renderMain()`, `handleButton()`, `handleEnable()`, in a section well-marked as
"Public API". Steps inherit from this class.
Conceptually:
- A wizard is a series of pages ("steps") with a distinct beginning and end, linked in a series,
to complete a task.
- Later steps in the series are inaccessible until an earlier steps has granted access to it.
- Access is predicated on the earlier step being complete and valid. The developer is responsible
for determining what "complete and valid" means.
- The series is visible, giving the customer a sense of how much effort is needed to complete the
task.
- A parent object maintains (and can modify as needed) the list of steps. It *can* maintain the
information being collected from the user. Alternatively, that information can be kept in each
step.
Details:
- Keeping with the Lit paradigm, "requests to change the system flow up, information changed by
valid requests flows down."
- The information flows up using events: WizardNavigation, WizardUpdate, WizardClose.
- The information flows down using properties.
- ak-application-wizard-main holds the list of steps, providing a unique slot name for each.
- It maintains the ApplicationWizardState object.
- ApplicationWizardStep inherits from WizardStep and provides:
- A means of extraction information from forms
- A convenience method for updating the ApplicationWizardState object, enabling future steps, and
navigating to a future step, in the correct order.
- A method for cleaning error from the error reporting mechanism as the user navigates from an
error-handling state.
- The title, description, and cancelability of the wizard.
- Steps:
- step: Handles the application. A good starting point for understanding the point of
the Wizard. Check the `handleButton()` method to understand how we enable or disable access to
future steps.
- provider-choice: Just a list. Shows validation without the form.
- provider: Uses a *very* esoteric Lit feature, `unsafeStaticTag`, which enables
the display to show anything that conforms to the expectations of ApplicationWizardProviderForm.
- ApplicationWizardProviderForm repeats some of the base of ApplicationWizardStep, but allows us
to provide multiple variants on a single form without having to create separate steps for each
form.
- The forms (`provider-for-ldap`, `provider-for-radius`) are therefore *just* the form and any
fetchers needed to populate it.
- bindings: Shows the table of bindings. Has a custom display for "This table is empty."
- edit-binding: Showcase for the `SearchSelectEZ` configuration format. Has an override on the
`handleButton` feature to figure out which binding is about to be overridden. Is also a
`.hidden` page; it doesn't show up on the navigation sidebar, as is only navigable-to by buttons
not associated with the button bar at the bottom.
- submit: Has a lot of machinery of state: Reviewing with errors, reviewing without errors,
running submission, and success. Uses `ts-pattern` a lot to make sure the state/request pairs
make sense.
The key insight is that, even though a wizard is a series in order, that order can't be simply
maintained in a list. The parent needs various strategies for swapping pages in and out of the
sequence, while still maintaining a coherent idea of "flow" and providing the visual cues the user
needs to feel confident that the work can be completed and completed quickly. The entire mechanism
for using an array and index to navigate, with index numbering, blocked the implementation of the
bindings pages.
One thing led to another. *Sigh* Really wish this hadn't been as much of a mess as it turned out.
The end result is pretty good, though. Definitely re-usable.
One important feature to note is that the wizard is *not* tied to the ModalButton object; it's
simply embedded in a modal as-needed. This allows us to use wizards in other places, such as just
being in a DIV, or just a page on its own.
* web: rollback dependabot "upgrade" that broke testing
Dependabot rolled us into WebdriverIO 9. While that's probably the
right thing to do, right now it breaks out end-to-end tests badly.
Dependabot's mucking with infrastructure should not be taken lightly,
especially in cases when the infrastructure is for DX, not UX, and
doesn't create a bigger attack surface on the running product.
* web: small fixes for wdio and lint
- Roll back another dependabot breaking change, this time to WebdriverIO
- Remove the redundant scripts wrapping ESLint for Precommit mode. Access to those modes is
available through the flags to the `./web/scripts/eslint.mjs` script.
- Remove SonarJS checks until SonarJS is ESLint 9 compatible.
- Minor nitpicking.
* web: not sure where all these getElement() additions come from; did I add them? Anyway, they were breaking the tests, they're a Wdio9-ism.
* package-lock.json update
* web: small fixes for wdio and lint
**PLEASE** Stop trying to upgrade WebdriverIO following Dependabot's instructions. The changes
between wdio8 and wdio9 are extensive enough to require a lot more manual intervention. The unit
tests fail in wdio 9, with the testbed driver Wdio uses to compile content to push to the browser
([vite](https://vitejs.dev) complaining:
```
2024-09-27T15:30:03.672Z WARN @wdio/browser-runner:vite: warning: Unrecognized default export in file /Users/ken/projects/dev/web/node_modules/@patternfly/patternfly/components/Dropdown/dropdown.css
Plugin: postcss-lit
File: /Users/ken/projects/dev/web/node_modules/@patternfly/patternfly/components/Dropdown/dropdown.css
[0-6] 2024-09-27T15:30:04.083Z INFO webdriver: BIDI COMMAND script.callFunction {"functionDeclaration":"<Function[976 bytes]>","awaitPromise":true,"arguments":[],"target":{"context":"8E608E6D13E355DFFC28112C236B73AF"}}
[0-6] Error: Test failed due to following error(s):
- ak-search-select.test.ts: The requested module '/src/common/styles/authentik.css' does not provide an export named 'default': SyntaxError: The requested module '/src/common/styles/authentik.css' does not provide an export named 'default'
```
So until we can figure out why the Vite installation isn't liking our CSS import scheme, we'll
have to soldier on with what we have. At least with Wdio 8, we get:
```
Spec Files: 7 passed, 7 total (100% completed) in 00:00:19
```
* Forgot to run prettier.
* web: small fixes for elements and forms
- provides a new utility, `_isSlug_`, used to verify a user input
- extends the ak-horizontal-component wrapper to have a stronger identity and available value
- updates the types that use the wrapper to be typed more strongly
- (Why) The above are used in the wizard to get and store values
- fixes a bug in SearchSelectEZ that broke the display if the user didn't supply a `groupBy` field.
- Adds `@wdio/types` to the package file so eslint is satisfied wdio builds correctly
- updates the end-to-end test to understand the revised button identities on the login page
- Running the end-to-end tests verifies that changes to the components listed above did not break
the semantics of those components.
* Prettier had opinions
* Fix the oauth2 provider test.
* web: fix oauth2 provider. Fix resolutions in package-lock.json
* Provide an error field for the form errors on the OAuth2 form. Unfortunately, this does not solve the general problem that we have a UX issue with which stage bindings to show where now that we've introduced the Invalidation Stage.
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* web/admin: provide default invalidation flows for LDAP provider.
* admin/web: the default invalidation flows for LDAP and Radius are different from the others.
* Updating the SAML Wizard page to correspond to the provider page. *This is an intermediate fix to get the tests passing. It will probably be mooted with the next revision.*
* Making progress...
* web/admin: provider formectomy complete
* fix minor issues
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* custom ordering for provider types
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix css
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix missing PFBase causing wrong font
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix missing card for type select
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix padding on last page
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* add card to bindings
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* web/element/wizard: fix the CSS cascade so the modifications to the title display don't affect the wiard header.
* web/elements/wizard: fix logic on unavailable / available / current indicators in nav bar.
* Debugging code is not needed.
* web: small visual fixes
As requested by reviewers:
- Fixed the height to 75% of the viewport
- Put 1rem of whitespace between the hint label and the Wizard startup button.
* web: disable lint check for cAsEfUnNy AtTrIbUtE nAmEs.
* Apply suggestions from code review
Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Signed-off-by: Jens L. <jens@beryju.org>
* rework title
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>
Signed-off-by: Jens L. <jens@beryju.org>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Translate locale/en/LC_MESSAGES/django.po in it
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'it'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
* Translate locale/en/LC_MESSAGES/django.po in es
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'es'.
---------
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Update Home Assistant integration docs
Extra care should be taken to proxy only /auth endpoint through Authentik.
Signed-off-by: Sergii Bogomolov <sergii@bogomolov.io>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
* main:
flows: better test stage's challenge responses (#12316)
enterprise/stages/authenticator_endpoint_gdtc: don't set frame options globally (#12311)
stages/identification: fix invalid challenge warning when no captcha stage is set (#12312)
website/docs: prepare 2024.10.5 release notes (#12309)
website: bump nanoid from 3.3.7 to 3.3.8 in /website (#12307)
flows: silent authz flow (#12213)
root: use healthcheck in depends_on for postgres and redis (#12301)
ci: ensure mark jobs always run and reflect correct status (#12288)
enterprise: allow deletion/modification of users when in read-only mode (#12289)
web/flows: resize captcha iframes (#12260)
* flows: add FlowPlan .to_redirect helper to redirect to flow executor
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* flows: add initial silent flow executor
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* more cleanup
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* refactor and add tests
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* how'd that happen
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix most tests
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* don't set allowed_silent_types if we cant transmit data via URL
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix stage not being set early enough
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix OAuthDeviceCodeFinishStage being marked able-to-be-skipped-to when it is not
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* fix more tests
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* dont skip on rac for now
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* add support for SAML redirect
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Docker Compose Updates Healthcheck
The Healthcheck is not used for the depends_on option. This change ensures all dependencies are all ready to work before starting worker and server container.
Signed-off-by: Kaindl Network <82705244+kaindlnetwork@users.noreply.github.com>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* web: streamline CaptchaStage
# What
This commit:
1. Replaces the mass of `if () { if() { if() } }` with two state tables:
- One for `render()`
- One for `renderBody()`
2. Breaks each Captcha out into "interactive" and "executive" versions
3. Creates a handler table for each Captcha type
4. Replaces the `.forEach` expression with a `for` loop.
5. Move `updated` to the end of the class.
6. Make captchDocument and captchaFrame constructed-on-demand with a cache.
7. Remove a lot of `@state` handlers
8. Give IframeMessageEvent its own type.
9. Removed `this.scriptElement`
10. Replaced `window.removeEventListener` with an `AbortController()`
# Why
1. **Replacing `if` trees with a state table.** The logic of the original was really hard to follow.
With the state table, we can clearly see now that for the `render()` function, we care about the
Boolean flags `[embedded, challenged, interactive]` and have appropriate effects for each. With
`renderBody()`, we can see that we care about the Boolean flags `[hasError, challenged]`, and can
see the appropriate effects for each one.
2. (and 3.) **Breaking each Captcha clause into separate handlers.** Again, the logic was convoluted,
when what we really care about is "Does this captcha have a corresponding handler attached to
`window`, and, if so, should we run the interactive or executive version of it?" By putting all
of that into a table of `[name, challenge, execute]`, we can clearly see what's being handled
when.
4. **Replacing `foreach()` with `for()`**: [You cannot use a `forEach()` with async
expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#:~:text=does%20not%20wait%20for%20promises).
If you need asynchronous behavior in an ordered loop, `for()` is the safest way to handle it; if
you need asynchronous behavior from multiple promises, `Promise.allSettled(handlers.map())` is
the way to go.
I tried to tell if this function *meant* to run every handler it found simultaneously, or if it
meant to test them in order; I went with the second option, breaking and exiting the loop once a
handler had run successfully.
5. **Reordered the code a bit**. We're trying to evolve a pattern in our source code: styles,
properties, states, internal variables, constructor, getters & setters that are not `@property()`
or `@state()`, DOM-related lifecycle handlers, event handlers, pre-render lifecycle handlers,
renderers, and post-render lifecycle handlers. Helper methods (including subrenderers) go above
the method(s) they help.
6. **Constructing Elements on demand with a cache**. It is not guaranteed that we will actually need
either of those. Constructing them on demand with a cache is both performant and cleaner.
Likewise, I removed these from the Lit object's `state()` table, since they're constructed once
and never change over the lifetime of an instance of `ak-stage-captcha`.
9. **Remove `this.scriptElement`**: It was never referenced outside the one function where it was used.
10. **Remove `removeEventListener()`**: `AbortController()` is a bit more verbose for small event
handler collections, but it's considered much more reliable and much cleaner.
* Didn't save the extracted ListenerController.
* main:
website/docs: add page about the Cobalt pentest (#12249)
core: bump aws-cdk-lib from 2.171.1 to 2.172.0 (#12296)
website: bump aws-cdk from 2.171.1 to 2.172.0 in /website (#12295)
core: bump sentry-sdk from 2.19.1 to 2.19.2 (#12297)
core: bump coverage from 7.6.8 to 7.6.9 (#12299)
core, web: update translations (#12290)
root: fix override locale only if it is not empty (#12283)
translate: Updates for file web/xliff/en.xlf in fr (#12276)
core: bump twilio from 9.3.7 to 9.3.8 (#12282)
website: bump path-to-regexp and express in /website (#12279)
core: bump sentry-sdk from 2.19.0 to 2.19.1 (#12280)
core: bump ruff from 0.8.1 to 0.8.2 (#12281)
website/docs: fix lint (#12287)
website/integrations: netbird: fix redirect URI regex (#12284)
* main:
web: simplify `?inline` handler for Storybook (#12246)
website/docs: Update Traefik middleware example to reflect latest version of Traefik (#12267)
website/docs: add . in https://netbird.company* (#12166)
core: bump goauthentik.io/api/v3 from 3.2024104.1 to 3.2024104.2 (#12263)
core: bump pydantic from 2.10.2 to 2.10.3 (#12262)
core: bump github.com/getsentry/sentry-go from 0.29.1 to 0.30.0 (#12264)
core, web: update translations (#12268)
website: bump @types/react from 18.3.12 to 18.3.13 in /website (#12269)
website: bump prettier from 3.4.1 to 3.4.2 in /website (#12270)
ci: bump actions/attest-build-provenance from 1 to 2 (#12271)
core: bump golang.org/x/sync from 0.9.0 to 0.10.0 (#12272)
core: bump django from 5.0.9 to 5.0.10 (#12273)
core: bump webauthn from 2.3.0 to 2.4.0 (#12274)
website/integrations: add The Lounge (#11971)
core: bump python-kadmin-rs from 0.3.0 to 0.4.0 (#12257)
root: fix health status code (#12255)
ci: fix should_push always being false (#12252)
web: bump API Client version (#12251)
providers/oauth2: Add provider federation between OAuth2 Providers (#12083)
website/integrations: mastodon: set correct uid field (#11945)
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* web: simplify `?inline` handler for Storybook
# What
- Revise the `?inline` handler for Storybook
- Enable headless test runs of E2E
- Reduce headless testing to single instances
# Why
## `?inline` handling
Vite-for-Storybook-for-Web-Components has a requirement that all component CSS imports be
suffixed with an `?inline` argument so Vite knows to put the CSS into the component and
not inject it into the document head.
This `?inline` argument is an implementation detail of Storybook. It would be irrelevant clutter
added to our codebase. We were using `rollup-plugin-modify` to find every instance of an
import-to-component, but the implementation was clunky and involved scanning the source code
manually.
`rollup-plugin-modify` version 3 has regular expressions and takes a function as an argument. This
allows us to generate the CSS import maps on-the-fly when Storybook is run, eliminating a fragile
build step. We can also remove the source code scanner for those imports.
## Changes to testing
It's just nice to be able to run the E2E tests headlessly, without them eating up your screen real
estate, flashing, or grabbing your mouse.
WebdriverIO's testing of Web Components is new and, as we've seen, a bit cranky. The WebdriverIO
team currently recommends not running the tests in parallel. We only have about 70 tests so far, and
they're fairly speedy, especially when you don't have to invoke a browser session for every test.
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* Start of dual select revision process.
* Progress.
* Made the RuleFormHelper's dualselect conform.
* Providers and Selectors harmonized for sources.
* web/bugfix/dual-select-full-options
# What
- Replaces the dual-select "selected" list mechanism with a more comprehensive (if computationally
expensive) version that is correct.
# How
In the previous iteration, each dual select controller gets a *provider* and a *selector*; the
latter keeps the keys of all the objects a specific instance may have, and marks those objects as
"selected" when they appear in the dual-selects "selected" panel.
In order to distinguish between "selected on the existing instance" and "selected by the user," the
*selector* only runs at construction time, creating a unified "selected" list; this is standard and
allows for a uniform experience of adding and deleting items. Unfortunately, this means that the
"selected" items, because their displays are crafted bespoke, are only chosen from those available
at construction. If there are selected items later in the paginated collection, they will not be
marked as selected.
This defeats the purpose of having a paginated multi-select!
The correct way to do this is to retrieve every item pased to the *selector* and use the same
algorithm to craft the views in both windows.
For every instance of Dual Select with dynamic selection, the *provider* and *selector* have been
put in a separate file (usually suffixed as a `*FormHelper.ts` file); the algorithm by which an item is
crafted for use by DualSelect has been broken out into a small function (usually named
`*toSelect()`). The *provider* works as before. The *selector* takes every instance key passed to it
and runs a `Promise.allSettled(...*Retrieve({ uuid: instanceId }))` on them, mapping them onto the
`selected` collection using the same `*toSelect()`, so they resemble the possibilities in every way.
# Lessons
This exercise emphasizes just how much sheer *repetition* the Django REST API creates on the client
side. Every Helper file is a copy-pasta of a sibling, with only a few minor changes:
- How the objects are turned into displays for DualSelect
- The type and calls being used;
- The field on which retrival is defined
- The defaulting rule.
There are 19 `*FormHelper` files, and each one is 50 lines long. That's 950 lines of code.
Of those 950 lines of code, 874 of those lines are *complete duplicates* of those in the other
FormHelper files. Only 76 lines are unique.
This language really needs macros. That, or I need to seriously level up my Typescript and figure
out how to make this whole thing a lot smarter.
* order fields by field_key and order
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* web: fix selector warnings in WebdriverIO
Despite the [promises made](https://webdriver.io/docs/selectors#deep-selectors) by the WebdriverIO
team, we are still getting a lot of warnings and "falling back to pre-BIDI behavior" messages
when we attempt to access ShadowDOM contexts without the "pierce" (`>>>`) syntax. So I've put
it back wherever it occurred and the system now uses the BIDI controllers correctly.
* web: update to Chromedriver 131 breaks a lot of stuff
This annoying bit of janitorial work cleans up the failure messages and resolution bugs
that arose when updating to the latest version of Chrome. Keeping track of all the
weakness and breakage while the in-browser testing teams figure out how to live with
the ShadowDOM is just really time-consuming.
* main:
website/docs: Add note about single group per role (#12169)
website/docs: Fix documentation about attribute merging for indirect membership (#12168)
root: support running authentik in subpath (#8675)
docs: fix contribution link (#12189)
core, web: update translations (#12190)
core: Bump msgraph-sdk from 1.12.0 to 1.13.0 (#12191)
core: Bump selenium from 4.26.1 to 4.27.0 (#12192)
This change adds an admonition to document the fact that every role can only ever be assigned to a single group at the same time. Since this is surprising based on a traditional understanding of role-based models, I've decided to make this a `:::warning`.
I'm undecided on the best place for this information, but for now, decided on putting it into the context of the action that can fail: assigning a role to a group.
While this does not close the issue, it documents this behavior to at least address the "needs documentation" aspect of #10983 .
Signed-off-by: Zuri Klaschka <pklaschka@users.noreply.github.com>
While for role memberships, it is true that they are only applied for _direct_ memberships, this does not appear to be the case for attributes (which is good as this also follows the "Hierarchy" system documented in the same file).
In terms of the implementation, this is the case due to the call to `all_groups()` in 3d5a189fa7/authentik/core/models.py (L312-L313), introduced in https://github.com/goauthentik/authentik/pull/6017. Looking through the files in there, it is clear that this line in the documentation is from before that point: 95e60a035d/website/docs/user-group/group.md (L15).
tl;dr: the documentation was correct before #6017, but is now out of date. This change fixes that.
Signed-off-by: Zuri Klaschka <pklaschka@users.noreply.github.com>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* docs: fix link from project root to the Contributing documentation in our product.
* main:
ci: only mirror if secret is available (#12181)
root: fix database ssl options not set correctly (#12180)
core, web: update translations (#12145)
core: bump tornado from 6.4.1 to 6.4.2 (#12165)
website: bump the docusaurus group in /website with 9 updates (#12172)
website: bump typescript from 5.6.3 to 5.7.2 in /website (#12173)
ci: bump actions/checkout from 3 to 4 (#12174)
core: bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#12175)
core: bump coverage from 7.6.7 to 7.6.8 (#12176)
core: bump ruff from 0.7.4 to 0.8.0 (#12177)
* main: (33 commits)
ci: mirror repo to internal repo (#12160)
core: bump goauthentik.io/api/v3 from 3.2024102.2 to 3.2024104.1 (#12149)
core: bump debugpy from 1.8.8 to 1.8.9 (#12150)
core: bump webauthn from 2.2.0 to 2.3.0 (#12151)
core: bump pydantic from 2.10.0 to 2.10.1 (#12152)
translate: Updates for file web/xliff/en.xlf in zh_CN (#12156)
translate: Updates for file web/xliff/en.xlf in zh-Hans (#12157)
core: bump sentry-sdk from 2.18.0 to 2.19.0 (#12153)
web: bump API Client version (#12147)
root: Backport version change (#12146)
website/docs: update info about footer links to match new UI (#12120)
website/docs: prepare release notes (#12142)
providers/oauth2: fix migration (#12138)
providers/oauth2: fix migration dependencies (#12123)
web: bump API Client version (#12129)
providers/oauth2: fix redirect uri input (#12122)
providers/proxy: fix redirect_uri (#12121)
website/docs: prepare release notes (#12119)
web: bump API Client version (#12118)
security: fix CVE 2024 52289 (#12113)
...
* don't push when on internal repo
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* only run certain workflows on main repo
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* add mirror
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* how tf did a tab get in there
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* ooops
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* edit to match new UI
* polished text
* more tweaks
* additional sentence about Flow Executor and link to docs
---------
Co-authored-by: Tana M Berry <tana@goauthentik.com>
we had to change these dependencies for 2024.8.x since that doesn't have invalidation flows
they also need to be changed for 2024.10 when upgrading, and these migrations don't need the invalidation flow migration at all
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Translate locale/en/LC_MESSAGES/django.po in it
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'it'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
add CSP header to files in `/media`
This fixes a security issue of stored cross-site scripting via embedding
JavaScript in SVG files by a malicious user with `can_save_media`
capability.
This can be exploited if:
- the uploaded file is served from the same origin as authentik, and
- the user opens the uploaded file directly in their browser
Co-authored-by: Jens L. <jens@goauthentik.io>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* web/bugfix/fix-reporting-in-wizard-submit
# What
- Preserves the errors locally for the Wizard, providing explanation and links to fix the issues
# Why
Just a silly mistake on my part. There shouldn't be two copies of errors (and there isn't in the BIG
PRs), but this is how it's designed right now and making the errors show up is an easy fix. In doing
so, the "hack" to move the "bad provider name" to the provider page is included.
* Updated package.json to use Chromedriver 130
* main: (28 commits)
providers/scim: accept string and int for SCIM IDs (#12093)
website: bump the docusaurus group in /website with 9 updates (#12086)
core: fix source_flow_manager throwing error when authenticated user attempts to re-authenticate with existing link (#12080)
translate: Updates for file locale/en/LC_MESSAGES/django.po in de (#12079)
scripts: remove read_replicas from generated dev config (#12078)
core: bump geoip2 from 4.8.0 to 4.8.1 (#12071)
core: bump goauthentik.io/api/v3 from 3.2024100.2 to 3.2024102.2 (#12072)
core: bump maxmind/geoipupdate from v7.0.1 to v7.1.0 (#12073)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#12074)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#12075)
translate: Updates for file web/xliff/en.xlf in zh-Hans (#12076)
translate: Updates for file web/xliff/en.xlf in zh_CN (#12077)
web/admin: auto-prefill user path for new users based on selected path (#12070)
core: bump aiohttp from 3.10.2 to 3.10.11 (#12069)
web/admin: fix brand title not respected in application list (#12068)
core: bump pyjwt from 2.9.0 to 2.10.0 (#12063)
web: add italian locale (#11958)
web/admin: better footer links (#12004)
core, web: update translations (#12052)
core: bump twilio from 9.3.6 to 9.3.7 (#12061)
...
Translate locale/en/LC_MESSAGES/django.po in de
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'de'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* First things first: save the blueprint that initializes the test runner.
* Committing to having the PKs be a string, and streamlining an event handler. Type solidity needed for the footer control.
* web/admin/better-footer-links
# What
- A data control that takes two string fields and returns the JSON object for a FooterLink
- A data control that takes a control like the one above and assists the user in entering a
collection of such objects.
# Why
We're trying to move away from CodeMirror for the simple things, like tables of what is essentially
data entry. Jens proposed this ArrayInput thing, and I've simplified it so you define what "a row"
is as a small, lightweight custom Component that returns and validates the datatype for that row,
and ArrayInput creates a table of rows, and that's that.
We're still working out the details, but the demo is to replace the "Name & URL" table in
AdminSettingsForm with this, since it was silly to ask the customer to hand-write JSON or YAML,
getting the keys right every time, for an `Array<Record<{ name: string, href: string }>>`. And some
client-side validation can't hurt.
Storybook included. Tests to come.
* Not ready for prime time.
* One lint. Other lints are still in progress.
* web: lots of 'as unknown as Foo'
I know this is considered bad practice, but we use Lit and Lit.spread
to send initialization arguments to functions that create DOM
objects, and Lit's prefix convention of '.' for object, '?' for
boolean, and '@' for event handler doesn't map at all to the Interface
declarations of Typescript. So we have to cast these types when
sending them via functions to constructors.
* web/admin/better-footer-links
# What
- Remove the "JSON or YAML" language from the AdminSettings page for describing FooterLinks inputs.
- Add unit tests for ArrayInput and AdminSettingsFooterLinks.
- Provide a property for accessing a component's value
# Why
Providing a property by which the JSONified version of the value can be accessed enhances the
ability of tests to independently check that the value is in a state we desire, since properties can
easily be accessed across the wire protocol used by browser-based testing environments.
* Ensure the UI is built from _current_ before running tests.
* core: add support to set policy bindings in transactional endpoint
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* improve permission checks
especially since we'll be using the wizard as default in the future, it shouldn't be superuser only
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* rebase, fix error response when using duplicate name in provider
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* add permission test
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* main:
providers/ldap: fix global search_full_directory permission not being sufficient (#12028)
website/docs: 2024.10.2 release notes (#12025)
lifecycle: fix ak exit status not being passed (#12024)
core: use versioned_script for path only (#12003)
core, web: update translations (#12020)
core: bump google-api-python-client from 2.152.0 to 2.153.0 (#12021)
providers/oauth2: fix manual device code entry (#12017)
crypto: validate that generated certificate's name is unique (#12015)
core, web: update translations (#12006)
core: bump google-api-python-client from 2.151.0 to 2.152.0 (#12007)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#12011)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#12010)
translate: Updates for file web/xliff/en.xlf in zh-Hans (#12012)
translate: Updates for file web/xliff/en.xlf in zh_CN (#12013)
providers/proxy: fix Issuer when AUTHENTIK_HOST_BROWSER is set (#11968)
website/docs: move S3 ad GeoIP to System Management/Operations (#11998)
website/integrations: nextcloud: add SSE warning (#11976)
* providers/ldap: fix global search_full_directory permission not being sufficient
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* use full name of permission
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* lifecycle: fix ak exit status not being passed
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* use waitstatus_to_exitcode
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* providers/oauth2: fix manual device code entry
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* make code input a char field to prevent leading 0s from being cut off
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* main: (21 commits)
web: bump API Client version (#11997)
sources/kerberos: use new python-kadmin implementation (#11932)
core: add ability to provide reason for impersonation (#11951)
website/integrations: update vcenter integration docs (#11768)
core, web: update translations (#11995)
website: bump postcss from 8.4.48 to 8.4.49 in /website (#11996)
web: bump API Client version (#11992)
blueprints: add default Password policy (#11793)
stages/captcha: Run interactive captcha in Frame (#11857)
core, web: update translations (#11979)
core: bump packaging from 24.1 to 24.2 (#11985)
core: bump ruff from 0.7.2 to 0.7.3 (#11986)
core: bump msgraph-sdk from 1.11.0 to 1.12.0 (#11987)
website: bump the docusaurus group in /website with 9 updates (#11988)
website: bump postcss from 8.4.47 to 8.4.48 in /website (#11989)
stages/password: use recovery flow from brand (#11953)
core: bump golang.org/x/sync from 0.8.0 to 0.9.0 (#11962)
web: bump cookie, swagger-client and express in /web (#11966)
core, web: update translations (#11959)
core: bump debugpy from 1.8.7 to 1.8.8 (#11961)
...
* core: add ability to provide reason for impersonation
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
* tenants api things
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
* add missing implem
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
* A tooltip needs a DOM object to determine the coordinates where it should render. A solitary string is not enough; a is needed here.
* web: user impersonation reason
To determine where to render the Tooltip content, the object associated with the Tooltip must be a DOM object with an HTML tag. A naked string is not enough; a `<span>` will do nicely here.
Also, fixed a build failure: PFSize was not defined in RelatedUserList.
* add and fix tests
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
* avoid migration change
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
* small fixes
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
---------
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
Co-authored-by: Ken Sternberg <ken@goauthentik.io>
* core: add prompt_data to auth flow (#11702)
I added the prompt_data and user_path to the auth flow. This allows us to more easily sync users details whenever they're logged in through a Source by using the Write stage, identical to an Enrolment flow.
This makes sure that mappings etc are automatically taken into consideration, and are passed to the Authentication flow.
While I was at it, I made the code consistent with the `handle_enroll` method.
Signed-off-by: Wouter van Os <wouter0100@gmail.com>
* updates
* and remove errant .py file that somwhow snuck into the PR! also removed errant api ref files remove old images
* tweak to bumb build
* tweaks
* more tweaks
* removed extraneous old settings
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* Update website/integrations/services/vmware-vcenter/index.md
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
* formatting
* tweak
* why not saved before argh
---------
Signed-off-by: Wouter van Os <wouter0100@gmail.com>
Signed-off-by: Tana M Berry <tanamarieberry@yahoo.com>
Co-authored-by: Wouter van Os <wouter0100@gmail.com>
Co-authored-by: Tana M Berry <tana@goauthentik.com>
Co-authored-by: Jens L. <jens@goauthentik.io>
* add password policy to default password change flow
This change complies with the minimal compositional requirements by
NIST SP 800-63 Digital Identity Guidelines. See
https://pages.nist.gov/800-63-4/sp800-63b.html#password
More work is needed to comply with other parts of the Guidelines,
specifically
> If the chosen password is found on the blocklist, the CSP or verifier
> [...] SHALL provide the reason for rejection.
and
> Verifiers SHALL offer guidance to the subscriber to assist the user in
> choosing a strong password. This is particularly important following
> the rejection of a password on the blocklist as it discourages trivial
> modification of listed weak passwords.
* add docs for default Password policy
* remove HIBP from default Password policy
* add zxcvbn to default Password policy
* add fallback password error message to password policy, fix validation policy
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* reword docs
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
Signed-off-by: Simonyi Gergő <28359278+gergosimonyi@users.noreply.github.com>
* add HIBP caveat
Co-authored-by: Jens L. <jens@goauthentik.io>
Signed-off-by: Simonyi Gergő <28359278+gergosimonyi@users.noreply.github.com>
* separate policy into separate blueprint
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* use password policy for oobe flow
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
* kiss
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
---------
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Simonyi Gergő <28359278+gergosimonyi@users.noreply.github.com>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Tana M Berry <tanamarieberry@yahoo.com>
* main:
website/docs: fix slug matching redirect URI causing broken refresh (#11950)
website/integrations: jellyfin: update plugin catalog location (#11948)
translate: Updates for file locale/en/LC_MESSAGES/django.po in de (#11942)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#11946)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#11947)
website/docs: clarify traefik ingress setup (#11938)
core: bump importlib-metadata from 8.4.0 to 8.5.0 (#11934)
web: bump API Client version (#11930)
root: backport version bump `2024.10.1` (#11929)
website/docs: `2024.10.1` Release Notes (#11926)
website: bump path-to-regexp from 1.8.0 to 1.9.0 in /website (#11924)
core: bump sentry-sdk from 2.17.0 to 2.18.0 (#11918)
website: bump the docusaurus group in /website with 9 updates (#11917)
core: bump goauthentik.io/api/v3 from 3.2024100.1 to 3.2024100.2 (#11915)
core, web: update translations (#11914)
* website/integrations: jellyfin: update plugin catalog location
The add repositories button is now under the Admin interface > Catalog > Gear icon. This PR reflects that change.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: jellyfin: condense steps
Reduce the number of steps from 5 to it's original number, 3.
Signed-off-by: 4d62 <github-user@sdko.org>
* website/integrations: jellyfin: add admin dashboard location
Tell the user where the admin dashboard is and how to reach it.
Signed-off-by: 4d62 <github-user@sdko.org>
---------
Signed-off-by: 4d62 <github-user@sdko.org>
Translate locale/en/LC_MESSAGES/django.po in de
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'de'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* fix API Changes in `2024.10` changelog
* add `2024.10.1` API Changes to changelog
* add changes in `2024.10.1` to changelog
* change `details` to `h3` in changelog
* main:
core: add `None` check to a device's `extra_description` (#11904)
providers/oauth2: fix size limited index for tokens (#11879)
web: fix missing status code on failed build (#11903)
website: bump docusaurus-theme-openapi-docs from 4.1.0 to 4.2.0 in /website (#11897)
translate: Updates for file locale/en/LC_MESSAGES/django.po in de (#11891)
stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#11884)
translate: Updates for file web/xliff/en.xlf in tr (#11878)
translate: Updates for file locale/en/LC_MESSAGES/django.po in tr (#11866)
core: bump google-api-python-client from 2.149.0 to 2.151.0 (#11885)
core: bump selenium from 4.26.0 to 4.26.1 (#11886)
core, web: update translations (#11896)
website: bump docusaurus-plugin-openapi-docs from 4.1.0 to 4.2.0 in /website (#11898)
core: bump watchdog from 5.0.3 to 6.0.0 (#11899)
core: bump ruff from 0.7.1 to 0.7.2 (#11900)
core: bump django-pglock from 1.6.2 to 1.7.0 (#11901)
website/docs: fix release notes to say Federation (#11889)
* main:
website: bump elliptic from 6.5.7 to 6.6.0 in /website (#11869)
core: bump selenium from 4.25.0 to 4.26.0 (#11875)
core: bump goauthentik.io/api/v3 from 3.2024083.14 to 3.2024100.1 (#11876)
website/docs: add info about invalidation flow, default flows in general (#11800)
website: fix docs redirect (#11873)
website: remove RC disclaimer for version 2024.10 (#11871)
website: update supported versions (#11841)
web: bump API Client version (#11870)
root: backport version bump 2024.10.0 (#11868)
website/docs: 2024.8.4 release notes (#11862)
web/admin: provide default invalidation flows for LDAP and Radius (#11861)
* providers/oauth2: fix size limited index for tokens
I preserved the migrations as comments so the index IDs and migration
IDs remain searchable without accessing git history.
* rename migration file to more descriptive
Translate locale/en/LC_MESSAGES/django.po in de
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'de'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* web/admin: provide default invalidation flows for LDAP provider.
* admin/web: the default invalidation flows for LDAP and Radius are different from the others.
* main: (43 commits)
core, web: update translations (#11858)
web/admin: fix code-based MFA toggle not working in wizard (#11854)
sources/kerberos: add kiprop to ignored system principals (#11852)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#11846)
translate: Updates for file locale/en/LC_MESSAGES/django.po in it (#11845)
translate: Updates for file web/xliff/en.xlf in zh_CN (#11847)
translate: Updates for file web/xliff/en.xlf in zh-Hans (#11848)
translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#11849)
translate: Updates for file web/xliff/en.xlf in it (#11850)
website: 2024.10 Release Notes (#11839)
translate: Updates for file web/xliff/en.xlf in zh-Hans (#11814)
core, web: update translations (#11821)
core: bump goauthentik.io/api/v3 from 3.2024083.13 to 3.2024083.14 (#11830)
core: bump service-identity from 24.1.0 to 24.2.0 (#11831)
core: bump twilio from 9.3.5 to 9.3.6 (#11832)
core: bump pytest-randomly from 3.15.0 to 3.16.0 (#11833)
website/docs: Update social-logins github (#11822)
website/docs: remove � (#11823)
lifecycle: fix kdc5-config missing (#11826)
website/docs: update preview status of different features (#11817)
...
Translate locale/en/LC_MESSAGES/django.po in it
100% translated source file: 'locale/en/LC_MESSAGES/django.po'
on 'it'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Translate web/xliff/en.xlf in it
100% translated source file: 'web/xliff/en.xlf'
on 'it'.
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
2024-10-23 14:17:30 -07:00
855 changed files with 85821 additions and 40457 deletions
@ -2,7 +2,7 @@ authentik takes security very seriously. We follow the rules of[responsible di
## Independent audits and pentests
In May/June of 2023 [Cure53](https://cure53.de) conducted an audit and pentest. The [results](https://cure53.de/pentest-report_authentik.pdf) are published on the [Cure53 website](https://cure53.de/#publications-2023). For more details about authentik's response to the findings of the audit refer to [2023-06 Cure53 Code audit](https://goauthentik.io/docs/security/2023-06-cure53).
We are committed to engaging in regular pentesting and security audits of authentik. Defining and adhering to a cadence of external testing ensures a stronger probability that our code base, our features, and our architecture is as secure and non-exploitable as possible. For more details about specfic audits and pentests, refer to "Audits and Certificates" in our [Security documentation](https://docs.goauthentik.io/docs/security).
## What authentik classifies as a CVE
@ -20,8 +20,8 @@ Even if the issue is not a CVE, we still greatly appreciate your help in hardeni
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.