authentik fork
This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Ken Sternberg fbb6fb0a8e web: application wizard refactor & completion
This commit refactors the various components of the Wizard and ApplicationWizard, creating a much
more maintainable and satisfying Wizard experience for both developers (i.e, *me* and *Jens* so
far), and for the customer.

The Wizard base has been refactored into three components:

**AkWizardController**

The `AkWizardController` provides the event listenters for the wizard; it hooks them up, recevies the
events, and forwards them to the wizard.  It unwraps the event objects and forwards the relevant
messages contained in the events.  It knows of three event categories:

- Navigation requests (move to a different step)
- Update requests (the current step has updated the business content)
- Close requests (close or cancel the wizard).

**ak-wizard-frame**

The `ak-wizard-frame` is the ModalButton interface.  It provides the Header, Breadcrumbs (nee`
"navigation block"), Buttons, and a DIV into which the main content is rendered.

**AkWizard**

`AkWizard` is an *incomplete* implementation of the wizard. It's meant to be inherited by a child
class, which will implement the rest. It extends `AKElement`. It provides the basic content needed,
such as steps, currentStep (as an index), an accessor for the step itself, an accessor for the
frame, and the interface to the `AkWizardController`.

**ApplicationWizard**

The `ApplicationWizard` itself has been refactored to accommodate these changes. It inherits from
`AkWizard` and provides the business logic for what to do when a form updates, some custom logic for
preventing moving through the wizard when the forms are incomplete, and a persistence layer for
filling out different providers in the same session. It's simplified a *lot*.

The types specified for `AkWizard` are pretty nifty, I think. I could wish the types being passed
via the custom events were more robust, but [strongly typed custom
events](https://github.com/lit/lit-element/issues/808) turn out to be quite the pain in the, er,
neck. As it is, the `precommit` pass did very good at preventing the worst disasters.

The steps themselves were re-written as objects so that they could take advantage of their `valid`
and `disabled` states and provide more meaningful buttons and labels. I think it's a solid
compromise, and it moved a lot of display logic out of the core `handleUpdate()` business method.

The tests, such as they are, are passing.
2023-09-29 15:58:41 -07:00
.github root: replace boj/redistore with vendored version of rbcervilla/redisstore (#6988) 2023-09-26 18:56:37 +02:00
.vscode root: migrate bootstrap to blueprints (#6433) 2023-07-31 19:34:46 +02:00
authentik flows: stage_invalid() makes flow restart depending on invalid_response_action setting (#6780) 2023-09-27 12:34:02 +02:00
blueprints sources/ldap: add default property mapping to mirror directory structure (#6990) 2023-09-26 18:55:33 +02:00
cmd root: handle SIGHUP and SIGUSR2, healthcheck gunicorn (#6630) 2023-09-27 11:34:29 +00:00
internal root: handle SIGHUP and SIGUSR2, healthcheck gunicorn (#6630) 2023-09-27 11:34:29 +00:00
lifecycle fix ak test-all dependencies 2023-09-11 15:44:26 +02:00
locale translate: Updates for file locale/en/LC_MESSAGES/django.po in fr on branch main (#6960) 2023-09-23 12:42:44 +00:00
schemas providers: SCIM (#4835) 2023-03-06 19:39:08 +01:00
scripts providers/oauth2: fix id_token being saved incorrectly leading to lost claims (#6645) 2023-08-28 00:51:48 +02:00
tests web: add radius to application wizard 2023-09-27 15:30:56 -07:00
web web: application wizard refactor & completion 2023-09-29 15:58:41 -07:00
website root: fix missing /lifecycle in path 2023-09-27 17:49:30 +02:00
.bumpversion.cfg release: 2023.8.3 2023-09-11 18:55:08 +02:00
.dockerignore root: don't exclude enterprise from container image (#6956) 2023-09-22 16:22:16 +02:00
.editorconfig website: codespell with custom dictionary and CI (#5062) 2023-03-24 00:24:55 +01:00
.gitignore root: add generated Source docs (#5323) 2023-07-31 11:59:20 +02:00
CODE_OF_CONDUCT.md root: rework and expand security policy 2022-11-28 12:10:53 +01:00
CODEOWNERS root: split codeowners (#6884) 2023-09-13 19:44:51 +02:00
CONTRIBUTING.md website/developer-docs: move contributing to dev docs index and link contributing file (#5554) 2023-05-09 20:26:55 +02:00
docker-compose.yml release: 2023.8.3 2023-09-11 18:55:08 +02:00
Dockerfile root: fix missing /lifecycle in path 2023-09-27 17:49:30 +02:00
go.mod root: replace boj/redistore with vendored version of rbcervilla/redisstore (#6988) 2023-09-26 18:56:37 +02:00
go.sum root: replace boj/redistore with vendored version of rbcervilla/redisstore (#6988) 2023-09-26 18:56:37 +02:00
ldap.Dockerfile mount binds all around 2023-09-11 15:44:26 +02:00
LICENSE enterprise: initial license (#5293) 2023-04-19 16:13:45 +02:00
Makefile Merge branch 'main' into application-wizard-2-with-api-and-tests 2023-09-27 15:59:25 -07:00
manage.py root: update deprecation warnings 2022-11-25 11:47:28 +01:00
poetry.lock core: bump psycopg from 3.1.11 to 3.1.12 (#6997) 2023-09-27 11:16:48 +02:00
proxy.Dockerfile core: bump node from 20.5 to 20.6 (#6784) 2023-09-20 12:28:47 +02:00
pyproject.toml Merge branch 'version-2023.8' 2023-09-11 22:04:23 +02:00
radius.Dockerfile mount binds all around 2023-09-11 15:44:26 +02:00
README.md root: remove outdated sponsorship section on readme (#6973) 2023-09-25 16:38:50 +02:00
schema.yml core: create app transactional api (#6446) 2023-09-17 23:55:21 +02:00
SECURITY.md website: update 2023.8 release notes (#6666) 2023-08-29 19:57:14 +02:00

authentik logo


Join Discord GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status Code Coverage Docker pulls Latest version

What is authentik?

authentik is an open-source Identity Provider that emphasizes flexibility and versatility. It can be seamlessly integrated into existing environments to support new protocols. authentik is also a great solution for implementing sign-up, recovery, and other similar features in your application, saving you the hassle of dealing with them.

Installation

For small/test setups it is recommended to use Docker Compose; refer to the documentation.

For bigger setups, there is a Helm Chart here. This is documented here.

Screenshots

Light Dark

Development

See Developer Documentation

Security

See SECURITY.md

Adoption and Contributions

Your organization uses authentik? We'd love to add your logo to the readme and our website! Email us @ hello@goauthentik.io or open a GitHub Issue/PR! For more information on how to contribute to authentik, please refer to our CONTRIBUTING.md file.