* core: add .npmrc baseline to block dependency lifecycle scripts Set ignore-scripts=true at the repo root, plus engine-strict, save-exact, audit, and prefer-offline. This neutralizes the dominant npm supply-chain attack vector — postinstall scripts in transitive dependencies — at the cost of requiring an explicit rebuild for the handful of packages that legitimately need install scripts (esbuild, chromedriver, tree-sitter, tree-sitter-json). The next commit wires that rebuild into the Makefile. Co-Authored-By: Playpen Agent <279763771+playpen-agent@users.noreply.github.com> * core: route node installs through make to retire website preinstall hook Make docs-install depend on a new root-node-install so the root deps are guaranteed before the website install runs, removing the need for the website/preinstall lifecycle script. Rebuild the small audited list of trusted packages (esbuild, chromedriver, tree-sitter, tree-sitter-json) after the web install so ignore-scripts=true remains the only path that needs maintenance. web/README documents the new workflow. Co-Authored-By: Playpen Agent <279763771+playpen-agent@users.noreply.github.com> * Clean up install scripts. * Track .npmrc in CODEOWNERS --------- Co-authored-by: Playpen Agent <279763771+playpen-agent@users.noreply.github.com>
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.