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.
Go to file
Ken Sternberg 356488809c It looks like my brilliant strategy has hit a snag.
The idea is simple.  Let's start with this picture:

```
<application-wizard .steps=${[... a collection of step objects ...]}>
  <wizard-main .steps=${(steps from above)}>
    <application-current-panel>
      <current-form>
```

- ApplicationWizard has a Context for the ApplicationProviderPair (or whatever it's going to be).
  This context does not know about the steps; it just knows about: the "application" object, the
  "provider" object, and a discriminator to know *which* provider the user has selected.
- ApplicationWizard has Steps that, among other things, provides Panels for:
  - Application
  - Pick Provider
  - Configure Provider
  - Submit ApplicationProviderPair to the back-end
- The WizardFrame renders the CurrentPanel for the CurrentStep

The CurrentPanel gets its data from the ApplicationWizard in the form of a Context. It then sends
messages (events) to ApplicationWizard about the contents of each field as the user is filling out
the form, so that the ApplicationWizard can record those in the ApplicationProviderPair for later
submission.

When a CurrentForm is valid, the ApplicationWizard updates the Steps object to show that the "Next
button" on the Wizard is now available.

In this way, the user can progress through the system.  When they get to the last page, we can
provide in the ApplicationWizard with the means to submit the form and/or send the user back to
the page with the validation failure.

Problem: The context is being updated in real-time, which is triggering re-renders of the form. This
leads to focus problems as the fields that are not yet valid are triggering "focus grab" behavior.
This is a classic problem with "controlled" inputs. What we really want is for the CurrentPanel to
not re-render at all, but to behave like a normal, uncontrolled form, and let the browser do most of
the work.  We still want the [Next] button to enable when the form is valid enough to permit that.

---

Other details: I've ripped out a lot of Jen's work, which is probably a mistake.  It's still
preserved elsewhere.  I've also cleaned up the various wizardly things to try and look organized.
It *looks* like it should work, it just... doesn't.  Not yet.
2023-08-11 15:48:31 -07:00
.github ci: bump peter-evans/create-pull-request from 4 to 5 (#6459) 2023-08-03 10:20:58 +02:00
.vscode root: migrate bootstrap to blueprints (#6433) 2023-07-31 19:34:46 +02:00
authentik web/admin: fix user sorting by active field (#6485) 2023-08-05 22:07:17 +02:00
blueprints root: migrate bootstrap to blueprints (#6433) 2023-07-31 19:34:46 +02:00
cmd cmd: use live endpoint instead of ready for inbuild healthcheck 2023-05-08 22:04:18 +02:00
internal providers/proxy: only intercept auth header when a value is set (#6488) 2023-08-06 01:18:20 +02:00
lifecycle core: bump django from 4.1.7 to 4.2 (#5238) 2023-08-01 19:30:28 +02:00
locale web: app icons v2 (#6410) 2023-07-28 14:25:56 +02:00
schemas providers: SCIM (#4835) 2023-03-06 19:39:08 +01:00
scripts root: fix generate_config script not setting debug (#5465) 2023-05-03 23:52:59 +03:00
tests outposts: support json patch for Kubernetes (#6319) 2023-07-22 02:29:28 +02:00
web It looks like my brilliant strategy has hit a snag. 2023-08-11 15:48:31 -07:00
website website/dev-docs: tweaks to template (#6474) 2023-08-04 13:55:33 -05:00
.bumpversion.cfg release: 2023.6.1 2023-07-10 13:20:22 +02:00
.dockerignore enterprise: initial license (#5293) 2023-04-19 16:13:45 +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
CODEOWNERS root: Test codeowners (#5586) 2023-05-11 20:26:04 +02:00
CODE_OF_CONDUCT.md root: rework and expand security policy 2022-11-28 12:10:53 +01: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
Dockerfile root: replace builtin psycopg libpq binary implementation with distro… (#6448) 2023-08-02 11:48:30 +02:00
LICENSE enterprise: initial license (#5293) 2023-04-19 16:13:45 +02:00
Makefile web/flows: add more stories (#6444) 2023-08-03 17:27:58 +02:00
README.md web: Add storybook (#5865) 2023-06-07 13:05:33 +02:00
SECURITY.md root: Update security policy (#6222) 2023-07-12 06:56:37 -06:00
docker-compose.yml release: 2023.6.1 2023-07-10 13:20:22 +02:00
go.mod core: bump github.com/getsentry/sentry-go from 0.22.0 to 0.23.0 (#6449) 2023-08-02 10:57:33 +02:00
go.sum core: bump github.com/getsentry/sentry-go from 0.22.0 to 0.23.0 (#6449) 2023-08-02 10:57:33 +02:00
ldap.Dockerfile core: bump golang from 1.20.6-bullseye to 1.20.7-bullseye (#6454) 2023-08-02 10:56:54 +02:00
manage.py root: update deprecation warnings 2022-11-25 11:47:28 +01:00
poetry.lock core: bump debugpy from 1.6.7 to 1.6.8 (#6458) 2023-08-03 10:21:13 +02:00
proxy.Dockerfile core: bump golang from 1.20.6-bullseye to 1.20.7-bullseye (#6454) 2023-08-02 10:56:54 +02:00
pyproject.toml root: replace builtin psycopg libpq binary implementation with distro… (#6448) 2023-08-02 11:48:30 +02:00
radius.Dockerfile core: bump golang from 1.20.6-bullseye to 1.20.7-bullseye (#6454) 2023-08-02 10:56:54 +02:00
schema.yml web/admin: fix user sorting by active field (#6485) 2023-08-05 22:07:17 +02:00

README.md

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.

Sponsors

This project is proudly sponsored by:

DigitalOcean provides development and testing resources for authentik.