* This was pretty quick. While looking at the Oauth stuff, changes made to the UserInterface triggered
the "harder" eslint pass, which said "UserInterface exceeds permitted complexity (9)." I couldn't
disagree; it had lots of conditionals.
This commit:
- Changes no functionality; it's just cleanup.
- Breaks UserInterface into business and presentation layers
- The presentation layer:
- Further breaks the presentation layer into a frame and conditional components. Each conditional
is now a simple guard condition.
- Taps into the event listener set-up for toggles, eliminating their local scope/window duplication
- Extracts in-line complex expressions into isolated and scope functions to name them and make them
easier to find and read.
- Extracts the custom CSS into its own named variable, again, making it easier to find and read.
- The business layer:
- Builds the window-level event listener at connection, and disconnects them correctly, allowing
this whole interface to be used in a SPA.
- Asserts a reliable contract at the presentation layer; there should be no question "Session" and
"UIConfig" are available before rendering.
- Renames `firstUpdated` to `fetchConfigurationDetails`, and calls it in the constructor. There
ought to be no circumstances where this object is constructed outside a working environment; no
sense in waiting until you've done a `render() { nothing }` pass to fetch details.
Oddities: There are a pair of `<!-- -->` HTML comments in the framing `render()`; those are there
just to stop prettier from slamming a string of conditional renders all into one line, making them
harder to read.
* Adding a small experiment: Typescript pattern matching.
* A few renames as requested by @BeryJu
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
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.



