Files
authentik/website
Erik Ahlund 619fdb506f stages/prompt: add ability to set separate labels and values for choices (#16693)
* Choices can have value and label

Value and label are set turned to a string.
This will make choices into a Array<{ [key: string]: any; }> | null which at some point it should be a defined interface.

* Auto Updated schema.yml

* Used label and value in choice

Label and Value are used for Dropdown and RadioButtonGroup. Strings are still accepted.

* docs: Updated stages/prompt documentation

* Updated docs for initial-value

Also fixed wrong choice example in previous docs changes

* Check if choice is dict

Choice can of course be anything, we shouldn't assume it's string or dict

* Check if choice is dict for initial value

Same as before, choice can be anything. We check if it's explicitely a dict

* Added tests for dict choices

* ran make lint-fix

* Apply typo fix from code review

Co-authored-by: macmoritz <49832924+macmoritz@users.noreply.github.com>
Signed-off-by: Erik Ahlund <erik@ahlund.me>

* stages/prompt: add PromptChoiceSerializer

choices are now a list of PromptChoiceSerializer instead of a generic DictField.
The PromptChallenge also forces the use of value/label object.

* web: use PromptChoice object

The front end can now safely use choices as an array of PromptChoice instead of it being either a string or an object.

* slight revise

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* small ui

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

* Apply suggestion from @dominic-r

Signed-off-by: Dominic R <dominic@sdko.org>

---------

Signed-off-by: Erik Ahlund <erik@ahlund.me>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Signed-off-by: Dominic R <dominic@sdko.org>
Co-authored-by: macmoritz <49832924+macmoritz@users.noreply.github.com>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Dominic R <dominic@sdko.org>
2025-10-15 16:30:27 +02:00
..
2025-10-07 22:00:30 -04:00

authentik documentation source

This directory contains the source files for the authentik technical documentation, integration guides, and API documentation.

Contributions are welcome! Please refer to our contributor guidelines for details about contributing code or docs.

For instructions to set up your local environment for building docs locally, refer to our Docs development environment page.

For instructions for writing the docs and then testing in your local build, plus tips on writing, links to our Style Guide and templates, see the Writing documentation guide.

To ensure a smooth review process, we encourage you to build the documentation locally to preview and test your documentation contributions. Be sure to test locally before opening a pull request. Let us know if you have any questions or want help with any part of the process.

Package structure

At the root of the website directory is a package.json file that defines an NPM Workspace. This allows us to have multiple packages in the same repository, and to install their dependencies via a single command: make docs-install

---
config:
  layout: dagre
---
flowchart TD
    Root["NPM Workspace<br><code>./website</code>"]
    Root --> Topics["Topics<br><code>./docs</code>"] & Integrations["Integration Guides<br><code>./integrations</code>"] & API

    Schema["Schema<br><code>../schema.yml</code>"] --> API["Generated Documentation<br><code>./api</code>"]

     HoistedDependencies["Hoisted Dependencies<br><ul>
        <li>Docusaurus</li>
        <li>React</li>
        <li>MDX</li>
        </ul>"]


    style HoistedDependencies text-align:left

NPM packages which are in a parent workspace share a common node_modules directory. Sibling packages define their dependencies in their own package.json files. The dependencies which they share in common are lifted or "hoisted" to the parent node_modules directory.

Topics (AKA "The Docs")

The website/docs directory contains documentation on how to use authentik. It is organized into topics, which are defined by the sidebar.mjs file.

Integrations

The website/integrations directory contains documentation on how to use authentik with various third-party services.

API

The website/api directory contains documentation on the authentik API.

Deployment

Deployment is handled by a combination of Netlify and GitHub Action workflows.

Additional Resources