website/docs: Update deps. (#14397)
* website/docs: Update deps. * website/docs: Port partial monorepo fixes. Fix build warnings. * website/docs: Update Prettier. * website/docs: Format. Update deps. * website/docs: Remove empty entry.
This commit is contained in:
2
website/.gitignore
vendored
2
website/.gitignore
vendored
@ -3,6 +3,7 @@
|
||||
|
||||
# Production
|
||||
/build
|
||||
/out
|
||||
/help
|
||||
|
||||
# Generated files
|
||||
@ -25,4 +26,5 @@ yarn-error.log*
|
||||
|
||||
static/docker-compose.yml
|
||||
static/schema.yml
|
||||
static/releases.gen.json
|
||||
docs/developer-docs/api/reference/**
|
||||
|
@ -1,7 +1,11 @@
|
||||
# Ignore artifacts:
|
||||
build
|
||||
out
|
||||
coverage
|
||||
.docusaurus
|
||||
node_modules
|
||||
help
|
||||
static
|
||||
# TODO: Enable after monorepo formatting is cleaned up.
|
||||
**/*.md
|
||||
**/*.mdx
|
||||
|
@ -1 +0,0 @@
|
||||
{}
|
@ -0,0 +1,82 @@
|
||||
import styles from "./styles.module.css";
|
||||
|
||||
const RADIUSProtocols = [
|
||||
"PAP",
|
||||
"CHAP",
|
||||
"Digest",
|
||||
"MS-CHAP",
|
||||
"PEAP",
|
||||
"MS-CHAPv2",
|
||||
"Cisco LEAP",
|
||||
"EAP-GTC",
|
||||
"EAP-MD5",
|
||||
"EAP-PWD",
|
||||
] as const satisfies string[];
|
||||
|
||||
type RADIUSProtocol = (typeof RADIUSProtocols)[number];
|
||||
|
||||
const HashKinds = [
|
||||
"Cleartext",
|
||||
"NT",
|
||||
"MD5",
|
||||
"Salted MD5",
|
||||
"SHA1",
|
||||
"Salted SHA1",
|
||||
"Unix Crypt",
|
||||
] as const satisfies string[];
|
||||
|
||||
type HashKind = (typeof HashKinds)[number];
|
||||
|
||||
const supportMatrix: Record<HashKind, RADIUSProtocol[]> = {
|
||||
"Cleartext": [
|
||||
"PAP",
|
||||
"CHAP",
|
||||
"Digest",
|
||||
"MS-CHAP",
|
||||
"PEAP",
|
||||
"MS-CHAPv2",
|
||||
"Cisco LEAP",
|
||||
"EAP-GTC",
|
||||
"EAP-MD5",
|
||||
"EAP-PWD",
|
||||
],
|
||||
"NT": ["PAP", "MS-CHAP", "PEAP", "MS-CHAPv2", "Cisco LEAP", "EAP-GTC"],
|
||||
"MD5": ["PAP", "EAP-GTC"],
|
||||
"Salted MD5": ["PAP", "EAP-GTC"],
|
||||
"SHA1": ["PAP", "EAP-GTC"],
|
||||
"Salted SHA1": ["PAP", "EAP-GTC", "EAP-PWD"],
|
||||
"Unix Crypt": ["PAP", "EAP-GTC", "EAP-PWD"],
|
||||
};
|
||||
|
||||
export const HashSupport: React.FC = () => {
|
||||
return (
|
||||
<table className={styles.table}>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
{HashKinds.map((hashKind, i) => (
|
||||
<th key={i}>{hashKind}</th>
|
||||
))}
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{RADIUSProtocols.map((radiusProtocol, i) => (
|
||||
<tr key={i}>
|
||||
<td>{radiusProtocol}</td>
|
||||
{HashKinds.map((hashKind) => {
|
||||
const protocols = supportMatrix[hashKind];
|
||||
const supported = protocols.includes(radiusProtocol);
|
||||
|
||||
return (
|
||||
<td data-supported={supported} key={hashKind}>
|
||||
{supported ? "✓" : "✗"}
|
||||
</td>
|
||||
);
|
||||
})}
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
);
|
||||
};
|
@ -2,7 +2,7 @@
|
||||
title: RADIUS Provider
|
||||
---
|
||||
|
||||
import { Check, X, AlertTriangle } from "react-feather";
|
||||
import { HashSupport } from "./HashSupport";
|
||||
|
||||
You can configure a Radius provider for applications that don't support any other protocols or that require Radius.
|
||||
|
||||
@ -56,15 +56,4 @@ After creation, make sure to select the RADIUS property mapping in the RADIUS pr
|
||||
|
||||
The RADIUS provider only supports the [PAP](https://en.wikipedia.org/wiki/Password_Authentication_Protocol) (Password Authentication Protocol) protocol:
|
||||
|
||||
| | Clear-text | NT hash | MD5 hash | Salted MD5 hash | SHA1 hash | Salted SHA1 hash | Unix Crypt |
|
||||
| ------------ | --------------- | --------------- | --------------- | --------------- | --------------- | ---------------- | --------------- |
|
||||
| PAP | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> |
|
||||
| CHAP | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| Digest | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| MS-CHAP | <Check></Check> | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| PEAP | <Check></Check> | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| EAP-MSCHAPv2 | <Check></Check> | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| Cisco LEAP | <Check></Check> | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| EAP-GTC | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> | <Check></Check> |
|
||||
| EAP-MD5 | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> | <X></X> |
|
||||
| EAP-PWD | <Check></Check> | <X></X> | <X></X> | <X></X> | <X></X> | <Check></Check> | <Check></Check> |
|
||||
<HashSupport />
|
||||
|
@ -0,0 +1,20 @@
|
||||
.table td {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
|
||||
&:first-child {
|
||||
text-align: right;
|
||||
width: 13ch;
|
||||
}
|
||||
|
||||
&:not(:first-child) {
|
||||
width: 10ch;
|
||||
}
|
||||
|
||||
&[data-supported="true"] {
|
||||
color: var(--ifm-color-success-dark);
|
||||
}
|
||||
&[data-supported="false"] {
|
||||
color: var(--ifm-color-danger-dark);
|
||||
}
|
||||
}
|
@ -148,7 +148,6 @@ We'll be publishing a security Issue (CVE-2022-xxxxx) and accompanying fix on _d
|
||||
|
||||
<details>
|
||||
<summary>Mailing list template</summary>
|
||||
<p>
|
||||
|
||||
Subject: `Release of authentik Security releases 2022.10.3 and 2022.11.3`
|
||||
|
||||
@ -158,12 +157,10 @@ The security advisory for CVE-2022-xxxxx has been published: https://github.com/
|
||||
Releases 2022.10.3 and 2022.11.3 with fixes included are available here: https://github.com/goauthentik/authentik/releases
|
||||
```
|
||||
|
||||
</p>
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Discord template</summary>
|
||||
<p>
|
||||
|
||||
```markdown
|
||||
[...existing announcement...]
|
||||
@ -175,5 +172,4 @@ Advisory for for CVE-2022-xxxxx has been published here https://github.com/goaut
|
||||
The fixed versions 2022.10.3 and 2022.11.3 are available here: https://github.com/goauthentik/authentik/releases
|
||||
```
|
||||
|
||||
</p>
|
||||
</details>
|
||||
|
@ -1,13 +1,14 @@
|
||||
import type { Config } from "@docusaurus/types";
|
||||
import type * as Preset from "@docusaurus/preset-classic";
|
||||
import { themes as prismThemes } from "prism-react-renderer";
|
||||
import type { Config } from "@docusaurus/types";
|
||||
import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs";
|
||||
import { themes as prismThemes } from "prism-react-renderer";
|
||||
import remarkDirective from "remark-directive";
|
||||
import remarkGithub, { BuildUrlValues } from "remark-github";
|
||||
import { defaultBuildUrl } from "remark-github";
|
||||
import remarkDirective from "remark-directive";
|
||||
import remarkVersionDirective from "./remark/version-directive.js";
|
||||
|
||||
import remarkPreviewDirective from "./remark/preview-directive.js";
|
||||
import remarkSupportDirective from "./remark/support-directive.js";
|
||||
import remarkVersionDirective from "./remark/version-directive.js";
|
||||
|
||||
const createConfig = (): Config => {
|
||||
return {
|
||||
@ -59,16 +60,16 @@ const createConfig = (): Config => {
|
||||
target: "_self",
|
||||
},
|
||||
{
|
||||
href: "https://github.com/goauthentik/authentik",
|
||||
"href": "https://github.com/goauthentik/authentik",
|
||||
"data-icon": "github",
|
||||
"aria-label": "GitHub",
|
||||
position: "right",
|
||||
"position": "right",
|
||||
},
|
||||
{
|
||||
href: "https://goauthentik.io/discord",
|
||||
"href": "https://goauthentik.io/discord",
|
||||
"data-icon": "discord",
|
||||
"aria-label": "Discord",
|
||||
position: "right",
|
||||
"position": "right",
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -111,8 +112,7 @@ const createConfig = (): Config => {
|
||||
id: "docs",
|
||||
sidebarPath: "./sidebars.js",
|
||||
showLastUpdateTime: false,
|
||||
editUrl:
|
||||
"https://github.com/goauthentik/authentik/edit/main/website/",
|
||||
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
|
||||
docItemComponent: "@theme/ApiItem",
|
||||
|
||||
beforeDefaultRemarkPlugins: [
|
||||
@ -128,8 +128,7 @@ const createConfig = (): Config => {
|
||||
repository: "goauthentik/authentik",
|
||||
// Only replace issues and PR links
|
||||
buildUrl: (values: BuildUrlValues) => {
|
||||
return values.type === "issue" ||
|
||||
values.type === "mention"
|
||||
return values.type === "issue" || values.type === "mention"
|
||||
? defaultBuildUrl(values)
|
||||
: false;
|
||||
},
|
||||
@ -138,9 +137,7 @@ const createConfig = (): Config => {
|
||||
],
|
||||
},
|
||||
theme: {
|
||||
customCss: require.resolve(
|
||||
"@goauthentik/docusaurus-config/css/index.css",
|
||||
),
|
||||
customCss: require.resolve("@goauthentik/docusaurus-config/css/index.css"),
|
||||
},
|
||||
} satisfies Preset.Options,
|
||||
],
|
||||
@ -153,8 +150,7 @@ const createConfig = (): Config => {
|
||||
path: "integrations",
|
||||
routeBasePath: "integrations",
|
||||
sidebarPath: "./sidebarsIntegrations.js",
|
||||
editUrl:
|
||||
"https://github.com/goauthentik/authentik/edit/main/website/",
|
||||
editUrl: "https://github.com/goauthentik/authentik/edit/main/website/",
|
||||
},
|
||||
],
|
||||
[
|
||||
|
2873
website/package-lock.json
generated
2873
website/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,20 +1,25 @@
|
||||
{
|
||||
"name": "@goauthentik/website-docs",
|
||||
"name": "@goauthentik/docs",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "cp ../docker-compose.yml static/docker-compose.yml && cp ../schema.yml static/schema.yml && docusaurus gen-api-docs all && cross-env NODE_OPTIONS='--max_old_space_size=65536' docusaurus build",
|
||||
"build-bundled": "cp ../schema.yml static/schema.yml && docusaurus gen-api-docs all && cross-env NODE_OPTIONS='--max_old_space_size=65536' docusaurus build",
|
||||
"build": "run-s build:docker build:schema build:api build:docusaurus",
|
||||
"build-bundled": "run-s build:schema build:api build:docusaurus",
|
||||
"build:api": "docusaurus gen-api-docs all",
|
||||
"build:docker": "cp ../docker-compose.yml ./static/docker-compose.yml",
|
||||
"build:docusaurus": "cross-env NODE_OPTIONS='--max_old_space_size=65536' docusaurus build",
|
||||
"build:schema": "cp -f ../schema.yml ./static/schema.yml",
|
||||
"deploy": "docusaurus deploy",
|
||||
"docusaurus": "docusaurus",
|
||||
"lint:lockfile": "wireit",
|
||||
"lint:lockfile": "echo 'Skipping lockfile linting'",
|
||||
"prettier": "prettier --write .",
|
||||
"prettier-check": "prettier --check .",
|
||||
"serve": "docusaurus serve",
|
||||
"start": "docusaurus start",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"test": "node --test",
|
||||
"watch": "cp -f ../schema.yml ./static/schema.yml && docusaurus gen-api-docs all && docusaurus start"
|
||||
"watch": "run-s build:schema build:api start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^3.7.0",
|
||||
@ -24,45 +29,35 @@
|
||||
"@docusaurus/preset-classic": "^3.7.0",
|
||||
"@docusaurus/theme-common": "^3.7.0",
|
||||
"@docusaurus/theme-mermaid": "^3.7.0",
|
||||
"@goauthentik/docusaurus-config": "^1.0.4",
|
||||
"@goauthentik/docusaurus-config": "^1.0.6",
|
||||
"@goauthentik/tsconfig": "^1.0.4",
|
||||
"@mdx-js/react": "^3.1.0",
|
||||
"clsx": "^2.1.1",
|
||||
"disqus-react": "^1.1.6",
|
||||
"docusaurus-plugin-openapi-docs": "4.3.4",
|
||||
"docusaurus-theme-openapi-docs": "4.3.4",
|
||||
"docusaurus-plugin-openapi-docs": "^4.4.0",
|
||||
"docusaurus-theme-openapi-docs": "^4.4.0",
|
||||
"postcss": "^8.5.3",
|
||||
"prism-react-renderer": "^2.4.1",
|
||||
"react": "^18.3.1",
|
||||
"react-before-after-slider-component": "^1.1.8",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-feather": "^2.0.10",
|
||||
"react-toggle": "^4.1.3",
|
||||
"remark-directive": "^4.0.0",
|
||||
"remark-github": "^12.0.0",
|
||||
"semver": "^7.7.1"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "^3.3.2",
|
||||
"@docusaurus/module-type-aliases": "^3.7.0",
|
||||
"@docusaurus/tsconfig": "^3.7.0",
|
||||
"@docusaurus/types": "^3.3.2",
|
||||
"@docusaurus/types": "^3.7.0",
|
||||
"@goauthentik/prettier-config": "^1.0.4",
|
||||
"@types/lodash": "^4.17.16",
|
||||
"@types/postman-collection": "^3.5.10",
|
||||
"@types/react": "^18.3.13",
|
||||
"@types/semver": "^7.7.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"prettier": "3.5.3",
|
||||
"typescript": "~5.8.3",
|
||||
"wireit": "^0.14.12"
|
||||
"fast-glob": "^3.3.3",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.5.3",
|
||||
"typescript": "~5.8.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rspack/binding-darwin-arm64": "1.3.8",
|
||||
@ -78,14 +73,31 @@
|
||||
"lightningcss-linux-arm64-gnu": "1.29.3",
|
||||
"lightningcss-linux-x64-gnu": "1.29.3"
|
||||
},
|
||||
"wireit": {
|
||||
"lint:lockfile": {
|
||||
"__comment": "The lockfile-lint package does not have an option to ensure resolved hashes are set everywhere",
|
||||
"shell": true,
|
||||
"command": "[ -z \"$(jq -r '.packages | to_entries[] | select((.key | contains(\"node_modules\")) and (.value | has(\"resolved\") | not)) | .key' < package-lock.json)\" ]"
|
||||
}
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
"node": ">=22.14.0"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"prettier": "@goauthentik/prettier-config",
|
||||
"overrides": {
|
||||
"fork-ts-checker-webpack-plugin": {
|
||||
"glob": "^11.0.1"
|
||||
},
|
||||
"postman-collection": {
|
||||
"@faker-js/faker": "^6.3.1"
|
||||
},
|
||||
"webpack-dev-server": {
|
||||
"rimraf": "6.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,8 @@
|
||||
import "mdast-util-to-hast";
|
||||
import "mdast-util-directive";
|
||||
|
||||
import { h } from "hastscript";
|
||||
import { Root } from "mdast";
|
||||
import { visit, SKIP } from "unist-util-visit";
|
||||
import "mdast-util-directive";
|
||||
import "mdast-util-to-hast";
|
||||
import { SKIP, visit } from "unist-util-visit";
|
||||
|
||||
/**
|
||||
* MDAST plugin to transform `ak-preview` directives into preview badges.
|
||||
@ -17,10 +16,10 @@ function remarkPreviewDirective() {
|
||||
|
||||
const hast = h("span", {
|
||||
...node.attributes,
|
||||
className: "badge badge--preview",
|
||||
title: `This feature is in preview and may change in the future.`,
|
||||
"className": "badge badge--preview",
|
||||
"title": `This feature is in preview and may change in the future.`,
|
||||
"aria-description": "Preview badge",
|
||||
role: "img",
|
||||
"role": "img",
|
||||
});
|
||||
|
||||
data.hName = hast.tagName;
|
||||
|
@ -1,10 +1,9 @@
|
||||
import "mdast-util-to-hast";
|
||||
import "mdast-util-directive";
|
||||
|
||||
import { h } from "hastscript";
|
||||
import { Root } from "mdast";
|
||||
import { visit, SKIP } from "unist-util-visit";
|
||||
import "mdast-util-directive";
|
||||
import "mdast-util-to-hast";
|
||||
import { coerce } from "semver";
|
||||
import { SKIP, visit } from "unist-util-visit";
|
||||
|
||||
/**
|
||||
* Support levels for authentik.
|
||||
@ -52,10 +51,10 @@ function remarkSupportDirective() {
|
||||
|
||||
const hast = h("span", {
|
||||
...node.attributes,
|
||||
className: `badge badge--support-${level}`,
|
||||
title: `This feature is supported at the ${label} level.`,
|
||||
"className": `badge badge--support-${level}`,
|
||||
"title": `This feature is supported at the ${label} level.`,
|
||||
"aria-description": "Support level badge",
|
||||
role: "img",
|
||||
"role": "img",
|
||||
});
|
||||
|
||||
data.hName = hast.tagName;
|
||||
|
@ -1,10 +1,9 @@
|
||||
import "mdast-util-to-hast";
|
||||
import "mdast-util-directive";
|
||||
|
||||
import { h } from "hastscript";
|
||||
import { Root } from "mdast";
|
||||
import { visit, SKIP } from "unist-util-visit";
|
||||
import "mdast-util-directive";
|
||||
import "mdast-util-to-hast";
|
||||
import { coerce } from "semver";
|
||||
import { SKIP, visit } from "unist-util-visit";
|
||||
|
||||
/**
|
||||
* MDAST plugin to transform `ak-version` directives into version badges.
|
||||
@ -40,19 +39,17 @@ function remarkVersionDirective() {
|
||||
const yearCutoff = new Date().getFullYear() - 2;
|
||||
|
||||
if (parsed.major <= yearCutoff) {
|
||||
throw new Error(
|
||||
`Semver version <= ${yearCutoff} is not supported: ${semver}`,
|
||||
);
|
||||
throw new Error(`Semver version <= ${yearCutoff} is not supported: ${semver}`);
|
||||
}
|
||||
|
||||
const data = node.data || (node.data = {});
|
||||
|
||||
const hast = h("span", {
|
||||
...node.attributes,
|
||||
className: "badge badge--version",
|
||||
title: `Available in authentik ${parsed.format()} and later`,
|
||||
"className": "badge badge--version",
|
||||
"title": `Available in authentik ${parsed.format()} and later`,
|
||||
"aria-description": "Version badge",
|
||||
role: "img",
|
||||
"role": "img",
|
||||
});
|
||||
|
||||
data.hName = hast.tagName;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { generateVersionDropdown } from "./src/utils.js";
|
||||
import apiReference from "./docs/developer-docs/api/reference/sidebar";
|
||||
import { generateVersionDropdown } from "./src/utils.js";
|
||||
|
||||
const releases = [
|
||||
"releases/2025/v2025.4",
|
||||
@ -148,10 +148,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "add-secure-apps/providers/property-mappings/index",
|
||||
},
|
||||
items: [
|
||||
"add-secure-apps/providers/property-mappings/expression",
|
||||
,
|
||||
],
|
||||
items: ["add-secure-apps/providers/property-mappings/expression"],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
@ -172,9 +169,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "add-secure-apps/providers/ldap/index",
|
||||
},
|
||||
items: [
|
||||
"add-secure-apps/providers/ldap/generic_setup",
|
||||
],
|
||||
items: ["add-secure-apps/providers/ldap/generic_setup"],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
@ -248,9 +243,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "add-secure-apps/providers/ssf/index",
|
||||
},
|
||||
items: [
|
||||
"add-secure-apps/providers/ssf/create-ssf-provider",
|
||||
],
|
||||
items: ["add-secure-apps/providers/ssf/create-ssf-provider"],
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -328,9 +321,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "add-secure-apps/flows-stages/bindings/index",
|
||||
},
|
||||
items: [
|
||||
"add-secure-apps/flows-stages/bindings/work_with_bindings",
|
||||
],
|
||||
items: ["add-secure-apps/flows-stages/bindings/work_with_bindings"],
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -473,10 +464,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "users-sources/groups/index",
|
||||
},
|
||||
items: [
|
||||
"users-sources/groups/manage_groups",
|
||||
"users-sources/groups/group_ref",
|
||||
],
|
||||
items: ["users-sources/groups/manage_groups", "users-sources/groups/group_ref"],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
@ -521,9 +509,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "users-sources/sources/protocols/kerberos/index",
|
||||
},
|
||||
items: [
|
||||
"users-sources/sources/protocols/kerberos/browser",
|
||||
],
|
||||
items: ["users-sources/sources/protocols/kerberos/browser"],
|
||||
},
|
||||
"users-sources/sources/protocols/ldap/index",
|
||||
"users-sources/sources/protocols/oauth/index",
|
||||
@ -538,9 +524,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "users-sources/sources/property-mappings/index",
|
||||
},
|
||||
items: [
|
||||
"users-sources/sources/property-mappings/expressions",
|
||||
],
|
||||
items: ["users-sources/sources/property-mappings/expressions"],
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
@ -610,10 +594,7 @@ export default {
|
||||
type: "doc",
|
||||
id: "sys-mgmt/events/index",
|
||||
},
|
||||
items: [
|
||||
"sys-mgmt/events/notifications",
|
||||
"sys-mgmt/events/transports",
|
||||
],
|
||||
items: ["sys-mgmt/events/notifications", "sys-mgmt/events/transports"],
|
||||
},
|
||||
"sys-mgmt/certificates",
|
||||
"sys-mgmt/settings",
|
||||
|
@ -1,8 +1,5 @@
|
||||
import { SupportLevelToLabel, isSupportLevel } from "@site/remark/support-directive";
|
||||
import React from "react";
|
||||
import {
|
||||
isSupportLevel,
|
||||
SupportLevelToLabel,
|
||||
} from "@site/remark/support-directive";
|
||||
|
||||
export interface SupportBadgeProps {
|
||||
level: string;
|
||||
|
@ -18,9 +18,7 @@ export const VersionBadge: React.FC<AuthentikVersionProps> = ({ semver }) => {
|
||||
const yearCutoff = new Date().getFullYear() - 2;
|
||||
|
||||
if (parsed.major <= yearCutoff) {
|
||||
throw new Error(
|
||||
`Semver version <= ${yearCutoff} is not supported: ${semver}`,
|
||||
);
|
||||
throw new Error(`Semver version <= ${yearCutoff} is not supported: ${semver}`);
|
||||
}
|
||||
|
||||
return (
|
||||
|
@ -14,8 +14,7 @@ import { useDoc } from "@docusaurus/plugin-content-docs/client";
|
||||
*/
|
||||
export function useSyntheticTitle(): string | null {
|
||||
const { metadata, frontMatter, contentTitle } = useDoc();
|
||||
const shouldRender =
|
||||
!frontMatter.hide_title && typeof contentTitle === "undefined";
|
||||
const shouldRender = !frontMatter.hide_title && typeof contentTitle === "undefined";
|
||||
if (!shouldRender) {
|
||||
return null;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React from "react";
|
||||
import { Redirect } from "@docusaurus/router";
|
||||
import React from "react";
|
||||
|
||||
function Home() {
|
||||
return <Redirect to="/docs" />;
|
||||
|
@ -7,21 +7,17 @@
|
||||
* the content of a documentation page. However, it also adds support for
|
||||
* support badges, and Authentik version badges.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
import clsx from "clsx";
|
||||
import { ThemeClassNames } from "@docusaurus/theme-common";
|
||||
import {
|
||||
DocContextValue,
|
||||
useDoc,
|
||||
} from "@docusaurus/plugin-content-docs/client";
|
||||
import Heading from "@theme/Heading";
|
||||
import MDXContent from "@theme/MDXContent";
|
||||
import type { Props } from "@theme/DocItem/Content";
|
||||
import { DocFrontMatter } from "@docusaurus/plugin-content-docs";
|
||||
import { useSyntheticTitle } from "@site/src/hooks/title";
|
||||
import { DocContextValue, useDoc } from "@docusaurus/plugin-content-docs/client";
|
||||
import { ThemeClassNames } from "@docusaurus/theme-common";
|
||||
import { SupportBadge } from "@site/src/components/SupportBadge";
|
||||
import { VersionBadge } from "@site/src/components/VersionBadge";
|
||||
import { useSyntheticTitle } from "@site/src/hooks/title";
|
||||
import type { Props } from "@theme/DocItem/Content";
|
||||
import Heading from "@theme/Heading";
|
||||
import MDXContent from "@theme/MDXContent";
|
||||
import clsx from "clsx";
|
||||
import React from "react";
|
||||
|
||||
interface SwizzledDocFrontMatter extends DocFrontMatter {
|
||||
support_level?: string;
|
||||
@ -37,12 +33,8 @@ interface SwizzledDocContextValue extends DocContextValue {
|
||||
const DocItemContent: React.FC<Props> = ({ children }) => {
|
||||
const syntheticTitle = useSyntheticTitle();
|
||||
const { frontMatter } = useDoc() as SwizzledDocContextValue;
|
||||
const {
|
||||
support_level,
|
||||
authentik_version,
|
||||
authentik_enterprise,
|
||||
authentik_preview,
|
||||
} = frontMatter;
|
||||
const { support_level, authentik_version, authentik_enterprise, authentik_preview } =
|
||||
frontMatter;
|
||||
|
||||
const badges: JSX.Element[] = [];
|
||||
|
||||
@ -71,9 +63,7 @@ const DocItemContent: React.FC<Props> = ({ children }) => {
|
||||
{badges.length ? (
|
||||
<p className="badge-group">
|
||||
{badges.map((badge, index) => (
|
||||
<React.Fragment key={index}>
|
||||
{badge}
|
||||
</React.Fragment>
|
||||
<React.Fragment key={index}>{badge}</React.Fragment>
|
||||
))}
|
||||
</p>
|
||||
) : null}
|
||||
|
@ -1,13 +1,13 @@
|
||||
import React, { type ReactNode } from "react";
|
||||
import clsx from "clsx";
|
||||
import EditThisPage from "@theme/EditThisPage";
|
||||
import type { Props } from "@theme/EditMetaRow";
|
||||
|
||||
import LastUpdated from "@theme/LastUpdated";
|
||||
import Admonition from "@theme/Admonition";
|
||||
import styles from "./styles.module.css";
|
||||
import Translate from "@docusaurus/Translate";
|
||||
import Admonition from "@theme/Admonition";
|
||||
import IconNote from "@theme/Admonition/Icon/Note";
|
||||
import type { Props } from "@theme/EditMetaRow";
|
||||
import EditThisPage from "@theme/EditThisPage";
|
||||
import LastUpdated from "@theme/LastUpdated";
|
||||
import clsx from "clsx";
|
||||
import React, { type ReactNode } from "react";
|
||||
|
||||
import styles from "./styles.module.css";
|
||||
|
||||
const EditMetaRow: React.FC<Props> = ({
|
||||
className,
|
||||
@ -40,11 +40,9 @@ const EditMetaRow: React.FC<Props> = ({
|
||||
id="theme.common.contributor.footerDescription1"
|
||||
description="The description for the contribution footer"
|
||||
>
|
||||
We welcome your knowledge and expertise. If you see
|
||||
areas of the documentation that you can improve (fix a
|
||||
typo, correct a technical detail, add additional
|
||||
context, etc.) we would really appreciate your
|
||||
contribution.
|
||||
We welcome your knowledge and expertise. If you see areas of the
|
||||
documentation that you can improve (fix a typo, correct a technical detail,
|
||||
add additional context, etc.) we would really appreciate your contribution.
|
||||
</Translate>
|
||||
</p>
|
||||
|
||||
@ -109,10 +107,7 @@ const EditMetaRow: React.FC<Props> = ({
|
||||
<div className="row">
|
||||
<div className={clsx("col", styles.lastUpdated)}>
|
||||
{(lastUpdatedAt || lastUpdatedBy) && (
|
||||
<LastUpdated
|
||||
lastUpdatedAt={lastUpdatedAt}
|
||||
lastUpdatedBy={lastUpdatedBy}
|
||||
/>
|
||||
<LastUpdated lastUpdatedAt={lastUpdatedAt} lastUpdatedBy={lastUpdatedBy} />
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -52,8 +52,7 @@ html[data-theme="dark"] {
|
||||
display: flex;
|
||||
gap: var(--ifm-spacing-horizontal);
|
||||
justify-content: center;
|
||||
margin: calc(var(--ifm-spacing-horizontal) * 2) 0
|
||||
var(--ifm-spacing-horizontal);
|
||||
margin: calc(var(--ifm-spacing-horizontal) * 2) 0 var(--ifm-spacing-horizontal);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import React, { type ReactNode } from "react";
|
||||
import Link from "@docusaurus/Link";
|
||||
import Translate from "@docusaurus/Translate";
|
||||
import { ThemeClassNames } from "@docusaurus/theme-common";
|
||||
import Link from "@docusaurus/Link";
|
||||
import type { Props } from "@theme/EditThisPage";
|
||||
import React, { type ReactNode } from "react";
|
||||
|
||||
export default function EditThisPage({ editUrl }: Props): ReactNode {
|
||||
return (
|
||||
|
@ -1,7 +1,5 @@
|
||||
export function generateVersionDropdown(allReleases) {
|
||||
const releases = allReleases.filter(
|
||||
(release) => typeof release === "string",
|
||||
);
|
||||
const releases = allReleases.filter((release) => typeof release === "string");
|
||||
const latest = releases[0].replace(/releases\/\d+\/v/, "");
|
||||
return `<div class="navbar__item dropdown dropdown--hoverable dropdown--right">
|
||||
<div aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link menu__link">
|
||||
|
@ -1,7 +1,8 @@
|
||||
import test from "node:test";
|
||||
import FastGlob from "fast-glob";
|
||||
import assert from "node:assert";
|
||||
import test from "node:test";
|
||||
|
||||
import sidebar from "../sidebarsIntegrations.js";
|
||||
import glob from "glob";
|
||||
|
||||
const getSidebarItems = () => {
|
||||
const allItems = [];
|
||||
@ -27,8 +28,7 @@ test("ensure all services have a sidebar entry", (t) => {
|
||||
.filter((entry) => entry.startsWith("services/"))
|
||||
.map((entry) => entry.replace("/index", ""))
|
||||
.map((entry) => entry.replace("services/", ""));
|
||||
const servicesFiles = glob
|
||||
.sync("integrations/**/*.+(md|mdx)")
|
||||
const servicesFiles = FastGlob.sync("integrations/**/*.+(md|mdx)")
|
||||
.filter((entry) => entry.startsWith("integrations/services/"))
|
||||
.map((entry) => entry.replace("integrations/services/", ""))
|
||||
.map((entry) => entry.replace(/\/index\.mdx?/, ""))
|
||||
@ -45,8 +45,7 @@ test("ensure all sources have a sidebar entry", (t) => {
|
||||
.filter((entry) => entry.startsWith("sources/"))
|
||||
.map((entry) => entry.replace("/index", ""))
|
||||
.map((entry) => entry.replace("sources/", ""));
|
||||
const sourceFiles = glob
|
||||
.sync("integrations/**/*.+(md|mdx)")
|
||||
const sourceFiles = FastGlob.sync("integrations/**/*.+(md|mdx)")
|
||||
.filter((entry) => entry.startsWith("integrations/sources/"))
|
||||
.map((entry) => entry.replace("integrations/sources/", ""))
|
||||
.map((entry) => entry.replace(/\/index\.mdx?/, ""))
|
||||
|
@ -1,8 +1,32 @@
|
||||
// @file TSConfig used by the docs package during development.
|
||||
//
|
||||
// @remarks
|
||||
// While this configuration will influence the IDE experience,
|
||||
// Docusaurus will instead use an internal configuration to build the site.
|
||||
//
|
||||
// @see https://docusaurus.io/docs/typescript-support
|
||||
{
|
||||
// This file is not used in compilation. It is here just for a nice editor experience.
|
||||
"extends": "@docusaurus/tsconfig",
|
||||
"extends": "@goauthentik/tsconfig",
|
||||
"compilerOptions": {
|
||||
"baseUrl": "."
|
||||
"noEmit": true,
|
||||
"checkJs": true,
|
||||
"allowJs": true,
|
||||
"composite": false,
|
||||
"esModuleInterop": true,
|
||||
"moduleResolution": "bundler",
|
||||
"module": "esnext",
|
||||
"jsx": "preserve",
|
||||
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@site/*": ["./*"]
|
||||
}
|
||||
},
|
||||
"exclude": [".docusaurus", "build", "node_modules"]
|
||||
"exclude": [
|
||||
// ---
|
||||
"./out/**/*",
|
||||
"./dist/**/*",
|
||||
".docusaurus",
|
||||
"build"
|
||||
]
|
||||
}
|
||||
|
Reference in New Issue
Block a user