From 81a22aed38d9af98435c67fcb9b6265b26865f9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 13:28:29 +0100 Subject: [PATCH 001/105] website: bump @types/react from 18.2.48 to 18.2.51 in /website (#8395) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.48 to 18.2.51. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 6ac5fa40aa..13e2819cf5 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -33,7 +33,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.48", + "@types/react": "^18.2.51", "prettier": "3.2.4", "typescript": "~5.3.3" }, @@ -4374,9 +4374,9 @@ "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==" }, "node_modules/@types/react": { - "version": "18.2.48", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz", - "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==", + "version": "18.2.51", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.51.tgz", + "integrity": "sha512-XeoMaU4CzyjdRr3c4IQQtiH7Rpo18V07rYZUucEZQwOUEtGgTXv7e6igQiQ+xnV6MbMe1qjEmKdgMNnfppnXfg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/website/package.json b/website/package.json index f9ea6adf92..c94ca6f5ae 100644 --- a/website/package.json +++ b/website/package.json @@ -52,7 +52,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.48", + "@types/react": "^18.2.51", "prettier": "3.2.4", "typescript": "~5.3.3" }, From a315d1d9662b5170703f7452e47621466b68fdc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 13:28:41 +0100 Subject: [PATCH 002/105] core: bump ruff from 0.1.15 to 0.2.0 (#8394) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.15 to 0.2.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/v0.1.15...v0.2.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/poetry.lock b/poetry.lock index eb5c1436c3..094fb83bd7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3601,28 +3601,28 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.1.15" +version = "0.2.0" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5fe8d54df166ecc24106db7dd6a68d44852d14eb0729ea4672bb4d96c320b7df"}, - {file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6f0bfbb53c4b4de117ac4d6ddfd33aa5fc31beeaa21d23c45c6dd249faf9126f"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0d432aec35bfc0d800d4f70eba26e23a352386be3a6cf157083d18f6f5881c8"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9405fa9ac0e97f35aaddf185a1be194a589424b8713e3b97b762336ec79ff807"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66ec24fe36841636e814b8f90f572a8c0cb0e54d8b5c2d0e300d28a0d7bffec"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6f8ad828f01e8dd32cc58bc28375150171d198491fc901f6f98d2a39ba8e3ff5"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86811954eec63e9ea162af0ffa9f8d09088bab51b7438e8b6488b9401863c25e"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd4025ac5e87d9b80e1f300207eb2fd099ff8200fa2320d7dc066a3f4622dc6b"}, - {file = "ruff-0.1.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b17b93c02cdb6aeb696effecea1095ac93f3884a49a554a9afa76bb125c114c1"}, - {file = "ruff-0.1.15-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ddb87643be40f034e97e97f5bc2ef7ce39de20e34608f3f829db727a93fb82c5"}, - {file = "ruff-0.1.15-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:abf4822129ed3a5ce54383d5f0e964e7fef74a41e48eb1dfad404151efc130a2"}, - {file = "ruff-0.1.15-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6c629cf64bacfd136c07c78ac10a54578ec9d1bd2a9d395efbee0935868bf852"}, - {file = "ruff-0.1.15-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1bab866aafb53da39c2cadfb8e1c4550ac5340bb40300083eb8967ba25481447"}, - {file = "ruff-0.1.15-py3-none-win32.whl", hash = "sha256:2417e1cb6e2068389b07e6fa74c306b2810fe3ee3476d5b8a96616633f40d14f"}, - {file = "ruff-0.1.15-py3-none-win_amd64.whl", hash = "sha256:3837ac73d869efc4182d9036b1405ef4c73d9b1f88da2413875e34e0d6919587"}, - {file = "ruff-0.1.15-py3-none-win_arm64.whl", hash = "sha256:9a933dfb1c14ec7a33cceb1e49ec4a16b51ce3c20fd42663198746efc0427360"}, - {file = "ruff-0.1.15.tar.gz", hash = "sha256:f6dfa8c1b21c913c326919056c390966648b680966febcb796cc9d1aaab8564e"}, + {file = "ruff-0.2.0-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:638ea3294f800d18bae84a492cb5a245c8d29c90d19a91d8e338937a4c27fca0"}, + {file = "ruff-0.2.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3ff35433fcf4dff6d610738712152df6b7d92351a1bde8e00bd405b08b3d5759"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf9faafbdcf4f53917019f2c230766da437d4fd5caecd12ddb68bb6a17d74399"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8153a3e4128ed770871c47545f1ae7b055023e0c222ff72a759f5a341ee06483"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8a75a98ae989a27090e9c51f763990ad5bbc92d20626d54e9701c7fe597f399"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:87057dd2fdde297130ff99553be8549ca38a2965871462a97394c22ed2dfc19d"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d232f99d3ab00094ebaf88e0fb7a8ccacaa54cc7fa3b8993d9627a11e6aed7a"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d3c641f95f435fc6754b05591774a17df41648f0daf3de0d75ad3d9f099ab92"}, + {file = "ruff-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3826fb34c144ef1e171b323ed6ae9146ab76d109960addca730756dc19dc7b22"}, + {file = "ruff-0.2.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:eceab7d85d09321b4de18b62d38710cf296cb49e98979960a59c6b9307c18cfe"}, + {file = "ruff-0.2.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:30ad74687e1f4a9ff8e513b20b82ccadb6bd796fe5697f1e417189c5cde6be3e"}, + {file = "ruff-0.2.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a7e3818698f8460bd0f8d4322bbe99db8327e9bc2c93c789d3159f5b335f47da"}, + {file = "ruff-0.2.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:edf23041242c48b0d8295214783ef543847ef29e8226d9f69bf96592dba82a83"}, + {file = "ruff-0.2.0-py3-none-win32.whl", hash = "sha256:e155147199c2714ff52385b760fe242bb99ea64b240a9ffbd6a5918eb1268843"}, + {file = "ruff-0.2.0-py3-none-win_amd64.whl", hash = "sha256:ba918e01cdd21e81b07555564f40d307b0caafa9a7a65742e98ff244f5035c59"}, + {file = "ruff-0.2.0-py3-none-win_arm64.whl", hash = "sha256:3fbaff1ba9564a2c5943f8f38bc221f04bac687cc7485e45237579fee7ccda79"}, + {file = "ruff-0.2.0.tar.gz", hash = "sha256:63856b91837606c673537d2889989733d7dffde553828d3b0f0bacfa6def54be"}, ] [[package]] From 709436aab4e7e494576b813e28114f69d9912e4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 13:28:53 +0100 Subject: [PATCH 003/105] web: bump the sentry group in /web with 1 update (#8393) Bumps the sentry group in /web with 1 update: @spotlightjs/spotlight. Updates `@spotlightjs/spotlight` from 1.2.10 to 1.2.11 --- updated-dependencies: - dependency-name: "@spotlightjs/spotlight" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 16 ++++++++-------- web/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 5411d8ff36..ab1616c19b 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -61,7 +61,7 @@ "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", - "@spotlightjs/spotlight": "^1.2.10", + "@spotlightjs/spotlight": "^1.2.11", "@storybook/addon-essentials": "^7.6.12", "@storybook/addon-links": "^7.6.12", "@storybook/api": "^7.6.12", @@ -4846,9 +4846,9 @@ "dev": true }, "node_modules/@spotlightjs/overlay": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@spotlightjs/overlay/-/overlay-1.4.1.tgz", - "integrity": "sha512-YZj/po1jT2KRzq5zFLgISRrt0S9jkxJf+8e9yW+POaQxaOkM5SB6h9ZjjN4bM9/OlXOIqVGoqFhjr4TaGxglJw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@spotlightjs/overlay/-/overlay-1.5.0.tgz", + "integrity": "sha512-HMzxwHxD4VLZLHL+Ec7akR3NzUxfsGrWJSdFTAjQGeH/bBtZ3wHYIiD1nrpt0ONHYHW2K+bFFX6Razi+OKdlLA==", "dev": true }, "node_modules/@spotlightjs/sidecar": { @@ -4861,12 +4861,12 @@ } }, "node_modules/@spotlightjs/spotlight": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@spotlightjs/spotlight/-/spotlight-1.2.10.tgz", - "integrity": "sha512-U8rHtNIjDeH1XRhHyMzMbXB+d/8wr53B1aDq45n5XWqghthYR3oRgBaAgMt7Evmf53LSNQY4gN9ZjRBX9/n2Tw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@spotlightjs/spotlight/-/spotlight-1.2.11.tgz", + "integrity": "sha512-UE2AQLpGO6bPd7JzEEGfdEzYm1VwpbRMn1BJltpP5j99pKF7DKLWovfaqD7JDCwVQPfDqWzBhb26JTHZJFK+0w==", "dev": true, "dependencies": { - "@spotlightjs/overlay": "1.4.1", + "@spotlightjs/overlay": "1.5.0", "@spotlightjs/sidecar": "1.3.5" }, "bin": { diff --git a/web/package.json b/web/package.json index 90b1486939..1c41697a21 100644 --- a/web/package.json +++ b/web/package.json @@ -86,7 +86,7 @@ "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", - "@spotlightjs/spotlight": "^1.2.10", + "@spotlightjs/spotlight": "^1.2.11", "@storybook/addon-essentials": "^7.6.12", "@storybook/addon-links": "^7.6.12", "@storybook/api": "^7.6.12", From f2d2d84832894a3855d3f8f3553857470dd74483 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:46:39 +0100 Subject: [PATCH 004/105] web: bump the wdio group in /tests/wdio with 3 updates (#8409) Bumps the wdio group in /tests/wdio with 3 updates: [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli), [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner) and [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter). Updates `@wdio/cli` from 8.29.3 to 8.29.7 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.29.7/packages/wdio-cli) Updates `@wdio/local-runner` from 8.29.5 to 8.29.7 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.29.7/packages/wdio-local-runner) Updates `@wdio/spec-reporter` from 8.29.3 to 8.29.7 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.29.7/packages/wdio-spec-reporter) --- updated-dependencies: - dependency-name: "@wdio/cli" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: wdio - dependency-name: "@wdio/local-runner" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: wdio - dependency-name: "@wdio/spec-reporter" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: wdio ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 76 ++++++++++++++++++------------------ tests/wdio/package.json | 6 +-- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index ee49705bee..74bead1f57 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -12,10 +12,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", - "@wdio/cli": "^8.29.3", - "@wdio/local-runner": "^8.29.5", + "@wdio/cli": "^8.29.7", + "@wdio/local-runner": "^8.29.7", "@wdio/mocha-framework": "^8.29.3", - "@wdio/spec-reporter": "^8.29.3", + "@wdio/spec-reporter": "^8.29.7", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", @@ -1187,17 +1187,17 @@ } }, "node_modules/@wdio/cli": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.29.3.tgz", - "integrity": "sha512-n0Tgl5RgAdJtr5wBY4w56QQim36e7hIZQM9vOtrTRUaMmY3XoYlExtmYu+wUx4zFoy3p5mK+AW4Of0tl1CMUzg==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.29.7.tgz", + "integrity": "sha512-YxZwaCeulBIBqnpfM8QbpHBN8qcktZQfDCVJpBBNWmlGDNYmWU4SdASEESm/hTwXTIIW72U3OUQ6gypbQ+51+Q==", "dev": true, "dependencies": { "@types/node": "^20.1.1", "@vitest/snapshot": "^1.2.1", "@wdio/config": "8.29.3", - "@wdio/globals": "8.29.3", + "@wdio/globals": "8.29.7", "@wdio/logger": "8.28.0", - "@wdio/protocols": "8.24.12", + "@wdio/protocols": "8.29.7", "@wdio/types": "8.29.1", "@wdio/utils": "8.29.3", "async-exit-hook": "^2.0.1", @@ -1214,7 +1214,7 @@ "lodash.union": "^4.6.0", "read-pkg-up": "^10.0.0", "recursive-readdir": "^2.2.3", - "webdriverio": "8.29.3", + "webdriverio": "8.29.7", "yargs": "^17.7.2" }, "bin": { @@ -1255,28 +1255,28 @@ } }, "node_modules/@wdio/globals": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.29.3.tgz", - "integrity": "sha512-WPRjPf1yiRYt7tUjctKiBLPOUnO8kHt2SUcsQ59E0gg9zGfUXKWupnrfa2qoOAiieSySUwutf/hjDi/yvTT4mA==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.29.7.tgz", + "integrity": "sha512-f74Sl6XWr/wkEjoZnSvu8F6HIt9GR6/ysPMT/NWAW0xt/XRQne1TDm070i6+9mrKE25YHr/daqTkLgOlq1/tVA==", "dev": true, "engines": { "node": "^16.13 || >=18" }, "optionalDependencies": { "expect-webdriverio": "^4.9.3", - "webdriverio": "8.29.3" + "webdriverio": "8.29.7" } }, "node_modules/@wdio/local-runner": { - "version": "8.29.5", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.29.5.tgz", - "integrity": "sha512-+5A4i+h2ty0rn+TzjGPVR3m8ufqKev4guujx0d/dgrGiiyFb0jLxkAXQbz/0MktS1n11WMuflC8nr3AZ7J6FRA==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.29.7.tgz", + "integrity": "sha512-MNvEmtldtuZetJfSLBQfaih9AusxZ96ys9Uv71HGcJc+2GR0FKI1fRq8FgwJInAtS7PCELudsfy6L9Ga07PQmA==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", "@wdio/repl": "8.24.12", - "@wdio/runner": "8.29.5", + "@wdio/runner": "8.29.7", "@wdio/types": "8.29.1", "async-exit-hook": "^2.0.1", "split2": "^4.1.0", @@ -1331,9 +1331,9 @@ } }, "node_modules/@wdio/protocols": { - "version": "8.24.12", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.24.12.tgz", - "integrity": "sha512-QnVj3FkapmVD3h2zoZk+ZQ8gevSj9D9MiIQIy8eOnY4FAneYZ9R9GvoW+mgNcCZO8S8++S/jZHetR8n+8Q808g==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.29.7.tgz", + "integrity": "sha512-9hhEePMLmI8fm9F2v4jlg9x4w4jEoZmY3vT6fXy90ne1DFaGWfy/a853nKEagQe/ZzxkN3/cpMBh8mryv9BVjw==", "dev": true }, "node_modules/@wdio/repl": { @@ -1365,31 +1365,31 @@ } }, "node_modules/@wdio/runner": { - "version": "8.29.5", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.29.5.tgz", - "integrity": "sha512-CIKFFajJocQZsZe3l/QWuGgHTpFO13toXBR/02LuPke6Z8dJd9poxQVYt6DKNcyC6jpI+Cpd0ZXMEOE5qfOUrA==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.29.7.tgz", + "integrity": "sha512-EL33yu9IBXyrDyWYhn4cEMY+0uZhBU/PswKm7TzpeSwIkqhh+6j8eaWFwZv62z/qU8bNQXs2qsTAsVSGhf3pKg==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/config": "8.29.3", - "@wdio/globals": "8.29.3", + "@wdio/globals": "8.29.7", "@wdio/logger": "8.28.0", "@wdio/types": "8.29.1", "@wdio/utils": "8.29.3", "deepmerge-ts": "^5.0.0", "expect-webdriverio": "^4.9.3", "gaze": "^1.1.2", - "webdriver": "8.29.3", - "webdriverio": "8.29.3" + "webdriver": "8.29.7", + "webdriverio": "8.29.7" }, "engines": { "node": "^16.13 || >=18" } }, "node_modules/@wdio/spec-reporter": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.29.3.tgz", - "integrity": "sha512-di3SZKupuwW4/Uts9vqDkaVxe6TSnnpLmQg4zmlFhbixC89zM4EW/eXoLA9n0LFfx3HpuhRF/exgduJf71ZH/Q==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.29.7.tgz", + "integrity": "sha512-zwqpcjcEPnPrQh5rez0WM0izkP0IALtudOjMZTlFTOmwD1HqI9QeIYDVbO+Yp5ugJca28R/n5bDExIIyBhXYpQ==", "dev": true, "dependencies": { "@wdio/reporter": "8.29.1", @@ -8734,16 +8734,16 @@ } }, "node_modules/webdriver": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.29.3.tgz", - "integrity": "sha512-VL9SNV4FBX/8ak45aS35SYYDWc6HLXsfbnhVJnPSku8DgfDbfG8g9bCKQckpQcP7Te8a81/XbbrCjZfuqhVHfA==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.29.7.tgz", + "integrity": "sha512-V9Wc2kXoK7sRbCJV6wzrOgbV2ZfWxYfCHbZZRCUuZxnAVhSrhWtciGND7F8nuZpoVXM4Hbr54hXulEl8Z6oWQg==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", "@wdio/config": "8.29.3", "@wdio/logger": "8.28.0", - "@wdio/protocols": "8.24.12", + "@wdio/protocols": "8.29.7", "@wdio/types": "8.29.1", "@wdio/utils": "8.29.3", "deepmerge-ts": "^5.1.0", @@ -8756,15 +8756,15 @@ } }, "node_modules/webdriverio": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.29.3.tgz", - "integrity": "sha512-U8JQuBXSJhdSdSnDttekN3o6WCTf3o805HDncOYtRebFd3/4vy2PmYBOOhbY5lmEq7/ROA8KSbe7TfogWskzTQ==", + "version": "8.29.7", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.29.7.tgz", + "integrity": "sha512-MyWbPB7rEat8I8nb4h8u+GjUA5KCQty9S/9tl/8AYV8Ar8o7hFv71lCnLCKzDZZoUzio7cF17r+hUHoRq/gRdQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/config": "8.29.3", "@wdio/logger": "8.28.0", - "@wdio/protocols": "8.24.12", + "@wdio/protocols": "8.29.7", "@wdio/repl": "8.24.12", "@wdio/types": "8.29.1", "@wdio/utils": "8.29.3", @@ -8784,7 +8784,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.29.3" + "webdriver": "8.29.7" }, "engines": { "node": "^16.13 || >=18" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index da12b113bf..da28da8b40 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -6,10 +6,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", - "@wdio/cli": "^8.29.3", - "@wdio/local-runner": "^8.29.5", + "@wdio/cli": "^8.29.7", + "@wdio/local-runner": "^8.29.7", "@wdio/mocha-framework": "^8.29.3", - "@wdio/spec-reporter": "^8.29.3", + "@wdio/spec-reporter": "^8.29.7", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", From 1bc6477f58ead2ecc3bc3b5aab14fb70e5aac5da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:46:50 +0100 Subject: [PATCH 005/105] web: bump prettier from 3.2.4 to 3.2.5 in /tests/wdio (#8410) Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 8 ++++---- tests/wdio/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 74bead1f57..813fab199a 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -20,7 +20,7 @@ "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", "npm-run-all": "^4.1.5", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "ts-node": "^10.9.2", "typescript": "^5.3.3", "wdio-wait-for": "^3.0.10" @@ -6699,9 +6699,9 @@ } }, "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index da28da8b40..0ca24fbbbc 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -14,7 +14,7 @@ "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", "npm-run-all": "^4.1.5", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "ts-node": "^10.9.2", "typescript": "^5.3.3", "wdio-wait-for": "^3.0.10" From 11e55a1b91a7d650c49aa024f563233abbfe5b3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:47:14 +0100 Subject: [PATCH 006/105] website: bump prettier from 3.2.4 to 3.2.5 in /website (#8407) Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 13e2819cf5..c29ce3296f 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -34,7 +34,7 @@ "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", "@types/react": "^18.2.51", - "prettier": "3.2.4", + "prettier": "3.2.5", "typescript": "~5.3.3" }, "engines": { @@ -13778,9 +13778,9 @@ } }, "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/website/package.json b/website/package.json index c94ca6f5ae..af6689f715 100644 --- a/website/package.json +++ b/website/package.json @@ -53,7 +53,7 @@ "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", "@types/react": "^18.2.51", - "prettier": "3.2.4", + "prettier": "3.2.5", "typescript": "~5.3.3" }, "engines": { From 9327ae89972bdcb1e36db19bfce06bff65119797 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:47:28 +0100 Subject: [PATCH 007/105] web: bump mermaid from 10.7.0 to 10.8.0 in /web (#8406) Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.7.0 to 10.8.0. - [Release notes](https://github.com/mermaid-js/mermaid/releases) - [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md) - [Commits](https://github.com/mermaid-js/mermaid/compare/v10.7.0...v10.8.0) --- updated-dependencies: - dependency-name: mermaid dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 41 ++++++++--------------------------------- web/package.json | 2 +- 2 files changed, 9 insertions(+), 34 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index ab1616c19b..3f34e18cf4 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -36,7 +36,7 @@ "fuse.js": "^7.0.0", "guacamole-common-js": "^1.5.0", "lit": "^2.8.0", - "mermaid": "^10.7.0", + "mermaid": "^10.8.0", "rapidoc": "^9.3.4", "style-mod": "^4.1.0", "webcomponent-qr-code": "^1.2.0", @@ -9337,9 +9337,9 @@ "dev": true }, "node_modules/cytoscape": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.26.0.tgz", - "integrity": "sha512-IV+crL+KBcrCnVVUCZW+zRRRFUZQcrtdOPXki+o4CFUWLdAEYvuZLcBSJC9EBK++suamERKzeY7roq2hdovV3w==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.28.1.tgz", + "integrity": "sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==", "dependencies": { "heap": "^0.2.6", "lodash": "^4.17.21" @@ -9359,30 +9359,6 @@ "cytoscape": "^3.2.0" } }, - "node_modules/cytoscape-fcose": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", - "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", - "dependencies": { - "cose-base": "^2.2.0" - }, - "peerDependencies": { - "cytoscape": "^3.2.0" - } - }, - "node_modules/cytoscape-fcose/node_modules/cose-base": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", - "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", - "dependencies": { - "layout-base": "^2.0.0" - } - }, - "node_modules/cytoscape-fcose/node_modules/layout-base": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", - "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" - }, "node_modules/d3": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", @@ -13728,16 +13704,15 @@ } }, "node_modules/mermaid": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.7.0.tgz", - "integrity": "sha512-PsvGupPCkN1vemAAjScyw4pw34p4/0dZkSrqvAB26hUvJulOWGIwt35FZWmT9wPIi4r0QLa5X0PB4YLIGn0/YQ==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.8.0.tgz", + "integrity": "sha512-9CzfSreRjdDJxX796+jW4zjEq0DVw5xVF0nWsqff8OTbrt+ml0TZ5PyYUjjUZJa2NYxYJZZXewEquxGiM8qZEA==", "dependencies": { "@braintree/sanitize-url": "^6.0.1", "@types/d3-scale": "^4.0.3", "@types/d3-scale-chromatic": "^3.0.0", - "cytoscape": "^3.23.0", + "cytoscape": "^3.28.1", "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.1.0", "d3": "^7.4.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.10", diff --git a/web/package.json b/web/package.json index 1c41697a21..3bb4828e98 100644 --- a/web/package.json +++ b/web/package.json @@ -61,7 +61,7 @@ "fuse.js": "^7.0.0", "guacamole-common-js": "^1.5.0", "lit": "^2.8.0", - "mermaid": "^10.7.0", + "mermaid": "^10.8.0", "rapidoc": "^9.3.4", "style-mod": "^4.1.0", "webcomponent-qr-code": "^1.2.0", From 2bd21146170d9c99137c44310a1fab52f7486051 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:47:36 +0100 Subject: [PATCH 008/105] web: bump prettier from 3.2.4 to 3.2.5 in /web (#8405) Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 3f34e18cf4..11a9c89c77 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -88,7 +88,7 @@ "github-slugger": "^2.0.0", "lit-analyzer": "^2.0.3", "npm-run-all": "^4.1.5", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "pseudolocale": "^2.0.0", "pyright": "=1.1.338", "react": "^18.2.0", @@ -15484,9 +15484,9 @@ } }, "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/web/package.json b/web/package.json index 3bb4828e98..25b02e4417 100644 --- a/web/package.json +++ b/web/package.json @@ -113,7 +113,7 @@ "github-slugger": "^2.0.0", "lit-analyzer": "^2.0.3", "npm-run-all": "^4.1.5", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "pseudolocale": "^2.0.0", "pyright": "=1.1.338", "react": "^18.2.0", From 961d28331b77599690ef3f0b16f55fc9064fc346 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:47:43 +0100 Subject: [PATCH 009/105] web: bump @codemirror/lang-python from 6.1.3 to 6.1.4 in /web (#8404) Bumps [@codemirror/lang-python](https://github.com/codemirror/lang-python) from 6.1.3 to 6.1.4. - [Changelog](https://github.com/codemirror/lang-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/codemirror/lang-python/compare/6.1.3...6.1.4) --- updated-dependencies: - dependency-name: "@codemirror/lang-python" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 16 +++++++++------- web/package.json | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 11a9c89c77..d99278fa9c 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@codemirror/lang-html": "^6.4.8", "@codemirror/lang-javascript": "^6.2.1", - "@codemirror/lang-python": "^6.1.3", + "@codemirror/lang-python": "^6.1.4", "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.3", "@codemirror/theme-one-dark": "^6.1.2", @@ -2268,12 +2268,14 @@ } }, "node_modules/@codemirror/lang-python": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.3.tgz", - "integrity": "sha512-S9w2Jl74hFlD5nqtUMIaXAq9t5WlM0acCkyuQWUUSvZclk1sV+UfnpFiZzuZSG+hfEaOmxKR5UxY/Uxswn7EhQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.4.tgz", + "integrity": "sha512-b6d1TDqrkCjFNvMO01SWldFiDoZ39yl3tDMC1Y5f8glA2eZpynPxJhwYVTlGFr0stizcJgrp6ojLEGH2myoZAw==", "dependencies": { "@codemirror/autocomplete": "^6.3.2", "@codemirror/language": "^6.8.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.1", "@lezer/python": "^1.1.4" } }, @@ -3399,9 +3401,9 @@ "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" }, "node_modules/@lezer/common": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.4.tgz", - "integrity": "sha512-lZHlk8p67x4aIDtJl6UQrXSOP6oi7dQR3W/geFVrENdA1JDaAJWldnVqVjPMJupbTKbzDfFcePfKttqVidS/dg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", + "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" }, "node_modules/@lezer/css": { "version": "1.1.3", diff --git a/web/package.json b/web/package.json index 25b02e4417..6c85795475 100644 --- a/web/package.json +++ b/web/package.json @@ -36,7 +36,7 @@ "dependencies": { "@codemirror/lang-html": "^6.4.8", "@codemirror/lang-javascript": "^6.2.1", - "@codemirror/lang-python": "^6.1.3", + "@codemirror/lang-python": "^6.1.4", "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.3", "@codemirror/theme-one-dark": "^6.1.2", From cef1d2d0f12d0f04b2fbb7534ad7ae315f8ff4db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 11:59:39 +0100 Subject: [PATCH 010/105] website: bump @types/react from 18.2.51 to 18.2.53 in /website (#8408) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.51 to 18.2.53. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index c29ce3296f..b15ff83ac2 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -33,7 +33,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.51", + "@types/react": "^18.2.53", "prettier": "3.2.5", "typescript": "~5.3.3" }, @@ -4374,9 +4374,9 @@ "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==" }, "node_modules/@types/react": { - "version": "18.2.51", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.51.tgz", - "integrity": "sha512-XeoMaU4CzyjdRr3c4IQQtiH7Rpo18V07rYZUucEZQwOUEtGgTXv7e6igQiQ+xnV6MbMe1qjEmKdgMNnfppnXfg==", + "version": "18.2.53", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.53.tgz", + "integrity": "sha512-52IHsMDT8qATp9B9zoOyobW8W3/0QhaJQTw1HwRj0UY2yBpCAQ7+S/CqHYQ8niAm3p4ji+rWUQ9UCib0GxQ60w==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/website/package.json b/website/package.json index af6689f715..befc73b46f 100644 --- a/website/package.json +++ b/website/package.json @@ -52,7 +52,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.51", + "@types/react": "^18.2.53", "prettier": "3.2.5", "typescript": "~5.3.3" }, From 3dc42bf5422a55fd442769ef706185514e8ac61f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 12:41:33 +0100 Subject: [PATCH 011/105] ci: bump codecov/codecov-action from 3 to 4 (#8387) * ci: bump codecov/codecov-action from 3 to 4 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v3...v4) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * pass codecov token Signed-off-by: Jens Langhammer --------- Signed-off-by: dependabot[bot] Signed-off-by: Jens Langhammer Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Langhammer --- .github/workflows/ci-main.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 24d4f71e9f..b55d910c78 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -122,9 +122,10 @@ jobs: poetry run make test poetry run coverage xml - if: ${{ always() }} - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: unit + token: ${{ secrets.CODECOV_TOKEN }} test-integration: runs-on: ubuntu-latest timeout-minutes: 30 @@ -139,9 +140,10 @@ jobs: poetry run coverage run manage.py test tests/integration poetry run coverage xml - if: ${{ always() }} - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: integration + token: ${{ secrets.CODECOV_TOKEN }} test-e2e: name: test-e2e (${{ matrix.job.name }}) runs-on: ubuntu-latest @@ -188,9 +190,10 @@ jobs: poetry run coverage run manage.py test ${{ matrix.job.glob }} poetry run coverage xml - if: ${{ always() }} - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: e2e + token: ${{ secrets.CODECOV_TOKEN }} ci-core-mark: needs: - lint From 087d5aa7e7bbdc133eee940e4f375f6ea568f375 Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 5 Feb 2024 13:45:07 +0100 Subject: [PATCH 012/105] web: only load enterprise summary for user and admin interface (#8414) Signed-off-by: Jens Langhammer --- .../admin/AdminInterface/AdminInterface.ts | 4 +- web/src/elements/Interface/Interface.ts | 40 +++++++++++-------- web/src/elements/Interface/index.ts | 4 +- web/src/user/UserInterface.ts | 4 +- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/web/src/admin/AdminInterface/AdminInterface.ts b/web/src/admin/AdminInterface/AdminInterface.ts index 0f1a59ccd0..dab187f8d9 100644 --- a/web/src/admin/AdminInterface/AdminInterface.ts +++ b/web/src/admin/AdminInterface/AdminInterface.ts @@ -7,7 +7,7 @@ import { import { configureSentry } from "@goauthentik/common/sentry"; import { me } from "@goauthentik/common/users"; import { WebsocketClient } from "@goauthentik/common/ws"; -import { Interface } from "@goauthentik/elements/Interface"; +import { EnterpriseAwareInterface } from "@goauthentik/elements/Interface"; import "@goauthentik/elements/ak-locale-context"; import "@goauthentik/elements/enterprise/EnterpriseStatusBanner"; import "@goauthentik/elements/messages/MessageContainer"; @@ -33,7 +33,7 @@ import { AdminApi, SessionUser, UiThemeEnum, Version } from "@goauthentik/api"; import "./AdminSidebar"; @customElement("ak-interface-admin") -export class AdminInterface extends Interface { +export class AdminInterface extends EnterpriseAwareInterface { @property({ type: Boolean }) notificationDrawerOpen = getURLParam("notificationDrawerOpen", false); diff --git a/web/src/elements/Interface/Interface.ts b/web/src/elements/Interface/Interface.ts index 687a4964b5..b97b87168a 100644 --- a/web/src/elements/Interface/Interface.ts +++ b/web/src/elements/Interface/Interface.ts @@ -66,6 +66,29 @@ export class Interface extends AKElement implements AkInterface { return this._brand; } + constructor() { + super(); + document.adoptedStyleSheets = [...document.adoptedStyleSheets, ensureCSSStyleSheet(PFBase)]; + brand().then((brand) => (this.brand = brand)); + config().then((config) => (this.config = config)); + + this.dataset.akInterfaceRoot = "true"; + } + + _activateTheme(root: AdoptedStyleSheetsElement, theme: UiThemeEnum): void { + super._activateTheme(root, theme); + super._activateTheme(document, theme); + } + + async getTheme(): Promise { + if (!this.uiConfig) { + this.uiConfig = await uiConfig(); + } + return this.uiConfig.theme?.base || UiThemeEnum.Automatic; + } +} + +export class EnterpriseAwareInterface extends Interface { _licenseSummaryContext = new ContextProvider(this, { context: authentikEnterpriseContext, initialValue: undefined, @@ -86,25 +109,8 @@ export class Interface extends AKElement implements AkInterface { constructor() { super(); - document.adoptedStyleSheets = [...document.adoptedStyleSheets, ensureCSSStyleSheet(PFBase)]; - brand().then((brand) => (this.brand = brand)); - config().then((config) => (this.config = config)); new EnterpriseApi(DEFAULT_CONFIG).enterpriseLicenseSummaryRetrieve().then((enterprise) => { this.licenseSummary = enterprise; }); - - this.dataset.akInterfaceRoot = "true"; - } - - _activateTheme(root: AdoptedStyleSheetsElement, theme: UiThemeEnum): void { - super._activateTheme(root, theme); - super._activateTheme(document, theme); - } - - async getTheme(): Promise { - if (!this.uiConfig) { - this.uiConfig = await uiConfig(); - } - return this.uiConfig.theme?.base || UiThemeEnum.Automatic; } } diff --git a/web/src/elements/Interface/index.ts b/web/src/elements/Interface/index.ts index e7d946cf62..df771286eb 100644 --- a/web/src/elements/Interface/index.ts +++ b/web/src/elements/Interface/index.ts @@ -1,4 +1,4 @@ -import { Interface } from "./Interface"; +import { EnterpriseAwareInterface, Interface } from "./Interface"; -export { Interface }; +export { Interface, EnterpriseAwareInterface }; export default Interface; diff --git a/web/src/user/UserInterface.ts b/web/src/user/UserInterface.ts index f9655341b5..53cdf15c9a 100644 --- a/web/src/user/UserInterface.ts +++ b/web/src/user/UserInterface.ts @@ -9,7 +9,7 @@ import { UserDisplay } from "@goauthentik/common/ui/config"; import { me } from "@goauthentik/common/users"; import { first } from "@goauthentik/common/utils"; import { WebsocketClient } from "@goauthentik/common/ws"; -import { Interface } from "@goauthentik/elements/Interface"; +import { EnterpriseAwareInterface } from "@goauthentik/elements/Interface"; import "@goauthentik/elements/ak-locale-context"; import "@goauthentik/elements/buttons/ActionButton"; import "@goauthentik/elements/enterprise/EnterpriseStatusBanner"; @@ -41,7 +41,7 @@ import PFDisplay from "@patternfly/patternfly/utilities/Display/display.css"; import { CoreApi, EventsApi, SessionUser } from "@goauthentik/api"; @customElement("ak-interface-user") -export class UserInterface extends Interface { +export class UserInterface extends EnterpriseAwareInterface { @property({ type: Boolean }) notificationDrawerOpen = getURLParam("notificationDrawerOpen", false); From f4b336a974ab4e69873cba2cd4ef4cab0234b412 Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 5 Feb 2024 16:38:23 +0100 Subject: [PATCH 013/105] web/admin: show connected services on user view page, fix styling (#8416) Signed-off-by: Jens Langhammer --- web/src/admin/users/UserViewPage.ts | 11 +++ web/src/common/styles/authentik.css | 4 ++ web/src/common/styles/theme-dark.css | 1 + .../user/sources}/BaseUserSettings.ts | 0 .../user}/sources/SourceSettings.ts | 70 +++++++++---------- .../user}/sources/SourceSettingsOAuth.ts | 22 +++--- .../user}/sources/SourceSettingsPlex.ts | 11 +-- .../user}/sources/SourceSettingsSAML.ts | 22 +++--- .../user/user-settings/UserSettingsPage.ts | 11 ++- web/xliff/de.xlf | 3 + web/xliff/en.xlf | 3 + web/xliff/es.xlf | 3 + web/xliff/fr.xlf | 65 +++++++++-------- web/xliff/ko.xlf | 3 + web/xliff/nl.xlf | 3 + web/xliff/pl.xlf | 3 + web/xliff/pseudo-LOCALE.xlf | 3 + web/xliff/tr.xlf | 3 + web/xliff/zh-CN.xlf | 3 + web/xliff/zh-Hans.xlf | 45 ++++++------ web/xliff/zh-Hant.xlf | 3 + web/xliff/zh_TW.xlf | 3 + 22 files changed, 178 insertions(+), 117 deletions(-) rename web/src/{user/user-settings => elements/user/sources}/BaseUserSettings.ts (100%) rename web/src/{user/user-settings => elements/user}/sources/SourceSettings.ts (69%) rename web/src/{user/user-settings => elements/user}/sources/SourceSettingsOAuth.ts (82%) rename web/src/{user/user-settings => elements/user}/sources/SourceSettingsPlex.ts (90%) rename web/src/{user/user-settings => elements/user}/sources/SourceSettingsSAML.ts (82%) diff --git a/web/src/admin/users/UserViewPage.ts b/web/src/admin/users/UserViewPage.ts index f270f6dfdf..fe1c878cef 100644 --- a/web/src/admin/users/UserViewPage.ts +++ b/web/src/admin/users/UserViewPage.ts @@ -13,6 +13,7 @@ import { getRelativeTime } from "@goauthentik/app/common/utils"; import "@goauthentik/app/elements/oauth/UserAccessTokenList"; import "@goauthentik/app/elements/oauth/UserRefreshTokenList"; import "@goauthentik/app/elements/rbac/ObjectPermissionsPage"; +import "@goauthentik/app/elements/user/sources/SourceSettings"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { userTypeToLabel } from "@goauthentik/common/labels"; @@ -318,6 +319,16 @@ export class UserViewPage extends WithCapabilitiesConfig(AKElement) { +
+
+ + +
+
`; } diff --git a/web/src/common/styles/authentik.css b/web/src/common/styles/authentik.css index 4ccabd8edd..790c4c4e10 100644 --- a/web/src/common/styles/authentik.css +++ b/web/src/common/styles/authentik.css @@ -150,3 +150,7 @@ html > form > input { margin-top: 13rem; } } + +.pf-c-data-list { + padding-inline-start: 0; +} diff --git a/web/src/common/styles/theme-dark.css b/web/src/common/styles/theme-dark.css index 764f66dd09..c49c1114e2 100644 --- a/web/src/common/styles/theme-dark.css +++ b/web/src/common/styles/theme-dark.css @@ -292,6 +292,7 @@ input[type="date"]::-webkit-calendar-picker-indicator { } /* data list */ .pf-c-data-list { + padding-inline-start: 0; border-top-color: var(--ak-dark-background-lighter); } .pf-c-data-list__item { diff --git a/web/src/user/user-settings/BaseUserSettings.ts b/web/src/elements/user/sources/BaseUserSettings.ts similarity index 100% rename from web/src/user/user-settings/BaseUserSettings.ts rename to web/src/elements/user/sources/BaseUserSettings.ts diff --git a/web/src/user/user-settings/sources/SourceSettings.ts b/web/src/elements/user/sources/SourceSettings.ts similarity index 69% rename from web/src/user/user-settings/sources/SourceSettings.ts rename to web/src/elements/user/sources/SourceSettings.ts index 203eef9f3d..d276d29e58 100644 --- a/web/src/user/user-settings/sources/SourceSettings.ts +++ b/web/src/elements/user/sources/SourceSettings.ts @@ -1,18 +1,16 @@ import { renderSourceIcon } from "@goauthentik/app/admin/sources/utils"; +import "@goauthentik/app/elements/user/sources/SourceSettingsOAuth"; +import "@goauthentik/app/elements/user/sources/SourceSettingsPlex"; +import "@goauthentik/app/elements/user/sources/SourceSettingsSAML"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; -import { me } from "@goauthentik/common/users"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/EmptyState"; -import "@goauthentik/user/user-settings/sources/SourceSettingsOAuth"; -import "@goauthentik/user/user-settings/sources/SourceSettingsPlex"; -import "@goauthentik/user/user-settings/sources/SourceSettingsSAML"; import { msg, str } from "@lit/localize"; import { CSSResult, TemplateResult, css, html } from "lit"; import { customElement, property } from "lit/decorators.js"; -import PFContent from "@patternfly/patternfly/components/Content/content.css"; import PFDataList from "@patternfly/patternfly/components/DataList/data-list.css"; import { PaginatedUserSourceConnectionList, SourcesApi, UserSetting } from "@goauthentik/api"; @@ -25,10 +23,15 @@ export class UserSourceSettingsPage extends AKElement { @property({ attribute: false }) connections?: PaginatedUserSourceConnectionList; + @property({ type: Number }) + userId?: number; + + @property({ type: Boolean }) + canConnect = true; + static get styles(): CSSResult[] { return [ PFDataList, - PFContent, css` .pf-c-data-list__cell { display: flex; @@ -57,10 +60,9 @@ export class UserSourceSettingsPage extends AKElement { } async firstUpdated(): Promise { - const user = await me(); this.sourceSettings = await new SourcesApi(DEFAULT_CONFIG).sourcesAllUserSettingsList(); this.connections = await new SourcesApi(DEFAULT_CONFIG).sourcesUserConnectionsAllList({ - user: user.user.pk, + user: this.userId, }); } @@ -79,29 +81,26 @@ export class UserSourceSettingsPage extends AKElement { switch (source.component) { case "ak-user-settings-source-oauth": return html` `; case "ak-user-settings-source-plex": return html` `; case "ak-user-settings-source-saml": return html` `; default: @@ -112,23 +111,17 @@ export class UserSourceSettingsPage extends AKElement { } render(): TemplateResult { - return html`
-

- ${msg( - "Connect your user account to the services listed below, to allow you to login using the service instead of traditional credentials.", - )} -

-
-
    - ${this.sourceSettings - ? html` - ${this.sourceSettings.length < 1 - ? html`` - : html` - ${this.sourceSettings.map((source) => { - return html`
  • + return html`
      + ${this.sourceSettings + ? html` + ${this.sourceSettings.length < 1 + ? html`` + : html` + ${this.sourceSettings.map((source) => { + return html`
    • +
      ${renderSourceIcon( @@ -141,12 +134,13 @@ export class UserSourceSettingsPage extends AKElement { ${this.renderSourceSettings(source)}
      -
    • `; - })} - `} - ` - : html` - `} -
    `; + +
  • `; + })} + `} + ` + : html` + `} +
`; } } diff --git a/web/src/user/user-settings/sources/SourceSettingsOAuth.ts b/web/src/elements/user/sources/SourceSettingsOAuth.ts similarity index 82% rename from web/src/user/user-settings/sources/SourceSettingsOAuth.ts rename to web/src/elements/user/sources/SourceSettingsOAuth.ts index 2461b487f9..141cc4cea5 100644 --- a/web/src/user/user-settings/sources/SourceSettingsOAuth.ts +++ b/web/src/elements/user/sources/SourceSettingsOAuth.ts @@ -1,14 +1,13 @@ +import { BaseUserSettings } from "@goauthentik/app/elements/user/sources/BaseUserSettings"; import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { MessageLevel } from "@goauthentik/common/messages"; import "@goauthentik/elements/Spinner"; import { showMessage } from "@goauthentik/elements/messages/MessageContainer"; -import { BaseUserSettings } from "@goauthentik/user/user-settings/BaseUserSettings"; import { msg, str } from "@lit/localize"; import { TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; -import { ifDefined } from "lit/directives/if-defined.js"; import { SourcesApi } from "@goauthentik/api"; @@ -57,13 +56,16 @@ export class SourceSettingsOAuth extends BaseUserSettings { ${msg("Disconnect")} `; } - return html` - ${msg("Connect")} - `; + if (this.configureUrl) { + return html` + ${msg("Connect")} + `; + } + return html`${msg("-")}`; } } diff --git a/web/src/user/user-settings/sources/SourceSettingsPlex.ts b/web/src/elements/user/sources/SourceSettingsPlex.ts similarity index 90% rename from web/src/user/user-settings/sources/SourceSettingsPlex.ts rename to web/src/elements/user/sources/SourceSettingsPlex.ts index a1c23cf57a..d9492f0d75 100644 --- a/web/src/user/user-settings/sources/SourceSettingsPlex.ts +++ b/web/src/elements/user/sources/SourceSettingsPlex.ts @@ -1,10 +1,10 @@ +import { BaseUserSettings } from "@goauthentik/app/elements/user/sources/BaseUserSettings"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { PlexAPIClient, popupCenterScreen } from "@goauthentik/common/helpers/plex"; import { MessageLevel } from "@goauthentik/common/messages"; import "@goauthentik/elements/Spinner"; import { showMessage } from "@goauthentik/elements/messages/MessageContainer"; -import { BaseUserSettings } from "@goauthentik/user/user-settings/BaseUserSettings"; import { msg, str } from "@lit/localize"; import { TemplateResult, html } from "lit"; @@ -77,8 +77,11 @@ export class SourceSettingsPlex extends BaseUserSettings { ${msg("Disconnect")} `; } - return html``; + if (this.configureUrl) { + return html``; + } + return html`${msg("-")}`; } } diff --git a/web/src/user/user-settings/sources/SourceSettingsSAML.ts b/web/src/elements/user/sources/SourceSettingsSAML.ts similarity index 82% rename from web/src/user/user-settings/sources/SourceSettingsSAML.ts rename to web/src/elements/user/sources/SourceSettingsSAML.ts index da88645c3e..fe09bb1193 100644 --- a/web/src/user/user-settings/sources/SourceSettingsSAML.ts +++ b/web/src/elements/user/sources/SourceSettingsSAML.ts @@ -1,14 +1,13 @@ +import { BaseUserSettings } from "@goauthentik/app/elements/user/sources/BaseUserSettings"; import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { MessageLevel } from "@goauthentik/common/messages"; import "@goauthentik/elements/Spinner"; import { showMessage } from "@goauthentik/elements/messages/MessageContainer"; -import { BaseUserSettings } from "@goauthentik/user/user-settings/BaseUserSettings"; import { msg, str } from "@lit/localize"; import { TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; -import { ifDefined } from "lit/directives/if-defined.js"; import { SourcesApi } from "@goauthentik/api"; @@ -57,13 +56,16 @@ export class SourceSettingsSAML extends BaseUserSettings { ${msg("Disconnect")} `; } - return html` - ${msg("Connect")} - `; + if (this.configureUrl) { + return html` + ${msg("Connect")} + `; + } + return html`${msg("-")}`; } } diff --git a/web/src/user/user-settings/UserSettingsPage.ts b/web/src/user/user-settings/UserSettingsPage.ts index 9506731728..efa28a5740 100644 --- a/web/src/user/user-settings/UserSettingsPage.ts +++ b/web/src/user/user-settings/UserSettingsPage.ts @@ -1,3 +1,4 @@ +import "@goauthentik/app/elements/user/sources/SourceSettings"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { AKElement, rootInterface } from "@goauthentik/elements/Base"; @@ -8,7 +9,6 @@ import { UserInterface } from "@goauthentik/user/UserInterface"; import "@goauthentik/user/user-settings/details/UserPassword"; import "@goauthentik/user/user-settings/details/UserSettingsFlowExecutor"; import "@goauthentik/user/user-settings/mfa/MFADevicesPage"; -import "@goauthentik/user/user-settings/sources/SourceSettings"; import "@goauthentik/user/user-settings/tokens/UserTokenList"; import { localized, msg } from "@lit/localize"; @@ -156,9 +156,14 @@ export class UserSettingsPage extends AKElement { class="pf-c-page__main-section pf-m-no-padding-mobile" >
-
- +
+ ${msg( + "Connect your user account to the services listed below, to allow you to login using the service instead of traditional credentials.", + )}
+ ()?.me?.user.pk)} + >
Preview for user + + + Brand name diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index 12ac5aa493..3167198715 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6660,6 +6660,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 81993ba417..a281f42c45 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -6306,6 +6306,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index cf0ae33fae..1634c6861d 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1613,7 +1613,7 @@ Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1781,8 +1781,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2870,7 +2870,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -2959,8 +2959,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3255,7 +3255,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3423,7 +3423,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3737,8 +3737,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3914,10 +3914,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - "? + " + "? @@ -4998,8 +4998,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5324,7 +5324,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5333,10 +5333,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5385,8 +5385,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6165,7 +6165,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7472,7 +7472,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7878,7 +7878,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Utilisateur créé et ajouté au groupe avec succès - This user will be added to the group "". + This user will be added to the group "". Cet utilisateur sera ajouté au groupe &quot;&quot;. @@ -8406,7 +8406,10 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Preview for user Prévisualisation pour un utilisateur + + + Brand name - \ No newline at end of file + diff --git a/web/xliff/ko.xlf b/web/xliff/ko.xlf index 83a4124bfe..f7ae504faf 100644 --- a/web/xliff/ko.xlf +++ b/web/xliff/ko.xlf @@ -8254,6 +8254,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name diff --git a/web/xliff/nl.xlf b/web/xliff/nl.xlf index e46e7f430a..535d2acb5b 100644 --- a/web/xliff/nl.xlf +++ b/web/xliff/nl.xlf @@ -8097,6 +8097,9 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Preview for user + + + Brand name diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index eb0b2a8cf1..08058446f3 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -6512,6 +6512,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index bec6613ec8..ff9313c852 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -8231,4 +8231,7 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + Brand name + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index b306b787ce..46a8b159fc 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -6299,6 +6299,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name diff --git a/web/xliff/zh-CN.xlf b/web/xliff/zh-CN.xlf index d75c53648a..4d32acfb9c 100644 --- a/web/xliff/zh-CN.xlf +++ b/web/xliff/zh-CN.xlf @@ -5209,6 +5209,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + Brand name + diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 4baffd8568..d2a9a99bb3 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1782,8 +1782,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2961,8 +2961,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3739,8 +3739,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3916,10 +3916,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5000,7 +5000,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5335,10 +5335,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5387,7 +5387,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7880,7 +7880,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8408,6 +8408,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user 用户预览 + + + Brand name diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 67eb41ef69..65cc16d738 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -6347,6 +6347,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 4b970d85ec..03024ed01e 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -8215,6 +8215,9 @@ Bindings to groups/users are checked against the user of the event. Preview for user + + + Brand name From a395e347df68e92bef7c9caaf803cc2fcb4a026b Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Mon, 5 Feb 2024 18:34:08 +0100 Subject: [PATCH 014/105] ci: do not run main, outpost when changes are made to website/ (#8192) --- .github/workflows/ci-main.yml | 2 ++ .github/workflows/ci-outpost.yml | 4 ++++ .github/workflows/ci-website.yml | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index b55d910c78..0a64ecda53 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -12,6 +12,8 @@ on: branches: - main - version-* + paths-ignore: + - website env: POSTGRES_DB: authentik diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index 35c83ac860..76d2adfa07 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -6,10 +6,14 @@ on: - main - next - version-* + paths-ignore: + - website pull_request: branches: - main - version-* + paths-ignore: + - website jobs: lint-golint: diff --git a/.github/workflows/ci-website.yml b/.github/workflows/ci-website.yml index 78a3a8f8a1..d65f5e44e3 100644 --- a/.github/workflows/ci-website.yml +++ b/.github/workflows/ci-website.yml @@ -12,6 +12,13 @@ on: - version-* jobs: + lint-codespell: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup authentik env + uses: ./.github/actions/setup + - run: poetry run make ci-codespell lint-prettier: runs-on: ubuntu-latest steps: @@ -63,6 +70,7 @@ jobs: run: npm run ${{ matrix.job }} ci-website-mark: needs: + - lint-codespell - lint-prettier - test - build From a71948c9b75e51011c11e526a92c1a9bc44eba7e Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Mon, 5 Feb 2024 18:40:57 +0100 Subject: [PATCH 015/105] ci: auto extract translation strings (#8417) Co-authored-by: Jens Langhammer --- .github/pull_request_template.md | 1 - ...le.yml => translation-extract-compile.yml} | 25 +++++++------ Makefile | 35 ++++++++++--------- 3 files changed, 33 insertions(+), 28 deletions(-) rename .github/workflows/{translation-compile.yml => translation-extract-compile.yml} (61%) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9deccbc2ec..54e9b8b5b0 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -27,7 +27,6 @@ If an API change has been made If changes to the frontend have been made - [ ] The code has been formatted (`make web`) -- [ ] The translation files have been updated (`make i18n-extract`) If applicable diff --git a/.github/workflows/translation-compile.yml b/.github/workflows/translation-extract-compile.yml similarity index 61% rename from .github/workflows/translation-compile.yml rename to .github/workflows/translation-extract-compile.yml index 1d5e7873d0..eee769ff2e 100644 --- a/.github/workflows/translation-compile.yml +++ b/.github/workflows/translation-extract-compile.yml @@ -1,9 +1,8 @@ -name: authentik-backend-translate-compile +--- +name: authentik-backend-translate-extract-compile on: - push: - branches: [main] - paths: - - "locale/**" + schedule: + - cron: "0 0 * * *" # every day at midnight workflow_dispatch: env: @@ -25,16 +24,20 @@ jobs: token: ${{ steps.generate_token.outputs.token }} - name: Setup authentik env uses: ./.github/actions/setup + - name: run extract + run: | + poetry run make i18n-extract - name: run compile - run: poetry run ak compilemessages + run: | + poetry run ak compilemessages + make web-check-compile - name: Create Pull Request uses: peter-evans/create-pull-request@v6 - id: cpr with: token: ${{ steps.generate_token.outputs.token }} - branch: compile-backend-translation - commit-message: "core: compile backend translations" - title: "core: compile backend translations" - body: "core: compile backend translations" + branch: extract-compile-backend-translation + commit-message: "core, web: update translations" + title: "core, web: update translations" + body: "core, web: update translations" delete-branch: true signoff: true diff --git a/Makefile b/Makefile index e72db46279..73b4319c1b 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,9 @@ NPM_VERSION = $(shell python -m scripts.npm_version) PY_SOURCES = authentik tests scripts lifecycle DOCKER_IMAGE ?= "authentik:test" +GEN_API_TS = "gen-ts-api" +GEN_API_GO = "gen-go-api" + pg_user := $(shell python -m authentik.lib.config postgresql.user 2>/dev/null) pg_host := $(shell python -m authentik.lib.config postgresql.host 2>/dev/null) pg_name := $(shell python -m authentik.lib.config postgresql.name 2>/dev/null) @@ -76,7 +79,7 @@ migrate: ## Run the Authentik Django server's migrations i18n-extract: core-i18n-extract web-i18n-extract ## Extract strings that require translation into files to send to a translation service core-i18n-extract: - ak makemessages --ignore web --ignore internal --ignore web --ignore web-api --ignore website -l en + ak makemessages --ignore web --ignore internal --ignore ${GEN_API_TS} --ignore website -l en install: web-install website-install core-install ## Install all requires dependencies for `web`, `website` and `core` @@ -123,11 +126,11 @@ gen-diff: ## (Release) generate the changelog diff between the current schema a npx prettier --write diff.md gen-clean-ts: ## Remove generated API client for Typescript - rm -rf gen-ts-api/ - rm -rf web/node_modules/@goauthentik/api/ + rm -rf ./${GEN_API_TS}/ + rm -rf ./web/node_modules/@goauthentik/api/ gen-clean-go: ## Remove generated API client for Go - rm -rf gen-go-api/ + rm -rf ./${GEN_API_GO}/ gen-clean: gen-clean-ts gen-clean-go ## Remove generated API clients @@ -138,31 +141,31 @@ gen-client-ts: gen-clean-ts ## Build and install the authentik API for Typescri docker.io/openapitools/openapi-generator-cli:v6.5.0 generate \ -i /local/schema.yml \ -g typescript-fetch \ - -o /local/gen-ts-api \ + -o /local/${GEN_API_TS} \ -c /local/scripts/api-ts-config.yaml \ --additional-properties=npmVersion=${NPM_VERSION} \ --git-repo-id authentik \ --git-user-id goauthentik mkdir -p web/node_modules/@goauthentik/api - cd gen-ts-api && npm i - \cp -rfv gen-ts-api/* web/node_modules/@goauthentik/api + cd ./${GEN_API_TS} && npm i + \cp -rfv ./${GEN_API_TS}/* web/node_modules/@goauthentik/api gen-client-go: gen-clean-go ## Build and install the authentik API for Golang - mkdir -p ./gen-go-api ./gen-go-api/templates - wget https://raw.githubusercontent.com/goauthentik/client-go/main/config.yaml -O ./gen-go-api/config.yaml - wget https://raw.githubusercontent.com/goauthentik/client-go/main/templates/README.mustache -O ./gen-go-api/templates/README.mustache - wget https://raw.githubusercontent.com/goauthentik/client-go/main/templates/go.mod.mustache -O ./gen-go-api/templates/go.mod.mustache - cp schema.yml ./gen-go-api/ + mkdir -p ./${GEN_API_GO} ./${GEN_API_GO}/templates + wget https://raw.githubusercontent.com/goauthentik/client-go/main/config.yaml -O ./${GEN_API_GO}/config.yaml + wget https://raw.githubusercontent.com/goauthentik/client-go/main/templates/README.mustache -O ./${GEN_API_GO}/templates/README.mustache + wget https://raw.githubusercontent.com/goauthentik/client-go/main/templates/go.mod.mustache -O ./${GEN_API_GO}/templates/go.mod.mustache + cp schema.yml ./${GEN_API_GO}/ docker run \ - --rm -v ${PWD}/gen-go-api:/local \ + --rm -v ${PWD}/${GEN_API_GO}:/local \ --user ${UID}:${GID} \ docker.io/openapitools/openapi-generator-cli:v6.5.0 generate \ -i /local/schema.yml \ -g go \ -o /local/ \ -c /local/config.yaml - go mod edit -replace goauthentik.io/api/v3=./gen-go-api - rm -rf ./gen-go-api/config.yaml ./gen-go-api/templates/ + go mod edit -replace goauthentik.io/api/v3=./${GEN_API_GO} + rm -rf ./${GEN_API_GO}/config.yaml ./${GEN_API_GO}/templates/ gen-dev-config: ## Generate a local development config file python -m scripts.generate_config @@ -176,7 +179,7 @@ gen: gen-build gen-client-ts web-build: web-install ## Build the Authentik UI cd web && npm run build -web: web-lint-fix web-lint web-check-compile web-i18n-extract ## Automatically fix formatting issues in the Authentik UI source code, lint the code, and compile it +web: web-lint-fix web-lint web-check-compile ## Automatically fix formatting issues in the Authentik UI source code, lint the code, and compile it web-install: ## Install the necessary libraries to build the Authentik UI cd web && npm ci From edcc6b2031f094280d68c3adebb0b709bdb63cd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:46:17 +0100 Subject: [PATCH 016/105] website: bump @types/react from 18.2.53 to 18.2.54 in /website (#8429) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.53 to 18.2.54. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index b15ff83ac2..cd5d56b619 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -33,7 +33,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.53", + "@types/react": "^18.2.54", "prettier": "3.2.5", "typescript": "~5.3.3" }, @@ -4374,9 +4374,9 @@ "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==" }, "node_modules/@types/react": { - "version": "18.2.53", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.53.tgz", - "integrity": "sha512-52IHsMDT8qATp9B9zoOyobW8W3/0QhaJQTw1HwRj0UY2yBpCAQ7+S/CqHYQ8niAm3p4ji+rWUQ9UCib0GxQ60w==", + "version": "18.2.54", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.54.tgz", + "integrity": "sha512-039k+vrVJymDoe2y+HLk3O3oI3sa+C8KNjuDKofqrIJK26ramnqLNj9VJTaxAzFGMvpW/79HrrAJapHzpQ9fGQ==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/website/package.json b/website/package.json index befc73b46f..005e6d2a20 100644 --- a/website/package.json +++ b/website/package.json @@ -52,7 +52,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.53", + "@types/react": "^18.2.54", "prettier": "3.2.5", "typescript": "~5.3.3" }, From 7d724d9931b17fea4129c656ec810982999e7968 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:46:26 +0100 Subject: [PATCH 017/105] core: bump pydantic from 2.6.0 to 2.6.1 (#8426) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.6.0...v2.6.1) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 168 ++++++++++++++++++++++++++-------------------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/poetry.lock b/poetry.lock index 094fb83bd7..61c659252e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2884,19 +2884,19 @@ files = [ [[package]] name = "pydantic" -version = "2.6.0" +version = "2.6.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.6.0-py3-none-any.whl", hash = "sha256:1440966574e1b5b99cf75a13bec7b20e3512e8a61b894ae252f56275e2c465ae"}, - {file = "pydantic-2.6.0.tar.gz", hash = "sha256:ae887bd94eb404b09d86e4d12f93893bdca79d766e738528c6fa1c849f3c6bcf"}, + {file = "pydantic-2.6.1-py3-none-any.whl", hash = "sha256:0b6a909df3192245cb736509a92ff69e4fef76116feffec68e93a567347bae6f"}, + {file = "pydantic-2.6.1.tar.gz", hash = "sha256:4fd5c182a2488dc63e6d32737ff19937888001e2a6d86e94b3f233104a5d1fa9"}, ] [package.dependencies] annotated-types = ">=0.4.0" email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""} -pydantic-core = "2.16.1" +pydantic-core = "2.16.2" typing-extensions = ">=4.6.1" [package.extras] @@ -2904,90 +2904,90 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.16.1" +version = "2.16.2" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.16.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:300616102fb71241ff477a2cbbc847321dbec49428434a2f17f37528721c4948"}, - {file = "pydantic_core-2.16.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5511f962dd1b9b553e9534c3b9c6a4b0c9ded3d8c2be96e61d56f933feef9e1f"}, - {file = "pydantic_core-2.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98f0edee7ee9cc7f9221af2e1b95bd02810e1c7a6d115cfd82698803d385b28f"}, - {file = "pydantic_core-2.16.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9795f56aa6b2296f05ac79d8a424e94056730c0b860a62b0fdcfe6340b658cc8"}, - {file = "pydantic_core-2.16.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c45f62e4107ebd05166717ac58f6feb44471ed450d07fecd90e5f69d9bf03c48"}, - {file = "pydantic_core-2.16.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:462d599299c5971f03c676e2b63aa80fec5ebc572d89ce766cd11ca8bcb56f3f"}, - {file = "pydantic_core-2.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21ebaa4bf6386a3b22eec518da7d679c8363fb7fb70cf6972161e5542f470798"}, - {file = "pydantic_core-2.16.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:99f9a50b56713a598d33bc23a9912224fc5d7f9f292444e6664236ae471ddf17"}, - {file = "pydantic_core-2.16.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8ec364e280db4235389b5e1e6ee924723c693cbc98e9d28dc1767041ff9bc388"}, - {file = "pydantic_core-2.16.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:653a5dfd00f601a0ed6654a8b877b18d65ac32c9d9997456e0ab240807be6cf7"}, - {file = "pydantic_core-2.16.1-cp310-none-win32.whl", hash = "sha256:1661c668c1bb67b7cec96914329d9ab66755911d093bb9063c4c8914188af6d4"}, - {file = "pydantic_core-2.16.1-cp310-none-win_amd64.whl", hash = "sha256:561be4e3e952c2f9056fba5267b99be4ec2afadc27261505d4992c50b33c513c"}, - {file = "pydantic_core-2.16.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:102569d371fadc40d8f8598a59379c37ec60164315884467052830b28cc4e9da"}, - {file = "pydantic_core-2.16.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:735dceec50fa907a3c314b84ed609dec54b76a814aa14eb90da31d1d36873a5e"}, - {file = "pydantic_core-2.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e83ebbf020be727d6e0991c1b192a5c2e7113eb66e3def0cd0c62f9f266247e4"}, - {file = "pydantic_core-2.16.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:30a8259569fbeec49cfac7fda3ec8123486ef1b729225222f0d41d5f840b476f"}, - {file = "pydantic_core-2.16.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:920c4897e55e2881db6a6da151198e5001552c3777cd42b8a4c2f72eedc2ee91"}, - {file = "pydantic_core-2.16.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5247a3d74355f8b1d780d0f3b32a23dd9f6d3ff43ef2037c6dcd249f35ecf4c"}, - {file = "pydantic_core-2.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d5bea8012df5bb6dda1e67d0563ac50b7f64a5d5858348b5c8cb5043811c19d"}, - {file = "pydantic_core-2.16.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ed3025a8a7e5a59817b7494686d449ebfbe301f3e757b852c8d0d1961d6be864"}, - {file = "pydantic_core-2.16.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:06f0d5a1d9e1b7932477c172cc720b3b23c18762ed7a8efa8398298a59d177c7"}, - {file = "pydantic_core-2.16.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:150ba5c86f502c040b822777e2e519b5625b47813bd05f9273a8ed169c97d9ae"}, - {file = "pydantic_core-2.16.1-cp311-none-win32.whl", hash = "sha256:d6cbdf12ef967a6aa401cf5cdf47850559e59eedad10e781471c960583f25aa1"}, - {file = "pydantic_core-2.16.1-cp311-none-win_amd64.whl", hash = "sha256:afa01d25769af33a8dac0d905d5c7bb2d73c7c3d5161b2dd6f8b5b5eea6a3c4c"}, - {file = "pydantic_core-2.16.1-cp311-none-win_arm64.whl", hash = "sha256:1a2fe7b00a49b51047334d84aafd7e39f80b7675cad0083678c58983662da89b"}, - {file = "pydantic_core-2.16.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0f478ec204772a5c8218e30eb813ca43e34005dff2eafa03931b3d8caef87d51"}, - {file = "pydantic_core-2.16.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f1936ef138bed2165dd8573aa65e3095ef7c2b6247faccd0e15186aabdda7f66"}, - {file = "pydantic_core-2.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99d3a433ef5dc3021c9534a58a3686c88363c591974c16c54a01af7efd741f13"}, - {file = "pydantic_core-2.16.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd88f40f2294440d3f3c6308e50d96a0d3d0973d6f1a5732875d10f569acef49"}, - {file = "pydantic_core-2.16.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fac641bbfa43d5a1bed99d28aa1fded1984d31c670a95aac1bf1d36ac6ce137"}, - {file = "pydantic_core-2.16.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72bf9308a82b75039b8c8edd2be2924c352eda5da14a920551a8b65d5ee89253"}, - {file = "pydantic_core-2.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb4363e6c9fc87365c2bc777a1f585a22f2f56642501885ffc7942138499bf54"}, - {file = "pydantic_core-2.16.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:20f724a023042588d0f4396bbbcf4cffd0ddd0ad3ed4f0d8e6d4ac4264bae81e"}, - {file = "pydantic_core-2.16.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fb4370b15111905bf8b5ba2129b926af9470f014cb0493a67d23e9d7a48348e8"}, - {file = "pydantic_core-2.16.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23632132f1fd608034f1a56cc3e484be00854db845b3a4a508834be5a6435a6f"}, - {file = "pydantic_core-2.16.1-cp312-none-win32.whl", hash = "sha256:b9f3e0bffad6e238f7acc20c393c1ed8fab4371e3b3bc311020dfa6020d99212"}, - {file = "pydantic_core-2.16.1-cp312-none-win_amd64.whl", hash = "sha256:a0b4cfe408cd84c53bab7d83e4209458de676a6ec5e9c623ae914ce1cb79b96f"}, - {file = "pydantic_core-2.16.1-cp312-none-win_arm64.whl", hash = "sha256:d195add190abccefc70ad0f9a0141ad7da53e16183048380e688b466702195dd"}, - {file = "pydantic_core-2.16.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:502c062a18d84452858f8aea1e520e12a4d5228fc3621ea5061409d666ea1706"}, - {file = "pydantic_core-2.16.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d8c032ccee90b37b44e05948b449a2d6baed7e614df3d3f47fe432c952c21b60"}, - {file = "pydantic_core-2.16.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:920f4633bee43d7a2818e1a1a788906df5a17b7ab6fe411220ed92b42940f818"}, - {file = "pydantic_core-2.16.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f5d37ff01edcbace53a402e80793640c25798fb7208f105d87a25e6fcc9ea06"}, - {file = "pydantic_core-2.16.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:399166f24c33a0c5759ecc4801f040dbc87d412c1a6d6292b2349b4c505effc9"}, - {file = "pydantic_core-2.16.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ac89ccc39cd1d556cc72d6752f252dc869dde41c7c936e86beac5eb555041b66"}, - {file = "pydantic_core-2.16.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73802194f10c394c2bedce7a135ba1d8ba6cff23adf4217612bfc5cf060de34c"}, - {file = "pydantic_core-2.16.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8fa00fa24ffd8c31fac081bf7be7eb495be6d248db127f8776575a746fa55c95"}, - {file = "pydantic_core-2.16.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:601d3e42452cd4f2891c13fa8c70366d71851c1593ed42f57bf37f40f7dca3c8"}, - {file = "pydantic_core-2.16.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07982b82d121ed3fc1c51faf6e8f57ff09b1325d2efccaa257dd8c0dd937acca"}, - {file = "pydantic_core-2.16.1-cp38-none-win32.whl", hash = "sha256:d0bf6f93a55d3fa7a079d811b29100b019784e2ee6bc06b0bb839538272a5610"}, - {file = "pydantic_core-2.16.1-cp38-none-win_amd64.whl", hash = "sha256:fbec2af0ebafa57eb82c18c304b37c86a8abddf7022955d1742b3d5471a6339e"}, - {file = "pydantic_core-2.16.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a497be217818c318d93f07e14502ef93d44e6a20c72b04c530611e45e54c2196"}, - {file = "pydantic_core-2.16.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:694a5e9f1f2c124a17ff2d0be613fd53ba0c26de588eb4bdab8bca855e550d95"}, - {file = "pydantic_core-2.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d4dfc66abea3ec6d9f83e837a8f8a7d9d3a76d25c9911735c76d6745950e62c"}, - {file = "pydantic_core-2.16.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8655f55fe68c4685673265a650ef71beb2d31871c049c8b80262026f23605ee3"}, - {file = "pydantic_core-2.16.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21e3298486c4ea4e4d5cc6fb69e06fb02a4e22089304308817035ac006a7f506"}, - {file = "pydantic_core-2.16.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71b4a48a7427f14679f0015b13c712863d28bb1ab700bd11776a5368135c7d60"}, - {file = "pydantic_core-2.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dca874e35bb60ce4f9f6665bfbfad050dd7573596608aeb9e098621ac331dc"}, - {file = "pydantic_core-2.16.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa496cd45cda0165d597e9d6f01e36c33c9508f75cf03c0a650018c5048f578e"}, - {file = "pydantic_core-2.16.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5317c04349472e683803da262c781c42c5628a9be73f4750ac7d13040efb5d2d"}, - {file = "pydantic_core-2.16.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:42c29d54ed4501a30cd71015bf982fa95e4a60117b44e1a200290ce687d3e640"}, - {file = "pydantic_core-2.16.1-cp39-none-win32.whl", hash = "sha256:ba07646f35e4e49376c9831130039d1b478fbfa1215ae62ad62d2ee63cf9c18f"}, - {file = "pydantic_core-2.16.1-cp39-none-win_amd64.whl", hash = "sha256:2133b0e412a47868a358713287ff9f9a328879da547dc88be67481cdac529118"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d25ef0c33f22649b7a088035fd65ac1ce6464fa2876578df1adad9472f918a76"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:99c095457eea8550c9fa9a7a992e842aeae1429dab6b6b378710f62bfb70b394"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b49c604ace7a7aa8af31196abbf8f2193be605db6739ed905ecaf62af31ccae0"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c56da23034fe66221f2208c813d8aa509eea34d97328ce2add56e219c3a9f41c"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cebf8d56fee3b08ad40d332a807ecccd4153d3f1ba8231e111d9759f02edfd05"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:1ae8048cba95f382dba56766525abca438328455e35c283bb202964f41a780b0"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:780daad9e35b18d10d7219d24bfb30148ca2afc309928e1d4d53de86822593dc"}, - {file = "pydantic_core-2.16.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c94b5537bf6ce66e4d7830c6993152940a188600f6ae044435287753044a8fe2"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:adf28099d061a25fbcc6531febb7a091e027605385de9fe14dd6a97319d614cf"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:644904600c15816a1f9a1bafa6aab0d21db2788abcdf4e2a77951280473f33e1"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87bce04f09f0552b66fca0c4e10da78d17cb0e71c205864bab4e9595122cb9d9"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:877045a7969ace04d59516d5d6a7dee13106822f99a5d8df5e6822941f7bedc8"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9c46e556ee266ed3fb7b7a882b53df3c76b45e872fdab8d9cf49ae5e91147fd7"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4eebbd049008eb800f519578e944b8dc8e0f7d59a5abb5924cc2d4ed3a1834ff"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:c0be58529d43d38ae849a91932391eb93275a06b93b79a8ab828b012e916a206"}, - {file = "pydantic_core-2.16.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b1fc07896fc1851558f532dffc8987e526b682ec73140886c831d773cef44b76"}, - {file = "pydantic_core-2.16.1.tar.gz", hash = "sha256:daff04257b49ab7f4b3f73f98283d3dbb1a65bf3500d55c7beac3c66c310fe34"}, + {file = "pydantic_core-2.16.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3fab4e75b8c525a4776e7630b9ee48aea50107fea6ca9f593c98da3f4d11bf7c"}, + {file = "pydantic_core-2.16.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8bde5b48c65b8e807409e6f20baee5d2cd880e0fad00b1a811ebc43e39a00ab2"}, + {file = "pydantic_core-2.16.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2924b89b16420712e9bb8192396026a8fbd6d8726224f918353ac19c4c043d2a"}, + {file = "pydantic_core-2.16.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:16aa02e7a0f539098e215fc193c8926c897175d64c7926d00a36188917717a05"}, + {file = "pydantic_core-2.16.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:936a787f83db1f2115ee829dd615c4f684ee48ac4de5779ab4300994d8af325b"}, + {file = "pydantic_core-2.16.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:459d6be6134ce3b38e0ef76f8a672924460c455d45f1ad8fdade36796df1ddc8"}, + {file = "pydantic_core-2.16.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9ee4febb249c591d07b2d4dd36ebcad0ccd128962aaa1801508320896575ef"}, + {file = "pydantic_core-2.16.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40a0bd0bed96dae5712dab2aba7d334a6c67cbcac2ddfca7dbcc4a8176445990"}, + {file = "pydantic_core-2.16.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:870dbfa94de9b8866b37b867a2cb37a60c401d9deb4a9ea392abf11a1f98037b"}, + {file = "pydantic_core-2.16.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:308974fdf98046db28440eb3377abba274808bf66262e042c412eb2adf852731"}, + {file = "pydantic_core-2.16.2-cp310-none-win32.whl", hash = "sha256:a477932664d9611d7a0816cc3c0eb1f8856f8a42435488280dfbf4395e141485"}, + {file = "pydantic_core-2.16.2-cp310-none-win_amd64.whl", hash = "sha256:8f9142a6ed83d90c94a3efd7af8873bf7cefed2d3d44387bf848888482e2d25f"}, + {file = "pydantic_core-2.16.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:406fac1d09edc613020ce9cf3f2ccf1a1b2f57ab00552b4c18e3d5276c67eb11"}, + {file = "pydantic_core-2.16.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce232a6170dd6532096cadbf6185271e4e8c70fc9217ebe105923ac105da9978"}, + {file = "pydantic_core-2.16.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a90fec23b4b05a09ad988e7a4f4e081711a90eb2a55b9c984d8b74597599180f"}, + {file = "pydantic_core-2.16.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8aafeedb6597a163a9c9727d8a8bd363a93277701b7bfd2749fbefee2396469e"}, + {file = "pydantic_core-2.16.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9957433c3a1b67bdd4c63717eaf174ebb749510d5ea612cd4e83f2d9142f3fc8"}, + {file = "pydantic_core-2.16.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0d7a9165167269758145756db43a133608a531b1e5bb6a626b9ee24bc38a8f7"}, + {file = "pydantic_core-2.16.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dffaf740fe2e147fedcb6b561353a16243e654f7fe8e701b1b9db148242e1272"}, + {file = "pydantic_core-2.16.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8ed79883b4328b7f0bd142733d99c8e6b22703e908ec63d930b06be3a0e7113"}, + {file = "pydantic_core-2.16.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:cf903310a34e14651c9de056fcc12ce090560864d5a2bb0174b971685684e1d8"}, + {file = "pydantic_core-2.16.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46b0d5520dbcafea9a8645a8164658777686c5c524d381d983317d29687cce97"}, + {file = "pydantic_core-2.16.2-cp311-none-win32.whl", hash = "sha256:70651ff6e663428cea902dac297066d5c6e5423fda345a4ca62430575364d62b"}, + {file = "pydantic_core-2.16.2-cp311-none-win_amd64.whl", hash = "sha256:98dc6f4f2095fc7ad277782a7c2c88296badcad92316b5a6e530930b1d475ebc"}, + {file = "pydantic_core-2.16.2-cp311-none-win_arm64.whl", hash = "sha256:ef6113cd31411eaf9b39fc5a8848e71c72656fd418882488598758b2c8c6dfa0"}, + {file = "pydantic_core-2.16.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:88646cae28eb1dd5cd1e09605680c2b043b64d7481cdad7f5003ebef401a3039"}, + {file = "pydantic_core-2.16.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7b883af50eaa6bb3299780651e5be921e88050ccf00e3e583b1e92020333304b"}, + {file = "pydantic_core-2.16.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bf26c2e2ea59d32807081ad51968133af3025c4ba5753e6a794683d2c91bf6e"}, + {file = "pydantic_core-2.16.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99af961d72ac731aae2a1b55ccbdae0733d816f8bfb97b41909e143de735f522"}, + {file = "pydantic_core-2.16.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02906e7306cb8c5901a1feb61f9ab5e5c690dbbeaa04d84c1b9ae2a01ebe9379"}, + {file = "pydantic_core-2.16.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5362d099c244a2d2f9659fb3c9db7c735f0004765bbe06b99be69fbd87c3f15"}, + {file = "pydantic_core-2.16.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ac426704840877a285d03a445e162eb258924f014e2f074e209d9b4ff7bf380"}, + {file = "pydantic_core-2.16.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b94cbda27267423411c928208e89adddf2ea5dd5f74b9528513f0358bba019cb"}, + {file = "pydantic_core-2.16.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6db58c22ac6c81aeac33912fb1af0e930bc9774166cdd56eade913d5f2fff35e"}, + {file = "pydantic_core-2.16.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:396fdf88b1b503c9c59c84a08b6833ec0c3b5ad1a83230252a9e17b7dfb4cffc"}, + {file = "pydantic_core-2.16.2-cp312-none-win32.whl", hash = "sha256:7c31669e0c8cc68400ef0c730c3a1e11317ba76b892deeefaf52dcb41d56ed5d"}, + {file = "pydantic_core-2.16.2-cp312-none-win_amd64.whl", hash = "sha256:a3b7352b48fbc8b446b75f3069124e87f599d25afb8baa96a550256c031bb890"}, + {file = "pydantic_core-2.16.2-cp312-none-win_arm64.whl", hash = "sha256:a9e523474998fb33f7c1a4d55f5504c908d57add624599e095c20fa575b8d943"}, + {file = "pydantic_core-2.16.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:ae34418b6b389d601b31153b84dce480351a352e0bb763684a1b993d6be30f17"}, + {file = "pydantic_core-2.16.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:732bd062c9e5d9582a30e8751461c1917dd1ccbdd6cafb032f02c86b20d2e7ec"}, + {file = "pydantic_core-2.16.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b52776a2e3230f4854907a1e0946eec04d41b1fc64069ee774876bbe0eab55"}, + {file = "pydantic_core-2.16.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ef551c053692b1e39e3f7950ce2296536728871110e7d75c4e7753fb30ca87f4"}, + {file = "pydantic_core-2.16.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ebb892ed8599b23fa8f1799e13a12c87a97a6c9d0f497525ce9858564c4575a4"}, + {file = "pydantic_core-2.16.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa6c8c582036275997a733427b88031a32ffa5dfc3124dc25a730658c47a572f"}, + {file = "pydantic_core-2.16.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4ba0884a91f1aecce75202473ab138724aa4fb26d7707f2e1fa6c3e68c84fbf"}, + {file = "pydantic_core-2.16.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7924e54f7ce5d253d6160090ddc6df25ed2feea25bfb3339b424a9dd591688bc"}, + {file = "pydantic_core-2.16.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69a7b96b59322a81c2203be537957313b07dd333105b73db0b69212c7d867b4b"}, + {file = "pydantic_core-2.16.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7e6231aa5bdacda78e96ad7b07d0c312f34ba35d717115f4b4bff6cb87224f0f"}, + {file = "pydantic_core-2.16.2-cp38-none-win32.whl", hash = "sha256:41dac3b9fce187a25c6253ec79a3f9e2a7e761eb08690e90415069ea4a68ff7a"}, + {file = "pydantic_core-2.16.2-cp38-none-win_amd64.whl", hash = "sha256:f685dbc1fdadb1dcd5b5e51e0a378d4685a891b2ddaf8e2bba89bd3a7144e44a"}, + {file = "pydantic_core-2.16.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:55749f745ebf154c0d63d46c8c58594d8894b161928aa41adbb0709c1fe78b77"}, + {file = "pydantic_core-2.16.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b30b0dd58a4509c3bd7eefddf6338565c4905406aee0c6e4a5293841411a1286"}, + {file = "pydantic_core-2.16.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18de31781cdc7e7b28678df7c2d7882f9692ad060bc6ee3c94eb15a5d733f8f7"}, + {file = "pydantic_core-2.16.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5864b0242f74b9dd0b78fd39db1768bc3f00d1ffc14e596fd3e3f2ce43436a33"}, + {file = "pydantic_core-2.16.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8f9186ca45aee030dc8234118b9c0784ad91a0bb27fc4e7d9d6608a5e3d386c"}, + {file = "pydantic_core-2.16.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc6f6c9be0ab6da37bc77c2dda5f14b1d532d5dbef00311ee6e13357a418e646"}, + {file = "pydantic_core-2.16.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa057095f621dad24a1e906747179a69780ef45cc8f69e97463692adbcdae878"}, + {file = "pydantic_core-2.16.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ad84731a26bcfb299f9eab56c7932d46f9cad51c52768cace09e92a19e4cf55"}, + {file = "pydantic_core-2.16.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3b052c753c4babf2d1edc034c97851f867c87d6f3ea63a12e2700f159f5c41c3"}, + {file = "pydantic_core-2.16.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e0f686549e32ccdb02ae6f25eee40cc33900910085de6aa3790effd391ae10c2"}, + {file = "pydantic_core-2.16.2-cp39-none-win32.whl", hash = "sha256:7afb844041e707ac9ad9acad2188a90bffce2c770e6dc2318be0c9916aef1469"}, + {file = "pydantic_core-2.16.2-cp39-none-win_amd64.whl", hash = "sha256:9da90d393a8227d717c19f5397688a38635afec89f2e2d7af0df037f3249c39a"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5f60f920691a620b03082692c378661947d09415743e437a7478c309eb0e4f82"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:47924039e785a04d4a4fa49455e51b4eb3422d6eaacfde9fc9abf8fdef164e8a"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6294e76b0380bb7a61eb8a39273c40b20beb35e8c87ee101062834ced19c545"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe56851c3f1d6f5384b3051c536cc81b3a93a73faf931f404fef95217cf1e10d"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9d776d30cde7e541b8180103c3f294ef7c1862fd45d81738d156d00551005784"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:72f7919af5de5ecfaf1eba47bf9a5d8aa089a3340277276e5636d16ee97614d7"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:4bfcbde6e06c56b30668a0c872d75a7ef3025dc3c1823a13cf29a0e9b33f67e8"}, + {file = "pydantic_core-2.16.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ff7c97eb7a29aba230389a2661edf2e9e06ce616c7e35aa764879b6894a44b25"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9b5f13857da99325dcabe1cc4e9e6a3d7b2e2c726248ba5dd4be3e8e4a0b6d0e"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a7e41e3ada4cca5f22b478c08e973c930e5e6c7ba3588fb8e35f2398cdcc1545"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60eb8ceaa40a41540b9acae6ae7c1f0a67d233c40dc4359c256ad2ad85bdf5e5"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7beec26729d496a12fd23cf8da9944ee338c8b8a17035a560b585c36fe81af20"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:22c5f022799f3cd6741e24f0443ead92ef42be93ffda0d29b2597208c94c3753"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:eca58e319f4fd6df004762419612122b2c7e7d95ffafc37e890252f869f3fb2a"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ed957db4c33bc99895f3a1672eca7e80e8cda8bd1e29a80536b4ec2153fa9804"}, + {file = "pydantic_core-2.16.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:459c0d338cc55d099798618f714b21b7ece17eb1a87879f2da20a3ff4c7628e2"}, + {file = "pydantic_core-2.16.2.tar.gz", hash = "sha256:0ba503850d8b8dcc18391f10de896ae51d37fe5fe43dbfb6a35c5c5cad271a06"}, ] [package.dependencies] From e9672a5285c8b461200e196f0e3f954339c9e7f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:46:34 +0100 Subject: [PATCH 018/105] core: bump psycopg from 3.1.17 to 3.1.18 (#8425) Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.17 to 3.1.18. - [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst) - [Commits](https://github.com/psycopg/psycopg/compare/3.1.17...3.1.18) --- updated-dependencies: - dependency-name: psycopg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 61c659252e..0d9a91e9d4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2773,36 +2773,36 @@ wcwidth = "*" [[package]] name = "psycopg" -version = "3.1.17" +version = "3.1.18" description = "PostgreSQL database adapter for Python" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-3.1.17-py3-none-any.whl", hash = "sha256:96b7b13af6d5a514118b759a66b2799a8a4aa78675fa6bb0d3f7d52d67eff002"}, - {file = "psycopg-3.1.17.tar.gz", hash = "sha256:437e7d7925459f21de570383e2e10542aceb3b9cb972ce957fdd3826ca47edc6"}, + {file = "psycopg-3.1.18-py3-none-any.whl", hash = "sha256:4d5a0a5a8590906daa58ebd5f3cfc34091377354a1acced269dd10faf55da60e"}, + {file = "psycopg-3.1.18.tar.gz", hash = "sha256:31144d3fb4c17d78094d9e579826f047d4af1da6a10427d91dfcfb6ecdf6f12b"}, ] [package.dependencies] -psycopg-c = {version = "3.1.17", optional = true, markers = "implementation_name != \"pypy\" and extra == \"c\""} +psycopg-c = {version = "3.1.18", optional = true, markers = "implementation_name != \"pypy\" and extra == \"c\""} typing-extensions = ">=4.1" tzdata = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] -binary = ["psycopg-binary (==3.1.17)"] -c = ["psycopg-c (==3.1.17)"] -dev = ["black (>=23.1.0)", "codespell (>=2.2)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] +binary = ["psycopg-binary (==3.1.18)"] +c = ["psycopg-c (==3.1.18)"] +dev = ["black (>=24.1.0)", "codespell (>=2.2)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] pool = ["psycopg-pool"] test = ["anyio (>=3.6.2,<4.0)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] [[package]] name = "psycopg-c" -version = "3.1.17" +version = "3.1.18" description = "PostgreSQL database adapter for Python -- C optimisation distribution" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-c-3.1.17.tar.gz", hash = "sha256:5cc4d544d552b8ab92a9e3a9dbe3b4f46ce0a86338654d26387fc076e0c97977"}, + {file = "psycopg-c-3.1.18.tar.gz", hash = "sha256:ffff0c4a9c0e0b7aadb1acb7b61eb8f886365dd8ef00120ce14676235846ba73"}, ] [[package]] From e9223618baccc000b06212f14ecafec16af47860 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:46:43 +0100 Subject: [PATCH 019/105] web: bump the eslint group in /web with 2 updates (#8428) Bumps the eslint group in /web with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 100 +++++++++++++++++++++--------------------- web/package.json | 4 +- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index d99278fa9c..f42cc799e7 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -74,8 +74,8 @@ "@types/codemirror": "5.60.15", "@types/grecaptcha": "^3.0.7", "@types/guacamole-common-js": "1.5.2", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", @@ -7596,16 +7596,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", - "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/type-utils": "6.20.0", - "@typescript-eslint/utils": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -7664,15 +7664,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz", - "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -7692,13 +7692,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", - "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7709,13 +7709,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz", - "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -7736,9 +7736,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz", - "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7749,13 +7749,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz", - "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7813,9 +7813,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7834,17 +7834,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz", - "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" }, "engines": { @@ -7871,9 +7871,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7892,12 +7892,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz", - "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { diff --git a/web/package.json b/web/package.json index 6c85795475..2bf17abda1 100644 --- a/web/package.json +++ b/web/package.json @@ -99,8 +99,8 @@ "@types/codemirror": "5.60.15", "@types/grecaptcha": "^3.0.7", "@types/guacamole-common-js": "1.5.2", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", From 27efe68f1c8445ed7131b8e5e684859fa678d34f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:47:00 +0100 Subject: [PATCH 020/105] web: bump the eslint group in /tests/wdio with 2 updates (#8424) Bumps the eslint group in /tests/wdio with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.20.0 to 6.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.21.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 88 ++++++++++++++++++------------------ tests/wdio/package.json | 4 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 813fab199a..c28b35da71 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -10,8 +10,8 @@ }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "@wdio/cli": "^8.29.7", "@wdio/local-runner": "^8.29.7", "@wdio/mocha-framework": "^8.29.3", @@ -953,16 +953,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", - "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/type-utils": "6.20.0", - "@typescript-eslint/utils": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -988,15 +988,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz", - "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -1016,13 +1016,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", - "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1033,13 +1033,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz", - "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1060,9 +1060,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz", - "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1073,13 +1073,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz", - "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1125,17 +1125,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz", - "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" }, "engines": { @@ -1150,12 +1150,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz", - "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { diff --git a/tests/wdio/package.json b/tests/wdio/package.json index 0ca24fbbbc..271bc738f2 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -4,8 +4,8 @@ "type": "module", "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "@wdio/cli": "^8.29.7", "@wdio/local-runner": "^8.29.7", "@wdio/mocha-framework": "^8.29.3", From 69f9dfc9f6462d265e4c640f9a7018cc5adcf7b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:47:29 +0100 Subject: [PATCH 021/105] core: bump sentry-sdk from 1.39.2 to 1.40.0 (#8427) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.39.2 to 1.40.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.39.2...1.40.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 0d9a91e9d4..b85ed5ca77 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3662,13 +3662,13 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "sentry-sdk" -version = "1.39.2" +version = "1.40.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = "*" files = [ - {file = "sentry-sdk-1.39.2.tar.gz", hash = "sha256:24c83b0b41c887d33328a9166f5950dc37ad58f01c9f2fbff6b87a6f1094170c"}, - {file = "sentry_sdk-1.39.2-py2.py3-none-any.whl", hash = "sha256:acaf597b30258fc7663063b291aa99e58f3096e91fe1e6634f4b79f9c1943e8e"}, + {file = "sentry-sdk-1.40.0.tar.gz", hash = "sha256:34ad8cfc9b877aaa2a8eb86bfe5296a467fffe0619b931a05b181c45f6da59bf"}, + {file = "sentry_sdk-1.40.0-py2.py3-none-any.whl", hash = "sha256:78575620331186d32f34b7ece6edea97ce751f58df822547d3ab85517881a27a"}, ] [package.dependencies] @@ -3694,7 +3694,7 @@ huey = ["huey (>=2)"] loguru = ["loguru (>=0.5)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] -pure-eval = ["asttokens", "executing", "pure_eval"] +pure-eval = ["asttokens", "executing", "pure-eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] From a36b6e8315dd6575d1bb1f3a8ea1dddb66ed9fcb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:48:22 +0100 Subject: [PATCH 022/105] core: bump cryptography from 41.0.7 to 42.0.0 (#8423) Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.7 to 42.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/41.0.7...42.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 73 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/poetry.lock b/poetry.lock index b85ed5ca77..1339d8f305 100644 --- a/poetry.lock +++ b/poetry.lock @@ -993,47 +993,56 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "41.0.7" +version = "42.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:3c78451b78313fa81607fa1b3f1ae0a5ddd8014c38a02d9db0616133987b9cdf"}, - {file = "cryptography-41.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:928258ba5d6f8ae644e764d0f996d61a8777559f72dfeb2eea7e2fe0ad6e782d"}, - {file = "cryptography-41.0.7-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a1b41bc97f1ad230a41657d9155113c7521953869ae57ac39ac7f1bb471469a"}, - {file = "cryptography-41.0.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:841df4caa01008bad253bce2a6f7b47f86dc9f08df4b433c404def869f590a15"}, - {file = "cryptography-41.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5429ec739a29df2e29e15d082f1d9ad683701f0ec7709ca479b3ff2708dae65a"}, - {file = "cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:43f2552a2378b44869fe8827aa19e69512e3245a219104438692385b0ee119d1"}, - {file = "cryptography-41.0.7-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:af03b32695b24d85a75d40e1ba39ffe7db7ffcb099fe507b39fd41a565f1b157"}, - {file = "cryptography-41.0.7-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:49f0805fc0b2ac8d4882dd52f4a3b935b210935d500b6b805f321addc8177406"}, - {file = "cryptography-41.0.7-cp37-abi3-win32.whl", hash = "sha256:f983596065a18a2183e7f79ab3fd4c475205b839e02cbc0efbbf9666c4b3083d"}, - {file = "cryptography-41.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:90452ba79b8788fa380dfb587cca692976ef4e757b194b093d845e8d99f612f2"}, - {file = "cryptography-41.0.7-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:079b85658ea2f59c4f43b70f8119a52414cdb7be34da5d019a77bf96d473b960"}, - {file = "cryptography-41.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:b640981bf64a3e978a56167594a0e97db71c89a479da8e175d8bb5be5178c003"}, - {file = "cryptography-41.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e3114da6d7f95d2dee7d3f4eec16dacff819740bbab931aff8648cb13c5ff5e7"}, - {file = "cryptography-41.0.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d5ec85080cce7b0513cfd233914eb8b7bbd0633f1d1703aa28d1dd5a72f678ec"}, - {file = "cryptography-41.0.7-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7a698cb1dac82c35fcf8fe3417a3aaba97de16a01ac914b89a0889d364d2f6be"}, - {file = "cryptography-41.0.7-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:37a138589b12069efb424220bf78eac59ca68b95696fc622b6ccc1c0a197204a"}, - {file = "cryptography-41.0.7-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:68a2dec79deebc5d26d617bfdf6e8aab065a4f34934b22d3b5010df3ba36612c"}, - {file = "cryptography-41.0.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:09616eeaef406f99046553b8a40fbf8b1e70795a91885ba4c96a70793de5504a"}, - {file = "cryptography-41.0.7-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48a0476626da912a44cc078f9893f292f0b3e4c739caf289268168d8f4702a39"}, - {file = "cryptography-41.0.7-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c7f3201ec47d5207841402594f1d7950879ef890c0c495052fa62f58283fde1a"}, - {file = "cryptography-41.0.7-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c5ca78485a255e03c32b513f8c2bc39fedb7f5c5f8535545bdc223a03b24f248"}, - {file = "cryptography-41.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d6c391c021ab1f7a82da5d8d0b3cee2f4b2c455ec86c8aebbc84837a631ff309"}, - {file = "cryptography-41.0.7.tar.gz", hash = "sha256:13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc"}, + {file = "cryptography-42.0.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:c640b0ef54138fde761ec99a6c7dc4ce05e80420262c20fa239e694ca371d434"}, + {file = "cryptography-42.0.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:678cfa0d1e72ef41d48993a7be75a76b0725d29b820ff3cfd606a5b2b33fda01"}, + {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:146e971e92a6dd042214b537a726c9750496128453146ab0ee8971a0299dc9bd"}, + {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87086eae86a700307b544625e3ba11cc600c3c0ef8ab97b0fda0705d6db3d4e3"}, + {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0a68bfcf57a6887818307600c3c0ebc3f62fbb6ccad2240aa21887cda1f8df1b"}, + {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5a217bca51f3b91971400890905a9323ad805838ca3fa1e202a01844f485ee87"}, + {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ca20550bb590db16223eb9ccc5852335b48b8f597e2f6f0878bbfd9e7314eb17"}, + {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:33588310b5c886dfb87dba5f013b8d27df7ffd31dc753775342a1e5ab139e59d"}, + {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9515ea7f596c8092fdc9902627e51b23a75daa2c7815ed5aa8cf4f07469212ec"}, + {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:35cf6ed4c38f054478a9df14f03c1169bb14bd98f0b1705751079b25e1cb58bc"}, + {file = "cryptography-42.0.0-cp37-abi3-win32.whl", hash = "sha256:8814722cffcfd1fbd91edd9f3451b88a8f26a5fd41b28c1c9193949d1c689dc4"}, + {file = "cryptography-42.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:a2a8d873667e4fd2f34aedab02ba500b824692c6542e017075a2efc38f60a4c0"}, + {file = "cryptography-42.0.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:8fedec73d590fd30c4e3f0d0f4bc961aeca8390c72f3eaa1a0874d180e868ddf"}, + {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be41b0c7366e5549265adf2145135dca107718fa44b6e418dc7499cfff6b4689"}, + {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ca482ea80626048975360c8e62be3ceb0f11803180b73163acd24bf014133a0"}, + {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c58115384bdcfe9c7f644c72f10f6f42bed7cf59f7b52fe1bf7ae0a622b3a139"}, + {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:56ce0c106d5c3fec1038c3cca3d55ac320a5be1b44bf15116732d0bc716979a2"}, + {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:324721d93b998cb7367f1e6897370644751e5580ff9b370c0a50dc60a2003513"}, + {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d97aae66b7de41cdf5b12087b5509e4e9805ed6f562406dfcf60e8481a9a28f8"}, + {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:85f759ed59ffd1d0baad296e72780aa62ff8a71f94dc1ab340386a1207d0ea81"}, + {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:206aaf42e031b93f86ad60f9f5d9da1b09164f25488238ac1dc488334eb5e221"}, + {file = "cryptography-42.0.0-cp39-abi3-win32.whl", hash = "sha256:74f18a4c8ca04134d2052a140322002fef535c99cdbc2a6afc18a8024d5c9d5b"}, + {file = "cryptography-42.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:14e4b909373bc5bf1095311fa0f7fcabf2d1a160ca13f1e9e467be1ac4cbdf94"}, + {file = "cryptography-42.0.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3005166a39b70c8b94455fdbe78d87a444da31ff70de3331cdec2c568cf25b7e"}, + {file = "cryptography-42.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:be14b31eb3a293fc6e6aa2807c8a3224c71426f7c4e3639ccf1a2f3ffd6df8c3"}, + {file = "cryptography-42.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bd7cf7a8d9f34cc67220f1195884151426ce616fdc8285df9054bfa10135925f"}, + {file = "cryptography-42.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c310767268d88803b653fffe6d6f2f17bb9d49ffceb8d70aed50ad45ea49ab08"}, + {file = "cryptography-42.0.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bdce70e562c69bb089523e75ef1d9625b7417c6297a76ac27b1b8b1eb51b7d0f"}, + {file = "cryptography-42.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e9326ca78111e4c645f7e49cbce4ed2f3f85e17b61a563328c85a5208cf34440"}, + {file = "cryptography-42.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:69fd009a325cad6fbfd5b04c711a4da563c6c4854fc4c9544bff3088387c77c0"}, + {file = "cryptography-42.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:988b738f56c665366b1e4bfd9045c3efae89ee366ca3839cd5af53eaa1401bce"}, + {file = "cryptography-42.0.0.tar.gz", hash = "sha256:6cf9b76d6e93c62114bd19485e5cb003115c134cf9ce91f8ac924c44f8c8c3f4"}, ] [package.dependencies] -cffi = ">=1.12" +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] nox = ["nox"] -pep8test = ["black", "check-sdist", "mypy", "ruff"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -3126,17 +3135,17 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] [[package]] name = "pyopenssl" -version = "23.3.0" +version = "24.0.0" description = "Python wrapper module around the OpenSSL library" optional = false python-versions = ">=3.7" files = [ - {file = "pyOpenSSL-23.3.0-py3-none-any.whl", hash = "sha256:6756834481d9ed5470f4a9393455154bc92fe7a64b7bc6ee2c804e78c52099b2"}, - {file = "pyOpenSSL-23.3.0.tar.gz", hash = "sha256:6b2cba5cc46e822750ec3e5a81ee12819850b11303630d575e98108a079c2b12"}, + {file = "pyOpenSSL-24.0.0-py3-none-any.whl", hash = "sha256:ba07553fb6fd6a7a2259adb9b84e12302a9a8a75c44046e8bb5d3e5ee887e3c3"}, + {file = "pyOpenSSL-24.0.0.tar.gz", hash = "sha256:6aa33039a93fffa4563e655b61d11364d01264be8ccb49906101e02a334530bf"}, ] [package.dependencies] -cryptography = ">=41.0.5,<42" +cryptography = ">=41.0.5,<43" [package.extras] docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx-rtd-theme"] From 919d1f349fd6530ee56c2560bed9778da2a1d69d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:48:44 +0100 Subject: [PATCH 023/105] website: bump postcss from 8.4.33 to 8.4.34 in /website (#8430) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.33 to 8.4.34. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.33...8.4.34) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index cd5d56b619..565c142b82 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -18,7 +18,7 @@ "@mdx-js/react": "^3.0.0", "clsx": "^2.1.0", "disqus-react": "^1.1.5", - "postcss": "^8.4.33", + "postcss": "^8.4.34", "prism-react-renderer": "^2.3.1", "rapidoc": "^9.3.4", "react": "^18.2.0", @@ -13161,9 +13161,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.34", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz", + "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==", "funding": [ { "type": "opencollective", diff --git a/website/package.json b/website/package.json index 005e6d2a20..5b4b6657fc 100644 --- a/website/package.json +++ b/website/package.json @@ -25,7 +25,7 @@ "@mdx-js/react": "^3.0.0", "clsx": "^2.1.0", "disqus-react": "^1.1.5", - "postcss": "^8.4.33", + "postcss": "^8.4.34", "prism-react-renderer": "^2.3.1", "rapidoc": "^9.3.4", "react-before-after-slider-component": "^1.1.8", From 799dd48861ee3d3294faf8a4bb737c700850be0e Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:52:53 +0100 Subject: [PATCH 024/105] core, web: update translations (#8422) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> --- locale/en/LC_MESSAGES/django.po | 1116 ++++++++++++++++--------------- 1 file changed, 562 insertions(+), 554 deletions(-) diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 396163a3a4..ac71b33fe6 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-26 17:26+0000\n" +"POT-Creation-Date: 2024-02-06 00:06+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,32 +18,32 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: authentik/api/schema.py:25 +#: authentik/api/schema.py:26 msgid "Generic API Error" msgstr "" -#: authentik/api/schema.py:33 +#: authentik/api/schema.py:34 msgid "Validation Error" msgstr "" -#: authentik/blueprints/api.py:43 +#: authentik/blueprints/api.py:44 msgid "Blueprint file does not exist" msgstr "" -#: authentik/blueprints/api.py:54 +#: authentik/blueprints/api.py:55 #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "" -#: authentik/blueprints/api.py:59 +#: authentik/blueprints/api.py:60 msgid "Either path or content must be set." msgstr "" -#: authentik/blueprints/models.py:30 +#: authentik/blueprints/models.py:31 msgid "Managed by authentik" msgstr "" -#: authentik/blueprints/models.py:32 +#: authentik/blueprints/models.py:33 msgid "" "Objects that are managed by authentik. These objects are created and updated " "automatically. This flag only indicates that an object can be overwritten by " @@ -51,11 +51,11 @@ msgid "" "to be overwritten in a later update." msgstr "" -#: authentik/blueprints/models.py:112 +#: authentik/blueprints/models.py:113 msgid "Blueprint Instance" msgstr "" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py:114 msgid "Blueprint Instances" msgstr "" @@ -64,227 +64,235 @@ msgstr "" msgid "authentik Export - %(date)s" msgstr "" -#: authentik/blueprints/v1/tasks.py:145 authentik/crypto/tasks.py:87 +#: authentik/blueprints/v1/tasks.py:146 authentik/crypto/tasks.py:88 #, python-format msgid "Successfully imported %(count)d files." msgstr "" -#: authentik/brands/models.py:22 +#: authentik/brands/models.py:23 msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" msgstr "" -#: authentik/brands/models.py:58 +#: authentik/brands/models.py:59 msgid "Web Certificate used by the authentik Core webserver." msgstr "" -#: authentik/brands/models.py:84 +#: authentik/brands/models.py:85 msgid "Brand" msgstr "" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py:86 msgid "Brands" msgstr "" -#: authentik/core/api/providers.py:122 +#: authentik/core/api/providers.py:123 msgid "SAML Provider from Metadata" msgstr "" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py:124 msgid "Create a SAML Provider by importing its Metadata." msgstr "" -#: authentik/core/api/users.py:149 +#: authentik/core/api/users.py:162 msgid "No leading or trailing slashes allowed." msgstr "" -#: authentik/core/api/users.py:152 +#: authentik/core/api/users.py:165 msgid "No empty segments in user path allowed." msgstr "" -#: authentik/core/models.py:92 +#: authentik/core/models.py:94 msgid "name" msgstr "" -#: authentik/core/models.py:94 +#: authentik/core/models.py:96 msgid "Users added to this group will be superusers." msgstr "" -#: authentik/core/models.py:168 +#: authentik/core/models.py:170 msgid "Group" msgstr "" -#: authentik/core/models.py:169 +#: authentik/core/models.py:171 msgid "Groups" msgstr "" -#: authentik/core/models.py:184 +#: authentik/core/models.py:202 msgid "User's display name." msgstr "" -#: authentik/core/models.py:280 authentik/providers/oauth2/models.py:295 +#: authentik/core/models.py:298 authentik/providers/oauth2/models.py:296 msgid "User" msgstr "" -#: authentik/core/models.py:281 +#: authentik/core/models.py:299 msgid "Users" msgstr "" -#: authentik/core/models.py:283 +#: authentik/core/models.py:301 #: authentik/stages/email/templates/email/password_reset.html:28 msgid "Reset Password" msgstr "" -#: authentik/core/models.py:284 +#: authentik/core/models.py:302 msgid "Can impersonate other users" msgstr "" -#: authentik/core/models.py:285 authentik/rbac/models.py:54 +#: authentik/core/models.py:303 authentik/rbac/models.py:55 msgid "Can assign permissions to users" msgstr "" -#: authentik/core/models.py:286 authentik/rbac/models.py:55 +#: authentik/core/models.py:304 authentik/rbac/models.py:56 msgid "Can unassign permissions from users" msgstr "" -#: authentik/core/models.py:308 +#: authentik/core/models.py:305 +msgid "Can preview user data sent to providers" +msgstr "" + +#: authentik/core/models.py:306 +msgid "View applications the user has access to" +msgstr "" + +#: authentik/core/models.py:328 msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." msgstr "" -#: authentik/core/models.py:318 +#: authentik/core/models.py:338 msgid "Flow used when authorizing this provider." msgstr "" -#: authentik/core/models.py:330 +#: authentik/core/models.py:350 msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." msgstr "" -#: authentik/core/models.py:385 +#: authentik/core/models.py:405 msgid "Application's display Name." msgstr "" -#: authentik/core/models.py:386 +#: authentik/core/models.py:406 msgid "Internal application name, used in URLs." msgstr "" -#: authentik/core/models.py:398 +#: authentik/core/models.py:418 msgid "Open launch URL in a new browser tab or window." msgstr "" -#: authentik/core/models.py:462 +#: authentik/core/models.py:482 msgid "Application" msgstr "" -#: authentik/core/models.py:463 +#: authentik/core/models.py:483 msgid "Applications" msgstr "" -#: authentik/core/models.py:469 +#: authentik/core/models.py:489 msgid "Use the source-specific identifier" msgstr "" -#: authentik/core/models.py:471 +#: authentik/core/models.py:491 msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." msgstr "" -#: authentik/core/models.py:475 +#: authentik/core/models.py:495 msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." msgstr "" -#: authentik/core/models.py:478 +#: authentik/core/models.py:498 msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." msgstr "" -#: authentik/core/models.py:482 +#: authentik/core/models.py:502 msgid "" "Use the user's username, but deny enrollment when the username already " "exists." msgstr "" -#: authentik/core/models.py:489 +#: authentik/core/models.py:509 msgid "Source's display Name." msgstr "" -#: authentik/core/models.py:490 +#: authentik/core/models.py:510 msgid "Internal source name, used in URLs." msgstr "" -#: authentik/core/models.py:509 +#: authentik/core/models.py:529 msgid "Flow to use when authenticating existing users." msgstr "" -#: authentik/core/models.py:518 +#: authentik/core/models.py:538 msgid "Flow to use when enrolling new users." msgstr "" -#: authentik/core/models.py:526 +#: authentik/core/models.py:546 msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." msgstr "" -#: authentik/core/models.py:698 +#: authentik/core/models.py:718 msgid "Token" msgstr "" -#: authentik/core/models.py:699 +#: authentik/core/models.py:719 msgid "Tokens" msgstr "" -#: authentik/core/models.py:704 +#: authentik/core/models.py:724 msgid "View token's key" msgstr "" -#: authentik/core/models.py:740 +#: authentik/core/models.py:760 msgid "Property Mapping" msgstr "" -#: authentik/core/models.py:741 +#: authentik/core/models.py:761 msgid "Property Mappings" msgstr "" -#: authentik/core/models.py:778 +#: authentik/core/models.py:798 msgid "Authenticated Session" msgstr "" -#: authentik/core/models.py:779 +#: authentik/core/models.py:799 msgid "Authenticated Sessions" msgstr "" -#: authentik/core/sources/flow_manager.py:190 +#: authentik/core/sources/flow_manager.py:191 #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate " "with the source you've previously signed up with." msgstr "" -#: authentik/core/sources/flow_manager.py:242 +#: authentik/core/sources/flow_manager.py:243 msgid "Configured flow does not exist." msgstr "" -#: authentik/core/sources/flow_manager.py:272 -#: authentik/core/sources/flow_manager.py:324 +#: authentik/core/sources/flow_manager.py:273 +#: authentik/core/sources/flow_manager.py:325 #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "" -#: authentik/core/sources/flow_manager.py:296 +#: authentik/core/sources/flow_manager.py:297 #, python-format msgid "Successfully linked %(source)s!" msgstr "" -#: authentik/core/sources/flow_manager.py:315 +#: authentik/core/sources/flow_manager.py:316 msgid "Source is not configured for enrollment." msgstr "" @@ -337,37 +345,37 @@ msgstr "" msgid "Powered by authentik" msgstr "" -#: authentik/core/views/apps.py:53 -#: authentik/providers/oauth2/views/authorize.py:434 -#: authentik/providers/oauth2/views/device_init.py:70 -#: authentik/providers/saml/views/sso.py:70 +#: authentik/core/views/apps.py:54 +#: authentik/providers/oauth2/views/authorize.py:435 +#: authentik/providers/oauth2/views/device_init.py:71 +#: authentik/providers/saml/views/sso.py:71 #, python-format msgid "You're about to sign into %(application)s." msgstr "" -#: authentik/crypto/api.py:179 +#: authentik/crypto/api.py:180 msgid "Subject-alt name" msgstr "" -#: authentik/crypto/models.py:30 +#: authentik/crypto/models.py:31 msgid "PEM-encoded Certificate data" msgstr "" -#: authentik/crypto/models.py:33 +#: authentik/crypto/models.py:34 msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." msgstr "" -#: authentik/crypto/models.py:101 +#: authentik/crypto/models.py:102 msgid "Certificate-Key Pair" msgstr "" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py:103 msgid "Certificate-Key Pairs" msgstr "" -#: authentik/enterprise/api.py:33 +#: authentik/enterprise/api.py:34 msgid "Enterprise is required to create/update this object." msgstr "" @@ -387,303 +395,303 @@ msgstr "" msgid "License Usage Records" msgstr "" -#: authentik/enterprise/policy.py:18 +#: authentik/enterprise/policy.py:19 msgid "Enterprise required to access this feature." msgstr "" -#: authentik/enterprise/policy.py:20 +#: authentik/enterprise/policy.py:21 msgid "Feature only accessible for internal users." msgstr "" -#: authentik/enterprise/providers/rac/models.py:48 +#: authentik/enterprise/providers/rac/models.py:49 #: authentik/stages/user_login/models.py:39 msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "" -#: authentik/enterprise/providers/rac/models.py:71 +#: authentik/enterprise/providers/rac/models.py:72 msgid "RAC Provider" msgstr "" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py:73 msgid "RAC Providers" msgstr "" -#: authentik/enterprise/providers/rac/models.py:100 +#: authentik/enterprise/providers/rac/models.py:101 msgid "RAC Endpoint" msgstr "" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py:102 msgid "RAC Endpoints" msgstr "" -#: authentik/enterprise/providers/rac/models.py:122 +#: authentik/enterprise/providers/rac/models.py:123 msgid "RAC Property Mapping" msgstr "" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py:124 msgid "RAC Property Mappings" msgstr "" -#: authentik/enterprise/providers/rac/views.py:108 +#: authentik/enterprise/providers/rac/views.py:109 msgid "Maximum connection limit reached." msgstr "" -#: authentik/enterprise/providers/rac/views.py:112 +#: authentik/enterprise/providers/rac/views.py:113 msgid "(You are already connected in another tab/window)" msgstr "" -#: authentik/events/api/tasks.py:100 +#: authentik/events/api/tasks.py:101 #, python-format msgid "Successfully started task %(name)s." msgstr "" -#: authentik/events/models.py:304 +#: authentik/events/models.py:305 msgid "Event" msgstr "" -#: authentik/events/models.py:305 +#: authentik/events/models.py:306 msgid "Events" msgstr "" -#: authentik/events/models.py:311 +#: authentik/events/models.py:312 msgid "authentik inbuilt notifications" msgstr "" -#: authentik/events/models.py:312 +#: authentik/events/models.py:313 msgid "Generic Webhook" msgstr "" -#: authentik/events/models.py:313 +#: authentik/events/models.py:314 msgid "Slack Webhook (Slack/Discord)" msgstr "" -#: authentik/events/models.py:314 +#: authentik/events/models.py:315 msgid "Email" msgstr "" -#: authentik/events/models.py:332 +#: authentik/events/models.py:333 msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." msgstr "" -#: authentik/events/models.py:397 +#: authentik/events/models.py:398 msgid "Severity" msgstr "" -#: authentik/events/models.py:402 +#: authentik/events/models.py:403 msgid "Dispatched for user" msgstr "" -#: authentik/events/models.py:411 +#: authentik/events/models.py:412 msgid "Event user" msgstr "" -#: authentik/events/models.py:505 +#: authentik/events/models.py:506 msgid "Notification Transport" msgstr "" -#: authentik/events/models.py:506 +#: authentik/events/models.py:507 msgid "Notification Transports" msgstr "" -#: authentik/events/models.py:512 +#: authentik/events/models.py:513 msgid "Notice" msgstr "" -#: authentik/events/models.py:513 +#: authentik/events/models.py:514 msgid "Warning" msgstr "" -#: authentik/events/models.py:514 +#: authentik/events/models.py:515 msgid "Alert" msgstr "" -#: authentik/events/models.py:539 +#: authentik/events/models.py:540 msgid "Notification" msgstr "" -#: authentik/events/models.py:540 +#: authentik/events/models.py:541 msgid "Notifications" msgstr "" -#: authentik/events/models.py:550 +#: authentik/events/models.py:551 msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." msgstr "" -#: authentik/events/models.py:558 +#: authentik/events/models.py:559 msgid "Controls which severity level the created notifications will have." msgstr "" -#: authentik/events/models.py:563 +#: authentik/events/models.py:564 msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." msgstr "" -#: authentik/events/models.py:581 +#: authentik/events/models.py:582 msgid "Notification Rule" msgstr "" -#: authentik/events/models.py:582 +#: authentik/events/models.py:583 msgid "Notification Rules" msgstr "" -#: authentik/events/models.py:602 +#: authentik/events/models.py:603 msgid "Webhook Mapping" msgstr "" -#: authentik/events/models.py:603 +#: authentik/events/models.py:604 msgid "Webhook Mappings" msgstr "" -#: authentik/events/models.py:668 +#: authentik/events/models.py:669 msgid "Run task" msgstr "" -#: authentik/events/models.py:669 +#: authentik/events/models.py:670 msgid "System Task" msgstr "" -#: authentik/events/models.py:670 +#: authentik/events/models.py:671 msgid "System Tasks" msgstr "" -#: authentik/events/system_tasks.py:126 +#: authentik/events/system_tasks.py:127 msgid "Task has not been run yet." msgstr "" -#: authentik/flows/api/flows.py:295 +#: authentik/flows/api/flows.py:297 #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "" -#: authentik/flows/api/flows_diagram.py:68 -#: authentik/flows/api/flows_diagram.py:94 +#: authentik/flows/api/flows_diagram.py:69 +#: authentik/flows/api/flows_diagram.py:95 #, python-format msgid "Policy (%(type)s)" msgstr "" -#: authentik/flows/api/flows_diagram.py:71 +#: authentik/flows/api/flows_diagram.py:72 #, python-format msgid "Binding %(order)d" msgstr "" -#: authentik/flows/api/flows_diagram.py:118 +#: authentik/flows/api/flows_diagram.py:119 msgid "Policy passed" msgstr "" -#: authentik/flows/api/flows_diagram.py:122 +#: authentik/flows/api/flows_diagram.py:123 #, python-format msgid "Stage (%(type)s)" msgstr "" -#: authentik/flows/api/flows_diagram.py:146 -#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py:147 +#: authentik/flows/api/flows_diagram.py:207 msgid "Policy denied" msgstr "" -#: authentik/flows/api/flows_diagram.py:156 -#: authentik/flows/api/flows_diagram.py:168 -#: authentik/flows/api/flows_diagram.py:205 -#: authentik/flows/api/flows_diagram.py:227 +#: authentik/flows/api/flows_diagram.py:157 +#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py:228 msgid "End of the flow" msgstr "" -#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py:170 msgid "Requirement not fulfilled" msgstr "" -#: authentik/flows/api/flows_diagram.py:177 +#: authentik/flows/api/flows_diagram.py:178 msgid "Flow authentication requirement" msgstr "" -#: authentik/flows/api/flows_diagram.py:183 +#: authentik/flows/api/flows_diagram.py:184 msgid "Requirement fulfilled" msgstr "" -#: authentik/flows/api/flows_diagram.py:196 +#: authentik/flows/api/flows_diagram.py:197 msgid "Pre-flow policies" msgstr "" -#: authentik/flows/api/flows_diagram.py:214 authentik/flows/models.py:194 +#: authentik/flows/api/flows_diagram.py:215 authentik/flows/models.py:195 msgid "Flow" msgstr "" -#: authentik/flows/exceptions.py:19 +#: authentik/flows/exceptions.py:20 msgid "Flow does not apply to current user." msgstr "" -#: authentik/flows/models.py:115 +#: authentik/flows/models.py:116 #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "" -#: authentik/flows/models.py:130 +#: authentik/flows/models.py:131 msgid "Visible in the URL." msgstr "" -#: authentik/flows/models.py:132 +#: authentik/flows/models.py:133 msgid "Shown as the Title in Flow pages." msgstr "" -#: authentik/flows/models.py:139 +#: authentik/flows/models.py:140 msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." msgstr "" -#: authentik/flows/models.py:148 +#: authentik/flows/models.py:149 msgid "Background shown during execution" msgstr "" -#: authentik/flows/models.py:155 +#: authentik/flows/models.py:156 msgid "" "Enable compatibility mode, increases compatibility with password managers on " "mobile devices." msgstr "" -#: authentik/flows/models.py:163 +#: authentik/flows/models.py:164 msgid "Configure what should happen when a flow denies access to a user." msgstr "" -#: authentik/flows/models.py:169 +#: authentik/flows/models.py:170 msgid "Required level of authentication and authorization to access a flow." msgstr "" -#: authentik/flows/models.py:195 +#: authentik/flows/models.py:196 msgid "Flows" msgstr "" -#: authentik/flows/models.py:198 +#: authentik/flows/models.py:199 msgid "Can export a Flow" msgstr "" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py:200 msgid "Can inspect a Flow's execution" msgstr "" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py:201 msgid "View Flow's cache metrics" msgstr "" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py:202 msgid "Clear Flow's cache metrics" msgstr "" -#: authentik/flows/models.py:217 +#: authentik/flows/models.py:218 msgid "Evaluate policies during the Flow planning process." msgstr "" -#: authentik/flows/models.py:221 +#: authentik/flows/models.py:222 msgid "Evaluate policies when the Stage is present to the user." msgstr "" -#: authentik/flows/models.py:228 +#: authentik/flows/models.py:229 msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -691,303 +699,303 @@ msgid "" "RESTART_WITH_CONTEXT restarts the flow while keeping the current context." msgstr "" -#: authentik/flows/models.py:251 +#: authentik/flows/models.py:252 msgid "Flow Stage Binding" msgstr "" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py:253 msgid "Flow Stage Bindings" msgstr "" -#: authentik/flows/models.py:267 +#: authentik/flows/models.py:268 msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." msgstr "" -#: authentik/flows/models.py:307 +#: authentik/flows/models.py:308 msgid "Flow Token" msgstr "" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py:309 msgid "Flow Tokens" msgstr "" -#: authentik/lib/utils/time.py:27 +#: authentik/lib/utils/time.py:28 #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "" -#: authentik/lib/validators.py:16 +#: authentik/lib/validators.py:17 #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "" -#: authentik/outposts/api/service_connections.py:127 +#: authentik/outposts/api/service_connections.py:128 msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "" -#: authentik/outposts/api/service_connections.py:135 +#: authentik/outposts/api/service_connections.py:136 msgid "Invalid kubeconfig" msgstr "" -#: authentik/outposts/models.py:123 +#: authentik/outposts/models.py:124 msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" msgstr "" -#: authentik/outposts/models.py:153 +#: authentik/outposts/models.py:154 msgid "Outpost Service-Connection" msgstr "" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py:155 msgid "Outpost Service-Connections" msgstr "" -#: authentik/outposts/models.py:162 +#: authentik/outposts/models.py:163 msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." msgstr "" -#: authentik/outposts/models.py:174 +#: authentik/outposts/models.py:175 msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." msgstr "" -#: authentik/outposts/models.py:186 +#: authentik/outposts/models.py:187 msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." msgstr "" -#: authentik/outposts/models.py:204 +#: authentik/outposts/models.py:205 msgid "Docker Service-Connection" msgstr "" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py:206 msgid "Docker Service-Connections" msgstr "" -#: authentik/outposts/models.py:213 +#: authentik/outposts/models.py:214 msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." msgstr "" -#: authentik/outposts/models.py:219 +#: authentik/outposts/models.py:220 msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "" -#: authentik/outposts/models.py:236 +#: authentik/outposts/models.py:237 msgid "Kubernetes Service-Connection" msgstr "" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py:238 msgid "Kubernetes Service-Connections" msgstr "" -#: authentik/outposts/models.py:253 +#: authentik/outposts/models.py:254 msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave " "empty if authentik should not handle the deployment." msgstr "" -#: authentik/outposts/models.py:420 +#: authentik/outposts/models.py:421 msgid "Outpost" msgstr "" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py:422 msgid "Outposts" msgstr "" -#: authentik/policies/denied.py:24 +#: authentik/policies/denied.py:25 msgid "Access denied" msgstr "" -#: authentik/policies/dummy/models.py:44 +#: authentik/policies/dummy/models.py:45 msgid "Dummy Policy" msgstr "" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py:46 msgid "Dummy Policies" msgstr "" -#: authentik/policies/event_matcher/api.py:20 -#: authentik/policies/event_matcher/models.py:56 +#: authentik/policies/event_matcher/api.py:21 +#: authentik/policies/event_matcher/models.py:57 msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "" -#: authentik/policies/event_matcher/api.py:29 -#: authentik/policies/event_matcher/models.py:64 +#: authentik/policies/event_matcher/api.py:30 +#: authentik/policies/event_matcher/models.py:65 msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." msgstr "" -#: authentik/policies/event_matcher/api.py:42 +#: authentik/policies/event_matcher/api.py:43 msgid "At least one criteria must be set." msgstr "" -#: authentik/policies/event_matcher/models.py:48 +#: authentik/policies/event_matcher/models.py:49 msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "" -#: authentik/policies/event_matcher/models.py:73 +#: authentik/policies/event_matcher/models.py:74 msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "" -#: authentik/policies/event_matcher/models.py:143 +#: authentik/policies/event_matcher/models.py:144 msgid "Event Matcher Policy" msgstr "" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py:145 msgid "Event Matcher Policies" msgstr "" -#: authentik/policies/expiry/models.py:45 +#: authentik/policies/expiry/models.py:46 #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "" -#: authentik/policies/expiry/models.py:49 +#: authentik/policies/expiry/models.py:50 msgid "Password has expired." msgstr "" -#: authentik/policies/expiry/models.py:53 +#: authentik/policies/expiry/models.py:54 msgid "Password Expiry Policy" msgstr "" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py:55 msgid "Password Expiry Policies" msgstr "" -#: authentik/policies/expression/models.py:40 +#: authentik/policies/expression/models.py:41 msgid "Expression Policy" msgstr "" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py:42 msgid "Expression Policies" msgstr "" -#: authentik/policies/models.py:22 +#: authentik/policies/models.py:23 msgid "all, all policies must pass" msgstr "" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py:24 msgid "any, any policy must pass" msgstr "" -#: authentik/policies/models.py:46 +#: authentik/policies/models.py:47 msgid "Policy Binding Model" msgstr "" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py:48 msgid "Policy Binding Models" msgstr "" -#: authentik/policies/models.py:86 +#: authentik/policies/models.py:87 msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "" -#: authentik/policies/models.py:89 +#: authentik/policies/models.py:90 msgid "Timeout after which Policy execution is terminated." msgstr "" -#: authentik/policies/models.py:92 +#: authentik/policies/models.py:93 msgid "Result if the Policy execution fails." msgstr "" -#: authentik/policies/models.py:145 +#: authentik/policies/models.py:146 msgid "Policy Binding" msgstr "" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py:147 msgid "Policy Bindings" msgstr "" -#: authentik/policies/models.py:167 +#: authentik/policies/models.py:168 msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." msgstr "" -#: authentik/policies/models.py:189 +#: authentik/policies/models.py:190 msgid "Policy" msgstr "" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py:191 msgid "Policies" msgstr "" -#: authentik/policies/models.py:193 +#: authentik/policies/models.py:194 msgid "View Policy's cache metrics" msgstr "" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py:195 msgid "Clear Policy's cache metrics" msgstr "" -#: authentik/policies/password/models.py:27 +#: authentik/policies/password/models.py:28 msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "" -#: authentik/policies/password/models.py:44 +#: authentik/policies/password/models.py:45 msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "" -#: authentik/policies/password/models.py:49 +#: authentik/policies/password/models.py:50 msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "" -#: authentik/policies/password/models.py:72 +#: authentik/policies/password/models.py:73 msgid "Password not set in context" msgstr "" -#: authentik/policies/password/models.py:134 +#: authentik/policies/password/models.py:135 #, python-format msgid "Password exists on %(count)d online lists." msgstr "" -#: authentik/policies/password/models.py:154 +#: authentik/policies/password/models.py:155 msgid "Password is too weak." msgstr "" -#: authentik/policies/password/models.py:162 +#: authentik/policies/password/models.py:163 msgid "Password Policy" msgstr "" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py:164 msgid "Password Policies" msgstr "" -#: authentik/policies/reputation/api.py:18 +#: authentik/policies/reputation/api.py:19 msgid "Either IP or Username must be checked" msgstr "" -#: authentik/policies/reputation/models.py:67 +#: authentik/policies/reputation/models.py:68 msgid "Reputation Policy" msgstr "" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py:69 msgid "Reputation Policies" msgstr "" -#: authentik/policies/reputation/models.py:96 +#: authentik/policies/reputation/models.py:97 msgid "Reputation Score" msgstr "" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py:98 msgid "Reputation Scores" msgstr "" @@ -1024,28 +1032,28 @@ msgid "" " " msgstr "" -#: authentik/policies/views.py:68 +#: authentik/policies/views.py:69 msgid "Failed to resolve application" msgstr "" -#: authentik/providers/ldap/models.py:25 +#: authentik/providers/ldap/models.py:26 msgid "DN under which objects are accessible." msgstr "" -#: authentik/providers/ldap/models.py:34 +#: authentik/providers/ldap/models.py:35 msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." msgstr "" -#: authentik/providers/ldap/models.py:53 +#: authentik/providers/ldap/models.py:54 msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " "that we don't collide with local users uidNumber" msgstr "" -#: authentik/providers/ldap/models.py:62 +#: authentik/providers/ldap/models.py:63 msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1053,8 +1061,8 @@ msgid "" "primary groups gidNumber" msgstr "" -#: authentik/providers/ldap/models.py:76 -#: authentik/providers/radius/models.py:34 +#: authentik/providers/ldap/models.py:77 +#: authentik/providers/radius/models.py:35 msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be " @@ -1063,497 +1071,497 @@ msgid "" "contains a semicolon." msgstr "" -#: authentik/providers/ldap/models.py:108 +#: authentik/providers/ldap/models.py:109 msgid "LDAP Provider" msgstr "" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py:110 msgid "LDAP Providers" msgstr "" -#: authentik/providers/oauth2/id_token.py:27 +#: authentik/providers/oauth2/id_token.py:28 msgid "Based on the Hashed User ID" msgstr "" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py:29 msgid "Based on user ID" msgstr "" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py:30 msgid "Based on user UUID" msgstr "" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py:31 msgid "Based on the username" msgstr "" -#: authentik/providers/oauth2/id_token.py:33 +#: authentik/providers/oauth2/id_token.py:34 msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "" -#: authentik/providers/oauth2/id_token.py:38 +#: authentik/providers/oauth2/id_token.py:39 msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." msgstr "" -#: authentik/providers/oauth2/models.py:43 +#: authentik/providers/oauth2/models.py:44 msgid "Confidential" msgstr "" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py:45 msgid "Public" msgstr "" -#: authentik/providers/oauth2/models.py:66 +#: authentik/providers/oauth2/models.py:67 msgid "Same identifier is used for all providers" msgstr "" -#: authentik/providers/oauth2/models.py:68 +#: authentik/providers/oauth2/models.py:69 msgid "Each provider has a different issuer, based on the application slug." msgstr "" -#: authentik/providers/oauth2/models.py:75 +#: authentik/providers/oauth2/models.py:76 msgid "code (Authorization Code Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py:77 msgid "id_token (Implicit Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py:78 msgid "id_token token (Implicit Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py:79 msgid "code token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py:80 msgid "code id_token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py:81 msgid "code id_token token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:86 +#: authentik/providers/oauth2/models.py:87 msgid "HS256 (Symmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py:88 msgid "RS256 (Asymmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py:89 msgid "ES256 (Asymmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:94 +#: authentik/providers/oauth2/models.py:95 msgid "Scope used by the client" msgstr "" -#: authentik/providers/oauth2/models.py:98 +#: authentik/providers/oauth2/models.py:99 msgid "" "Description shown to the user when consenting. If left empty, the user won't " "be informed." msgstr "" -#: authentik/providers/oauth2/models.py:117 +#: authentik/providers/oauth2/models.py:118 msgid "Scope Mapping" msgstr "" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py:119 msgid "Scope Mappings" msgstr "" -#: authentik/providers/oauth2/models.py:128 +#: authentik/providers/oauth2/models.py:129 msgid "Client Type" msgstr "" -#: authentik/providers/oauth2/models.py:130 +#: authentik/providers/oauth2/models.py:131 msgid "" "Confidential clients are capable of maintaining the confidentiality of their " "credentials. Public clients are incapable" msgstr "" -#: authentik/providers/oauth2/models.py:137 +#: authentik/providers/oauth2/models.py:138 msgid "Client ID" msgstr "" -#: authentik/providers/oauth2/models.py:143 +#: authentik/providers/oauth2/models.py:144 msgid "Client Secret" msgstr "" -#: authentik/providers/oauth2/models.py:149 +#: authentik/providers/oauth2/models.py:150 msgid "Redirect URIs" msgstr "" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py:151 msgid "Enter each URI on a new line." msgstr "" -#: authentik/providers/oauth2/models.py:155 +#: authentik/providers/oauth2/models.py:156 msgid "Include claims in id_token" msgstr "" -#: authentik/providers/oauth2/models.py:157 +#: authentik/providers/oauth2/models.py:158 msgid "" "Include User claims from scopes in the id_token, for applications that don't " "access the userinfo endpoint." msgstr "" -#: authentik/providers/oauth2/models.py:166 +#: authentik/providers/oauth2/models.py:167 msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "" -#: authentik/providers/oauth2/models.py:174 -#: authentik/providers/oauth2/models.py:182 +#: authentik/providers/oauth2/models.py:175 +#: authentik/providers/oauth2/models.py:183 msgid "" "Tokens not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/oauth2/models.py:191 +#: authentik/providers/oauth2/models.py:192 msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "" -#: authentik/providers/oauth2/models.py:198 +#: authentik/providers/oauth2/models.py:199 msgid "Configure how the issuer field of the ID Token should be filled." msgstr "" -#: authentik/providers/oauth2/models.py:203 +#: authentik/providers/oauth2/models.py:204 msgid "Signing Key" msgstr "" -#: authentik/providers/oauth2/models.py:207 +#: authentik/providers/oauth2/models.py:208 msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "" -#: authentik/providers/oauth2/models.py:214 +#: authentik/providers/oauth2/models.py:215 msgid "" "Any JWT signed by the JWK of the selected source can be used to authenticate." msgstr "" -#: authentik/providers/oauth2/models.py:287 +#: authentik/providers/oauth2/models.py:288 msgid "OAuth2/OpenID Provider" msgstr "" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py:289 msgid "OAuth2/OpenID Providers" msgstr "" -#: authentik/providers/oauth2/models.py:297 -#: authentik/providers/oauth2/models.py:430 +#: authentik/providers/oauth2/models.py:298 +#: authentik/providers/oauth2/models.py:431 msgid "Scopes" msgstr "" -#: authentik/providers/oauth2/models.py:317 +#: authentik/providers/oauth2/models.py:318 msgid "Code" msgstr "" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py:319 msgid "Nonce" msgstr "" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py:320 msgid "Code Challenge" msgstr "" -#: authentik/providers/oauth2/models.py:321 +#: authentik/providers/oauth2/models.py:322 msgid "Code Challenge Method" msgstr "" -#: authentik/providers/oauth2/models.py:341 +#: authentik/providers/oauth2/models.py:342 msgid "Authorization Code" msgstr "" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py:343 msgid "Authorization Codes" msgstr "" -#: authentik/providers/oauth2/models.py:384 +#: authentik/providers/oauth2/models.py:385 msgid "OAuth2 Access Token" msgstr "" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py:386 msgid "OAuth2 Access Tokens" msgstr "" -#: authentik/providers/oauth2/models.py:395 +#: authentik/providers/oauth2/models.py:396 msgid "ID Token" msgstr "" -#: authentik/providers/oauth2/models.py:414 +#: authentik/providers/oauth2/models.py:415 msgid "OAuth2 Refresh Token" msgstr "" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py:416 msgid "OAuth2 Refresh Tokens" msgstr "" -#: authentik/providers/oauth2/models.py:442 +#: authentik/providers/oauth2/models.py:443 msgid "Device Token" msgstr "" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py:444 msgid "Device Tokens" msgstr "" -#: authentik/providers/oauth2/views/authorize.py:489 -#: authentik/providers/saml/views/flows.py:87 +#: authentik/providers/oauth2/views/authorize.py:490 +#: authentik/providers/saml/views/flows.py:88 #, python-format msgid "Redirecting to %(app)s..." msgstr "" -#: authentik/providers/oauth2/views/device_init.py:151 +#: authentik/providers/oauth2/views/device_init.py:152 msgid "Invalid code" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:55 #: authentik/providers/oauth2/views/userinfo.py:56 +#: authentik/providers/oauth2/views/userinfo.py:57 msgid "GitHub Compatibility: Access your User Information" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py:58 msgid "GitHub Compatibility: Access you Email addresses" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py:59 msgid "GitHub Compatibility: Access your Groups" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py:60 msgid "authentik API Access on behalf of your user" msgstr "" -#: authentik/providers/proxy/api.py:52 +#: authentik/providers/proxy/api.py:53 msgid "User and password attributes must be set when basic auth is enabled." msgstr "" -#: authentik/providers/proxy/api.py:63 +#: authentik/providers/proxy/api.py:64 msgid "Internal host cannot be empty when forward auth is disabled." msgstr "" -#: authentik/providers/proxy/models.py:54 +#: authentik/providers/proxy/models.py:55 msgid "Validate SSL Certificates of upstream servers" msgstr "" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py:56 msgid "Internal host SSL Validation" msgstr "" -#: authentik/providers/proxy/models.py:61 +#: authentik/providers/proxy/models.py:62 msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." msgstr "" -#: authentik/providers/proxy/models.py:70 +#: authentik/providers/proxy/models.py:71 msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." msgstr "" -#: authentik/providers/proxy/models.py:78 +#: authentik/providers/proxy/models.py:79 msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." msgstr "" -#: authentik/providers/proxy/models.py:84 +#: authentik/providers/proxy/models.py:85 msgid "Set HTTP-Basic Authentication" msgstr "" -#: authentik/providers/proxy/models.py:86 +#: authentik/providers/proxy/models.py:87 msgid "" "Set a custom HTTP-Basic Authentication header based on values from authentik." msgstr "" -#: authentik/providers/proxy/models.py:91 +#: authentik/providers/proxy/models.py:92 msgid "HTTP-Basic Username Key" msgstr "" -#: authentik/providers/proxy/models.py:93 +#: authentik/providers/proxy/models.py:94 msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not " "set, the user's Email address is used." msgstr "" -#: authentik/providers/proxy/models.py:99 +#: authentik/providers/proxy/models.py:100 msgid "HTTP-Basic Password Key" msgstr "" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py:101 msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "" -#: authentik/providers/proxy/models.py:154 +#: authentik/providers/proxy/models.py:155 msgid "Proxy Provider" msgstr "" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py:156 msgid "Proxy Providers" msgstr "" -#: authentik/providers/radius/models.py:18 +#: authentik/providers/radius/models.py:19 msgid "Shared secret between clients and server to hash packets." msgstr "" -#: authentik/providers/radius/models.py:24 +#: authentik/providers/radius/models.py:25 msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." msgstr "" -#: authentik/providers/radius/models.py:60 +#: authentik/providers/radius/models.py:61 msgid "Radius Provider" msgstr "" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py:62 msgid "Radius Providers" msgstr "" -#: authentik/providers/saml/api/providers.py:258 +#: authentik/providers/saml/api/providers.py:261 msgid "Invalid XML Syntax" msgstr "" -#: authentik/providers/saml/api/providers.py:268 +#: authentik/providers/saml/api/providers.py:271 #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "" -#: authentik/providers/saml/models.py:38 +#: authentik/providers/saml/models.py:39 msgid "ACS URL" msgstr "" -#: authentik/providers/saml/models.py:43 +#: authentik/providers/saml/models.py:44 msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." msgstr "" -#: authentik/providers/saml/models.py:47 +#: authentik/providers/saml/models.py:48 msgid "Also known as EntityID" msgstr "" -#: authentik/providers/saml/models.py:51 +#: authentik/providers/saml/models.py:52 msgid "Service Provider Binding" msgstr "" -#: authentik/providers/saml/models.py:53 +#: authentik/providers/saml/models.py:54 msgid "" "This determines how authentik sends the response back to the Service " "Provider." msgstr "" -#: authentik/providers/saml/models.py:63 +#: authentik/providers/saml/models.py:64 msgid "NameID Property Mapping" msgstr "" -#: authentik/providers/saml/models.py:65 +#: authentik/providers/saml/models.py:66 msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" msgstr "" -#: authentik/providers/saml/models.py:74 +#: authentik/providers/saml/models.py:75 msgid "" "Assertion valid not before current time + this value (Format: hours=-1;" "minutes=-2;seconds=-3)." msgstr "" -#: authentik/providers/saml/models.py:82 +#: authentik/providers/saml/models.py:83 msgid "" "Assertion not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/saml/models.py:91 +#: authentik/providers/saml/models.py:92 msgid "" "Session not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/saml/models.py:99 authentik/sources/saml/models.py:150 +#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 msgid "SHA1" msgstr "" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 msgid "SHA256" msgstr "" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 msgid "SHA384" msgstr "" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py:103 authentik/sources/saml/models.py:154 msgid "SHA512" msgstr "" -#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:160 +#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 msgid "RSA-SHA1" msgstr "" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 msgid "RSA-SHA256" msgstr "" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 msgid "RSA-SHA384" msgstr "" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 msgid "RSA-SHA512" msgstr "" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py:114 authentik/sources/saml/models.py:165 msgid "DSA-SHA1" msgstr "" -#: authentik/providers/saml/models.py:124 authentik/sources/saml/models.py:130 +#: authentik/providers/saml/models.py:125 authentik/sources/saml/models.py:131 msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." msgstr "" -#: authentik/providers/saml/models.py:128 authentik/sources/saml/models.py:134 +#: authentik/providers/saml/models.py:129 authentik/sources/saml/models.py:135 msgid "Verification Certificate" msgstr "" -#: authentik/providers/saml/models.py:136 +#: authentik/providers/saml/models.py:137 msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "" -#: authentik/providers/saml/models.py:138 authentik/sources/saml/models.py:144 +#: authentik/providers/saml/models.py:139 authentik/sources/saml/models.py:145 msgid "Signing Keypair" msgstr "" -#: authentik/providers/saml/models.py:142 +#: authentik/providers/saml/models.py:143 msgid "Default relay_state value for IDP-initiated logins" msgstr "" -#: authentik/providers/saml/models.py:171 +#: authentik/providers/saml/models.py:172 msgid "SAML Provider" msgstr "" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py:173 msgid "SAML Providers" msgstr "" -#: authentik/providers/saml/models.py:196 +#: authentik/providers/saml/models.py:197 msgid "SAML Property Mapping" msgstr "" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py:198 msgid "SAML Property Mappings" msgstr "" @@ -1565,7 +1573,7 @@ msgstr "" msgid "Authentication token" msgstr "" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:98 +#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:99 msgid "Property mappings used for group creation/updating." msgstr "" @@ -1585,565 +1593,565 @@ msgstr "" msgid "SCIM Mappings" msgstr "" -#: authentik/providers/scim/tasks.py:57 +#: authentik/providers/scim/tasks.py:58 msgid "Starting full SCIM sync" msgstr "" -#: authentik/providers/scim/tasks.py:67 +#: authentik/providers/scim/tasks.py:68 #, python-format msgid "Syncing page %(page)d of users" msgstr "" -#: authentik/providers/scim/tasks.py:71 +#: authentik/providers/scim/tasks.py:72 #, python-format msgid "Syncing page %(page)d of groups" msgstr "" -#: authentik/providers/scim/tasks.py:103 +#: authentik/providers/scim/tasks.py:104 #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "" -#: authentik/providers/scim/tasks.py:114 authentik/providers/scim/tasks.py:155 +#: authentik/providers/scim/tasks.py:115 authentik/providers/scim/tasks.py:156 #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "" -#: authentik/providers/scim/tasks.py:144 +#: authentik/providers/scim/tasks.py:145 #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "" -#: authentik/rbac/models.py:51 +#: authentik/rbac/models.py:52 msgid "Role" msgstr "" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py:53 msgid "Roles" msgstr "" -#: authentik/rbac/models.py:66 +#: authentik/rbac/models.py:67 msgid "System permission" msgstr "" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py:68 msgid "System permissions" msgstr "" -#: authentik/rbac/models.py:69 +#: authentik/rbac/models.py:70 msgid "Can view system info" msgstr "" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py:71 msgid "Can view system tasks" msgstr "" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py:72 msgid "Can run system tasks" msgstr "" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py:73 msgid "Can access admin interface" msgstr "" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py:74 msgid "Can view system settings" msgstr "" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py:75 msgid "Can edit system settings" msgstr "" -#: authentik/recovery/management/commands/create_admin_group.py:12 +#: authentik/recovery/management/commands/create_admin_group.py:13 msgid "Create admin group if the default group gets deleted." msgstr "" -#: authentik/recovery/management/commands/create_recovery_key.py:16 +#: authentik/recovery/management/commands/create_recovery_key.py:17 msgid "Create a Key which can be used to restore access to authentik." msgstr "" -#: authentik/recovery/views.py:24 +#: authentik/recovery/views.py:25 msgid "Used recovery-link to authenticate." msgstr "" -#: authentik/sources/ldap/models.py:41 +#: authentik/sources/ldap/models.py:42 msgid "Server URI" msgstr "" -#: authentik/sources/ldap/models.py:50 +#: authentik/sources/ldap/models.py:51 msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this " "keypair." msgstr "" -#: authentik/sources/ldap/models.py:59 +#: authentik/sources/ldap/models.py:60 msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "" -#: authentik/sources/ldap/models.py:62 +#: authentik/sources/ldap/models.py:63 msgid "Bind CN" msgstr "" -#: authentik/sources/ldap/models.py:64 +#: authentik/sources/ldap/models.py:65 msgid "Enable Start TLS" msgstr "" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py:66 msgid "Use Server URI for SNI verification" msgstr "" -#: authentik/sources/ldap/models.py:67 +#: authentik/sources/ldap/models.py:68 msgid "Base DN" msgstr "" -#: authentik/sources/ldap/models.py:69 +#: authentik/sources/ldap/models.py:70 msgid "Prepended to Base DN for User-queries." msgstr "" -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py:71 msgid "Addition User DN" msgstr "" -#: authentik/sources/ldap/models.py:74 +#: authentik/sources/ldap/models.py:75 msgid "Prepended to Base DN for Group-queries." msgstr "" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py:76 msgid "Addition Group DN" msgstr "" -#: authentik/sources/ldap/models.py:81 +#: authentik/sources/ldap/models.py:82 msgid "Consider Objects matching this filter to be Users." msgstr "" -#: authentik/sources/ldap/models.py:84 +#: authentik/sources/ldap/models.py:85 msgid "Field which contains members of a group." msgstr "" -#: authentik/sources/ldap/models.py:88 +#: authentik/sources/ldap/models.py:89 msgid "Consider Objects matching this filter to be Groups." msgstr "" -#: authentik/sources/ldap/models.py:91 +#: authentik/sources/ldap/models.py:92 msgid "Field which contains a unique Identifier." msgstr "" -#: authentik/sources/ldap/models.py:105 +#: authentik/sources/ldap/models.py:106 msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "" -#: authentik/sources/ldap/models.py:248 +#: authentik/sources/ldap/models.py:249 msgid "LDAP Source" msgstr "" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py:250 msgid "LDAP Sources" msgstr "" -#: authentik/sources/ldap/models.py:271 +#: authentik/sources/ldap/models.py:272 msgid "LDAP Property Mapping" msgstr "" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py:273 msgid "LDAP Property Mappings" msgstr "" -#: authentik/sources/ldap/signals.py:52 +#: authentik/sources/ldap/signals.py:53 msgid "Password does not match Active Directory Complexity." msgstr "" -#: authentik/sources/oauth/clients/oauth2.py:68 +#: authentik/sources/oauth/clients/oauth2.py:69 msgid "No token received." msgstr "" -#: authentik/sources/oauth/models.py:24 +#: authentik/sources/oauth/models.py:25 msgid "Request Token URL" msgstr "" -#: authentik/sources/oauth/models.py:26 +#: authentik/sources/oauth/models.py:27 msgid "" "URL used to request the initial token. This URL is only required for OAuth 1." msgstr "" -#: authentik/sources/oauth/models.py:32 +#: authentik/sources/oauth/models.py:33 msgid "Authorization URL" msgstr "" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py:34 msgid "URL the user is redirect to to conest the flow." msgstr "" -#: authentik/sources/oauth/models.py:38 +#: authentik/sources/oauth/models.py:39 msgid "Access Token URL" msgstr "" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py:40 msgid "URL used by authentik to retrieve tokens." msgstr "" -#: authentik/sources/oauth/models.py:44 +#: authentik/sources/oauth/models.py:45 msgid "Profile URL" msgstr "" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py:46 msgid "URL used by authentik to get user information." msgstr "" -#: authentik/sources/oauth/models.py:48 +#: authentik/sources/oauth/models.py:49 msgid "Additional Scopes" msgstr "" -#: authentik/sources/oauth/models.py:107 +#: authentik/sources/oauth/models.py:108 msgid "OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py:109 msgid "OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:116 +#: authentik/sources/oauth/models.py:117 msgid "GitHub OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py:118 msgid "GitHub OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:125 +#: authentik/sources/oauth/models.py:126 msgid "Twitch OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py:127 msgid "Twitch OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:134 +#: authentik/sources/oauth/models.py:135 msgid "Mailcow OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py:136 msgid "Mailcow OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:143 +#: authentik/sources/oauth/models.py:144 msgid "Twitter OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py:145 msgid "Twitter OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:152 +#: authentik/sources/oauth/models.py:153 msgid "Facebook OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py:154 msgid "Facebook OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:161 +#: authentik/sources/oauth/models.py:162 msgid "Discord OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py:163 msgid "Discord OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:170 +#: authentik/sources/oauth/models.py:171 msgid "Patreon OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py:172 msgid "Patreon OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:179 +#: authentik/sources/oauth/models.py:180 msgid "Google OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py:181 msgid "Google OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:188 +#: authentik/sources/oauth/models.py:189 msgid "Azure AD OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py:190 msgid "Azure AD OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:197 +#: authentik/sources/oauth/models.py:198 msgid "OpenID OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py:199 msgid "OpenID OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:206 +#: authentik/sources/oauth/models.py:207 msgid "Apple OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py:208 msgid "Apple OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:215 +#: authentik/sources/oauth/models.py:216 msgid "Okta OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py:217 msgid "Okta OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:224 +#: authentik/sources/oauth/models.py:225 msgid "Reddit OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py:226 msgid "Reddit OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:247 +#: authentik/sources/oauth/models.py:248 msgid "User OAuth Source Connection" msgstr "" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py:249 msgid "User OAuth Source Connections" msgstr "" -#: authentik/sources/oauth/views/callback.py:100 +#: authentik/sources/oauth/views/callback.py:101 #, python-format msgid "Authentication failed: %(reason)s" msgstr "" -#: authentik/sources/plex/models.py:37 +#: authentik/sources/plex/models.py:38 msgid "Client identifier used to talk to Plex." msgstr "" -#: authentik/sources/plex/models.py:44 +#: authentik/sources/plex/models.py:45 msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." msgstr "" -#: authentik/sources/plex/models.py:50 +#: authentik/sources/plex/models.py:51 msgid "Allow friends to authenticate, even if you don't share a server." msgstr "" -#: authentik/sources/plex/models.py:52 +#: authentik/sources/plex/models.py:53 msgid "Plex token used to check friends" msgstr "" -#: authentik/sources/plex/models.py:95 +#: authentik/sources/plex/models.py:96 msgid "Plex Source" msgstr "" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py:97 msgid "Plex Sources" msgstr "" -#: authentik/sources/plex/models.py:112 +#: authentik/sources/plex/models.py:113 msgid "User Plex Source Connection" msgstr "" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py:114 msgid "User Plex Source Connections" msgstr "" -#: authentik/sources/saml/models.py:40 +#: authentik/sources/saml/models.py:41 msgid "Redirect Binding" msgstr "" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py:42 msgid "POST Binding" msgstr "" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py:43 msgid "POST Binding with auto-confirmation" msgstr "" -#: authentik/sources/saml/models.py:70 +#: authentik/sources/saml/models.py:71 msgid "Flow used before authentication." msgstr "" -#: authentik/sources/saml/models.py:77 +#: authentik/sources/saml/models.py:78 msgid "Issuer" msgstr "" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py:79 msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "" -#: authentik/sources/saml/models.py:82 +#: authentik/sources/saml/models.py:83 msgid "SSO URL" msgstr "" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py:84 msgid "URL that the initial Login request is sent to." msgstr "" -#: authentik/sources/saml/models.py:89 +#: authentik/sources/saml/models.py:90 msgid "SLO URL" msgstr "" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py:91 msgid "Optional URL if your IDP supports Single-Logout." msgstr "" -#: authentik/sources/saml/models.py:96 +#: authentik/sources/saml/models.py:97 msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." msgstr "" -#: authentik/sources/saml/models.py:104 +#: authentik/sources/saml/models.py:105 msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is sent." msgstr "" -#: authentik/sources/saml/models.py:115 +#: authentik/sources/saml/models.py:116 msgid "Delete temporary users after" msgstr "" -#: authentik/sources/saml/models.py:118 +#: authentik/sources/saml/models.py:119 msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " "manually. (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: authentik/sources/saml/models.py:142 +#: authentik/sources/saml/models.py:143 msgid "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "" -#: authentik/sources/saml/models.py:226 +#: authentik/sources/saml/models.py:227 msgid "SAML Source" msgstr "" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py:228 msgid "SAML Sources" msgstr "" -#: authentik/sources/saml/models.py:242 +#: authentik/sources/saml/models.py:243 msgid "User SAML Source Connection" msgstr "" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py:244 msgid "User SAML Source Connections" msgstr "" -#: authentik/stages/authenticator_duo/models.py:79 +#: authentik/stages/authenticator_duo/models.py:80 msgid "Duo Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py:81 msgid "Duo Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_duo/models.py:103 +#: authentik/stages/authenticator_duo/models.py:104 msgid "Duo Device" msgstr "" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py:105 msgid "Duo Devices" msgstr "" -#: authentik/stages/authenticator_sms/models.py:57 +#: authentik/stages/authenticator_sms/models.py:58 msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is " "not reused in the future." msgstr "" -#: authentik/stages/authenticator_sms/models.py:68 +#: authentik/stages/authenticator_sms/models.py:69 msgid "Optionally modify the payload being sent to custom providers." msgstr "" -#: authentik/stages/authenticator_sms/models.py:81 +#: authentik/stages/authenticator_sms/models.py:82 #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "" -#: authentik/stages/authenticator_sms/models.py:180 +#: authentik/stages/authenticator_sms/models.py:181 msgid "SMS Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py:182 msgid "SMS Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_sms/models.py:226 +#: authentik/stages/authenticator_sms/models.py:227 msgid "SMS Device" msgstr "" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py:228 msgid "SMS Devices" msgstr "" -#: authentik/stages/authenticator_sms/stage.py:57 -#: authentik/stages/authenticator_totp/stage.py:41 -#: authentik/stages/authenticator_totp/stage.py:44 +#: authentik/stages/authenticator_sms/stage.py:58 +#: authentik/stages/authenticator_totp/stage.py:42 +#: authentik/stages/authenticator_totp/stage.py:45 msgid "Code does not match" msgstr "" -#: authentik/stages/authenticator_sms/stage.py:73 +#: authentik/stages/authenticator_sms/stage.py:74 msgid "Invalid phone number" msgstr "" -#: authentik/stages/authenticator_static/models.py:52 +#: authentik/stages/authenticator_static/models.py:53 msgid "Static Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py:54 msgid "Static Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_static/models.py:98 +#: authentik/stages/authenticator_static/models.py:99 msgid "Static Device" msgstr "" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py:100 msgid "Static Devices" msgstr "" -#: authentik/stages/authenticator_static/models.py:129 +#: authentik/stages/authenticator_static/models.py:130 msgid "Static Token" msgstr "" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py:131 msgid "Static Tokens" msgstr "" -#: authentik/stages/authenticator_totp/models.py:25 +#: authentik/stages/authenticator_totp/models.py:26 msgid "6 digits, widely compatible" msgstr "" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py:27 msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "" -#: authentik/stages/authenticator_totp/models.py:62 +#: authentik/stages/authenticator_totp/models.py:63 msgid "TOTP Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py:64 msgid "TOTP Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_totp/models.py:244 +#: authentik/stages/authenticator_totp/models.py:245 msgid "TOTP Device" msgstr "" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py:246 msgid "TOTP Devices" msgstr "" -#: authentik/stages/authenticator_validate/challenge.py:123 +#: authentik/stages/authenticator_validate/challenge.py:124 msgid "Invalid Token" msgstr "" @@ -2196,19 +2204,19 @@ msgstr "" msgid "Authenticator Validation Stages" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:112 +#: authentik/stages/authenticator_webauthn/models.py:113 msgid "WebAuthn Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py:114 msgid "WebAuthn Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:151 +#: authentik/stages/authenticator_webauthn/models.py:152 msgid "WebAuthn Device" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py:153 msgid "WebAuthn Devices" msgstr "" @@ -2249,69 +2257,69 @@ msgstr "" msgid "User Consents" msgstr "" -#: authentik/stages/deny/models.py:32 +#: authentik/stages/deny/models.py:33 msgid "Deny Stage" msgstr "" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py:34 msgid "Deny Stages" msgstr "" -#: authentik/stages/dummy/models.py:34 +#: authentik/stages/dummy/models.py:35 msgid "Dummy Stage" msgstr "" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py:36 msgid "Dummy Stages" msgstr "" -#: authentik/stages/email/models.py:26 +#: authentik/stages/email/models.py:27 msgid "Password Reset" msgstr "" -#: authentik/stages/email/models.py:30 +#: authentik/stages/email/models.py:31 msgid "Account Confirmation" msgstr "" -#: authentik/stages/email/models.py:59 +#: authentik/stages/email/models.py:60 msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." msgstr "" -#: authentik/stages/email/models.py:74 +#: authentik/stages/email/models.py:75 msgid "Activate users upon completion of stage." msgstr "" -#: authentik/stages/email/models.py:78 +#: authentik/stages/email/models.py:79 msgid "Time in minutes the token sent is valid." msgstr "" -#: authentik/stages/email/models.py:132 +#: authentik/stages/email/models.py:133 msgid "Email Stage" msgstr "" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py:134 msgid "Email Stages" msgstr "" -#: authentik/stages/email/stage.py:126 +#: authentik/stages/email/stage.py:127 msgid "Exception occurred while rendering E-mail template" msgstr "" -#: authentik/stages/email/stage.py:140 +#: authentik/stages/email/stage.py:141 msgid "Successfully verified Email." msgstr "" -#: authentik/stages/email/stage.py:147 authentik/stages/email/stage.py:173 +#: authentik/stages/email/stage.py:148 authentik/stages/email/stage.py:174 msgid "No pending user." msgstr "" -#: authentik/stages/email/stage.py:163 +#: authentik/stages/email/stage.py:164 msgid "Email sent." msgstr "" -#: authentik/stages/email/stage.py:176 +#: authentik/stages/email/stage.py:177 msgid "Email Successfully sent." msgstr "" @@ -2437,7 +2445,7 @@ msgid "" "authentik emails.\n" msgstr "" -#: authentik/stages/identification/api.py:20 +#: authentik/stages/identification/api.py:21 msgid "When no user fields are selected, at least one source must be selected" msgstr "" @@ -2488,184 +2496,184 @@ msgstr "" msgid "Identification Stages" msgstr "" -#: authentik/stages/identification/stage.py:188 +#: authentik/stages/identification/stage.py:189 msgid "Log in" msgstr "" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py:190 msgid "Continue" msgstr "" -#: authentik/stages/invitation/models.py:21 +#: authentik/stages/invitation/models.py:22 msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " "invitation is given." msgstr "" -#: authentik/stages/invitation/models.py:44 +#: authentik/stages/invitation/models.py:45 msgid "Invitation Stage" msgstr "" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py:46 msgid "Invitation Stages" msgstr "" -#: authentik/stages/invitation/models.py:60 +#: authentik/stages/invitation/models.py:61 msgid "When set, only the configured flow can use this invitation." msgstr "" -#: authentik/stages/invitation/models.py:64 +#: authentik/stages/invitation/models.py:65 msgid "When enabled, the invitation will be deleted after usage." msgstr "" -#: authentik/stages/invitation/models.py:71 +#: authentik/stages/invitation/models.py:72 msgid "Optional fixed data to enforce on user enrollment." msgstr "" -#: authentik/stages/invitation/models.py:84 +#: authentik/stages/invitation/models.py:85 msgid "Invitation" msgstr "" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py:86 msgid "Invitations" msgstr "" -#: authentik/stages/invitation/stage.py:62 +#: authentik/stages/invitation/stage.py:63 msgid "Invalid invite/invite not found" msgstr "" -#: authentik/stages/password/models.py:20 +#: authentik/stages/password/models.py:21 msgid "User database + standard password" msgstr "" -#: authentik/stages/password/models.py:24 +#: authentik/stages/password/models.py:25 msgid "User database + app passwords" msgstr "" -#: authentik/stages/password/models.py:28 +#: authentik/stages/password/models.py:29 msgid "User database + LDAP password" msgstr "" -#: authentik/stages/password/models.py:38 +#: authentik/stages/password/models.py:39 msgid "Selection of backends to test the password against." msgstr "" -#: authentik/stages/password/models.py:43 +#: authentik/stages/password/models.py:44 msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." msgstr "" -#: authentik/stages/password/models.py:75 +#: authentik/stages/password/models.py:76 msgid "Password Stage" msgstr "" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py:77 msgid "Password Stages" msgstr "" -#: authentik/stages/password/stage.py:124 +#: authentik/stages/password/stage.py:125 msgid "Invalid password" msgstr "" -#: authentik/stages/prompt/models.py:43 +#: authentik/stages/prompt/models.py:44 msgid "Text: Simple Text input" msgstr "" -#: authentik/stages/prompt/models.py:45 +#: authentik/stages/prompt/models.py:46 msgid "Text area: Multiline Text Input." msgstr "" -#: authentik/stages/prompt/models.py:48 +#: authentik/stages/prompt/models.py:49 msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "" -#: authentik/stages/prompt/models.py:52 +#: authentik/stages/prompt/models.py:53 msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "" -#: authentik/stages/prompt/models.py:58 +#: authentik/stages/prompt/models.py:59 msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." msgstr "" -#: authentik/stages/prompt/models.py:60 +#: authentik/stages/prompt/models.py:61 msgid "Email: Text field with Email type." msgstr "" -#: authentik/stages/prompt/models.py:64 +#: authentik/stages/prompt/models.py:65 msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need " "to be identical." msgstr "" -#: authentik/stages/prompt/models.py:71 +#: authentik/stages/prompt/models.py:72 msgid "Fixed choice field rendered as a group of radio buttons." msgstr "" -#: authentik/stages/prompt/models.py:73 +#: authentik/stages/prompt/models.py:74 msgid "Fixed choice field rendered as a dropdown." msgstr "" -#: authentik/stages/prompt/models.py:80 +#: authentik/stages/prompt/models.py:81 msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" msgstr "" -#: authentik/stages/prompt/models.py:85 +#: authentik/stages/prompt/models.py:86 msgid "Separator: Static Separator Line" msgstr "" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py:87 msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "" -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py:88 msgid "Static: Static value, displayed as-is." msgstr "" -#: authentik/stages/prompt/models.py:89 +#: authentik/stages/prompt/models.py:90 msgid "authentik: Selection of locales authentik supports" msgstr "" -#: authentik/stages/prompt/models.py:116 +#: authentik/stages/prompt/models.py:117 msgid "Name of the form field, also used to store the value" msgstr "" -#: authentik/stages/prompt/models.py:124 +#: authentik/stages/prompt/models.py:125 msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." msgstr "" -#: authentik/stages/prompt/models.py:132 +#: authentik/stages/prompt/models.py:133 msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." msgstr "" -#: authentik/stages/prompt/models.py:321 +#: authentik/stages/prompt/models.py:322 msgid "Prompt" msgstr "" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py:323 msgid "Prompts" msgstr "" -#: authentik/stages/prompt/models.py:349 +#: authentik/stages/prompt/models.py:350 msgid "Prompt Stage" msgstr "" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py:351 msgid "Prompt Stages" msgstr "" -#: authentik/stages/prompt/stage.py:108 +#: authentik/stages/prompt/stage.py:109 msgid "Passwords don't match." msgstr "" @@ -2677,7 +2685,7 @@ msgstr "" msgid "User Delete Stages" msgstr "" -#: authentik/stages/user_delete/stage.py:18 +#: authentik/stages/user_delete/stage.py:19 msgid "No Pending User." msgstr "" @@ -2708,11 +2716,11 @@ msgstr "" msgid "User Login Stages" msgstr "" -#: authentik/stages/user_login/stage.py:85 +#: authentik/stages/user_login/stage.py:86 msgid "No Pending user to login." msgstr "" -#: authentik/stages/user_login/stage.py:112 +#: authentik/stages/user_login/stage.py:113 msgid "Successfully logged in!" msgstr "" @@ -2740,73 +2748,73 @@ msgstr "" msgid "User Write Stages" msgstr "" -#: authentik/stages/user_write/stage.py:141 +#: authentik/stages/user_write/stage.py:142 msgid "No Pending data." msgstr "" -#: authentik/stages/user_write/stage.py:147 +#: authentik/stages/user_write/stage.py:148 msgid "No user found and can't create new user." msgstr "" -#: authentik/stages/user_write/stage.py:164 -#: authentik/stages/user_write/stage.py:178 +#: authentik/stages/user_write/stage.py:165 +#: authentik/stages/user_write/stage.py:179 msgid "Failed to update user. Please try again later." msgstr "" -#: authentik/tenants/models.py:29 +#: authentik/tenants/models.py:30 msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." msgstr "" -#: authentik/tenants/models.py:49 +#: authentik/tenants/models.py:50 msgid "Configure how authentik should show avatars for users." msgstr "" -#: authentik/tenants/models.py:53 +#: authentik/tenants/models.py:54 msgid "Enable the ability for users to change their name." msgstr "" -#: authentik/tenants/models.py:56 +#: authentik/tenants/models.py:57 msgid "Enable the ability for users to change their email address." msgstr "" -#: authentik/tenants/models.py:59 +#: authentik/tenants/models.py:60 msgid "Enable the ability for users to change their username." msgstr "" -#: authentik/tenants/models.py:65 +#: authentik/tenants/models.py:66 msgid "" "Events will be deleted after this duration.(Format: weeks=3;days=2;hours=3," "seconds=2)." msgstr "" -#: authentik/tenants/models.py:69 +#: authentik/tenants/models.py:70 msgid "The option configures the footer links on the flow executor pages." msgstr "" -#: authentik/tenants/models.py:75 +#: authentik/tenants/models.py:76 msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." msgstr "" -#: authentik/tenants/models.py:81 +#: authentik/tenants/models.py:82 msgid "Globally enable/disable impersonation." msgstr "" -#: authentik/tenants/models.py:104 +#: authentik/tenants/models.py:105 msgid "Tenant" msgstr "" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py:106 msgid "Tenants" msgstr "" -#: authentik/tenants/models.py:125 +#: authentik/tenants/models.py:126 msgid "Domain" msgstr "" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py:127 msgid "Domains" msgstr "" From 0887fa8fde95053dfc10aefbc8b9da05604b63c5 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:53:11 +0100 Subject: [PATCH 025/105] translate: Updates for file web/xliff/en.xlf in zh-Hans (#8419) Translate web/xliff/en.xlf in zh-Hans 100% translated source file: 'web/xliff/en.xlf' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh-Hans.xlf | 2841 +++++++++++++++++++++-------------------- 1 file changed, 1421 insertions(+), 1420 deletions(-) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index d2a9a99bb3..464f3a378c 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,386 +1,386 @@ - + English 英语 - + French 法语 - + Turkish 土耳其语 - + Spanish 西班牙语 - + Polish 波兰语 - + Taiwanese Mandarin 台湾华语 - + Chinese (simplified) 简体中文 - + Chinese (traditional) 繁体中文 - + German 德语 - + Loading... 正在加载…… - + Application 应用程序 - + Logins 登录 - + Show less 显示更少 - + Show more 显示更多 - + UID UID - + Name 名称 - + App 应用 - + Model Name 模型名称 - + Message 消息 - + Subject 主题 - + From 来自 - + To - + Context 上下文 - + User 用户 - + Affected model: 受影响的模型: - + Authorized application: 已授权应用程序: - + Using flow 使用流程 - + Email info: 电子邮件信息: - + Secret: Secret: - + Open issue on GitHub... 在 GitHub 上提出议题... - + Exception 异常 - + Expression 表达式 - + Binding 绑定 - + Request 请求 - + Object 对象 - + Result 结果 - + Passing 通过 - + Messages 消息 - + Using source 使用源 - + Attempted to log in as 已尝试以 身份登录 - + No additional data available. 没有可用的额外数据。 - + Click to change value 点击以更改值 - + Select an object. 选择一个对象。 - + Loading options... 正在加载选项… - + Connection error, reconnecting... 连接错误,正在重新连接…… - + Login 登录 - + Failed login 登录失败 - + Logout 登出 - + User was written to 用户被写入 - + Suspicious request 可疑请求 - + Password set 密码已设置 - + Secret was viewed Secret 已查看 - + Secret was rotated Secret 已轮换 - + Invitation used 已使用邀请 - + Application authorized 应用程序已授权 - + Source linked 源已链接 - + Impersonation started 已开始模拟身份 - + Impersonation ended 已结束模拟身份 - + Flow execution 流程执行 - + Policy execution 策略执行 - + Policy exception 策略异常 - + Property Mapping exception 属性映射异常 - + System task execution 系统任务执行 - + System task exception 系统任务异常 - + General system exception 一般系统异常 - + Configuration error 配置错误 - + Model created 模型已创建 - + Model updated 模型已更新 - + Model deleted 模型已删除 - + Email sent 已发送电子邮件 - + Update available 更新可用 - + Unknown severity 未知严重程度 - + Alert 注意 - + Notice 通知 - + Warning 警告 - + no tabs defined 未定义选项卡 - + - of @@ -388,1207 +388,1207 @@ - / - + Go to previous page 前往上一页 - + Go to next page 前往下一页 - + Search... 搜索... - + Loading 正在加载 - + No objects found. 未找到对象。 - + Failed to fetch objects. 拉取对象失败。 - + Refresh 刷新 - + Select all rows 选择所有行 - + Action 操作 - + Creation Date 创建日期 - + Client IP 客户端 IP - + Recent events 近期事件 - + On behalf of 代表 - + - - - + No Events found. 未找到事件。 - + No matching events could be found. 未找到匹配的事件 - + Embedded outpost is not configured correctly. 嵌入式前哨配置不正确。 - + Check outposts. 检查前哨。 - + HTTPS is not detected correctly 未正确检测到 HTTPS - + Server and client are further than 5 seconds apart. 服务器和客户端的时间相差超过 5 秒。 - + OK 好的 - + Everything is ok. 一切正常。 - + System status 系统状态 - + Based on 基于 - + is available! 可用! - + Up-to-date! 最新! - + Version 版本 - + Workers Worker - + No workers connected. Background tasks will not run. 没有 Workers 连接,后台任务将无法运行。 - + Authorizations 授权 - + Failed Logins 失败登录 - + Successful Logins 成功登录 - + : - + Cancel 取消 - + LDAP Source LDAP 源 - + SCIM Provider SCIM 提供程序 - + Healthy 健康 - + Healthy outposts 健康的前哨 - + Admin 管理员 - + Not found 未找到 - + - The URL "" was not found. - 未找到 URL " - "。 - + The URL "" was not found. + 未找到 URL " + "。 + Return home 返回主页 - + General system status 常规系统状态 - + Welcome, . 欢迎, - + Quick actions 快速操作 - + Create a new application 创建新应用程序 - + Check the logs 检查日志 - + Explore integrations 探索集成 - + Manage users 管理用户 - + Outpost status 前哨状态 - + Sync status 同步状态 - + Logins and authorizations over the last week (per 8 hours) 过去一周的登录与身份验证次数(每 8 小时) - + Apps with most usage 使用率最高的应用 - + days ago 天前 - + Objects created 已创建对象 - + Users created per day in the last month 上个月中每天创建的用户 - + Logins per day in the last month 上个月中每天的登录次数 - + Failed Logins per day in the last month 上个月中每天的失败登录次数 - + Clear search 清除搜索 - + System Tasks 系统任务 - + Long-running operations which authentik executes in the background. authentik 在后台执行的长时间运行的操作。 - + Identifier 标识符 - + Description 描述 - + Last run 上次运行 - + Status 状态 - + Actions 操作 - + Successful 成功 - + Error 错误 - + Unknown 未知 - + Duration 时长 - + seconds - + Authentication 身份验证 - + Authorization 授权 - + Enrollment 注册 - + Invalidation 失效 - + Recovery 恢复 - + Stage Configuration 阶段配置 - + Unenrollment 删除账户 - + Unknown designation 未知用途 - + Stacked 叠放 - + Content left 内容左侧 - + Content right 内容右侧 - + Sidebar left 边栏左侧 - + Sidebar right 边栏右侧 - + Unknown layout 未知布局 - + Successfully updated provider. 已成功更新提供程序。 - + Successfully created provider. 已成功创建提供程序。 - + Bind flow Bind 流程 - + Flow used for users to authenticate. 用于验证用户身份的流程。 - + Search group 搜索组 - + Users in the selected group can do search queries. If no group is selected, no LDAP Searches are allowed. 所选组中的用户可以执行搜索查询。如果未选择任何组,则不允许 LDAP 搜索。 - + Bind mode 绑定模式 - + Cached binding 缓存绑定 - + Flow is executed and session is cached in memory. Flow is executed when session expires 流程与会话会在内存中执行与缓存。会话过期时执行流程 - + Direct binding 直接绑定 - + Always execute the configured bind flow to authenticate the user 总是执行配置的绑定流程,以验证用户的身份。 - + Configure how the outpost authenticates requests. 配置前哨如何验证请求的身份。 - + Search mode 搜索模式 - + Cached querying 缓存查询 - + The outpost holds all users and groups in-memory and will refresh every 5 Minutes 前哨将所有用户和组保存在内存中,并每 5 分钟刷新一次 - + Direct querying 直接查询 - + Always returns the latest data, but slower than cached querying 总是返回最新数据,但比缓存查询慢。 - + Configure how the outpost queries the core authentik server's users. 配置前哨如何查询核心 authentik 服务器的用户。 - + Protocol settings 协议设置 - + Base DN Base DN - + LDAP DN under which bind requests and search requests can be made. 可以发出绑定请求和搜索请求的 LDAP DN。 - + Certificate 证书 - + UID start number UID 起始编号 - + The start for uidNumbers, this number is added to the user.Pk to make sure that the numbers aren't too low for POSIX users. Default is 2000 to ensure that we don't collide with local users uidNumber 起始 uidNumbers,这个数字会被添加到 user.Pk 中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 2000,以确保我们不会与本地用户的 uidNumber 发生冲突 - + GID start number GID 起始编号 - + The start for gidNumbers, this number is added to a number generated from the group.Pk to make sure that the numbers aren't too low for POSIX groups. Default is 4000 to ensure that we don't collide with local groups or users primary groups gidNumber 起始 gidNumbers,这个数字会被添加到从 group.Pk 生成的数字中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 4000,以确保我们不会与本地群组或用户主组的 gidNumber 发生冲突 - + (Format: hours=-1;minutes=-2;seconds=-3). (格式:hours=-1;minutes=-2;seconds=-3)。 - + (Format: hours=1;minutes=2;seconds=3). (格式:hours=1;minutes=2;seconds=3)。 - + The following keywords are supported: 支持以下关键字: - + Authentication flow 身份验证流程 - + Flow used when a user access this provider and is not authenticated. 当用户访问此提供程序并且尚未验证身份时使用的流程。 - + Authorization flow 授权流程 - + Flow used when authorizing this provider. 授权此提供程序时使用的流程。 - + Client type 客户端类型 - + Confidential 机密 - + Confidential clients are capable of maintaining the confidentiality of their credentials such as client secrets 机密客户端有能力维护其凭据例如客户端密钥的机密性。 - + Public 公开 - + Public clients are incapable of maintaining the confidentiality and should use methods like PKCE. 公开客户端没有能力维护其凭据的机密性,应该使用 PKCE 等方法。 - + Client ID 客户端 ID - + Client Secret 客户端 Secret - + Redirect URIs/Origins (RegEx) 重定向 URI/Origin(正则) - + Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows. 授权流程成功后有效的重定向 URL。还可以在此处为隐式流程指定任何来源。 - + If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved. 如果未指定显式重定向 URI,则将保存第一个成功使用的重定向 URI。 - + - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 - + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + Signing Key 签名密钥 - + Key used to sign the tokens. 用于签名令牌的密钥。 - + Advanced protocol settings 高级协议设置 - + Access code validity 访问代码有效性 - + Configure how long access codes are valid for. 配置访问代码的有效期限。 - + Access Token validity 访问令牌有效性 - + Configure how long access tokens are valid for. 配置访问令牌的有效期限。 - + Refresh Token validity 刷新令牌有效性 - + Configure how long refresh tokens are valid for. 配置刷新令牌的有效期限。 - + Scopes 作用域 - + Select which scopes can be used by the client. The client still has to specify the scope to access the data. 选择客户端可以使用哪些作用域。客户端仍然需要指定访问数据的范围。 - + Hold control/command to select multiple items. 按住 ctrl/command 键可选择多个项目。 - + Subject mode Subject 模式 - + Based on the User's hashed ID 基于哈希过的用户 ID - + Based on the User's ID 基于用户 ID - + Based on the User's UUID 基于用户 UUID - + Based on the User's username 基于用户名 - + Based on the User's Email 基于用户电子邮箱 - + This is recommended over the UPN mode. 相比于 UPN,更推荐此模式。 - + Based on the User's UPN 基于用户 UPN - + Requires the user to have a 'upn' attribute set, and falls back to hashed user ID. Use this mode only if you have different UPN and Mail domains. 需要用户设置过“upn”属性,否则回退到哈希过的用户 ID。仅应在您拥有不同 UPN 和邮件域时使用此模式。 - + Configure what data should be used as unique User Identifier. For most cases, the default should be fine. 配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。 - + Include claims in id_token 在 id_token 中包含声明 - + Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint. 对于不访问 userinfo 端点的应用程序,将来自作用域的用户声明包含在 id_token 中。 - + Issuer mode Issuer 模式 - + Each provider has a different issuer, based on the application slug 根据应用程序 Slug,每个提供程序都有不同的颁发者 - + Same identifier is used for all providers 所有提供程序都使用相同的标识符 - + Configure how the issuer field of the ID Token should be filled. 配置如何填写 ID 令牌的颁发者字段。 - + Machine-to-Machine authentication settings M2M(机器到机器)身份验证设置 - + Trusted OIDC Sources 信任的 OIDC 来源 - + JWTs signed by certificates configured in the selected sources can be used to authenticate to this provider. 在选定源中配置的证书签名的 JWT 可以用于此提供程序的身份验证。 - + HTTP-Basic Username Key HTTP-Basic 用户名键 - + User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used. 用于 HTTP-Basic 标头用户名部分的用户/组属性。如果未设置,则使用用户的电子邮件地址。 - + HTTP-Basic Password Key HTTP-Basic 密码键 - + User/Group Attribute used for the password part of the HTTP-Basic Header. 用于 HTTP-Basic 标头的密码部分的用户/组属性。 - + Proxy 代理 - + Forward auth (single application) Forward Auth(单应用) - + Forward auth (domain level) Forward Auth(域名级) - + This provider will behave like a transparent reverse-proxy, except requests must be authenticated. If your upstream application uses HTTPS, make sure to connect to the outpost using HTTPS as well. 除了请求必须经过身份验证外,此提供程序的行为类似于透明反向代理。如果您的上游应用程序使用 HTTPS,请确保连接到前哨时也使用 HTTPS。 - + External host 外部主机 - + The external URL you'll access the application at. Include any non-standard port. 您将通过此外部 URL 访问应用程序。请包括任何非标准端口。 - + Internal host 内部主机 - + Upstream host that the requests are forwarded to. 请求被转发到的上游主机。 - + Internal host SSL Validation 内部主机 SSL 验证 - + Validate SSL Certificates of upstream servers. 验证上游服务器的 SSL 证书。 - + Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application. 与 nginx 的 auth_request 或 traefik 的 ForwardAuth 一起使用此提供程序。每个根域名只需要一个提供程序。您无法管理每个应用程序的授权,但不必为每个应用程序分别创建提供程序。 - + An example setup can look like this: 设置示例如下所示: - + authentik running on auth.example.com auth.example.com 上运行的 authentik - + app1 running on app1.example.com app1.example.com 上运行的 app1 - + In this case, you'd set the Authentication URL to auth.example.com and Cookie domain to example.com. 在这种情况下,您需要将身份验证 URL 设置为 auth.example.com,并将 Cookie 域名设置为 example.com。 - + Authentication URL 身份验证 URL - + The external URL you'll authenticate at. The authentik core server should be reachable under this URL. 您将在此外部 URL 进行身份验证。通过此 URL 应该可以访问到 authentik 核心服务器。 - + Cookie domain Cookie 域名 - + Set this to the domain you wish the authentication to be valid for. Must be a parent domain of the URL above. If you're running applications as app1.domain.tld, app2.domain.tld, set this to 'domain.tld'. 将此设置为您希望身份验证有效的域名。必须是上述 URL 的父域名。如果您的应用部署在 app1.domain.tld、app2.domain.tld,请将其设置为 'domain.tld'。 - + Unknown proxy mode 未知代理模式 - + Token validity 令牌有效性 - + Configure how long tokens are valid for. 配置令牌的有效期限。 - + Additional scopes 额外的作用域 - + Additional scope mappings, which are passed to the proxy. 传递给代理的额外作用域映射。 - + Unauthenticated URLs 不验证身份的 URL - + Unauthenticated Paths 不验证身份的路径 - + Regular expressions for which authentication is not required. Each new line is interpreted as a new expression. 用于描述何处不需要身份验证的正则表达式。每个新行都被解释为一个新的表达式。 - + When using proxy or forward auth (single application) mode, the requested URL Path is checked against the regular expressions. When using forward auth (domain mode), the full requested URL including scheme and host is matched against the regular expressions. 使用代理或 Forward Auth(单应用)模式时,将根据正则表达式检查请求的 URL 路径。使用 Forward Auth(域名模式)时,将根据正则表达式检查请求的完整 URL(包括协议和主机名)。 - + Authentication settings 身份验证设置 - + Intercept header authentication 拦截身份验证标头 - + When enabled, authentik will intercept the Authorization header to authenticate the request. 启用时,authentik 将会拦截 Authorization 标头以认证请求。 - + Send HTTP-Basic Authentication 发送 HTTP-Basic 身份验证 - + Send a custom HTTP-Basic Authentication header based on values from authentik. 根据来自 authentik 的值发送自定义 HTTP-Basic 身份验证标头。 - + ACS URL ACS URL - + Issuer 颁发者 - + Also known as EntityID. 也称为 EntityID。 - + Service Provider Binding 服务提供程序绑定 - + Redirect 重定向 - + Post Post - + Determines how authentik sends the response back to the Service Provider. 确定 authentik 如何将响应发送回服务提供程序。 - + Audience Audience - + Signing Certificate 签名证书 - + Certificate used to sign outgoing Responses going to the Service Provider. 证书,用于签署发送给服务提供程序的传出响应。 - + Verification Certificate 验证证书 - + When selected, incoming assertion's Signatures will be validated against this certificate. To allow unsigned Requests, leave on default. 选中后,传入断言的签名将根据此证书进行验证。要允许未签名的请求,请保留默认值。 - + Property mappings 属性映射 - + NameID Property Mapping NameID 属性映射 - + Configure how the NameID value will be created. When left empty, the NameIDPolicy of the incoming request will be respected. 配置如何创建 NameID 值。如果留空,将遵守传入请求的 NameIDPolicy。 - + Assertion valid not before 不在此刻之前,断言有效 - + Configure the maximum allowed time drift for an assertion. 为断言配置允许的最大时间漂移。 - + Assertion valid not on or after 不在此刻或之后,断言有效 - + Assertion not valid on or after current time + this value. 从当前时间经过多久时或之后,断言无效。 - + Session valid not on or after 不在此刻或之后,会话有效 - + Session not valid on or after current time + this value. 从当前时间经过多久时或之后,会话无效。 - + Digest algorithm 摘要算法 - + Signature algorithm 签名算法 - + Successfully imported provider. 已成功导入提供程序。 - + Metadata 元数据 - + Apply changes 应用更改 - + Close 关闭 - + Finish 完成 - + Back 返回 - + No form found 未找到表单 - + Form didn't return a promise for submitting 表单提交未返回 Promise - + Select type 选择类型 - + Try the new application wizard 尝试新应用程序向导 - + The new application wizard greatly simplifies the steps required to create applications and providers. 新应用程序向导大幅度简化了创建应用程序和提供程序所需的操作步骤。 - + Try it now 现在尝试 - + Create 创建 - + New provider 新建提供程序 - + Create a new provider. 创建一个新提供程序。 - + Create 创建 - + Shared secret 共享密钥 - + Client Networks 客户端网络 - + List of CIDRs (comma-seperated) that clients can connect from. A more specific @@ -1600,104 +1600,104 @@ URL URL - + SCIM base url, usually ends in /v2. SCIM 基础 URL,通常以 /v2 结尾。 - + Token 令牌 - + Token to authenticate with. Currently only bearer authentication is supported. 用于验证身份的令牌。当前仅支持 Bearer 身份验证。 - + User filtering 用户过滤 - + Exclude service accounts 排除服务账户 - + Group - + Only sync users within the selected group. 只同步选定组中的用户。 - + Attribute mapping 属性映射 - + User Property Mappings 用户属性映射 - + Property mappings used to user mapping. 用于用户映射的属性映射。 - + Group Property Mappings 组属性映射 - + Property mappings used to group creation. 用于创建组的属性映射。 - + Not used by any other object. 不被任何其他对象使用。 - + object will be DELETED 对象将被删除 - + connection will be deleted 连接将被删除 - + reference will be reset to default value 引用将被重置为默认值 - + reference will be set to an empty value 引用将被设置为空值 - + () - ( + - + ID ID - + Successfully deleted @@ -1708,13 +1708,13 @@ 删除 失败: - + Delete 删除 - + Are you sure you want to delete ? @@ -1723,863 +1723,863 @@ Delete 删除 - + Providers 提供程序 - + Provide support for protocols like SAML and OAuth to assigned applications. 为分配的应用程序提供对 SAML 和 OAuth 等协议的支持。 - + Type 类型 - + Provider(s) 提供程序 - + Assigned to application 分配给应用程序 - + Assigned to application (backchannel) 绑定到应用(反向通道) - + Warning: Provider not assigned to any application. 警告:提供程序未分配给任何应用程序。 - + Update 更新 - + Update 更新 - + Select providers to add to application 选择要添加到应用的提供程序 - + Add 添加 - + - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 - + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Path template for users created. Use placeholders like `%(slug)s` to insert the source slug. 创建用户的路径模板。使用占位符如 `%(slug)s` 插入源 Slug。 - + Successfully updated application. 已成功更新应用程序。 - + Successfully created application. 已成功创建应用程序。 - + Application's display Name. 应用的显示名称。 - + Slug Slug - + Optionally enter a group name. Applications with identical groups are shown grouped together. 输入可选的分组名称。分组相同的应用程序会显示在一起。 - + Provider 提供程序 - + Select a provider that this application should use. 选择此应用应该使用的提供程序。 - + Select backchannel providers which augment the functionality of the main provider. 选择可为主要提供程序增强功能的反向通道提供程序。 - + Policy engine mode 策略引擎模式 - + Any policy must match to grant access 必须匹配任意策略才能授予访问权限。 - + All policies must match to grant access 必须匹配所有策略才能授予访问权限 - + UI settings 用户界面设置 - + Launch URL 启动 URL - + If left empty, authentik will try to extract the launch URL based on the selected provider. 如果留空,authentik 将尝试根据选定的提供程序提取启动 URL。 - + Open in new tab 在新标签页中打开 - + If checked, the launch URL will open in a new browser tab or window from the user's application library. 如果勾选,在用户的应用程序库中时,启动 URL 将会在新浏览器标签页或窗口中打开。 - + Icon 图标 - + Currently set to: 当前设置为: - + Clear icon 清除图标 - + Publisher 发布者 - + Create Application 创建应用程序 - + Overview 总览 - + Changelog 更新日志 - + Warning: Provider is not used by any Outpost. 警告:提供程序未被任何前哨使用。 - + Assigned to application 分配给应用程序 - + Update LDAP Provider 更新 LDAP 提供程序 - + Edit 编辑 - + How to connect 如何连接 - + Connect to the LDAP Server on port 389: 通过端口 389 连接到 LDAP 服务器: - + Check the IP of the Kubernetes service, or 检查 Kubernetes 服务的 IP,或者 - + The Host IP of the docker host Docker 宿主机的主机 IP - + Bind DN Bind DN - + Bind Password Bind 密码 - + Search base 搜索 Base - + Preview 预览 - + Warning: Provider is not used by an Application. 警告:提供程序未被任何应用程序使用。 - + Redirect URIs 重定向 URI - + Update OAuth2 Provider 更新 OAuth2 提供程序 - + OpenID Configuration URL OpenID 配置 URL - + OpenID Configuration Issuer OpenID 配置颁发者 - + Authorize URL 授权 URL - + Token URL 令牌 URL - + Userinfo URL 用户信息 URL - + Logout URL 登出 URL - + JWKS URL JWKS URL - + Forward auth (domain-level) Forward Auth(域名级) - + Nginx (Ingress) Nginx(Ingress) - + Nginx (Proxy Manager) Nginx(Proxy Manager) - + Nginx (standalone) Nginx(独立) - + Traefik (Ingress) Traefik(Ingress) - + Traefik (Compose) Traefik(Compose) - + Traefik (Standalone) Traefik(独立) - + Caddy (Standalone) Caddy(独立) - + Internal Host 内部主机 - + External Host 外部主机 - + Basic-Auth 基本身份验证 - + Yes - + Mode 模式 - + Update Proxy Provider 更新代理提供程序 - + Protocol Settings 协议设置 - + Allowed Redirect URIs 允许的重定向 URI - + Setup 设置 - + No additional setup is required. 无需进行额外设置。 - + Update Radius Provider 更新 Radius 提供程序 - + Download 下载 - + Copy download URL 复制下载 URL - + Download signing certificate 下载签名证书 - + Related objects 相关对象 - + Update SAML Provider 更新 SAML 提供程序 - + SAML Configuration SAML 配置 - + EntityID/Issuer EntityID/签发者 - + SSO URL (Post) SSO URL(Post) - + SSO URL (Redirect) SSO URL(重定向) - + SSO URL (IdP-initiated Login) SSO URL(IDP 发起的登录) - + SLO URL (Post) SLO URL(Post) - + SLO URL (Redirect) SLO URL(重定向) - + SAML Metadata SAML 元数据 - + Example SAML attributes 示例 SAML 属性 - + NameID attribute NameID 属性 - + Warning: Provider is not assigned to an application as backchannel provider. 警告:提供程序未作为反向通道分配给应用程序。 - + Update SCIM Provider 更新 SCIM 提供程序 - + Run sync again 再次运行同步 - + Modern applications, APIs and Single-page applications. 现代应用程序、API 与单页应用程序。 - + LDAP LDAP - + Provide an LDAP interface for applications and users to authenticate against. 为应用程序和用户提供 LDAP 接口以进行身份​​验证。 - + New application 新应用程序 - + Applications 应用程序 - + Provider Type 提供程序类型 - + Application(s) 应用程序 - + Application Icon 应用程序图标 - + Update Application 更新应用程序 - + Successfully sent test-request. 已成功发送测试请求。 - + Log messages 日志消息 - + No log messages. 没有日志消息。 - + Active 激活 - + Last login 上次登录 - + Select users to add 选择要添加的用户 - + Successfully updated group. 已成功更新组。 - + Successfully created group. 已成功创建组。 - + Is superuser 是超级用户 - + Users added to this group will be superusers. 添加到该组的用户均为超级用户。 - + Parent 父级 - + Attributes 属性 - + Set custom attributes using YAML or JSON. 使用 YAML 或 JSON 设置自定义属性。 - + Successfully updated binding. 已成功更新绑定。 - + Successfully created binding. 已成功创建绑定。 - + Policy 策略 - + Group mappings can only be checked if a user is already logged in when trying to access this source. 组绑定仅会在已登录用户访问此源时检查。 - + User mappings can only be checked if a user is already logged in when trying to access this source. 用户绑定仅会在已登录用户访问此源时检查。 - + Enabled 已启用 - + Negate result 反转结果 - + Negates the outcome of the binding. Messages are unaffected. 反转绑定的结果。消息不受影响。 - + Order 顺序 - + Timeout 超时 - + Successfully updated policy. 已成功更新策略。 - + Successfully created policy. 已成功创建策略。 - + A policy used for testing. Always returns the same result as specified below after waiting a random duration. 用于测试的策略。等待随机时长后,始终返回下面指定的结果。 - + Execution logging 记录执行日志 - + When this option is enabled, all executions of this policy will be logged. By default, only execution errors are logged. 启用此选项后,将记录此策略的所有执行日志。默认情况下,只记录执行错误。 - + Policy-specific settings 特定策略设置 - + Pass policy? 通过策略? - + Wait (min) 等待(最短) - + The policy takes a random time to execute. This controls the minimum time it will take. 策略需要一段随机时间来执行。这将控制所需的最短时间。 - + Wait (max) 等待(最长) - + Matches an event against a set of criteria. If any of the configured values match, the policy passes. 根据一组条件匹配事件。如果任何配置的值匹配,则策略将通过。 - + Match created events with this action type. When left empty, all action types will be matched. 将创建的事件与此操作类型匹配。留空时,所有操作类型都将匹配。 - + Matches Event's Client IP (strict matching, for network matching use an Expression Policy. 匹配事件的客户端 IP(严格匹配,要网络匹配请使用表达式策略)。 - + Match events created by selected application. When left empty, all applications are matched. 匹配选定应用程序创建的事件。如果留空,则匹配所有应用程序。 - + Checks if the request's user's password has been changed in the last x days, and denys based on settings. 检查过去 x 天内请求的用户密码是否已更改,并根据设置拒绝。 - + Maximum age (in days) 最长使用期限(单位为天) - + Only fail the policy, don't invalidate user's password 仅使策略失败,不使用户的密码失效 - + Executes the python snippet to determine whether to allow or deny a request. 执行 Python 代码段以确定是允许还是拒绝请求。 - + Expression using Python. 使用 Python 的表达式。 - + See documentation for a list of all variables. 请阅读文档了解完整变量列表。 - + Static rules 静态规则 - + Minimum length 最小长度 - + Minimum amount of Uppercase Characters 最低大写字符数 - + Minimum amount of Lowercase Characters 最低小写字符数 - + Minimum amount of Digits 最低数字字符数 - + Minimum amount of Symbols Characters 最低符号字符数 - + Error message 错误消息 - + Symbol charset 符号字符集 - + Characters which are considered as symbols. 被视为符号的字符。 - + HaveIBeenPwned settings HaveIBeenPwned 设置 - + Allowed count 允许的计数 - + Allow up to N occurrences in the HIBP database. HIBP 数据库中最多允许 N 次出现。 - + zxcvbn settings zxcvbn 设置 - + Score threshold 分数阈值 - + If the password's score is less than or equal this value, the policy will fail. 如果密码分数小于等于此值,则策略失败。 - + Checks the value from the policy request against several rules, mostly used to ensure password strength. 根据多条规则检查策略请求中的值,这些规则主要用于确保密码强度。 - + Password field 密码字段 - + Field key to check, field keys defined in Prompt stages are available. 要检查的字段键,可以使用输入阶段中定义的字段键。 - + Check static rules 检查静态规则 - + Check haveibeenpwned.com 检查 haveibeenpwned.com - + For more info see: 更多信息请看: - + Check zxcvbn 检查 zxcvbn - + Password strength estimator created by Dropbox, see: Dropbox 制作的密码强度估算器,详见: - + Allows/denys requests based on the users and/or the IPs reputation. 根据用户和/或 IP 信誉允许/拒绝请求。 - + Invalid login attempts will decrease the score for the client's IP, and the @@ -2595,782 +2595,782 @@ doesn't pass when either or both of the selected options are equal or above the Check IP 检查 IP - + Check Username 检查用户名 - + Threshold 阈值 - + New policy 新建策略 - + Create a new policy. 创建一个新策略。 - + Create Binding 创建绑定 - + Superuser 超级用户 - + Members 成员 - + Select groups to add user to 选择要添加用户的组 - + Warning: Adding the user to the selected group(s) will give them superuser permissions. 警告:将用户添加到所选的组会使其获得超级用户权限。 - + Successfully updated user. 已成功更新用户。 - + Successfully created user. 已成功创建用户。 - + Username 用户名 - + User's primary identifier. 150 characters or fewer. 用户主标识符。不超过 150 个字符。 - + User's display name. 用户的显示名称 - + Email 电子邮箱 - + Is active 已激活 - + Designates whether this user should be treated as active. Unselect this instead of deleting accounts. 指定是否应将此用户视为活动用户。取消选择此选项,而不是删除帐户。 - + Path 路径 - + Policy / User / Group 策略 / 用户 / 组 - + Policy 策略 - + Group - + User 用户 - + Edit Policy 编辑策略 - + Update Group 更新组 - + Edit Group 编辑组 - + Update User 更新用户 - + Edit User 编辑用户 - + Policy binding(s) 策略绑定 - + Update Binding 更新绑定 - + Edit Binding 编辑绑定 - + No Policies bound. 未绑定策略。 - + No policies are currently bound to this object. 当前没有策略绑定到此对象。 - + Bind existing policy 绑定已有策略 - + Warning: Application is not used by any Outpost. 警告:应用程序未被任何前哨使用。 - + Related 相关 - + Backchannel Providers 反向通道提供程序 - + Check access 检查访问权限 - + Check 检查 - + Check Application access 检查应用程序访问权限 - + Test 测试 - + Launch 启动 - + Logins over the last week (per 8 hours) 过去一周的登录次数(每 8 小时) - + Policy / Group / User Bindings 策略 / 组 / 用户绑定 - + These policies control which users can access this application. 这些策略控制哪些用户可以访问此应用程序。 - + Successfully updated source. 已成功更新源。 - + Successfully created source. 已成功创建源。 - + Sync users 同步用户 - + User password writeback 用户密码写回 - + Login password is synced from LDAP into authentik automatically. Enable this option only to write password changes in authentik back to LDAP. 登录密码会自动从 LDAP 同步到 authentik。启用此选项可将 authentik 中的密码更改写回至 LDAP。 - + Sync groups 同步组 - + Connection settings 连接设置 - + Server URI 服务器 URI - + Specify multiple server URIs by separating them with a comma. 通过用逗号分隔多个服务器 URI 来指定它们。 - + Enable StartTLS 启用 StartTLS - + To use SSL instead, use 'ldaps://' and disable this option. 要改用 SSL,请使用 'ldaps: //' 并禁用此选项。 - + TLS Verification Certificate TLS 验证证书 - + When connecting to an LDAP Server with TLS, certificates are not checked by default. Specify a keypair to validate the remote certificate. 使用 TLS 连接到 LDAP 服务器时,默认情况下不检查证书。指定密钥对以验证远程证书。 - + Bind CN Bind CN - + LDAP Attribute mapping LDAP 属性映射 - + Property mappings used to user creation. 用于创建用户的属性映射。 - + Additional settings 其他设置 - + Parent group for all the groups imported from LDAP. 从 LDAP 导入的所有组的父组。 - + User path 用户路径 - + Addition User DN 额外的用户 DN - + Additional user DN, prepended to the Base DN. 额外的用户 DN,添加到 Base DN 起始处。 - + Addition Group DN 额外的组 DN - + Additional group DN, prepended to the Base DN. 额外的组 DN,添加到 Base DN 起始处。 - + User object filter 用户对象筛选器 - + Consider Objects matching this filter to be Users. 将与此筛选器匹配的对象视为用户。 - + Group object filter 组对象过滤器 - + Consider Objects matching this filter to be Groups. 将与此过滤器匹配的对象视为组。 - + Group membership field 组成员资格字段 - + - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' - + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Object uniqueness field 对象唯一性字段 - + Field which contains a unique Identifier. 包含唯一标识符的字段。 - + Link users on unique identifier 使用唯一标识符链接用户 - + Link to a user with identical email address. Can have security implications when a source doesn't validate email addresses 链接到电子邮件地址相同的用户。当源不验证电子邮件地址时,可能会有安全隐患 - + Use the user's email address, but deny enrollment when the email address already exists 使用用户的电子邮件地址,但在电子邮件地址已存在时拒绝注册 - + Link to a user with identical username. Can have security implications when a username is used with another source 链接到用户名相同的用户。当其他源使用相同用户名时,可能会有安全隐患 - + Use the user's username, but deny enrollment when the username already exists 使用用户的用户名,但在用户名已存在时拒绝注册 - + Unknown user matching mode 未知用户匹配模式 - + URL settings URL 设置 - + Authorization URL 授权 URL - + URL the user is redirect to to consent the authorization. 用户被重定向到以同意授权的 URL。 - + Access token URL 访问令牌 URL - + URL used by authentik to retrieve tokens. authentik 用来获取令牌的 URL。 - + Profile URL 个人资料 URL - + URL used by authentik to get user information. authentik 用来获取用户信息的 URL。 - + Request token URL 请求令牌 URL - + URL used to request the initial token. This URL is only required for OAuth 1. 用于请求初始令牌的 URL。只有 OAuth 1 才需要此网址。 - + OIDC Well-known URL OIDC Well-known URL - + OIDC well-known configuration URL. Can be used to automatically configure the URLs above. OIDC Well-known 配置 URL。可用于自动配置上述 URL。 - + OIDC JWKS URL OIDC JWKS URL - + JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source. JSON Web Key URL。来自此 URL 的 Key 将被用于验证此身份来源的 JWT。 - + OIDC JWKS OIDC JWKS - + Raw JWKS data. 原始 JWKS 数据。 - + User matching mode 用户匹配模式 - + Delete currently set icon. 删除当前设置的图标。 - + Consumer key 消费者 Key - + Consumer secret 消费者 Secret - + Additional scopes to be passed to the OAuth Provider, separated by space. To replace existing scopes, prefix with *. 要传递给 OAuth 提供程序的其他作用域,用空格分隔。要替换已存在的作用域,请添加前缀 *。 - + Flow settings 流程设置 - + Flow to use when authenticating existing users. 认证已存在用户时所使用的流程。 - + Enrollment flow 注册流程 - + Flow to use when enrolling new users. 新用户注册的流程。 - + Load servers 加载服务器 - + Re-authenticate with plex 使用 Plex 重新验证身份 - + Allow friends to authenticate via Plex, even if you don't share any servers 允许好友通过 Plex 进行身份验证,即使您不共享任何服务器。 - + Allowed servers 允许的服务器 - + Select which server a user has to be a member of to be allowed to authenticate. 选择用户必须是哪个服务器的成员才能进行身份验证。 - + SSO URL SSO URL - + URL that the initial Login request is sent to. 初始登录请求发送到的 URL。 - + SLO URL SLO URL - + Optional URL if the IDP supports Single-Logout. 如果 IDP 支持单点登出,则为可选 URL。 - + Also known as Entity ID. Defaults the Metadata URL. 也称为 Entity ID。 默认为元数据 URL。 - + Binding Type 绑定类型 - + Redirect binding 重定向绑定 - + Post-auto binding 自动 Post 绑定 - + Post binding but the request is automatically sent and the user doesn't have to confirm. Post 绑定,但请求会被自动发送,不需要用户确认。 - + Post binding Post 绑定 - + Signing keypair 签名密钥对 - + Keypair which is used to sign outgoing requests. Leave empty to disable signing. 用于签名传出请求的密钥对。留空则禁用签名。 - + Allow IDP-initiated logins 允许 IDP 发起的登录 - + Allows authentication flows initiated by the IdP. This can be a security risk, as no validation of the request ID is done. 允许由 IdP 启动的身份验证流程。这可能存在安全风险,因为未对请求 ID 进行验证。 - + NameID Policy NameID 策略 - + Persistent 持久的 - + Email address 电子邮箱地址 - + Windows Windows - + X509 Subject X509 主题 - + Transient 暂时的 - + Delete temporary users after 多久后删除临时用户 - + Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. 删除临时用户的时间偏移。这仅适用于您的 IDP 使用 NameID 格式 'transient' 且用户未手动登出的情况。 - + Pre-authentication flow 身份验证前流程 - + Flow used before authentication. 身份验证之前使用的流程。 - + New source 新建身份来源 - + Create a new source. 创建一个新身份来源。 - + Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. 身份来源,既可以同步到 authentik 的数据库中,也可以被用户用来进行身份验证和注册。 - + Source(s) - + Disabled 已禁用 - + Built-in 内置 - + Update LDAP Source 更新 LDAP 源 - + Not synced yet. 尚未同步。 - + Task finished with warnings 任务已完成但有警告 - + Task finished with errors 任务已完成但有错误 - + Last sync: 上次同步: - + OAuth Source OAuth 源 - + Generic OpenID Connect 通用 OpenID 连接 - + Unknown provider type 未知提供程序类型 - + Details 详情 - + Callback URL 回调 URL - + Access Key 访问密钥 - + Update OAuth Source 更新 OAuth 源 - + Diagram 流程图 - + Policy Bindings 策略绑定 - + These bindings control which users can access this source. @@ -3381,433 +3381,433 @@ doesn't pass when either or both of the selected options are equal or above the Update Plex Source 更新 Plex 源 - + Update SAML Source 更新 SAML 源 - + Successfully updated mapping. 已成功更新映射。 - + Successfully created mapping. 已成功创建映射。 - + Object field 对象字段 - + Field of the user object this value is written to. 写入此值的用户对象的字段。 - + SAML Attribute Name SAML 属性名称 - + Attribute name used for SAML Assertions. Can be a URN OID, a schema reference, or a any other string. If this property mapping is used for NameID Property, this field is discarded. 用于 SAML 断言的属性名称。可以是 URN OID、Schema Reference 或任何其他字符串。如果此属性映射用于 NameID 属性,则会丢弃此字段。 - + Friendly Name 显示名称 - + Optionally set the 'FriendlyName' value of the Assertion attribute. 可选,设置断言属性的 'FriendlyName' 值。 - + Scope name 作用域名称 - + Scope which the client can specify to access these properties. 客户端可以指定的访问这些属性的范围。 - + Description shown to the user when consenting. If left empty, the user won't be informed. 同意授权时向用户显示的描述。如果留空,则不会告知用户。 - + Example context data 示例上下文数据 - + Active Directory User Active Directory 用户 - + Active Directory Group Active Directory 组 - + New property mapping 新建属性映射 - + Create a new property mapping. 创建一个新属性映射。 - + Property Mappings 属性映射 - + Control how authentik exposes and interprets information. 控制 authentik 如何公开和处理信息。 - + Property Mapping(s) 属性映射 - + Test Property Mapping 测试属性映射 - + Hide managed mappings 隐藏管理映射 - + Successfully updated token. 已成功更新令牌。 - + Successfully created token. 已成功创建令牌。 - + Unique identifier the token is referenced by. 引用令牌的唯一标识符。 - + Intent 意图 - + API Token API Token - + Used to access the API programmatically 用于编程方式访问 API - + App password. 应用密码。 - + Used to login using a flow executor 使用流程执行器登录 - + Expiring 即将过期 - + If this is selected, the token will expire. Upon expiration, the token will be rotated. 如果选择此选项,令牌将能够过期。过期时,令牌将被轮换。 - + Expires on 过期时间 - + API Access API 访问权限 - + App password 应用密码 - + Verification 验证 - + Unknown intent 未知意图 - + Tokens 令牌 - + Tokens are used throughout authentik for Email validation stages, Recovery keys and API access. 令牌在整个 authentik 中用于电子邮件验证阶段、恢复密钥和 API 访问。 - + Expires? 过期? - + Expiry date 过期日期 - + Token(s) 令牌 - + Create Token 创建令牌 - + Token is managed by authentik. 令牌由 authentik 管理。 - + Update Token 更新令牌 - + Domain 域名 - + Matching is done based on domain suffix, so if you enter domain.tld, foo.domain.tld will still match. 根据域名后缀完成匹配,因此,如果您输入 domain.tld,foo.domain.tld 仍将匹配。 - + Default 默认 - + Branding settings 品牌设置 - + Title 标题 - + Branding shown in page title and several other places. 品牌信息显示在页面标题和其他几个地方。 - + Logo Logo - + Icon shown in sidebar/header and flow executor. 在侧边栏/标题和流程执行器中显示的图标。 - + Favicon 网站图标 - + Icon shown in the browser tab. 浏览器选项卡中显示的图标。 - + Default flows 默认流程 - + Flow used to authenticate users. If left empty, the first applicable flow sorted by the slug is used. 用于对用户进行身份验证的流程。如果留空,则使用按 Slug 排序的第一个适用流程。 - + Invalidation flow 失效流程 - + Flow used to logout. If left empty, the first applicable flow sorted by the slug is used. 用于登出的流程。如果留空,则使用按 Slug 排序的第一个适用流程。 - + Recovery flow 恢复流程 - + Recovery flow. If left empty, the first applicable flow sorted by the slug is used. 恢复流程。如果留空,则使用按 Slug 排序的第一个适用流程。 - + Unenrollment flow 删除账户流程 - + If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown. 如果已设置,则用户可以使用此流程自行删除账户。如果未设置流程,则不显示选项。 - + User settings flow 用户设置流程 - + If set, users are able to configure details of their profile. 设置后,用户可以配置他们个人资料的详细信息。 - + Device code flow 设备代码流程 - + If set, the OAuth Device Code profile can be used, and the selected flow will be used to enter the code. 如果设置,则 OAuth 设备代码用户资料可用,并且选定的流程将会用于输入代码。 - + Other global settings 其他全局设置 - + Web Certificate Web 证书 - + Event retention 事件保留 - + Duration after which events will be deleted from the database. 事件从数据库中删除的时间,超过这个时间就会被删除。 - + - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 - + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + This setting only affects new Events, as the expiration is saved per-event. 此设置仅影响新事件,因为过期时间是分事件保存的。 - + Configure visual settings and defaults for different domains. 配置不同域名的可视化设置和默认值。 - + Default? 默认? - + Policies 策略 - + Allow users to use Applications based on properties, enforce Password Criteria and selectively apply Stages. 允许用户根据属性使用应用程序、强制使用密码标准以及选择性地应用阶段。 - + Assigned to object(s). 已分配给 个对象。 - + Warning: Policy is not assigned. 警告:策略未分配。 - + Test Policy 测试策略 - + Policy / Policies 策略 - + Successfully cleared policy cache 已成功清除策略缓存 - + Failed to delete policy cache 删除策略缓存失败 - + Clear cache 清除缓存 - + Clear Policy cache 清除策略缓存 - + Are you sure you want to clear the policy cache? This will cause all policies to be re-evaluated on their next usage. @@ -3816,93 +3816,93 @@ doesn't pass when either or both of the selected options are equal or above the Reputation scores 信誉分数 - + Reputation for IP and user identifiers. Scores are decreased for each failed login and increased for each successful login. IP 和用户标识符的信誉。每次登录失败分数都会降低,每次登录成功分数都会增加。 - + IP IP - + Score 分数 - + Updated 已更新 - + Reputation 信誉 - + Groups - + Group users together and give them permissions based on the membership. 将用户分组在一起,并根据成员资格为他们授予权限。 - + Superuser privileges? 超级用户权限? - + Group(s) - + Create Group 创建组 - + Create group 创建组 - + Enabling this toggle will create a group named after the user, with the user as member. 启用此开关将创建一个以用户命名的组,用户为成员。 - + Use the username and password below to authenticate. The password can be retrieved later on the Tokens page. 使用下面的用户名和密码进行身份验证。密码可以稍后在令牌页面上获取。 - + Password 密码 - + Valid for 360 days, after which the password will automatically rotate. You can copy the password from the Token List. 有效期为 360 天,之后密码将自动轮换。您可以从令牌列表中复制密码。 - + The following objects use 以下对象使用 - + connecting object will be deleted 连接对象将被删除 - + Successfully updated @@ -3913,617 +3913,617 @@ doesn't pass when either or both of the selected options are equal or above the 更新 失败: - + - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? - + " + " 吗? + Successfully updated password. 已成功更新密码。 - + Successfully sent email. 已成功发送电子邮件。 - + Email stage 电子邮件阶段 - + Successfully added user(s). 成功添加用户。 - + Users to add 要添加的用户 - + User(s) 用户 - + Remove Users(s) 删除用户 - + Are you sure you want to remove the selected users from the group ? 您确定要从组 中删除选定的用户吗? - + Remove 删除 - + Impersonate 模拟身份 - + User status 用户状态 - + Change status 更改状态 - + Deactivate 停用 - + Update password 更新密码 - + Set password 设置密码 - + Successfully generated recovery link 已成功生成恢复链接 - + No recovery flow is configured. 未配置恢复流程。 - + Copy recovery link 复制恢复链接 - + Send link 发送链接 - + Send recovery link to user 向用户发送恢复链接 - + Email recovery link 电子邮件恢复链接 - + Recovery link cannot be emailed, user has no email address saved. 无法通过电子邮件发送恢复链接,用户没有保存电子邮件地址。 - + Add User 添加用户 - + Warning: This group is configured with superuser access. Added users will have superuser access. 警告:此组已配置为超级用户权限。加入的用户将会拥有超级用户权限。 - + Add existing user 添加已有用户 - + Create user 创建用户 - + Create User 创建用户 - + Create Service account 创建服务账户 - + Hide service-accounts 隐藏服务账户 - + Group Info 组信息 - + Notes 备注 - + Edit the notes attribute of this group to add notes here. 编辑该组的备注属性以在此处添加备注。 - + Users 用户 - + Root - + Warning: You're about to delete the user you're logged in as (). Proceed at your own risk. 警告:您即将删除当前登录的用户( )。如果继续,请自担风险。 - + Hide deactivated user 隐藏未激活的用户 - + User folders 用户目录 - + Successfully added user to group(s). 成功添加用户到组。 - + Groups to add 要添加的组 - + Remove from Group(s) 从组中删除 - + Are you sure you want to remove user from the following groups? 您确定要从以下组中删除用户 吗? - + Add Group 添加组 - + Add to existing group 添加到已有组 - + Add new group 添加新组 - + Application authorizations 应用程序授权 - + Revoked? 已吊销? - + Expires 过期 - + ID Token ID 令牌 - + Refresh Tokens(s) 刷新令牌 - + Last IP 上次 IP - + Session(s) 会话 - + Expiry 过期 - + (Current session) (当前会话) - + Permissions 权限 - + Consent(s) 同意授权 - + Successfully updated device. 已成功更新设备。 - + Static tokens 静态令牌 - + TOTP Device TOTP 设备 - + Enroll 注册 - + Device(s) 设备 - + Update Device 更新设备 - + Confirmed 已确认 - + User Info 用户信息 - + Actions over the last week (per 8 hours) 过去一周的操作(每 8 小时) - + Edit the notes attribute of this user to add notes here. 编辑该用户的备注属性以在此处添加备注。 - + Sessions 会话 - + User events 用户事件 - + Explicit Consent 明确同意授权 - + OAuth Refresh Tokens OAuth 刷新令牌 - + MFA Authenticators MFA 身份验证器 - + Successfully updated invitation. 已成功更新邀请。 - + Successfully created invitation. 已成功创建邀请。 - + Flow 流程 - + When selected, the invite will only be usable with the flow. By default the invite is accepted on all flows with invitation stages. 选中时,此邀请仅可在对应流程中使用。默认情况下,此邀请接受所有流程的邀请阶段。 - + Optional data which is loaded into the flow's 'prompt_data' context variable. YAML or JSON. 加载到流程的 'prompt_data' 上下文变量中的可选数据。YAML 或 JSON。 - + Single use 一次性使用 - + When enabled, the invitation will be deleted after usage. 启用后,邀请将在使用后被删除。 - + Select an enrollment flow 选择注册流程 - + Link to use the invitation. 使用邀请的链接。 - + Invitations 邀请 - + Create Invitation Links to enroll Users, and optionally force specific attributes of their account. 创建邀请链接以注册用户,并可选地强制设置其账户的特定属性。 - + Created by 创建者 - + Invitation(s) 邀请 - + Invitation not limited to any flow, and can be used with any enrollment flow. 邀请没有限制到任何流程,可以用于任何注册流程。 - + Update Invitation 更新邀请 - + Create Invitation 创建邀请 - + Warning: No invitation stage is bound to any flow. Invitations will not work as expected. 警告:没有邀请阶段绑定到任何流程。邀请将无法按预期工作。 - + Auto-detect (based on your browser) 自动检测(基于您的浏览器) - + Required. 必需。 - + Continue 继续 - + Successfully updated prompt. 已成功更新输入项。 - + Successfully created prompt. 已成功创建输入项。 - + Text: Simple Text input 文本:简单文本输入 - + Text Area: Multiline text input 文本框:多行文本输入。 - + Text (read-only): Simple Text input, but cannot be edited. 文本(只读):简单文本输入,但无法编辑。 - + Text Area (read-only): Multiline text input, but cannot be edited. 文本框(只读):多行文本输入,但无法编辑。 - + Username: Same as Text input, but checks for and prevents duplicate usernames. 用户名:与文本输入相同,但检查并防止用户名重复。 - + Email: Text field with Email type. 电子邮箱:电子邮箱类型的文本字段。 - + Password: Masked input, multiple inputs of this type on the same prompt need to be identical. 密码:屏蔽显示输入内容,多个此类型的输入如果在同一个输入项下,则内容需要相同。 - + Number 数字 - + Checkbox 复选框 - + Radio Button Group (fixed choice) 单选按钮组(固定选项) - + Dropdown (fixed choice) 下拉框(固定选项) - + Date 日期 - + Date Time 日期时间 - + File 文件 - + Separator: Static Separator Line 分隔符:静态分隔线 - + Hidden: Hidden field, can be used to insert data into form. 隐藏:隐藏字段,可用于将数据插入表单。 - + Static: Static value, displayed as-is. 静态:静态值,按原样显示。 - + authentik: Locale: Displays a list of locales authentik supports. authentik:语言:显示 authentik 支持的语言设置。 - + Preview errors 预览错误 - + Data preview 数据预览 - + Unique name of this field, used for selecting fields in prompt stages. 此字段的唯一名称,用于选择输入阶段的字段。 - + Field Key 字段键 - + Name of the form field, also used to store the value. 表单域的名称,也用于存储值。 - + When used in conjunction with a User Write stage, use attributes.foo to write attributes. 当与用户写入阶段结合使用时,请使用 attributes.foo 来编写属性。 - + Label 标签 - + Label shown next to/above the prompt. 标签会显示在输入侧方/上方。 - + Required 必需 - + Interpret placeholder as expression 将占位符解释为表达式 - + When checked, the placeholder will be evaluated in the same way a property mapping is. @@ -4534,7 +4534,7 @@ doesn't pass when either or both of the selected options are equal or above the Placeholder 占位符 - + Optionally provide a short hint that describes the expected input value. @@ -4547,7 +4547,7 @@ doesn't pass when either or both of the selected options are equal or above the Interpret initial value as expression 将初始值解释为表达式 - + When checked, the initial value will be evaluated in the same way a property mapping is. @@ -4558,7 +4558,7 @@ doesn't pass when either or both of the selected options are equal or above the Initial value 初始值 - + Optionally pre-fill the input with an initial value. @@ -4571,152 +4571,152 @@ doesn't pass when either or both of the selected options are equal or above the Help text 帮助文本 - + Any HTML can be used. 可以使用任何 HTML。 - + Prompts 输入 - + Single Prompts that can be used for Prompt Stages. 可用于输入阶段的单个输入项。 - + Field 字段 - + Stages 阶段 - + Prompt(s) 输入 - + Update Prompt 更新输入项 - + Create Prompt 创建输入 - + Target 目标 - + Stage 阶段 - + Evaluate when flow is planned 流程被规划时评估 - + Evaluate policies during the Flow planning process. 在流程规划过程中评估策略。 - + Evaluate when stage is run 阶段被运行时评估 - + Evaluate policies before the Stage is present to the user. 在阶段即将呈现给用户时评估策略。 - + Invalid response behavior 无效响应行为 - + Returns the error message and a similar challenge to the executor 向执行器返回错误消息和类似的质询 - + Restarts the flow from the beginning 从头开始重新启动流程 - + Restarts the flow from the beginning, while keeping the flow context 从头开始重新启动流程,同时保留流程上下文 - + Configure how the flow executor should handle an invalid response to a challenge given by this bound stage. 针对由此绑定阶段提供的质询,配置流程执行器应如何处理对此质询的无效响应。 - + Successfully updated stage. 已成功更新阶段。 - + Successfully created stage. 已成功创建阶段。 - + Stage used to configure a duo-based authenticator. This stage should be used for configuration flows. 用来配置基于 Duo 的身份验证器的阶段。此阶段应该用于配置流程。 - + Authenticator type name 身份验证类型名称 - + Display name of this authenticator, used by users when they enroll an authenticator. 此验证器的显示名称,在用户注册验证器时使用。 - + API Hostname API 主机名 - + Duo Auth API Duo Auth API - + Integration key 集成密钥 - + Secret key Secret 密钥 - + Duo Admin API (optional) Duo Admin API(可选) - + When using a Duo MFA, Access or Beyond plan, an Admin API application can be created. @@ -4727,630 +4727,630 @@ doesn't pass when either or both of the selected options are equal or above the Stage-specific settings 阶段特定设置 - + Configuration flow 配置流程 - + Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage. 经过身份验证的用户用来配置此阶段的流程。如果为空,用户将无法配置此阶段。 - + Twilio Account SID Twilio 账户 SID - + Get this value from https://console.twilio.com 从 https://console.twilio.com 获取此值 - + Twilio Auth Token Twilio 身份验证令牌 - + Authentication Type 身份验证类型 - + Basic Auth 基本身份验证 - + Bearer Token Bearer 令牌 - + External API URL 外部 API URL - + This is the full endpoint to send POST requests to. 这是向其发送 POST 请求的完整终端节点。 - + API Auth Username API 身份验证用户名 - + This is the username to be used with basic auth or the token when used with bearer token 这是用于 Basic 身份验证的用户名,或是使用 Bearer 令牌时的令牌 - + API Auth password API 身份验证密码 - + This is the password to be used with basic auth 这是用于 Basic 身份验证的密码 - + Mapping 映射 - + Modify the payload sent to the custom provider. 修改发送到自定义提供程序的载荷。 - + Stage used to configure an SMS-based TOTP authenticator. 用来配置基于短信的 TOTP 身份验证器的阶段。 - + Twilio Twilio - + Generic 通用 - + From number 发信人号码 - + Number the SMS will be sent from. 短信的发信人号码。 - + Hash phone number 哈希电话号码 - + If enabled, only a hash of the phone number will be saved. This can be done for data-protection reasons. Devices created from a stage with this enabled cannot be used with the authenticator validation stage. 如果启用,仅保存电话号码的哈希。这是出于数据保护的原因。如果设备创建自启用此选项的阶段,则无法在验证阶段使用身份验证器。 - + Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows. 用来配置静态身份验证器(即静态令牌)的阶段。此阶段应该用于配置流程。 - + Token count 令牌计数 - + Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator). 用来配置 TOTP 身份验证器(即 Authy/Google 身份验证器)的阶段。 - + Digits 数字 - + 6 digits, widely compatible 6 位数字,广泛兼容 - + 8 digits, not compatible with apps like Google Authenticator 8 位数字,与 Google 身份验证器等应用不兼容 - + Stage used to validate any authenticator. This stage should be used during authentication or authorization flows. 用来验证任何身份验证器的阶段。此阶段应在身份验证或授权流程中使用。 - + Device classes 设备类型 - + Static Tokens 静态令牌 - + TOTP Authenticators TOTP 身份验证器 - + WebAuthn Authenticators WebAuthn 身份验证器 - + Duo Authenticators Duo 身份验证器 - + SMS-based Authenticators 基于短信的身份验证器 - + Device classes which can be used to authenticate. 可用于进行身份验证的设备类型。 - + Last validation threshold 上次验证阈值 - + If any of the devices user of the types selected above have been used within this duration, this stage will be skipped. 如果上面所选类型的任意设备在此期限内被使用,此阶段会被跳过。 - + Not configured action 未配置操作 - + Force the user to configure an authenticator 强制用户配置身份验证器 - + Deny the user access 拒绝用户访问 - + WebAuthn User verification WebAuthn 用户验证 - + User verification must occur. 必须进行用户验证。 - + User verification is preferred if available, but not required. 如果可用,则首选用户验证,但不是必需的。 - + User verification should not occur. 不应进行用户验证。 - + Configuration stages 配置阶段 - + Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again. 当用户没有任何兼容的设备时,用来配置身份验证器的阶段。此阶段通过后,将不再请求此用户。 - + When multiple stages are selected, the user can choose which one they want to enroll. 选中多个阶段时,用户可以选择要注册哪个。 - + User verification 用户验证 - + Resident key requirement 常驻钥匙要求 - + Authenticator Attachment 身份验证器附件 - + No preference is sent 不发送偏好 - + A non-removable authenticator, like TouchID or Windows Hello 不可移除的身份验证器,例如 TouchID 或 Windows Hello - + - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 - + This stage checks the user's current session against the Google reCaptcha (or compatible) service. 此阶段会根据 Google reCaptcha(或兼容的)服务检查用户的当前会话。 - + Public Key 公钥 - + Public key, acquired from https://www.google.com/recaptcha/intro/v3.html. 公钥,从 https://www.google.com/recaptcha/intro/v3.html 获取。 - + Private Key 私钥 - + Private key, acquired from https://www.google.com/recaptcha/intro/v3.html. 私钥,从 https://www.google.com/recaptcha/intro/v3.html 获取。 - + Advanced settings 高级设置 - + JS URL JS URL - + URL to fetch JavaScript from, defaults to recaptcha. Can be replaced with any compatible alternative. 拉取 JavaScript 的 URL,默认为 recaptcha。可以替换为任何兼容替代。 - + API URL API URL - + URL used to validate captcha response, defaults to recaptcha. Can be replaced with any compatible alternative. 用于校验验证码响应的 URL,默认为 recaptcha。可以替换为任何兼容替代。 - + Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time. 请求用户同意授权。同意授权可以是永久性的,也可以在规定的时间后过期。 - + Always require consent 始终需要征得同意授权 - + Consent given last indefinitely 无限期同意授权 - + Consent expires. 同意授权会过期。 - + Consent expires in 同意授权过期时间 - + Offset after which consent expires. 同意过期后的偏移。 - + Dummy stage used for testing. Shows a simple continue button and always passes. 用于测试的虚拟阶段。显示一个简单的“继续”按钮,并且始终通过。 - + Throw error? 抛出错误? - + SMTP Host SMTP 主机 - + SMTP Port SMTP 端口 - + SMTP Username SMTP 用户名 - + SMTP Password SMTP 密码 - + Use TLS 使用 TLS - + Use SSL 使用 SSL - + From address 发件人地址 - + Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity. 通过向用户发送一次性链接来验证用户的电子邮件地址。也可用于在恢复时验证用户的真实性。 - + Activate pending user on success 成功时激活待处理用户 - + When a user returns from the email successfully, their account will be activated. 当用户成功自电子邮件中返回时,其账户将被激活。 - + Use global settings 使用全局设置 - + When enabled, global Email connection settings will be used and connection settings below will be ignored. 启用后,将使用全局电子邮件连接设置,下面的连接设置将被忽略。 - + Token expiry 令牌过期 - + Time in minutes the token sent is valid. 发出令牌的有效时间(单位为分钟)。 - + Template 模板 - + Let the user identify themselves with their username or Email address. 让用户使用用户名或电子邮件地址来标识自己。 - + User fields 用户字段 - + UPN UPN - + Fields a user can identify themselves with. If no fields are selected, the user will only be able to use sources. 用户可以用来标识自己的字段。如果未选择任何字段,则用户将只能使用源。 - + Password stage 密码阶段 - + When selected, a password field is shown on the same page instead of a separate page. This prevents username enumeration attacks. 选中后,密码字段将显示在同一页面,而不是单独的页面上。这样可以防止用户名枚举攻击。 - + Case insensitive matching 不区分大小写的匹配 - + When enabled, user fields are matched regardless of their casing. 启用后,无论大小写如何,都将匹配用户字段。 - + Show matched user 显示匹配的用户 - + When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown. 如果输入了有效的用户名/电子邮箱,并且启用了此选项,则会显示用户的用户名和头像。否则,将显示用户输入的文本。 - + Source settings 源设置 - + Sources - + Select sources should be shown for users to authenticate with. This only affects web-based sources, not LDAP. 选择的源应显示给用户进行身份验证。这只会影响基于 Web 的源,而不影响 LDAP。 - + Show sources' labels 显示源的标签 - + By default, only icons are shown for sources. Enable this to show their full names. 默认情况下,只为源显示图标。启用此选项可显示它们的全名。 - + Passwordless flow 无密码流程 - + Optional passwordless flow, which is linked at the bottom of the page. When configured, users can use this flow to authenticate with a WebAuthn authenticator, without entering any details. 可选的无密码流程,链接在页面底部。配置后,用户可以使用此流程通过 WebAuthn 身份验证器进行验证,无需输入任何详细信息。 - + Optional enrollment flow, which is linked at the bottom of the page. 可选注册流程,链接在页面底部。 - + Optional recovery flow, which is linked at the bottom of the page. 可选的恢复流程,链接在页面底部。 - + This stage can be included in enrollment flows to accept invitations. 此阶段可以包含在注册流程中以接受邀请。 - + Continue flow without invitation 在没有邀请的情况下继续流程 - + If this flag is set, this Stage will jump to the next Stage when no Invitation is given. By default this Stage will cancel the Flow when no invitation is given. 如果设置了此标志,则当没有发出邀请时,此阶段将跳转到下一个阶段。默认情况下,当没有发出邀请时,此阶段将取消流程。 - + Validate the user's password against the selected backend(s). 根据选定的后端验证用户的密码。 - + Backends 后端 - + User database + standard password 用户数据库 + 标准密码 - + User database + app passwords 用户数据库 + 应用程序密码 - + User database + LDAP password 用户数据库 + LDAP 密码 - + Selection of backends to test the password against. 选择用于测试密码的后端。 - + Flow used by an authenticated user to configure their password. If empty, user will not be able to configure change their password. 经过身份验证的用户用来配置其密码的流程。如果为空,用户将无法配置更改其密码。 - + Failed attempts before cancel 取消前的的尝试失败 - + How many attempts a user has before the flow is canceled. To lock the user out, use a reputation policy and a user_write stage. 在取消流程之前,用户可以尝试多少次。要锁定用户,请使用信誉策略和 user_write 阶段。 - + Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. 向用户显示任意输入字段,例如在注册期间。数据保存在流程上下文中的 'prompt_data' 变量下。 - + Fields 字段 - + - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 - + Validation Policies 验证策略 - + Selected policies are executed when the stage is submitted to validate the data. 当阶段被提交以验证数据时,执行选定的策略。 - + Delete the currently pending user. CAUTION, this stage does not ask for confirmation. Use a consent stage to ensure the user is aware of their actions. @@ -5359,52 +5359,52 @@ doesn't pass when either or both of the selected options are equal or above the Log the currently pending user in. 登录当前待处理的用户。 - + Session duration 会话持续时间 - + Determines how long a session lasts. Default of 0 seconds means that the sessions lasts until the browser is closed. 确定会话持续多长时间。默认为 0 秒意味着会话持续到浏览器关闭为止。 - + Different browsers handle session cookies differently, and might not remove them even when the browser is closed. 不同浏览器处理会话 Cookie 的方式不同,即使关闭浏览器,也不能保证它们会被删除。 - + See here. 详见这里。 - + Stay signed in offset 保持登录偏移量 - + - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 - + Terminate other sessions 终止其他会话 - + When enabled, all previous sessions of the user will be terminated. 启用时,此用户的所有过往会话将会被终止。 - + Remove the user from the current session. 从当前会话中移除用户。 - + Write any data from the flow's context's 'prompt_data' to the currently pending user. If no user @@ -5415,308 +5415,308 @@ doesn't pass when either or both of the selected options are equal or above the Never create users 从不创建用户 - + When no user is present in the flow context, the stage will fail. 如果流程上下文中没有出现用户,此阶段失败。 - + Create users when required 如果需要则创建用户 - + When no user is present in the the flow context, a new user is created. 如果流程上下文中没有出现用户,则创建新用户。 - + Always create new users 总是创建新用户 - + Create a new user even if a user is in the flow context. 即使用户在流程上下文中,仍然创建新用户。 - + Create users as inactive 创建未激活用户 - + Mark newly created users as inactive. 将新创建的用户标记为未激活。 - + User path template 用户路径模板 - + Path new users will be created under. If left blank, the default path will be used. 新用户将会在此路径下创建。如果留空,则使用默认路径。 - + Newly created users are added to this group, if a group is selected. 如果选择了组,则会将新创建的用户添加到该组。 - + New stage 新建阶段 - + Create a new stage. 创建一个新阶段。 - + Successfully imported device. 已成功导入设备。 - + The user in authentik this device will be assigned to. 此设备要绑定的 authentik 用户。 - + Duo User ID Duo 用户 ID - + The user ID in Duo, can be found in the URL after clicking on a user. Duo 中的用户 ID,可以点击用户之后,在 URL 中找到。 - + Automatic import 自动导入 - + Successfully imported devices. 已成功导入 个设备。 - + Start automatic import 开始自动导入 - + Or manually import 或者手动导入 - + Stages are single steps of a Flow that a user is guided through. A stage can only be executed from within a flow. 阶段是引导用户完成流程的单个步骤。阶段只能在流程内部执行。 - + Flows 流程 - + Stage(s) 阶段 - + Import 导入 - + Import Duo device 导入 Duo 设备 - + Successfully updated flow. 已成功更新流程。 - + Successfully created flow. 已成功创建流程。 - + Shown as the Title in Flow pages. 显示为流程页面中的标题。 - + Visible in the URL. 在 URL 中可见。 - + Designation 指定 - + Decides what this Flow is used for. For example, the Authentication flow is redirect to when an un-authenticated user visits authentik. 决定此流程的用途。例如,当未经身份验证的用户访问 authentik 时,会重定向到身份验证流程。 - + No requirement 无要求 - + Require authentication 需要身份验证 - + Require no authentication. 需要无身份验证。 - + Require superuser. 需要管理员用户。 - + Required authentication level for this flow. 此流程需要身份验证等级。 - + Behavior settings 行为设置 - + Compatibility mode 兼容模式 - + Increases compatibility with password managers and mobile devices. 增强与移动设备与密码管理器的兼容性。 - + Denied action 拒绝操作 - + Will follow the ?next parameter if set, otherwise show a message 将会首先遵循 ?next 参数,如果不存在则显示一条消息 - + Will either follow the ?next parameter or redirect to the default interface 将会遵循 ?next 参数或者重定向到默认接口 - + Will notify the user the flow isn't applicable 将会通知用户此流程不适用 - + Decides the response when a policy denies access to this flow for a user. 当一条策略拒绝用户访问此流程时决定响应。 - + Appearance settings 外观设置 - + Layout 布局 - + Background 背景 - + Background shown during execution. 执行过程中显示的背景。 - + Clear background 清除背景 - + Delete currently set background image. 删除当前设置的背景图片。 - + Successfully imported flow. 已成功导入流程。 - + .yaml files, which can be found on goauthentik.io and can be exported by authentik. .yaml 文件,可以在 goauthentik.io 上找到,也可以通过 authentik 导出。 - + Flows describe a chain of Stages to authenticate, enroll or recover a user. Stages are chosen based on policies applied to them. 流程描述了一系列用于对用户进行身份验证、注册或恢复的阶段。阶段是根据应用于它们的策略来选择的。 - + Flow(s) 流程 - + Update Flow 更新流程 - + Create Flow 创建流程 - + Import Flow 导入流程 - + Successfully cleared flow cache 已成功清除流程缓存 - + Failed to delete flow cache 删除流程缓存失败 - + Clear Flow cache 清除流程缓存 - + Are you sure you want to clear the flow cache? @@ -5727,258 +5727,258 @@ doesn't pass when either or both of the selected options are equal or above the Stage binding(s) 阶段绑定 - + Stage type 阶段类型 - + Edit Stage 编辑阶段 - + Update Stage binding 更新阶段绑定 - + These bindings control if this stage will be applied to the flow. 这些绑定控制是否将此阶段应用于流程。 - + No Stages bound 未绑定阶段 - + No stages are currently bound to this flow. 目前没有阶段绑定到此流程。 - + Create Stage binding 创建阶段绑定 - + Bind stage 绑定阶段 - + Bind existing stage 绑定已有阶段 - + Flow Overview 流程总览 - + Related actions 相关操作 - + Execute flow 执行流程 - + Normal 正常 - + with current user 以当前用户 - + with inspector 附加检视器 - + Export flow 导出流程 - + Export 导出 - + Stage Bindings 阶段绑定 - + These bindings control which users can access this flow. 这些绑定控制哪些用户可以访问此流程。 - + Event Log 事件日志 - + Event 事件 - + Event info 事件信息 - + Created 创建时间 - + Successfully updated transport. 已成功更新传输。 - + Successfully created transport. 已成功创建传输。 - + Local (notifications will be created within authentik) 本地(通知在 authentik 内创建) - + Webhook (generic) Webhook(通用) - + Webhook (Slack/Discord) Webhook(Slack/Discord) - + Webhook URL Webhook URL - + Webhook Mapping Webhook 映射 - + Send once 发送一次 - + Only send notification once, for example when sending a webhook into a chat channel. 仅发送一次通知,例如在向聊天频道发送 Webhook 时。 - + Notification Transports 通知传输 - + Define how notifications are sent to users, like Email or Webhook. 定义如何向用户发送通知,例如电子邮件或 Webhook。 - + Notification transport(s) 通知传输 - + Update Notification Transport 更新通知传输 - + Create Notification Transport 创建通知传输 - + Successfully updated rule. 已成功更新规则。 - + Successfully created rule. 已成功创建规则。 - + Select the group of users which the alerts are sent to. If no group is selected the rule is disabled. 选择一组用于发送警告的用户。如果未选择组,则此规则被禁用。 - + Transports 传输 - + Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI. 选择应使用哪些传输方式来通知用户。如果未选择任何内容,则通知将仅显示在 authentik UI 中。 - + Severity 严重程度 - + Notification Rules 通知规则 - + Send notifications whenever a specific Event is created and matched by policies. 每当特定事件被创建并匹配策略时,都会发送通知。 - + Sent to group 已发送到组 - + Notification rule(s) 通知规则 - + None (rule disabled) 无(规则已禁用) - + Update Notification Rule 更新通知规则 - + Create Notification Rule 创建通知规则 - + These bindings control upon which events this rule triggers. @@ -5989,959 +5989,959 @@ Bindings to groups/users are checked against the user of the event. Outpost Deployment Info 前哨部署信息 - + View deployment documentation 查看部署文档 - + Click to copy token 点击复制令牌 - + If your authentik Instance is using a self-signed certificate, set this value. 如果您的 authentik 实例正在使用自签名证书,请设置此值。 - + If your authentik_host setting does not match the URL you want to login with, add this setting. 如果您的 authentik_host 设置与您要登录时使用的网址不匹配,请添加此设置。 - + Successfully updated outpost. 已成功更新前哨。 - + Successfully created outpost. 已成功创建前哨。 - + Radius Radius - + Integration 集成 - + Selecting an integration enables the management of the outpost by authentik. 选择集成使 authentik 能够管理前哨。 - + Configuration 配置 - + See more here: 了解更多: - + Documentation 文档 - + Last seen 上次出现 - + , should be ,应该是 - + Hostname 主机名 - + Not available 不可用 - + Last seen: 上次出现: - + Unknown type 未知类型 - + Outposts 前哨 - + Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies. 前哨是对 authentik 组件的部署,用于支持不同的环境和协议,例如反向代理。 - + Health and Version 健康状态与版本 - + Warning: authentik Domain is not configured, authentication will not work. 警告:未配置 authentik 域名,身份验证将不起作用。 - + Logging in via . 通过 登录。 - + No integration active 没有激活的集成 - + Update Outpost 更新前哨 - + View Deployment Info 查看部署信息 - + Detailed health (one instance per column, data is cached so may be out of date) 详细健康状况(每列一个实例,数据经过缓存,因此可能会过时) - + Outpost(s) 前哨 - + Create Outpost 创建前哨 - + Successfully updated integration. 已成功更新集成。 - + Successfully created integration. 已成功创建集成。 - + Local 本地 - + If enabled, use the local connection. Required Docker socket/Kubernetes Integration. 如果启用,请使用本地连接。需要 Docker Socket/Kubernetes 集成。 - + Docker URL Docker URL - + Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. 连接到本地 Docker 守护进程时可以采用 'unix://' 格式,通过 SSH 连接时采用 'ssh://' 格式,或者在连接到远程系统时采用 'https://:2376' 格式。 - + CA which the endpoint's Certificate is verified against. Can be left empty for no validation. 验证端点证书所依据的 CA。可以留空,表示不进行验证。 - + TLS Authentication Certificate/SSH Keypair TLS 身份验证证书/SSH 密钥对 - + Certificate/Key used for authentication. Can be left empty for no authentication. 用于身份验证的证书/密钥。可以留空表示不验证。 - + When connecting via SSH, this keypair is used for authentication. 通过 SSH 连接时,此密钥对用于身份验证。 - + Kubeconfig Kubeconfig - + Verify Kubernetes API SSL Certificate 验证 Kubernetes API SSL 证书 - + New outpost integration 新建前哨集成 - + Create a new outpost integration. 创建一个新前哨集成。 - + State 状态 - + Unhealthy 不健康 - + Outpost integration(s) 前哨集成 - + Successfully generated certificate-key pair. 已成功生成证书密钥对。 - + Common Name 常用名 - + Subject-alt name 替代名称 - + Optional, comma-separated SubjectAlt Names. 可选,逗号分隔的替代名称。 - + Validity days 有效天数 - + Successfully updated certificate-key pair. 已成功更新证书密钥对。 - + Successfully created certificate-key pair. 已成功创建证书密钥对。 - + PEM-encoded Certificate data. PEM 编码的证书数据。 - + Optional Private Key. If this is set, you can use this keypair for encryption. 可选私钥。如果设置,则可以使用此密钥对来加密。 - + Certificate-Key Pairs 证书密钥对 - + Import certificates of external providers or create certificates to sign requests with. 导入外部提供商的证书或创建用于签名请求的证书。 - + Private key available? 私钥可用吗? - + Certificate-Key Pair(s) 证书密钥对 - + Managed by authentik 由 authentik 管理 - + Managed by authentik (Discovered) 由 authentik 管理(已发现) - + Yes () 是( - + No - + Update Certificate-Key Pair 更新证书密钥对 - + Certificate Fingerprint (SHA1) 证书指纹(SHA1) - + Certificate Fingerprint (SHA256) 证书指纹(SHA256) - + Certificate Subject 证书主题 - + Download Certificate 下载证书 - + Download Private key 下载私钥 - + Create Certificate-Key Pair 创建证书密钥对 - + Generate 生成 - + Generate Certificate-Key Pair 生成证书密钥对 - + Successfully updated instance. 已成功更新实例。 - + Successfully created instance. 已成功创建实例。 - + Disabled blueprints are never applied. 禁用的蓝图永远不会应用。 - + Local path 本地路径 - + OCI Registry OCI Registry - + Internal 内部 - + OCI URL, in the format of oci://registry.domain.tld/path/to/manifest. OCI URL,格式为 oci://registry.domain.tld/path/to/manifest。 - + See more about OCI support here: 在这里了解更多 OCI 支持: - + Blueprint 蓝图 - + Configure the blueprint context, used for templating. 配置蓝图上下文,用于模板操作。 - + Orphaned 孤立 - + Blueprints 蓝图 - + Automate and template configuration within authentik. 在 authentik 内的自动化与模板配置。 - + Last applied 上次应用 - + Blueprint(s) 蓝图 - + Update Blueprint 更新蓝图 - + Create Blueprint Instance 创建蓝图实例 - + API Requests API 请求 - + Open API Browser 打开 API 浏览器 - + Notifications 通知 - + unread 未读 - + Successfully cleared notifications 已成功清除通知 - + Clear all 全部清除 - + A newer version of the frontend is available. 有较新版本的前端可用。 - + You're currently impersonating . Click to stop. 您目前正在模拟 的身份。点击以停止。 - + User interface 用户界面 - + Dashboards 仪表板 - + Events 事件 - + Logs 日志 - + Customisation 自定义 - + Directory 目录 - + System 系统 - + Certificates 证书 - + Outpost Integrations 前哨集成 - + API request failed API 请求失败 - + User's avatar 用户的头像 - + Something went wrong! Please try again later. 发生了某些错误!请稍后重试。 - + Request ID 请求 ID - + You may close this page now. 您可以关闭此页面了。 - + You're about to be redirect to the following URL. 您将被重定向到以下 URL。 - + Follow redirect 跟随重定向 - + Request has been denied. 请求被拒绝。 - + Not you? 不是您? - + Need an account? 需要一个账户? - + Sign up. 注册。 - + Forgot username or password? 忘记用户名或密码? - + Select one of the sources below to login. 选择以下源之一进行登录。 - + Or 或者 - + Use a security key 使用安全密钥 - + Login to continue to . 登录以继续前往 - + Please enter your password 请输入您的密码 - + Forgot password? 忘记密码了吗? - + Application requires following permissions: 应用程序需要以下权限: - + Application already has access to the following permissions: 应用程序已经获得以下权限: - + Application requires following new permissions: 应用程序需要以下新权限: - + Check your Inbox for a verification email. 检查您的收件箱是否有验证电子邮件。 - + Send Email again. 再次发送电子邮件。 - + Successfully copied TOTP Config. 已成功复制 TOTP 配置。 - + Copy 复制 - + Code 代码 - + Please enter your TOTP Code 请输入您的 TOTP 代码 - + Duo activation QR code Duo 激活二维码 - + Alternatively, if your current device has Duo installed, click on this link: 或者,如果您当前的设备已安装 Duo,请点击此链接: - + Duo activation Duo 激活 - + Check status 检查状态 - + Make sure to keep these tokens in a safe place. 确保将这些令牌保存在安全的地方。 - + Phone number 电话号码 - + Please enter your Phone number. 请输入您的电话号码。 - + Please enter the code you received via SMS 请输入您通过短信收到的验证码 - + A code has been sent to you via SMS. 验证码已通过短信发送给您。 - + Open your two-factor authenticator app to view your authentication code. 打开您的两步验证应用查看身份验证代码。 - + Static token 静态令牌 - + Authentication code 身份验证代码 - + Please enter your code 请输入您的代码 - + Return to device picker 返回设备选择器 - + Sending Duo push notification 发送 Duo 推送通知 - + Assertions is empty 断言为空 - + Error when creating credential: 创建凭据时出错: - + Error when validating assertion on server: 在服务器上验证断言时出错: - + Retry authentication 重试身份验证 - + Duo push-notifications Duo 推送通知 - + Receive a push notification on your device. 在您的设备上接收推送通知。 - + Authenticator 身份验证器 - + Use a security key to prove your identity. 使用安全密钥证明您的身份。 - + Traditional authenticator 传统身份验证器 - + Use a code-based authenticator. 使用基于代码的身份验证器。 - + Recovery keys 恢复密钥 - + In case you can't access any other method. 以防万一您无法使用任何其他方法。 - + SMS 短信 - + Tokens sent via SMS. 通过短信发送的令牌。 - + Select an authentication method. 选择一种身份验证方法。 - + Stay signed in? 保持登录? - + Select Yes to reduce the number of times you're asked to sign in. 选择“是”以减少您被要求登录的次数。 - + Authenticating with Plex... 正在使用 Plex 进行身份验证... - + Waiting for authentication... 正在等待身份验证… - + If no Plex popup opens, click the button below. 如果 Plex 没有弹出窗口,则点击下面的按钮。 - + Open login 打开登录 - + Authenticating with Apple... 正在使用 Apple 进行身份验证... - + Retry 重试 - + Enter the code shown on your device. 请输入您设备上显示的代码。 - + Please enter your Code 请输入您的验证码 - + You've successfully authenticated your device. 您成功验证了此设备的身份。 - + Flow inspector 流程检视器 - + Next stage 下一阶段 - + Stage name 阶段名称 - + Stage kind 阶段种类 - + Stage object 阶段对象 - + This flow is completed. 此流程已完成。 - + Plan history 规划历史记录 - + Current plan context 当前计划上下文 - + Session ID 会话 ID - + Powered by authentik 由 authentik 强力驱动 - + Background image 背景图片 - + Error creating credential: 创建凭据时出错: - + Server validation of credential failed: 服务器验证凭据失败: - + Register device 注册设备 - + Refer to documentation @@ -6950,7 +6950,7 @@ Bindings to groups/users are checked against the user of the event. No Applications available. 没有可用的应用程序。 - + Either no applications are defined, or you don’t have access to any. @@ -6959,186 +6959,186 @@ Bindings to groups/users are checked against the user of the event. My Applications 我的应用 - + My applications 我的应用 - + Change your password 更改您的密码 - + Change password 更改密码 - + - + Save 保存 - + Delete account 删除账户 - + Successfully updated details 已成功更新详情 - + Open settings 打开设置 - + No settings flow configured. 未配置设置流程 - + Update details 更新详情 - + Successfully disconnected source 解绑成功 - + Failed to disconnected source: 解绑源失败: - + Disconnect 断开连接 - + Connect 连接 - + Error: unsupported source settings: 错误:不支持的源设置: - + Connect your user account to the services listed below, to allow you to login using the service instead of traditional credentials. 将您的用户账户连接到下面列出的服务,以允许您使用该服务而不是传统凭据登录。 - + No services available. 没有可用的服务。 - + Create App password 创建应用密码 - + User details 用户详情 - + Consent 同意授权 - + MFA Devices MFA 设备 - + Connected services 已连接服务 - + Tokens and App passwords 令牌和应用程序密码 - + Unread notifications 未读通知 - + Admin interface 管理员界面 - + Stop impersonation 停止模拟身份 - + Avatar image 头像图片 - + Failed 已失败 - + Unsynced / N/A 未同步 / N/A - + Outdated outposts 过时的前哨 - + Unhealthy outposts 不健康的前哨 - + Next 下一步 - + Inactive 未激活 - + Regular user 普通用户 - + Activate 激活 - + Use Server URI for SNI verification @@ -7880,7 +7880,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8351,7 +8351,7 @@ Bindings to groups/users are checked against the user of the event. item(s) marked to remove. - 项被标记为删除。 + 项被标记为删除。 Available Applications @@ -8411,7 +8411,8 @@ Bindings to groups/users are checked against the user of the event. Brand name + 品牌名称 - + \ No newline at end of file From d10b358767deb68a8c8982c03d6d61bb768895ca Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:53:24 +0100 Subject: [PATCH 026/105] translate: Updates for file web/xliff/en.xlf in zh_CN (#8418) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh_CN.xlf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/xliff/zh_CN.xlf b/web/xliff/zh_CN.xlf index 61a4ad3818..10a3beabac 100644 --- a/web/xliff/zh_CN.xlf +++ b/web/xliff/zh_CN.xlf @@ -8408,6 +8408,10 @@ Bindings to groups/users are checked against the user of the event. Preview for user 用户预览 + + + Brand name + 品牌名称 From b5b8b0e9cdc05afbf01fd1fd1169ca301b98c39a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:52:01 +0100 Subject: [PATCH 027/105] website: bump @types/react from 18.2.54 to 18.2.55 in /website (#8443) Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.54 to 18.2.55. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 565c142b82..75720c0e57 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -33,7 +33,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.54", + "@types/react": "^18.2.55", "prettier": "3.2.5", "typescript": "~5.3.3" }, @@ -4374,9 +4374,9 @@ "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==" }, "node_modules/@types/react": { - "version": "18.2.54", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.54.tgz", - "integrity": "sha512-039k+vrVJymDoe2y+HLk3O3oI3sa+C8KNjuDKofqrIJK26ramnqLNj9VJTaxAzFGMvpW/79HrrAJapHzpQ9fGQ==", + "version": "18.2.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", + "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", diff --git a/website/package.json b/website/package.json index 5b4b6657fc..e9bde5556a 100644 --- a/website/package.json +++ b/website/package.json @@ -52,7 +52,7 @@ "@docusaurus/module-type-aliases": "3.1.1", "@docusaurus/tsconfig": "3.1.1", "@docusaurus/types": "3.1.1", - "@types/react": "^18.2.54", + "@types/react": "^18.2.55", "prettier": "3.2.5", "typescript": "~5.3.3" }, From 87e0ac743a83966dd9578aa4a31f43ba19e0862a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:52:12 +0100 Subject: [PATCH 028/105] web: bump wdio-wait-for from 3.0.10 to 3.0.11 in /tests/wdio (#8442) Bumps [wdio-wait-for](https://github.com/webdriverio/wdio-wait-for) from 3.0.10 to 3.0.11. - [Release notes](https://github.com/webdriverio/wdio-wait-for/releases) - [Commits](https://github.com/webdriverio/wdio-wait-for/compare/3.0.10...3.0.11) --- updated-dependencies: - dependency-name: wdio-wait-for dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 8 ++++---- tests/wdio/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index c28b35da71..a75ca876b3 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -23,7 +23,7 @@ "prettier": "^3.2.5", "ts-node": "^10.9.2", "typescript": "^5.3.3", - "wdio-wait-for": "^3.0.10" + "wdio-wait-for": "^3.0.11" }, "engines": { "node": ">=20" @@ -8716,9 +8716,9 @@ } }, "node_modules/wdio-wait-for": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/wdio-wait-for/-/wdio-wait-for-3.0.10.tgz", - "integrity": "sha512-YMWfI0BYgEviGDB9+rDUuHDZNVk8pHeae0cvaqk3Wx/2LijwJi4xkRP01uYC/hM7RBB7QJFBmjrXczVSqtJOGw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/wdio-wait-for/-/wdio-wait-for-3.0.11.tgz", + "integrity": "sha512-kck1TeQeIzI9fdP8efy7izzdkBiOZJR8lMOkKpxYp2/k7r2F2+8SHWBGPt1TfSiehKHLsIalB7G1RzJKF+PqDA==", "dev": true, "engines": { "node": "^16.13 || >=18" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index 271bc738f2..52ef3b1480 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -17,7 +17,7 @@ "prettier": "^3.2.5", "ts-node": "^10.9.2", "typescript": "^5.3.3", - "wdio-wait-for": "^3.0.10" + "wdio-wait-for": "^3.0.11" }, "scripts": { "wdio": "wdio run ./wdio.conf.ts", From 70f72c524dd02b92e6249a8a4a01c2dd964ea374 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:52:20 +0100 Subject: [PATCH 029/105] web: bump the wdio group in /tests/wdio with 4 updates (#8441) Bumps the wdio group in /tests/wdio with 4 updates: [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli), [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner), [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework) and [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter). Updates `@wdio/cli` from 8.29.7 to 8.30.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.30.0/packages/wdio-cli) Updates `@wdio/local-runner` from 8.29.7 to 8.30.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.30.0/packages/wdio-local-runner) Updates `@wdio/mocha-framework` from 8.29.3 to 8.30.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.30.0/packages/wdio-mocha-framework) Updates `@wdio/spec-reporter` from 8.29.7 to 8.30.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.30.0/packages/wdio-spec-reporter) --- updated-dependencies: - dependency-name: "@wdio/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/local-runner" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/mocha-framework" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/spec-reporter" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 352 ++++++++++++++++++----------------- tests/wdio/package.json | 8 +- 2 files changed, 187 insertions(+), 173 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index a75ca876b3..7958ebcd74 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -12,10 +12,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "@wdio/cli": "^8.29.7", - "@wdio/local-runner": "^8.29.7", - "@wdio/mocha-framework": "^8.29.3", - "@wdio/spec-reporter": "^8.29.7", + "@wdio/cli": "^8.30.0", + "@wdio/local-runner": "^8.30.0", + "@wdio/mocha-framework": "^8.30.0", + "@wdio/spec-reporter": "^8.30.0", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", @@ -655,12 +655,12 @@ } }, "node_modules/@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", + "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.5" }, "engines": { "node": ">= 0.4" @@ -1173,9 +1173,9 @@ "dev": true }, "node_modules/@vitest/snapshot": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.1.tgz", - "integrity": "sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.2.tgz", + "integrity": "sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -1187,19 +1187,19 @@ } }, "node_modules/@wdio/cli": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.29.7.tgz", - "integrity": "sha512-YxZwaCeulBIBqnpfM8QbpHBN8qcktZQfDCVJpBBNWmlGDNYmWU4SdASEESm/hTwXTIIW72U3OUQ6gypbQ+51+Q==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.30.0.tgz", + "integrity": "sha512-gQ3+MG8I3/LU9DnyNuTI8WfmcMRo87pPGioGRrvli1ChG2J+KepFVRSodzzTfoi/B6gz0pFD0sVZpaHXJV7F6w==", "dev": true, "dependencies": { "@types/node": "^20.1.1", "@vitest/snapshot": "^1.2.1", - "@wdio/config": "8.29.3", - "@wdio/globals": "8.29.7", + "@wdio/config": "8.30.0", + "@wdio/globals": "8.30.0", "@wdio/logger": "8.28.0", "@wdio/protocols": "8.29.7", - "@wdio/types": "8.29.1", - "@wdio/utils": "8.29.3", + "@wdio/types": "8.30.0", + "@wdio/utils": "8.30.0", "async-exit-hook": "^2.0.1", "chalk": "^5.2.0", "chokidar": "^3.5.3", @@ -1208,13 +1208,13 @@ "ejs": "^3.1.9", "execa": "^8.0.1", "import-meta-resolve": "^4.0.0", - "inquirer": "9.2.12", + "inquirer": "9.2.14", "lodash.flattendeep": "^4.4.0", "lodash.pickby": "^4.6.0", "lodash.union": "^4.6.0", "read-pkg-up": "^10.0.0", "recursive-readdir": "^2.2.3", - "webdriverio": "8.29.7", + "webdriverio": "8.30.0", "yargs": "^17.7.2" }, "bin": { @@ -1237,14 +1237,14 @@ } }, "node_modules/@wdio/config": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.29.3.tgz", - "integrity": "sha512-9TvmQAq4fLGKvYHvBJI4uXmqosZJgKtFQkxTaONt7R2cptIhQ7Ju6w+9eUsd4gQ6H/tUlQOstsx6ROHGJTVfKg==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.30.0.tgz", + "integrity": "sha512-ayymrXa1QWeJzwryFZ2SvKl6wwo7h1LiboFX6W+NsgiseEtb1SGxLezObRIcQIK7W4JSfBznPjMGLMHepY86YA==", "dev": true, "dependencies": { "@wdio/logger": "8.28.0", - "@wdio/types": "8.29.1", - "@wdio/utils": "8.29.3", + "@wdio/types": "8.30.0", + "@wdio/utils": "8.30.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", @@ -1255,29 +1255,29 @@ } }, "node_modules/@wdio/globals": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.29.7.tgz", - "integrity": "sha512-f74Sl6XWr/wkEjoZnSvu8F6HIt9GR6/ysPMT/NWAW0xt/XRQne1TDm070i6+9mrKE25YHr/daqTkLgOlq1/tVA==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.30.0.tgz", + "integrity": "sha512-V5m3nOLlamHUYIt0yl+oXactZ+4rV/3PrLpue7R6gYYtlyBtaeIeMP4vc/9h/jcaeUDSI55AGKtzCn9i4KVmDw==", "dev": true, "engines": { "node": "^16.13 || >=18" }, "optionalDependencies": { - "expect-webdriverio": "^4.9.3", - "webdriverio": "8.29.7" + "expect-webdriverio": "^4.10.1", + "webdriverio": "8.30.0" } }, "node_modules/@wdio/local-runner": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.29.7.tgz", - "integrity": "sha512-MNvEmtldtuZetJfSLBQfaih9AusxZ96ys9Uv71HGcJc+2GR0FKI1fRq8FgwJInAtS7PCELudsfy6L9Ga07PQmA==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.30.0.tgz", + "integrity": "sha512-dMDVdRcwjnRgDCzmBdHavUaOrgOXCL4kvagEZzJarmx/dSJ2dE47221trec8WQp7VdfkN7sBtBoTiUqJBXBuLQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", "@wdio/repl": "8.24.12", - "@wdio/runner": "8.29.7", - "@wdio/types": "8.29.1", + "@wdio/runner": "8.30.0", + "@wdio/types": "8.30.0", "async-exit-hook": "^2.0.1", "split2": "^4.1.0", "stream-buffers": "^3.0.2" @@ -1314,16 +1314,16 @@ } }, "node_modules/@wdio/mocha-framework": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.29.3.tgz", - "integrity": "sha512-w+tJLRdNhYPScesPGVcuuM4McAfxzx3K39Jp5rmKxxah6/Fv8Hb2eOHxO4WLfhd5Tv3KkdCYHe4wCPGYNxnsng==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.30.0.tgz", + "integrity": "sha512-8RiRPm2r+IBx9/Ykawa3qjd8w79OXI8mnsbVevPYPtfwrPe0SV2/8PB4eQjWMifwM3cLkvIXCIk4vHCI5rhEGQ==", "dev": true, "dependencies": { "@types/mocha": "^10.0.0", "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.29.1", - "@wdio/utils": "8.29.3", + "@wdio/types": "8.30.0", + "@wdio/utils": "8.30.0", "mocha": "^10.0.0" }, "engines": { @@ -1349,14 +1349,14 @@ } }, "node_modules/@wdio/reporter": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.29.1.tgz", - "integrity": "sha512-LZeYHC+HHJRYiFH9odaotDazZh0zNhu4mTuL/T/e3c/Q3oPSQjLvfQYhB3Ece1QA9PKjP1VPmr+g9CvC0lMixA==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.30.0.tgz", + "integrity": "sha512-3gUdmkII/eLpCzLyLj0HBYoJ38e+64RvWMb3Fzw3iUpfxvWm4d9PWbv3Jlkcj7FAIgEhXjJHld9ua3bulBsTiw==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.29.1", + "@wdio/types": "8.30.0", "diff": "^5.0.0", "object-inspect": "^1.12.0" }, @@ -1365,35 +1365,35 @@ } }, "node_modules/@wdio/runner": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.29.7.tgz", - "integrity": "sha512-EL33yu9IBXyrDyWYhn4cEMY+0uZhBU/PswKm7TzpeSwIkqhh+6j8eaWFwZv62z/qU8bNQXs2qsTAsVSGhf3pKg==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.30.0.tgz", + "integrity": "sha512-fiCU8zq5njO/PcMmnN/cwLLgI6wrDSViYtUeS2nXCcSBL/ScXnPEel2Myf/JSi+G9NwQPoNIQpFaAFuu+raWig==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.29.3", - "@wdio/globals": "8.29.7", + "@wdio/config": "8.30.0", + "@wdio/globals": "8.30.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.29.1", - "@wdio/utils": "8.29.3", + "@wdio/types": "8.30.0", + "@wdio/utils": "8.30.0", "deepmerge-ts": "^5.0.0", - "expect-webdriverio": "^4.9.3", + "expect-webdriverio": "^4.10.1", "gaze": "^1.1.2", - "webdriver": "8.29.7", - "webdriverio": "8.29.7" + "webdriver": "8.30.0", + "webdriverio": "8.30.0" }, "engines": { "node": "^16.13 || >=18" } }, "node_modules/@wdio/spec-reporter": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.29.7.tgz", - "integrity": "sha512-zwqpcjcEPnPrQh5rez0WM0izkP0IALtudOjMZTlFTOmwD1HqI9QeIYDVbO+Yp5ugJca28R/n5bDExIIyBhXYpQ==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.30.0.tgz", + "integrity": "sha512-/tUBCE9segS/rQhlqBkvSulhQvD1eXoRMyZbVn+AdoPS2TnS1TQwANIqpNhQkYbtyd2GOLVLrOsy4HPUvuud/g==", "dev": true, "dependencies": { - "@wdio/reporter": "8.29.1", - "@wdio/types": "8.29.1", + "@wdio/reporter": "8.30.0", + "@wdio/types": "8.30.0", "chalk": "^5.1.2", "easy-table": "^1.2.0", "pretty-ms": "^7.0.0" @@ -1415,9 +1415,9 @@ } }, "node_modules/@wdio/types": { - "version": "8.29.1", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.29.1.tgz", - "integrity": "sha512-rZYzu+sK8zY1PjCEWxNu4ELJPYKDZRn7HFcYNgR122ylHygfldwkb5TioI6Pn311hQH/S+663KEeoq//Jb0f8A==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.30.0.tgz", + "integrity": "sha512-KkGz12glMh2whnkKpplqx1+3nRwmFh/JsPQRWHwSbIy5HuGfaRa9I+qDZQQUrhbmSACXMft/pfAGM0v05/T4EQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1427,14 +1427,14 @@ } }, "node_modules/@wdio/utils": { - "version": "8.29.3", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.29.3.tgz", - "integrity": "sha512-WnZ5vZrc0oKX0u6dteB9j04Yl2EUKBLi6GtRCNTRPTpCRYiGfqSLhs0pUddTNXye7gErlqIzsVwh64q19Z5KIQ==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.30.0.tgz", + "integrity": "sha512-moUAN2YtysUNw48zPf2s/h4Or/DkJQIaP/2H2uoM4rRN+4+TIVu4GnJ2sHWvJufPYQiaFXsaWSQjfm6AJFzmaw==", "dev": true, "dependencies": { "@puppeteer/browsers": "^1.6.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.29.1", + "@wdio/types": "8.30.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.1.0", "edgedriver": "^5.3.5", @@ -1966,13 +1966,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", + "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "set-function-length": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2142,9 +2147,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", - "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -2521,14 +2526,15 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -2583,9 +2589,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1249869", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1249869.tgz", - "integrity": "sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==", + "version": "0.0.1255431", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1255431.tgz", + "integrity": "sha512-VuKgO1U4Ew4meKKoXCEBMUNkzyQqci5F8HIuoELPJkr5yvk9kR9p07gaZfzG9QIIrcIfpJVgf6Ms8OqEMxEYgA==", "dev": true }, "node_modules/diff": { @@ -2851,6 +2857,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -3283,12 +3298,12 @@ } }, "node_modules/expect-webdriverio": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.9.3.tgz", - "integrity": "sha512-ASHsFc/QaK5ipF4ct3e8hd3elm8wNXk/Qa3EemtYDmfUQ4uzwqDf75m/QFQpwVNCjEpkNP7Be/6X9kz7bN0P9Q==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.10.1.tgz", + "integrity": "sha512-62O5H+io//4vgVsC/m//ept0LyFuyKLVnSJQWByWZ1vdkBv9DQAWouILfis867WMUj9sxrZP6pXyLgp285XIkg==", "dev": true, "dependencies": { - "@vitest/snapshot": "^1.2.1", + "@vitest/snapshot": "^1.2.2", "expect": "^29.7.0", "jest-matcher-utils": "^29.7.0", "lodash.isequal": "^4.5.0" @@ -3297,9 +3312,9 @@ "node": ">=16 || >=18 || >=20" }, "optionalDependencies": { - "@wdio/globals": "^8.27.0", - "@wdio/logger": "^8.24.12", - "webdriverio": "^8.27.0" + "@wdio/globals": "^8.29.3", + "@wdio/logger": "^8.28.0", + "webdriverio": "^8.29.3" } }, "node_modules/external-editor": { @@ -3430,28 +3445,15 @@ } }, "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3728,10 +3730,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -3805,15 +3810,19 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4129,12 +4138,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4179,6 +4188,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -4341,18 +4362,18 @@ "dev": true }, "node_modules/inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "version": "9.2.14", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz", + "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.12", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -4363,7 +4384,7 @@ "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/chalk": { @@ -4699,12 +4720,12 @@ } }, "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5568,18 +5589,6 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6436,18 +6445,6 @@ "node": ">=8" } }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ora/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -7662,6 +7659,23 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", @@ -8734,18 +8748,18 @@ } }, "node_modules/webdriver": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.29.7.tgz", - "integrity": "sha512-V9Wc2kXoK7sRbCJV6wzrOgbV2ZfWxYfCHbZZRCUuZxnAVhSrhWtciGND7F8nuZpoVXM4Hbr54hXulEl8Z6oWQg==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.30.0.tgz", + "integrity": "sha512-ZGXezwJ2G3BN1C9jHmvJRin4Cku44MxawLiguGHQgsW+HRa7OXKc4nCRuoxlKMtEi5Be3oQIN4gqILx/KQ1doQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.29.3", + "@wdio/config": "8.30.0", "@wdio/logger": "8.28.0", "@wdio/protocols": "8.29.7", - "@wdio/types": "8.29.1", - "@wdio/utils": "8.29.3", + "@wdio/types": "8.30.0", + "@wdio/utils": "8.30.0", "deepmerge-ts": "^5.1.0", "got": "^12.6.1", "ky": "^0.33.0", @@ -8756,23 +8770,23 @@ } }, "node_modules/webdriverio": { - "version": "8.29.7", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.29.7.tgz", - "integrity": "sha512-MyWbPB7rEat8I8nb4h8u+GjUA5KCQty9S/9tl/8AYV8Ar8o7hFv71lCnLCKzDZZoUzio7cF17r+hUHoRq/gRdQ==", + "version": "8.30.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.30.0.tgz", + "integrity": "sha512-U3uTbdGTwXRwVheiwAEi9DF9ioi4rAL2Sz8lVrVpOQ7lq0O7dyxLjYcagd1G13vlJTFLUKWc8OBbuTKY8A5+6w==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.29.3", + "@wdio/config": "8.30.0", "@wdio/logger": "8.28.0", "@wdio/protocols": "8.29.7", "@wdio/repl": "8.24.12", - "@wdio/types": "8.29.1", - "@wdio/utils": "8.29.3", + "@wdio/types": "8.30.0", + "@wdio/utils": "8.30.0", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools-protocol": "^0.0.1249869", + "devtools-protocol": "^0.0.1255431", "grapheme-splitter": "^1.0.2", "import-meta-resolve": "^4.0.0", "is-plain-obj": "^4.1.0", @@ -8784,7 +8798,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.29.7" + "webdriver": "8.30.0" }, "engines": { "node": "^16.13 || >=18" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index 52ef3b1480..389b227960 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -6,10 +6,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "@wdio/cli": "^8.29.7", - "@wdio/local-runner": "^8.29.7", - "@wdio/mocha-framework": "^8.29.3", - "@wdio/spec-reporter": "^8.29.7", + "@wdio/cli": "^8.30.0", + "@wdio/local-runner": "^8.30.0", + "@wdio/mocha-framework": "^8.30.0", + "@wdio/spec-reporter": "^8.30.0", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", From 49b7ebdc5300f6a6fda25e3506b32d6326cdcb3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:52:26 +0100 Subject: [PATCH 030/105] core: bump django from 5.0.1 to 5.0.2 (#8439) Bumps [django](https://github.com/django/django) from 5.0.1 to 5.0.2. - [Commits](https://github.com/django/django/compare/5.0.1...5.0.2) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1339d8f305..d2347c4724 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1142,13 +1142,13 @@ graph = ["objgraph (>=1.7.2)"] [[package]] name = "django" -version = "5.0.1" +version = "5.0.2" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.10" files = [ - {file = "Django-5.0.1-py3-none-any.whl", hash = "sha256:f47a37a90b9bbe2c8ec360235192c7fddfdc832206fcf618bb849b39256affc1"}, - {file = "Django-5.0.1.tar.gz", hash = "sha256:8c8659665bc6e3a44fefe1ab0a291e5a3fb3979f9a8230be29de975e57e8f854"}, + {file = "Django-5.0.2-py3-none-any.whl", hash = "sha256:56ab63a105e8bb06ee67381d7b65fe6774f057e41a8bab06c8020c8882d8ecd4"}, + {file = "Django-5.0.2.tar.gz", hash = "sha256:b5bb1d11b2518a5f91372a282f24662f58f66749666b0a286ab057029f728080"}, ] [package.dependencies] From 2ecc2119fc137fc7a323258d87ef27c27aecc97b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:55:03 +0100 Subject: [PATCH 031/105] core: bump watchdog from 3.0.0 to 4.0.0 (#8440) Bumps [watchdog](https://github.com/gorakhargosh/watchdog) from 3.0.0 to 4.0.0. - [Release notes](https://github.com/gorakhargosh/watchdog/releases) - [Changelog](https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst) - [Commits](https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v4.0.0) --- updated-dependencies: - dependency-name: watchdog dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 60 +++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/poetry.lock b/poetry.lock index d2347c4724..9be5ad9a88 100644 --- a/poetry.lock +++ b/poetry.lock @@ -4189,38 +4189,40 @@ files = [ [[package]] name = "watchdog" -version = "3.0.0" +version = "4.0.0" description = "Filesystem events monitoring" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, - {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, - {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, - {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, - {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, - {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, - {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, - {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, - {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"}, + {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"}, + {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"}, + {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"}, + {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"}, + {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"}, + {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"}, + {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"}, ] [package.extras] From c9b39f2eba76c38c5fcda67103641c9972fce12d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 11:55:28 +0100 Subject: [PATCH 032/105] core: bump golang from 1.21.6-bookworm to 1.22.0-bookworm (#8444) Bumps golang from 1.21.6-bookworm to 1.22.0-bookworm. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- ldap.Dockerfile | 2 +- proxy.Dockerfile | 2 +- rac.Dockerfile | 2 +- radius.Dockerfile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 780e9ce3db..8a2b6c7534 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,7 +37,7 @@ COPY ./gen-ts-api /work/web/node_modules/@goauthentik/api RUN npm run build # Stage 3: Build go proxy -FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.6-bookworm AS go-builder +FROM --platform=${BUILDPLATFORM} docker.io/golang:1.22.0-bookworm AS go-builder ARG TARGETOS ARG TARGETARCH diff --git a/ldap.Dockerfile b/ldap.Dockerfile index 6efe55e3bf..6aa045ca9f 100644 --- a/ldap.Dockerfile +++ b/ldap.Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # Stage 1: Build -FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.6-bookworm AS builder +FROM --platform=${BUILDPLATFORM} docker.io/golang:1.22.0-bookworm AS builder ARG TARGETOS ARG TARGETARCH diff --git a/proxy.Dockerfile b/proxy.Dockerfile index a0c67f64df..58eb314589 100644 --- a/proxy.Dockerfile +++ b/proxy.Dockerfile @@ -17,7 +17,7 @@ COPY web . RUN npm run build-proxy # Stage 2: Build -FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.6-bookworm AS builder +FROM --platform=${BUILDPLATFORM} docker.io/golang:1.22.0-bookworm AS builder ARG TARGETOS ARG TARGETARCH diff --git a/rac.Dockerfile b/rac.Dockerfile index e59c22d05e..dd08b2909f 100644 --- a/rac.Dockerfile +++ b/rac.Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # Stage 1: Build -FROM docker.io/golang:1.21.6-bookworm AS builder +FROM docker.io/golang:1.22.0-bookworm AS builder WORKDIR /go/src/goauthentik.io diff --git a/radius.Dockerfile b/radius.Dockerfile index 5113a7eeb2..053ee75302 100644 --- a/radius.Dockerfile +++ b/radius.Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # Stage 1: Build -FROM --platform=${BUILDPLATFORM} docker.io/golang:1.21.6-bookworm AS builder +FROM --platform=${BUILDPLATFORM} docker.io/golang:1.22.0-bookworm AS builder ARG TARGETOS ARG TARGETARCH From d2f9b6642407e67a9a9610f6cbc59241f70cc84b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 12:27:10 +0100 Subject: [PATCH 033/105] web: bump the storybook group in /web with 7 updates (#8438) Bumps the storybook group in /web with 7 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.6.12` | `7.6.13` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.6.12` | `7.6.13` | | [@storybook/api](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/manager-api-shim) | `7.6.12` | `7.6.13` | | [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `7.6.12` | `7.6.13` | | [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `7.6.12` | `7.6.13` | | [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `7.6.12` | `7.6.13` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.6.12` | `7.6.13` | Updates `@storybook/addon-essentials` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/addons/essentials) Updates `@storybook/addon-links` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/addons/links) Updates `@storybook/api` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v7.6.13/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/deprecated/manager-api-shim) Updates `@storybook/manager-api` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/lib/manager-api) Updates `@storybook/web-components` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/renderers/web-components) Updates `@storybook/web-components-vite` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/frameworks/web-components-vite) Updates `storybook` from 7.6.12 to 7.6.13 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.13/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/manager-api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components-vite" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 622 +++++++++++++++++++++--------------------- web/package.json | 14 +- 2 files changed, 318 insertions(+), 318 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index f42cc799e7..ac084d2df0 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -62,13 +62,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.11", - "@storybook/addon-essentials": "^7.6.12", - "@storybook/addon-links": "^7.6.12", - "@storybook/api": "^7.6.12", + "@storybook/addon-essentials": "^7.6.13", + "@storybook/addon-links": "^7.6.13", + "@storybook/api": "^7.6.13", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.12", - "@storybook/web-components": "^7.6.12", - "@storybook/web-components-vite": "^7.6.12", + "@storybook/manager-api": "^7.6.13", + "@storybook/web-components": "^7.6.13", + "@storybook/web-components-vite": "^7.6.13", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -98,7 +98,7 @@ "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.12", + "storybook": "^7.6.13", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", @@ -4876,12 +4876,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.12.tgz", - "integrity": "sha512-vK/H6K+AJ4ZSsCu/+MapYYI/xrynB6JoCOejt//flTigZOhwTWv7WXbmEeqGIIToXy0LA2IUZ1/kCjFXR0lEdQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.13.tgz", + "integrity": "sha512-uxjBLzJNJfj8oS0orgLt7/Gs5tLoP2xhBESi5vjk+7BZjAgfoA6w5IwMwmh9sRB3+aUx3ks7fGjE/hRT/YcaxA==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.12", + "@storybook/core-events": "7.6.13", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -4894,9 +4894,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.12.tgz", - "integrity": "sha512-G14uN5lDXUtXw+dmEPaB6lpDpR9K25ssYuWWn8yYR44B1WMuD4kDgw0QGb0g+xYQj9R1TsalKEJHA4AuSYkVGQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.13.tgz", + "integrity": "sha512-d6nK6x8S0al2WwQFvq9nx1+EeRzZqJiFChqy/mwjwxGtLNCJZ09afRA1xJSyNqzOQorebKiPPyZlrenUv7htcA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4909,12 +4909,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.12.tgz", - "integrity": "sha512-NX4KajscOsuXyYE3hhniF+y0E59E6rM0FgIaZ48P9c0DD+wDo8bAISHjZvmKXtDVajLk4/JySvByx1eN6V3hmA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.13.tgz", + "integrity": "sha512-NdCEvr9xg3ANOSoEXKnB9jQR74n7G8XFWngnjJqviqXjRxiL7jwv2TCkyJyDTMmIAtPkHKU3NoD2Q1eQk16iYg==", "dev": true, "dependencies": { - "@storybook/blocks": "7.6.12", + "@storybook/blocks": "7.6.13", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4924,26 +4924,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.12.tgz", - "integrity": "sha512-AzMgnGYfEg+Z1ycJh8MEp44x1DfjRijKCVYNaPFT6o+TjN/9GBaAkV4ydxmQzMEMnnnh/0E9YeHO+ivBVSkNog==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.13.tgz", + "integrity": "sha512-rRaHPVYuOrpLzk/KGemN/ePengYLL0Vly/Shb+nxcbDnKiraMELWsAkQEvEa/WbPa5sdpRD2+cJTqPcif4Du4g==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/components": "7.6.12", - "@storybook/csf-plugin": "7.6.12", - "@storybook/csf-tools": "7.6.12", + "@storybook/blocks": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/components": "7.6.13", + "@storybook/csf-plugin": "7.6.13", + "@storybook/csf-tools": "7.6.13", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.6.12", - "@storybook/postinstall": "7.6.12", - "@storybook/preview-api": "7.6.12", - "@storybook/react-dom-shim": "7.6.12", - "@storybook/theming": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/node-logger": "7.6.13", + "@storybook/postinstall": "7.6.13", + "@storybook/preview-api": "7.6.13", + "@storybook/react-dom-shim": "7.6.13", + "@storybook/theming": "7.6.13", + "@storybook/types": "7.6.13", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4959,17 +4959,17 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4999,24 +4999,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.12.tgz", - "integrity": "sha512-Pl6n+19QC/T+cuU8DZjCwILXVxrdRTivNxPOiy8SEX+jjR4H0uAfXC9+RXCPjRFn64t4j1K7oIyoNokEn39cNw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.13.tgz", + "integrity": "sha512-EuuDLkp3kYuqBJRP5vGge58u0O6NqyrW0+6eg/zxsCi26qncYa/mlSBcniswUJq+cROF+eBAl7K7GNNEmAV3pw==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.6.12", - "@storybook/addon-backgrounds": "7.6.12", - "@storybook/addon-controls": "7.6.12", - "@storybook/addon-docs": "7.6.12", - "@storybook/addon-highlight": "7.6.12", - "@storybook/addon-measure": "7.6.12", - "@storybook/addon-outline": "7.6.12", - "@storybook/addon-toolbars": "7.6.12", - "@storybook/addon-viewport": "7.6.12", - "@storybook/core-common": "7.6.12", - "@storybook/manager-api": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/preview-api": "7.6.12", + "@storybook/addon-actions": "7.6.13", + "@storybook/addon-backgrounds": "7.6.13", + "@storybook/addon-controls": "7.6.13", + "@storybook/addon-docs": "7.6.13", + "@storybook/addon-highlight": "7.6.13", + "@storybook/addon-measure": "7.6.13", + "@storybook/addon-outline": "7.6.13", + "@storybook/addon-toolbars": "7.6.13", + "@storybook/addon-viewport": "7.6.13", + "@storybook/core-common": "7.6.13", + "@storybook/manager-api": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/preview-api": "7.6.13", "ts-dedent": "^2.0.0" }, "funding": { @@ -5029,17 +5029,17 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5055,9 +5055,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.12.tgz", - "integrity": "sha512-rWNEyBhwncXEDd9z7l67BLBIPqn0SRI/CJpZvCSF5KLWrVaoSEDF8INavmbikd1JBMcajJ28Ur6NsGj+eJjJiw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.13.tgz", + "integrity": "sha512-hoU0MgrTwYSLusCYpVZLwrT3cpkOOyypkve1BZEXCjWzYYMlAhAmED4VilC6nT/jnRtqLaW1gsCy1Gj5IS+I7w==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5068,9 +5068,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.12.tgz", - "integrity": "sha512-rGwPYpZAANPrf2GaNi5t9zAjLF8PgzKizyBPltIXUtplxDg88ziXlDA1dhsuGDs4Kf0oXECyAHPw79JjkJQziA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.13.tgz", + "integrity": "sha512-hQVaJcp9i53Y+ukuRz5Y32Do+eR1nC6vpfoRnuUgPgVYYv+7D8XHydR/wml5GEQKy6MsGHLzFVLy1SmmQHeASg==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.2", @@ -5091,9 +5091,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.12.tgz", - "integrity": "sha512-K3aKErr84V0eVK7t+wco5cSYDdeotwoXi4e7VLSa2cdUz0wanOb4R7v3kf6vxucUyp05Lv+yHkz9zsbwuezepA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.13.tgz", + "integrity": "sha512-WdxEicIy3x79kgP93HMf9hgbbW3h7xo3eNzrTaMsTeoXaolXWN9qdpusm8Cc8vDIP5JMd+gkwi2u563KjggXVQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5105,9 +5105,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.12.tgz", - "integrity": "sha512-r6eO4EKh+zwGUNjxe8v/44BhyV+JD3Dl9GYMutsFqbwYsoWHJaZmzHuyqeFBXwx2MEoixdWdIzNMP71+srQqvw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.13.tgz", + "integrity": "sha512-e7t8poUYA7RutU3vdWc955cIKuCFElmwt36umuwBta9Yt4ou1GElpraAo0SwzT69ZXgx/J0S6lIbJ8uN98Ze0g==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5119,9 +5119,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.12.tgz", - "integrity": "sha512-TSwq8xO7fmS6GRTgJJa31OBzm+5zlgDYK2Q42jxFo/Vm10uMzCpjYJE6mIHpUDyjyBVQk6xxMMEcvo6no2eAWg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.13.tgz", + "integrity": "sha512-wt5pfbWMzljbZAFcQPxIztREDVaH8rMogesjddCe9JGMx0SY0tykmmyBG6ppAf+2NlAK4pGzhY0fDFPBcDvYPg==", "dev": true, "funding": { "type": "opencollective", @@ -5129,9 +5129,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.12.tgz", - "integrity": "sha512-51zsBeoaEzq699SKDCe+GG/2PDAJKKJtpjqxIc4lDskogaCJSb3Ie8LyookHAKYgbi2qealVgK8zaP27KUj3Pg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.13.tgz", + "integrity": "sha512-yqUCWzp3IY/tlS488k9iAXMgOWW/rTswbVgGEh8alUg38QjbUnh4lKFLtd9Va8Fd1zNeVd9nkpCMTSsGy85uMg==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -5324,13 +5324,13 @@ "dev": true }, "node_modules/@storybook/api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.12.tgz", - "integrity": "sha512-ePKOszvvpZ7gcprUHp1lM5wbrSngFLYbHeFnm6J1BWewEQ+TdWujlVxRJJs+HYEL1vW+se3IR2nvJVM1Sq7vLQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.13.tgz", + "integrity": "sha512-Q3l1XLAppg991VqIIuH0OUL/YHfwBPr1MrUJWtOsRuuPOr1gYdANaTpDA09OHerC/rmzlUvSEKNCAgW0bVrcZg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.12", - "@storybook/manager-api": "7.6.12" + "@storybook/client-logger": "7.6.13", + "@storybook/manager-api": "7.6.13" }, "funding": { "type": "opencollective", @@ -5338,22 +5338,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.12.tgz", - "integrity": "sha512-T47KOAjgZmhV+Ov59A70inE5edInh1Jh5w/5J5cjpk9a2p4uhd337SnK4B8J5YLhcM2lbKRWJjzIJ0nDZQTdnQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.13.tgz", + "integrity": "sha512-wjiwGHLIDfzgonxQaEOlQBR8H7U4hjOEkvkT6leaA3SXJaBgoZBD8zTqWqMX1Gl6vUmmRqMzq/nTSVai8Y1vVQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/components": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/components": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "7.6.12", + "@storybook/docs-tools": "7.6.13", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.12", - "@storybook/preview-api": "7.6.12", - "@storybook/theming": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/manager-api": "7.6.13", + "@storybook/preview-api": "7.6.13", + "@storybook/theming": "7.6.13", + "@storybook/types": "7.6.13", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -5377,17 +5377,17 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5403,15 +5403,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.12.tgz", - "integrity": "sha512-AJFrtBj0R11OFwwz+2j+ivRzttWXT6LesSGoLnxown24EV9uLQoHtGb7GOA2GyzY5wjUJS9gQBPGHXjvQEfLJA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.13.tgz", + "integrity": "sha512-RsZO7W33fYD5QKr//6DQ2+H0tdOt6BJ9I7U+3k5C8qCCoIW1CwYz/qbX+IB403k1yKKyw+Xau3F3tCVxR3j9Bw==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.6.12", - "@storybook/manager": "7.6.12", - "@storybook/node-logger": "7.6.12", + "@storybook/core-common": "7.6.13", + "@storybook/manager": "7.6.13", + "@storybook/node-logger": "7.6.13", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -5445,19 +5445,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.12.tgz", - "integrity": "sha512-VJIn+XYVVhdJHHMEtYDnEyQQU4fRupugSFpP9XLYTRYgXPN9PSVey4vI/IyuHcHYINPba39UY2+8PW+5NgShxQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.13.tgz", + "integrity": "sha512-BpOUP1QPS7NeTTTs5i2gUmORtjigo2S6B57Pb08vDyy1/1bd+NpkLvHvdc/TxBBc57FI4TS/7m8NtwIYHtwkcQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-common": "7.6.12", - "@storybook/csf-plugin": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/preview": "7.6.12", - "@storybook/preview-api": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-common": "7.6.13", + "@storybook/csf-plugin": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/preview": "7.6.13", + "@storybook/preview-api": "7.6.13", + "@storybook/types": "7.6.13", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -5490,17 +5490,17 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5546,13 +5546,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.12.tgz", - "integrity": "sha512-TaPl5Y3lOoVi5kTLgKNRX8xh2sUPekH0Id1l4Ymw+lpgriEY6r60bmkZLysLG1GhlskpQ/da2+S2ap2ht8P2TQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.13.tgz", + "integrity": "sha512-AiplFJXPjgHA62xqZFq7SwCS+o8bFrYLPM9I8yNY+8jhAi9N3Yig+h2P0jOXxLKicwrCXa5ZJ7PZK05M1r6YqA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5564,23 +5564,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.12.tgz", - "integrity": "sha512-x4sG1oIVERxp+WnWUexVlgaJCFmML0kGi7a5qfx7z4vHMxCV/WG7g1q7mPS/kqStCGEiQdTciCqOEFqlMh9MLw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.13.tgz", + "integrity": "sha512-9JBFckdWeJKU1xV3G3+L/kjuwNZm2RAUxac4GgVBxXACF0QU0nXml8Ss5ZA5nss+qCnn/gdRYRDNdfJ28L0/mw==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.6.12", - "@storybook/core-common": "7.6.12", - "@storybook/core-events": "7.6.12", - "@storybook/core-server": "7.6.12", - "@storybook/csf-tools": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/telemetry": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/codemod": "7.6.13", + "@storybook/core-common": "7.6.13", + "@storybook/core-events": "7.6.13", + "@storybook/core-server": "7.6.13", + "@storybook/csf-tools": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/telemetry": "7.6.13", + "@storybook/types": "7.6.13", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5710,9 +5710,9 @@ } }, "node_modules/@storybook/cli/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5743,9 +5743,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.12.tgz", - "integrity": "sha512-hiRv6dXsOttMPqm9SxEuFoAtDe9rs7TUS8XcO5rmJ9BgfwBJsYlHzAxXkazxmvlyZtKL7gMx6m8OYbCdZgUqtA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.13.tgz", + "integrity": "sha512-uo51MsUG1Fbi1IA+me9tewF1mFiaYuyR0IMeBmaU3Z3CtjEUdOekmvRQ9ckoFn+BbKtxSipTodiR4HmIZDta3g==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5756,18 +5756,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.12.tgz", - "integrity": "sha512-4EI4Ah1cvz6gFkXOS/LGf23oN8LO6ABGpWwPQoMHpIV3wUkFWBwrKFUe/UAQZGptnM0VZRYx4grS82Hluw4XJA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.13.tgz", + "integrity": "sha512-QjjVAxT/NnCN4hJ5TLf2wQtddfwn9r0yaFMxLb3gGsjW/ZVzmp4xOS5KeqUUXXbb1wjYWv56Egamkrs/qoUTyA==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/csf-tools": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/types": "7.6.13", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -5797,18 +5797,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.12.tgz", - "integrity": "sha512-PCijPqmlZd7qyTzNr+vD0Kf8sAI9vWJIaxbSjXwn/De3e63m4fsEcIf8FaUT8cMZ46AWZvaxaxX5km2u0UISJQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.13.tgz", + "integrity": "sha512-IkUermvJFOCooJwlR1mamnByjSGukKjkmFGue6HWc64cZ+/DTwgHzh9O/XV82fnfTTMJ2CjOFYlYVr3brDqTVg==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.6.12", + "@storybook/client-logger": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/theming": "7.6.13", + "@storybook/types": "7.6.13", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5823,13 +5823,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.12.tgz", - "integrity": "sha512-VzVp32tMZsCzM4UIqfvCoJF7N9mBf6dsAxh1/ZgViy75Fht78pGo3JwZXW8osMbFSRpmWD7fxlUM5S7TQOYQug==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.13.tgz", + "integrity": "sha512-6tzWZ5u/8YXSthVuBqDHGABqALsiv/h+IiYaeg+UPWgz7sYwyj/IoFlHN1/du/h1wV5bc8GZyPcAIrOHxF60rQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.12", - "@storybook/preview-api": "7.6.12" + "@storybook/client-logger": "7.6.13", + "@storybook/preview-api": "7.6.13" }, "funding": { "type": "opencollective", @@ -5837,17 +5837,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5863,14 +5863,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.12.tgz", - "integrity": "sha512-kM9YiBBMM2x5v/oylL7gdO1PS4oehgJC21MivS9p5QZ8uuXKtCQ6UQvI3rzaV+1ZzUA4n+I8MyaMrNIQk8KDbw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.13.tgz", + "integrity": "sha512-kCCVDga/66wIWFSluT3acD3/JT3vwV7A9rxG8FZF5K38quU/b37sRXvCw8Yk5HJ4rQhrB76cxVhIOy/ZucaZVw==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/core-events": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/types": "7.6.13", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -5898,9 +5898,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.12.tgz", - "integrity": "sha512-uLcpWEAvatBEubmgCMzWforZbAu1dT9syweWnU3/DNwbeUBq2miP5nG8Y4JL9MDMKWt+7Yv1CSvA8xELdEl54w==", + "version": "18.19.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", + "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6019,9 +6019,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.12.tgz", - "integrity": "sha512-IO4cwk7bBCKH6lLnnIlHO9FwQXt/9CzLUAoZSY9msWsdPppCdKlw8ynJI5YarSNKDBUn8ArIfnRf0Mve0KQr9Q==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.13.tgz", + "integrity": "sha512-hsL6JT273b1RcJBGHpNNLJ1ilzFMT4UCJwwtOpNNQVPBJt0Hn22vxC69/hpqSINrhHRLj3ak8CTtA0ynVjngaQ==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6032,26 +6032,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.12.tgz", - "integrity": "sha512-tjWifKsDnIc8pvbjVyQrOHef70Gcp93Bg3WwuysB8PGk7lcX2RD9zv44HNIyjxdOLSSv66IGKrOldEBL3hab4w==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.13.tgz", + "integrity": "sha512-kcHhCL8XDv4k5QJqBVWOYJ2lwX6orQHnx0N7fvLhJ7IHtUp1YQYn1+ufnGFZBlpNGGvPwz3oX4hmOT1G+PQdlw==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.6.12", - "@storybook/channels": "7.6.12", - "@storybook/core-common": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/builder-manager": "7.6.13", + "@storybook/channels": "7.6.13", + "@storybook/core-common": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.12", + "@storybook/csf-tools": "7.6.13", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/preview-api": "7.6.12", - "@storybook/telemetry": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/manager": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/preview-api": "7.6.13", + "@storybook/telemetry": "7.6.13", + "@storybook/types": "7.6.13", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6085,17 +6085,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6111,9 +6111,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.12.tgz", - "integrity": "sha512-uLcpWEAvatBEubmgCMzWforZbAu1dT9syweWnU3/DNwbeUBq2miP5nG8Y4JL9MDMKWt+7Yv1CSvA8xELdEl54w==", + "version": "18.19.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", + "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6186,9 +6186,9 @@ } }, "node_modules/@storybook/core-server/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6228,12 +6228,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.12.tgz", - "integrity": "sha512-fe/84AyctJcrpH1F/tTBxKrbjv0ilmG3ZTwVcufEiAzupZuYjQ/0P+Pxs8m8VxiGJZZ1pWofFFDbYi+wERjamQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.13.tgz", + "integrity": "sha512-ZTyAao/W8Aob6wT1nC4cTfBjWAT9FN0Y9nzairbvNOiqRkAvk3w/02K4BauESHYMm06QC8Pg0tzS1s+tWJtRRQ==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.6.12", + "@storybook/csf-tools": "7.6.13", "unplugin": "^1.3.1" }, "funding": { @@ -6242,9 +6242,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.12.tgz", - "integrity": "sha512-MdhkYYxSW5I6Jpk34gTkAZsuj9sxe0xdyeUQpNa8CgJxG43F+ehZ6scW/IPjoSG9gCXBUJMekq26UrmbVfsLCQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.13.tgz", + "integrity": "sha512-N0erD3fhbZIDkQpcHlNTLvkpWVVtpiOjY3JO8B5SdBT2uQ8T7aXx7IEM3Q8g1f/BpfjkM15rZl9r4HFtm5E43Q==", "dev": true, "dependencies": { "@babel/generator": "^7.23.0", @@ -6252,7 +6252,7 @@ "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -6283,14 +6283,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.12.tgz", - "integrity": "sha512-nY2lqEDTd/fR/D91ZLlIp+boSuJtkb8DqHW7pECy61rJqzGq4QpepRaWjQDKnGTgPItrsPfTPOu6iXvXNK07Ow==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.13.tgz", + "integrity": "sha512-m3YAyNRQ97vm/rLj48Lgg8jjhbjr+668aADU49S50zjwtvC7H9C0h8PJI3LyE1Owxg2Ld2B6bG5wBv30nPnxZg==", "dev": true, "dependencies": { - "@storybook/core-common": "7.6.12", - "@storybook/preview-api": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/core-common": "7.6.13", + "@storybook/preview-api": "7.6.13", + "@storybook/types": "7.6.13", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -6302,17 +6302,17 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6334,9 +6334,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.12.tgz", - "integrity": "sha512-WMWvswJHGiqJFJb98WQMQfZQhLuVtmci4y/VJGQ/Jnq1nJQs76BCtaeGiHcsYmRaAP1HMI4DbzuTSEgca146xw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.13.tgz", + "integrity": "sha512-f/Qecur8pXSncdmll7dYyP8EZ+IzzReIN8eZF/NHKULfnBkIkRxf+w4LlXBgOwgU36DdsW+VH0OuGMWeeqTUwA==", "dev": true, "funding": { "type": "opencollective", @@ -6344,19 +6344,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.12.tgz", - "integrity": "sha512-XA5KQpY44d6mlqt0AlesZ7fsPpm1PCpoV+nRGFBR0YtF6RdPFvrPyHhlGgLkJC4xSyb2YJmLKn8cERSluAcEgQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.13.tgz", + "integrity": "sha512-D23lbJSmJnVGHwXzKEw3TeUbPZMDP03R5Pp4S73fWHHhSBqjadcGCGRxiFWOyCyGXi4kUg1q4TYSIMw0pHvnlg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.6.12", - "@storybook/theming": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/router": "7.6.13", + "@storybook/theming": "7.6.13", + "@storybook/types": "7.6.13", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6376,9 +6376,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.12.tgz", - "integrity": "sha512-iS44/EjfF6hLecKzICmcpQoB9bmVi4tXx5gVXnbI5ZyziBibRQcg/U191Njl7wY2ScN/RCQOr8lh5k57rI3Prg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.13.tgz", + "integrity": "sha512-Ci/2Gd0+Qd3fX6GWGS1UAa/bTl0uALsEuMuzOO0meKEPEEYZvBFCoeK6lP1ysMnxWxKaDjxNr01JlTpmjfT6ag==", "dev": true, "funding": { "type": "opencollective", @@ -6386,9 +6386,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.12.tgz", - "integrity": "sha512-uR0mDPxLzPaouCNrLp8vID8lATVTOtG7HB6lfjjzMdE3sN6MLmK9n2z2nXjb5DRRxOFWMeE1/4Age1/Ml2tnmA==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.13.tgz", + "integrity": "sha512-6NohciDuEPWSjMrUfhFjawfFUCvR70IDtAjjYhfXlSesyt06fXqbht1VrKhSsRjvwzbhYeiza5Uh/ujvSgxeGg==", "dev": true, "funding": { "type": "opencollective", @@ -6396,9 +6396,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.12.tgz", - "integrity": "sha512-7vbeqQY3X+FCt/ccgCuBmj4rkbQebLHGEBAt8elcX0E2pr7SGW57lWhnasU3jeMaz7tNrkcs0gfl4hyVRWUHDg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.13.tgz", + "integrity": "sha512-XW8+6PRVC/AfdY4Vf67XFNu9bNi5AwyLnLz7v+H4VEv+AnalRDXuszQcT6rUEumDDsDx2uwAhVs19xaQyAJu/w==", "dev": true, "funding": { "type": "opencollective", @@ -6492,9 +6492,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.12.tgz", - "integrity": "sha512-P8eu/s/RQlc/7Yvr260lqNa6rttxIYiPUuHQBu9oCacwkpB3Xep2R/PUY2CifRHqlDhaOINO/Z79oGZl4EBQRQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.13.tgz", + "integrity": "sha512-8nrys2WAFymVjywM4GrqVL1fxTfgjWkONJuH7eBbVE2SmgG87NN4lchG/V+TpkFOTkYnGwJRqUcWSqRBUoHLrg==", "dev": true, "funding": { "type": "opencollective", @@ -6506,12 +6506,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.12.tgz", - "integrity": "sha512-1fqscJbePFJXhapqiv7fAIIqAvouSsdPnqWjJGJrUMR6JBtRYMcrb3MnDeqi9OYnU73r65BrQBPtSzWM8nP0LQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.13.tgz", + "integrity": "sha512-PE912SaViaq3SlheKMz0IW+/MIUmQpxf77YUOb3ZlMvu2KVhdZFsi9xC/3ym67nuVuF1yLELpz4Q/G1Jxlh/sg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.12", + "@storybook/client-logger": "7.6.13", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6521,14 +6521,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.12.tgz", - "integrity": "sha512-eBG3sLb9CZ05pyK2JXBvnaAsxDzbZH57VyhtphhuZmx0DqF/78qIoHs9ebRJpJWV0sL5rtT9vIq8QXpQhDHLWg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.13.tgz", + "integrity": "sha512-G23QTpCd3W83NISTFSFjq5SyePRaQUin7F9KnafJM54cMDya7xi7aPUrlVRc5zi2Gfr8PJ8tTna1C4k3cIrHFw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.12", - "@storybook/core-common": "7.6.12", - "@storybook/csf-tools": "7.6.12", + "@storybook/client-logger": "7.6.13", + "@storybook/core-common": "7.6.13", + "@storybook/csf-tools": "7.6.13", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6607,13 +6607,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.12.tgz", - "integrity": "sha512-P4zoMKlSYbNrWJjQROuz+DZSDEpdf3TUvk203EqBRdElqw2EMHcqZ8+0HGPFfVHpqEj05+B9Mr6R/Z/BURj0lw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.13.tgz", + "integrity": "sha512-Dj+zVF2CVdTrynjSW3Iydajc8EKCQCYNYA3bpkid0LltAIe8mLTkuTBYiI5CgviWmQc55iBrNpF2MA5AzW5Q3Q==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.6.12", + "@storybook/client-logger": "7.6.13", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6627,12 +6627,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.12.tgz", - "integrity": "sha512-Wsbd+NS10/2yMHQ/26rXHflXam0hm2qufTFiHOX6VXZWxij3slRU88Fnwzp+1QSyjXb0qkEr8dOx7aG00+ItVw==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.13.tgz", + "integrity": "sha512-N8HfqhL5uaI69BZx+xLkKi1YIgDp34XeL3uhxii4NfThcY1KJA643Gqk3oLKefiBqBpIRGKN0nA41Fhdvhr7Hw==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", + "@storybook/channels": "7.6.13", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6643,18 +6643,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.12.tgz", - "integrity": "sha512-kPGLXk8iu71XdInOCPeCpZE4uUJYWBveHfSuBYzuJrrR0UPVbpIHGSH/a3CcixSX/01NLPrZ2stc1dfB/hJr6A==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.13.tgz", + "integrity": "sha512-Z5TOcWYVOT/EkWarAB7c4C/UWviKNXtDCebgh/ro/onBEBHD4afP+buJTzbIJcr7V5wSgyRHS2L41Pyd1uomtw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.12", - "@storybook/core-client": "7.6.12", - "@storybook/docs-tools": "7.6.12", + "@storybook/client-logger": "7.6.13", + "@storybook/core-client": "7.6.13", + "@storybook/docs-tools": "7.6.13", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.12", - "@storybook/preview-api": "7.6.12", - "@storybook/types": "7.6.12", + "@storybook/manager-api": "7.6.13", + "@storybook/preview-api": "7.6.13", + "@storybook/types": "7.6.13", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -6670,15 +6670,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.12.tgz", - "integrity": "sha512-kXDIYYBnbvMWXLOIDebqbxgr0GcNrE4Dd8P3UFgKXS5B298vAm5y/FRfTTcldYKoKFed5O3BksgTJT1AQV67Qg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.13.tgz", + "integrity": "sha512-rE1R84/uqvMkYwIju57C+6X81FDu4k9yU9jot9DEScfg3XgTnwAzpKg2YeK+DrSVJCL7z3P/p1/IVaBQBmqLyw==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.6.12", - "@storybook/core-server": "7.6.12", - "@storybook/node-logger": "7.6.12", - "@storybook/web-components": "7.6.12", + "@storybook/builder-vite": "7.6.13", + "@storybook/core-server": "7.6.13", + "@storybook/node-logger": "7.6.13", + "@storybook/web-components": "7.6.13", "magic-string": "^0.30.0" }, "engines": { @@ -6690,17 +6690,17 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.12.tgz", - "integrity": "sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", + "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.12", - "@storybook/client-logger": "7.6.12", - "@storybook/core-events": "7.6.12", + "@storybook/channels": "7.6.13", + "@storybook/client-logger": "7.6.13", + "@storybook/core-events": "7.6.13", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.12", + "@storybook/types": "7.6.13", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -10226,9 +10226,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -11443,9 +11443,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.227.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.227.0.tgz", - "integrity": "sha512-nOygtGKcX/siZK/lFzpfdHEfOkfGcTW7rNroR1Zsz6T/JxSahPALXVt5qVHq/fgvMJuv096BTKbgxN3PzVBaDA==", + "version": "0.228.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.228.0.tgz", + "integrity": "sha512-xPWkzCO07AnS8X+fQFpWm+tJ+C7aeaiVzJ+rSepbkCXUvUJ6l6squEl63axoMcixyH4wLjmypOzq/+zTD0O93w==", "dev": true, "engines": { "node": ">=0.4.0" @@ -17058,12 +17058,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.6.12", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.12.tgz", - "integrity": "sha512-zcH9CwIsE8N4PX3he5vaJ3mTTWGxu7cxJ/ag9oja/k3N5/IvQjRyIU1TLkRVb28BB8gaLyorpnc4C4aLVGy4WQ==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.13.tgz", + "integrity": "sha512-c06c27f1m9OeXUtyA0/pwVLWJo+OD9SDIaTcPtojtwt5QEtSKfhQN+b9fnq/+GXRAHdkPF13AqR0uCXJZ/9Xtw==", "dev": true, "dependencies": { - "@storybook/cli": "7.6.12" + "@storybook/cli": "7.6.13" }, "bin": { "sb": "index.js", @@ -18008,9 +18008,9 @@ } }, "node_modules/ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", "dev": true }, "node_modules/uglify-js": { diff --git a/web/package.json b/web/package.json index 2bf17abda1..b8853f4ea1 100644 --- a/web/package.json +++ b/web/package.json @@ -87,13 +87,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.11", - "@storybook/addon-essentials": "^7.6.12", - "@storybook/addon-links": "^7.6.12", - "@storybook/api": "^7.6.12", + "@storybook/addon-essentials": "^7.6.13", + "@storybook/addon-links": "^7.6.13", + "@storybook/api": "^7.6.13", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.12", - "@storybook/web-components": "^7.6.12", - "@storybook/web-components-vite": "^7.6.12", + "@storybook/manager-api": "^7.6.13", + "@storybook/web-components": "^7.6.13", + "@storybook/web-components-vite": "^7.6.13", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -123,7 +123,7 @@ "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.12", + "storybook": "^7.6.13", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", From 5fe277256730312bfd0f3a34139da10ad23b9155 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 13:24:30 +0100 Subject: [PATCH 034/105] core, web: update translations (#8436) * core, web: update translations Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * exclude lines from generated po file Signed-off-by: Jens Langhammer --------- Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: Jens Langhammer Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> Co-authored-by: Jens Langhammer --- Makefile | 10 +- locale/en/LC_MESSAGES/django.po | 1286 +++++++++++++++---------------- web/xliff/zh-Hans.xlf | 44 +- 3 files changed, 667 insertions(+), 673 deletions(-) diff --git a/Makefile b/Makefile index 73b4319c1b..070ea6d50b 100644 --- a/Makefile +++ b/Makefile @@ -79,7 +79,15 @@ migrate: ## Run the Authentik Django server's migrations i18n-extract: core-i18n-extract web-i18n-extract ## Extract strings that require translation into files to send to a translation service core-i18n-extract: - ak makemessages --ignore web --ignore internal --ignore ${GEN_API_TS} --ignore website -l en + ak makemessages \ + --add-location file \ + --no-obsolete \ + --ignore web \ + --ignore internal \ + --ignore ${GEN_API_TS} \ + --ignore ${GEN_API_GO} \ + --ignore website \ + -l en install: web-install website-install core-install ## Install all requires dependencies for `web`, `website` and `core` diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index ac71b33fe6..19c2426ca9 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-06 00:06+0000\n" +"POT-Creation-Date: 2024-02-07 12:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,32 +18,32 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: authentik/api/schema.py:26 +#: authentik/api/schema.py msgid "Generic API Error" msgstr "" -#: authentik/api/schema.py:34 +#: authentik/api/schema.py msgid "Validation Error" msgstr "" -#: authentik/blueprints/api.py:44 +#: authentik/blueprints/api.py msgid "Blueprint file does not exist" msgstr "" -#: authentik/blueprints/api.py:55 +#: authentik/blueprints/api.py #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "" -#: authentik/blueprints/api.py:60 +#: authentik/blueprints/api.py msgid "Either path or content must be set." msgstr "" -#: authentik/blueprints/models.py:31 +#: authentik/blueprints/models.py msgid "Managed by authentik" msgstr "" -#: authentik/blueprints/models.py:33 +#: authentik/blueprints/models.py msgid "" "Objects that are managed by authentik. These objects are created and updated " "automatically. This flag only indicates that an object can be overwritten by " @@ -51,263 +51,262 @@ msgid "" "to be overwritten in a later update." msgstr "" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py msgid "Blueprint Instance" msgstr "" -#: authentik/blueprints/models.py:114 +#: authentik/blueprints/models.py msgid "Blueprint Instances" msgstr "" -#: authentik/blueprints/v1/exporter.py:62 +#: authentik/blueprints/v1/exporter.py #, python-format msgid "authentik Export - %(date)s" msgstr "" -#: authentik/blueprints/v1/tasks.py:146 authentik/crypto/tasks.py:88 +#: authentik/blueprints/v1/tasks.py authentik/crypto/tasks.py #, python-format msgid "Successfully imported %(count)d files." msgstr "" -#: authentik/brands/models.py:23 +#: authentik/brands/models.py msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" msgstr "" -#: authentik/brands/models.py:59 +#: authentik/brands/models.py msgid "Web Certificate used by the authentik Core webserver." msgstr "" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py msgid "Brand" msgstr "" -#: authentik/brands/models.py:86 +#: authentik/brands/models.py msgid "Brands" msgstr "" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py msgid "SAML Provider from Metadata" msgstr "" -#: authentik/core/api/providers.py:124 +#: authentik/core/api/providers.py msgid "Create a SAML Provider by importing its Metadata." msgstr "" -#: authentik/core/api/users.py:162 +#: authentik/core/api/users.py msgid "No leading or trailing slashes allowed." msgstr "" -#: authentik/core/api/users.py:165 +#: authentik/core/api/users.py msgid "No empty segments in user path allowed." msgstr "" -#: authentik/core/models.py:94 +#: authentik/core/models.py msgid "name" msgstr "" -#: authentik/core/models.py:96 +#: authentik/core/models.py msgid "Users added to this group will be superusers." msgstr "" -#: authentik/core/models.py:170 +#: authentik/core/models.py msgid "Group" msgstr "" -#: authentik/core/models.py:171 +#: authentik/core/models.py msgid "Groups" msgstr "" -#: authentik/core/models.py:202 +#: authentik/core/models.py msgid "User's display name." msgstr "" -#: authentik/core/models.py:298 authentik/providers/oauth2/models.py:296 +#: authentik/core/models.py authentik/providers/oauth2/models.py msgid "User" msgstr "" -#: authentik/core/models.py:299 +#: authentik/core/models.py msgid "Users" msgstr "" -#: authentik/core/models.py:301 -#: authentik/stages/email/templates/email/password_reset.html:28 +#: authentik/core/models.py +#: authentik/stages/email/templates/email/password_reset.html msgid "Reset Password" msgstr "" -#: authentik/core/models.py:302 +#: authentik/core/models.py msgid "Can impersonate other users" msgstr "" -#: authentik/core/models.py:303 authentik/rbac/models.py:55 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can assign permissions to users" msgstr "" -#: authentik/core/models.py:304 authentik/rbac/models.py:56 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can unassign permissions from users" msgstr "" -#: authentik/core/models.py:305 +#: authentik/core/models.py msgid "Can preview user data sent to providers" msgstr "" -#: authentik/core/models.py:306 +#: authentik/core/models.py msgid "View applications the user has access to" msgstr "" -#: authentik/core/models.py:328 +#: authentik/core/models.py msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." msgstr "" -#: authentik/core/models.py:338 +#: authentik/core/models.py msgid "Flow used when authorizing this provider." msgstr "" -#: authentik/core/models.py:350 +#: authentik/core/models.py msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." msgstr "" -#: authentik/core/models.py:405 +#: authentik/core/models.py msgid "Application's display Name." msgstr "" -#: authentik/core/models.py:406 +#: authentik/core/models.py msgid "Internal application name, used in URLs." msgstr "" -#: authentik/core/models.py:418 +#: authentik/core/models.py msgid "Open launch URL in a new browser tab or window." msgstr "" -#: authentik/core/models.py:482 +#: authentik/core/models.py msgid "Application" msgstr "" -#: authentik/core/models.py:483 +#: authentik/core/models.py msgid "Applications" msgstr "" -#: authentik/core/models.py:489 +#: authentik/core/models.py msgid "Use the source-specific identifier" msgstr "" -#: authentik/core/models.py:491 +#: authentik/core/models.py msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." msgstr "" -#: authentik/core/models.py:495 +#: authentik/core/models.py msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." msgstr "" -#: authentik/core/models.py:498 +#: authentik/core/models.py msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." msgstr "" -#: authentik/core/models.py:502 +#: authentik/core/models.py msgid "" "Use the user's username, but deny enrollment when the username already " "exists." msgstr "" -#: authentik/core/models.py:509 +#: authentik/core/models.py msgid "Source's display Name." msgstr "" -#: authentik/core/models.py:510 +#: authentik/core/models.py msgid "Internal source name, used in URLs." msgstr "" -#: authentik/core/models.py:529 +#: authentik/core/models.py msgid "Flow to use when authenticating existing users." msgstr "" -#: authentik/core/models.py:538 +#: authentik/core/models.py msgid "Flow to use when enrolling new users." msgstr "" -#: authentik/core/models.py:546 +#: authentik/core/models.py msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." msgstr "" -#: authentik/core/models.py:718 +#: authentik/core/models.py msgid "Token" msgstr "" -#: authentik/core/models.py:719 +#: authentik/core/models.py msgid "Tokens" msgstr "" -#: authentik/core/models.py:724 +#: authentik/core/models.py msgid "View token's key" msgstr "" -#: authentik/core/models.py:760 +#: authentik/core/models.py msgid "Property Mapping" msgstr "" -#: authentik/core/models.py:761 +#: authentik/core/models.py msgid "Property Mappings" msgstr "" -#: authentik/core/models.py:798 +#: authentik/core/models.py msgid "Authenticated Session" msgstr "" -#: authentik/core/models.py:799 +#: authentik/core/models.py msgid "Authenticated Sessions" msgstr "" -#: authentik/core/sources/flow_manager.py:191 +#: authentik/core/sources/flow_manager.py #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate " "with the source you've previously signed up with." msgstr "" -#: authentik/core/sources/flow_manager.py:243 +#: authentik/core/sources/flow_manager.py msgid "Configured flow does not exist." msgstr "" -#: authentik/core/sources/flow_manager.py:273 -#: authentik/core/sources/flow_manager.py:325 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "" -#: authentik/core/sources/flow_manager.py:297 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully linked %(source)s!" msgstr "" -#: authentik/core/sources/flow_manager.py:316 +#: authentik/core/sources/flow_manager.py msgid "Source is not configured for enrollment." msgstr "" -#: authentik/core/templates/if/end_session.html:7 +#: authentik/core/templates/if/end_session.html msgid "End session" msgstr "" -#: authentik/core/templates/if/end_session.html:11 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" "You've logged out of %(application)s.\n" msgstr "" -#: authentik/core/templates/if/end_session.html:19 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -317,11 +316,11 @@ msgid "" " " msgstr "" -#: authentik/core/templates/if/end_session.html:25 +#: authentik/core/templates/if/end_session.html msgid "Go back to overview" msgstr "" -#: authentik/core/templates/if/end_session.html:29 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -329,7 +328,7 @@ msgid "" " " msgstr "" -#: authentik/core/templates/if/end_session.html:36 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -337,361 +336,355 @@ msgid "" " " msgstr "" -#: authentik/core/templates/if/error.html:18 +#: authentik/core/templates/if/error.html msgid "Go home" msgstr "" -#: authentik/core/templates/login/base_full.html:75 +#: authentik/core/templates/login/base_full.html msgid "Powered by authentik" msgstr "" -#: authentik/core/views/apps.py:54 -#: authentik/providers/oauth2/views/authorize.py:435 -#: authentik/providers/oauth2/views/device_init.py:71 -#: authentik/providers/saml/views/sso.py:71 +#: authentik/core/views/apps.py authentik/providers/oauth2/views/authorize.py +#: authentik/providers/oauth2/views/device_init.py +#: authentik/providers/saml/views/sso.py #, python-format msgid "You're about to sign into %(application)s." msgstr "" -#: authentik/crypto/api.py:180 +#: authentik/crypto/api.py msgid "Subject-alt name" msgstr "" -#: authentik/crypto/models.py:31 +#: authentik/crypto/models.py msgid "PEM-encoded Certificate data" msgstr "" -#: authentik/crypto/models.py:34 +#: authentik/crypto/models.py msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." msgstr "" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py msgid "Certificate-Key Pair" msgstr "" -#: authentik/crypto/models.py:103 +#: authentik/crypto/models.py msgid "Certificate-Key Pairs" msgstr "" -#: authentik/enterprise/api.py:34 +#: authentik/enterprise/api.py msgid "Enterprise is required to create/update this object." msgstr "" -#: authentik/enterprise/models.py:183 +#: authentik/enterprise/models.py msgid "License" msgstr "" -#: authentik/enterprise/models.py:184 +#: authentik/enterprise/models.py msgid "Licenses" msgstr "" -#: authentik/enterprise/models.py:206 +#: authentik/enterprise/models.py msgid "License Usage" msgstr "" -#: authentik/enterprise/models.py:207 +#: authentik/enterprise/models.py msgid "License Usage Records" msgstr "" -#: authentik/enterprise/policy.py:19 +#: authentik/enterprise/policy.py msgid "Enterprise required to access this feature." msgstr "" -#: authentik/enterprise/policy.py:21 +#: authentik/enterprise/policy.py msgid "Feature only accessible for internal users." msgstr "" -#: authentik/enterprise/providers/rac/models.py:49 -#: authentik/stages/user_login/models.py:39 +#: authentik/enterprise/providers/rac/models.py +#: authentik/stages/user_login/models.py msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Provider" msgstr "" -#: authentik/enterprise/providers/rac/models.py:73 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Providers" msgstr "" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoint" msgstr "" -#: authentik/enterprise/providers/rac/models.py:102 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoints" msgstr "" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mapping" msgstr "" -#: authentik/enterprise/providers/rac/models.py:124 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mappings" msgstr "" -#: authentik/enterprise/providers/rac/views.py:109 +#: authentik/enterprise/providers/rac/views.py msgid "Maximum connection limit reached." msgstr "" -#: authentik/enterprise/providers/rac/views.py:113 +#: authentik/enterprise/providers/rac/views.py msgid "(You are already connected in another tab/window)" msgstr "" -#: authentik/events/api/tasks.py:101 +#: authentik/events/api/tasks.py #, python-format msgid "Successfully started task %(name)s." msgstr "" -#: authentik/events/models.py:305 +#: authentik/events/models.py msgid "Event" msgstr "" -#: authentik/events/models.py:306 +#: authentik/events/models.py msgid "Events" msgstr "" -#: authentik/events/models.py:312 +#: authentik/events/models.py msgid "authentik inbuilt notifications" msgstr "" -#: authentik/events/models.py:313 +#: authentik/events/models.py msgid "Generic Webhook" msgstr "" -#: authentik/events/models.py:314 +#: authentik/events/models.py msgid "Slack Webhook (Slack/Discord)" msgstr "" -#: authentik/events/models.py:315 +#: authentik/events/models.py msgid "Email" msgstr "" -#: authentik/events/models.py:333 +#: authentik/events/models.py msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." msgstr "" -#: authentik/events/models.py:398 +#: authentik/events/models.py msgid "Severity" msgstr "" -#: authentik/events/models.py:403 +#: authentik/events/models.py msgid "Dispatched for user" msgstr "" -#: authentik/events/models.py:412 +#: authentik/events/models.py msgid "Event user" msgstr "" -#: authentik/events/models.py:506 +#: authentik/events/models.py msgid "Notification Transport" msgstr "" -#: authentik/events/models.py:507 +#: authentik/events/models.py msgid "Notification Transports" msgstr "" -#: authentik/events/models.py:513 +#: authentik/events/models.py msgid "Notice" msgstr "" -#: authentik/events/models.py:514 +#: authentik/events/models.py msgid "Warning" msgstr "" -#: authentik/events/models.py:515 +#: authentik/events/models.py msgid "Alert" msgstr "" -#: authentik/events/models.py:540 +#: authentik/events/models.py msgid "Notification" msgstr "" -#: authentik/events/models.py:541 +#: authentik/events/models.py msgid "Notifications" msgstr "" -#: authentik/events/models.py:551 +#: authentik/events/models.py msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." msgstr "" -#: authentik/events/models.py:559 +#: authentik/events/models.py msgid "Controls which severity level the created notifications will have." msgstr "" -#: authentik/events/models.py:564 +#: authentik/events/models.py msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." msgstr "" -#: authentik/events/models.py:582 +#: authentik/events/models.py msgid "Notification Rule" msgstr "" -#: authentik/events/models.py:583 +#: authentik/events/models.py msgid "Notification Rules" msgstr "" -#: authentik/events/models.py:603 +#: authentik/events/models.py msgid "Webhook Mapping" msgstr "" -#: authentik/events/models.py:604 +#: authentik/events/models.py msgid "Webhook Mappings" msgstr "" -#: authentik/events/models.py:669 +#: authentik/events/models.py msgid "Run task" msgstr "" -#: authentik/events/models.py:670 +#: authentik/events/models.py msgid "System Task" msgstr "" -#: authentik/events/models.py:671 +#: authentik/events/models.py msgid "System Tasks" msgstr "" -#: authentik/events/system_tasks.py:127 +#: authentik/events/system_tasks.py msgid "Task has not been run yet." msgstr "" -#: authentik/flows/api/flows.py:297 +#: authentik/flows/api/flows.py #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "" -#: authentik/flows/api/flows_diagram.py:69 -#: authentik/flows/api/flows_diagram.py:95 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Policy (%(type)s)" msgstr "" -#: authentik/flows/api/flows_diagram.py:72 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Binding %(order)d" msgstr "" -#: authentik/flows/api/flows_diagram.py:119 +#: authentik/flows/api/flows_diagram.py msgid "Policy passed" msgstr "" -#: authentik/flows/api/flows_diagram.py:123 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Stage (%(type)s)" msgstr "" -#: authentik/flows/api/flows_diagram.py:147 -#: authentik/flows/api/flows_diagram.py:207 +#: authentik/flows/api/flows_diagram.py msgid "Policy denied" msgstr "" -#: authentik/flows/api/flows_diagram.py:157 -#: authentik/flows/api/flows_diagram.py:169 -#: authentik/flows/api/flows_diagram.py:206 -#: authentik/flows/api/flows_diagram.py:228 +#: authentik/flows/api/flows_diagram.py msgid "End of the flow" msgstr "" -#: authentik/flows/api/flows_diagram.py:170 +#: authentik/flows/api/flows_diagram.py msgid "Requirement not fulfilled" msgstr "" -#: authentik/flows/api/flows_diagram.py:178 +#: authentik/flows/api/flows_diagram.py msgid "Flow authentication requirement" msgstr "" -#: authentik/flows/api/flows_diagram.py:184 +#: authentik/flows/api/flows_diagram.py msgid "Requirement fulfilled" msgstr "" -#: authentik/flows/api/flows_diagram.py:197 +#: authentik/flows/api/flows_diagram.py msgid "Pre-flow policies" msgstr "" -#: authentik/flows/api/flows_diagram.py:215 authentik/flows/models.py:195 +#: authentik/flows/api/flows_diagram.py authentik/flows/models.py msgid "Flow" msgstr "" -#: authentik/flows/exceptions.py:20 +#: authentik/flows/exceptions.py msgid "Flow does not apply to current user." msgstr "" -#: authentik/flows/models.py:116 +#: authentik/flows/models.py #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "" -#: authentik/flows/models.py:131 +#: authentik/flows/models.py msgid "Visible in the URL." msgstr "" -#: authentik/flows/models.py:133 +#: authentik/flows/models.py msgid "Shown as the Title in Flow pages." msgstr "" -#: authentik/flows/models.py:140 +#: authentik/flows/models.py msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." msgstr "" -#: authentik/flows/models.py:149 +#: authentik/flows/models.py msgid "Background shown during execution" msgstr "" -#: authentik/flows/models.py:156 +#: authentik/flows/models.py msgid "" "Enable compatibility mode, increases compatibility with password managers on " "mobile devices." msgstr "" -#: authentik/flows/models.py:164 +#: authentik/flows/models.py msgid "Configure what should happen when a flow denies access to a user." msgstr "" -#: authentik/flows/models.py:170 +#: authentik/flows/models.py msgid "Required level of authentication and authorization to access a flow." msgstr "" -#: authentik/flows/models.py:196 +#: authentik/flows/models.py msgid "Flows" msgstr "" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py msgid "Can export a Flow" msgstr "" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py msgid "Can inspect a Flow's execution" msgstr "" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py msgid "View Flow's cache metrics" msgstr "" -#: authentik/flows/models.py:202 +#: authentik/flows/models.py msgid "Clear Flow's cache metrics" msgstr "" -#: authentik/flows/models.py:218 +#: authentik/flows/models.py msgid "Evaluate policies during the Flow planning process." msgstr "" -#: authentik/flows/models.py:222 +#: authentik/flows/models.py msgid "Evaluate policies when the Stage is present to the user." msgstr "" -#: authentik/flows/models.py:229 +#: authentik/flows/models.py msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -699,332 +692,331 @@ msgid "" "RESTART_WITH_CONTEXT restarts the flow while keeping the current context." msgstr "" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py msgid "Flow Stage Binding" msgstr "" -#: authentik/flows/models.py:253 +#: authentik/flows/models.py msgid "Flow Stage Bindings" msgstr "" -#: authentik/flows/models.py:268 +#: authentik/flows/models.py msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." msgstr "" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py msgid "Flow Token" msgstr "" -#: authentik/flows/models.py:309 +#: authentik/flows/models.py msgid "Flow Tokens" msgstr "" -#: authentik/lib/utils/time.py:28 +#: authentik/lib/utils/time.py #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "" -#: authentik/lib/validators.py:17 +#: authentik/lib/validators.py #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "" -#: authentik/outposts/api/service_connections.py:128 +#: authentik/outposts/api/service_connections.py msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "" -#: authentik/outposts/api/service_connections.py:136 +#: authentik/outposts/api/service_connections.py msgid "Invalid kubeconfig" msgstr "" -#: authentik/outposts/models.py:124 +#: authentik/outposts/models.py msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" msgstr "" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py msgid "Outpost Service-Connection" msgstr "" -#: authentik/outposts/models.py:155 +#: authentik/outposts/models.py msgid "Outpost Service-Connections" msgstr "" -#: authentik/outposts/models.py:163 +#: authentik/outposts/models.py msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." msgstr "" -#: authentik/outposts/models.py:175 +#: authentik/outposts/models.py msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." msgstr "" -#: authentik/outposts/models.py:187 +#: authentik/outposts/models.py msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." msgstr "" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py msgid "Docker Service-Connection" msgstr "" -#: authentik/outposts/models.py:206 +#: authentik/outposts/models.py msgid "Docker Service-Connections" msgstr "" -#: authentik/outposts/models.py:214 +#: authentik/outposts/models.py msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." msgstr "" -#: authentik/outposts/models.py:220 +#: authentik/outposts/models.py msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connection" msgstr "" -#: authentik/outposts/models.py:238 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connections" msgstr "" -#: authentik/outposts/models.py:254 +#: authentik/outposts/models.py msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave " "empty if authentik should not handle the deployment." msgstr "" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py msgid "Outpost" msgstr "" -#: authentik/outposts/models.py:422 +#: authentik/outposts/models.py msgid "Outposts" msgstr "" -#: authentik/policies/denied.py:25 +#: authentik/policies/denied.py msgid "Access denied" msgstr "" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py msgid "Dummy Policy" msgstr "" -#: authentik/policies/dummy/models.py:46 +#: authentik/policies/dummy/models.py msgid "Dummy Policies" msgstr "" -#: authentik/policies/event_matcher/api.py:21 -#: authentik/policies/event_matcher/models.py:57 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "" -#: authentik/policies/event_matcher/api.py:30 -#: authentik/policies/event_matcher/models.py:65 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." msgstr "" -#: authentik/policies/event_matcher/api.py:43 +#: authentik/policies/event_matcher/api.py msgid "At least one criteria must be set." msgstr "" -#: authentik/policies/event_matcher/models.py:49 +#: authentik/policies/event_matcher/models.py msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "" -#: authentik/policies/event_matcher/models.py:74 +#: authentik/policies/event_matcher/models.py msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policy" msgstr "" -#: authentik/policies/event_matcher/models.py:145 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policies" msgstr "" -#: authentik/policies/expiry/models.py:46 +#: authentik/policies/expiry/models.py #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "" -#: authentik/policies/expiry/models.py:50 +#: authentik/policies/expiry/models.py msgid "Password has expired." msgstr "" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policy" msgstr "" -#: authentik/policies/expiry/models.py:55 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policies" msgstr "" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py msgid "Expression Policy" msgstr "" -#: authentik/policies/expression/models.py:42 +#: authentik/policies/expression/models.py msgid "Expression Policies" msgstr "" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py msgid "all, all policies must pass" msgstr "" -#: authentik/policies/models.py:24 +#: authentik/policies/models.py msgid "any, any policy must pass" msgstr "" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py msgid "Policy Binding Model" msgstr "" -#: authentik/policies/models.py:48 +#: authentik/policies/models.py msgid "Policy Binding Models" msgstr "" -#: authentik/policies/models.py:87 +#: authentik/policies/models.py msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "" -#: authentik/policies/models.py:90 +#: authentik/policies/models.py msgid "Timeout after which Policy execution is terminated." msgstr "" -#: authentik/policies/models.py:93 +#: authentik/policies/models.py msgid "Result if the Policy execution fails." msgstr "" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py msgid "Policy Binding" msgstr "" -#: authentik/policies/models.py:147 +#: authentik/policies/models.py msgid "Policy Bindings" msgstr "" -#: authentik/policies/models.py:168 +#: authentik/policies/models.py msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." msgstr "" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py msgid "Policy" msgstr "" -#: authentik/policies/models.py:191 +#: authentik/policies/models.py msgid "Policies" msgstr "" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py msgid "View Policy's cache metrics" msgstr "" -#: authentik/policies/models.py:195 +#: authentik/policies/models.py msgid "Clear Policy's cache metrics" msgstr "" -#: authentik/policies/password/models.py:28 +#: authentik/policies/password/models.py msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "" -#: authentik/policies/password/models.py:45 +#: authentik/policies/password/models.py msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "" -#: authentik/policies/password/models.py:50 +#: authentik/policies/password/models.py msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "" -#: authentik/policies/password/models.py:73 +#: authentik/policies/password/models.py msgid "Password not set in context" msgstr "" -#: authentik/policies/password/models.py:135 +#: authentik/policies/password/models.py #, python-format msgid "Password exists on %(count)d online lists." msgstr "" -#: authentik/policies/password/models.py:155 +#: authentik/policies/password/models.py msgid "Password is too weak." msgstr "" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py msgid "Password Policy" msgstr "" -#: authentik/policies/password/models.py:164 +#: authentik/policies/password/models.py msgid "Password Policies" msgstr "" -#: authentik/policies/reputation/api.py:19 +#: authentik/policies/reputation/api.py msgid "Either IP or Username must be checked" msgstr "" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py msgid "Reputation Policy" msgstr "" -#: authentik/policies/reputation/models.py:69 +#: authentik/policies/reputation/models.py msgid "Reputation Policies" msgstr "" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py msgid "Reputation Score" msgstr "" -#: authentik/policies/reputation/models.py:98 +#: authentik/policies/reputation/models.py msgid "Reputation Scores" msgstr "" -#: authentik/policies/templates/policies/denied.html:7 -#: authentik/policies/templates/policies/denied.html:11 +#: authentik/policies/templates/policies/denied.html msgid "Permission denied" msgstr "" -#: authentik/policies/templates/policies/denied.html:21 +#: authentik/policies/templates/policies/denied.html msgid "User's avatar" msgstr "" -#: authentik/policies/templates/policies/denied.html:25 +#: authentik/policies/templates/policies/denied.html msgid "Not you?" msgstr "" -#: authentik/policies/templates/policies/denied.html:33 +#: authentik/policies/templates/policies/denied.html msgid "Request has been denied." msgstr "" -#: authentik/policies/templates/policies/denied.html:44 +#: authentik/policies/templates/policies/denied.html msgid "Messages:" msgstr "" -#: authentik/policies/templates/policies/denied.html:54 +#: authentik/policies/templates/policies/denied.html msgid "Explanation:" msgstr "" -#: authentik/policies/templates/policies/denied.html:58 +#: authentik/policies/templates/policies/denied.html #, python-format msgid "" "\n" @@ -1032,28 +1024,28 @@ msgid "" " " msgstr "" -#: authentik/policies/views.py:69 +#: authentik/policies/views.py msgid "Failed to resolve application" msgstr "" -#: authentik/providers/ldap/models.py:26 +#: authentik/providers/ldap/models.py msgid "DN under which objects are accessible." msgstr "" -#: authentik/providers/ldap/models.py:35 +#: authentik/providers/ldap/models.py msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." msgstr "" -#: authentik/providers/ldap/models.py:54 +#: authentik/providers/ldap/models.py msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " "that we don't collide with local users uidNumber" msgstr "" -#: authentik/providers/ldap/models.py:63 +#: authentik/providers/ldap/models.py msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1061,8 +1053,7 @@ msgid "" "primary groups gidNumber" msgstr "" -#: authentik/providers/ldap/models.py:77 -#: authentik/providers/radius/models.py:35 +#: authentik/providers/ldap/models.py authentik/providers/radius/models.py msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be " @@ -1071,1274 +1062,1270 @@ msgid "" "contains a semicolon." msgstr "" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py msgid "LDAP Provider" msgstr "" -#: authentik/providers/ldap/models.py:110 +#: authentik/providers/ldap/models.py msgid "LDAP Providers" msgstr "" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py msgid "Based on the Hashed User ID" msgstr "" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py msgid "Based on user ID" msgstr "" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py msgid "Based on user UUID" msgstr "" -#: authentik/providers/oauth2/id_token.py:31 +#: authentik/providers/oauth2/id_token.py msgid "Based on the username" msgstr "" -#: authentik/providers/oauth2/id_token.py:34 +#: authentik/providers/oauth2/id_token.py msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "" -#: authentik/providers/oauth2/id_token.py:39 +#: authentik/providers/oauth2/id_token.py msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." msgstr "" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py msgid "Confidential" msgstr "" -#: authentik/providers/oauth2/models.py:45 +#: authentik/providers/oauth2/models.py msgid "Public" msgstr "" -#: authentik/providers/oauth2/models.py:67 +#: authentik/providers/oauth2/models.py msgid "Same identifier is used for all providers" msgstr "" -#: authentik/providers/oauth2/models.py:69 +#: authentik/providers/oauth2/models.py msgid "Each provider has a different issuer, based on the application slug." msgstr "" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py msgid "code (Authorization Code Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py msgid "id_token (Implicit Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py msgid "id_token token (Implicit Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py msgid "code token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py msgid "code id_token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:81 +#: authentik/providers/oauth2/models.py msgid "code id_token token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py msgid "HS256 (Symmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py msgid "RS256 (Asymmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:89 +#: authentik/providers/oauth2/models.py msgid "ES256 (Asymmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:95 +#: authentik/providers/oauth2/models.py msgid "Scope used by the client" msgstr "" -#: authentik/providers/oauth2/models.py:99 +#: authentik/providers/oauth2/models.py msgid "" "Description shown to the user when consenting. If left empty, the user won't " "be informed." msgstr "" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py msgid "Scope Mapping" msgstr "" -#: authentik/providers/oauth2/models.py:119 +#: authentik/providers/oauth2/models.py msgid "Scope Mappings" msgstr "" -#: authentik/providers/oauth2/models.py:129 +#: authentik/providers/oauth2/models.py msgid "Client Type" msgstr "" -#: authentik/providers/oauth2/models.py:131 +#: authentik/providers/oauth2/models.py msgid "" "Confidential clients are capable of maintaining the confidentiality of their " "credentials. Public clients are incapable" msgstr "" -#: authentik/providers/oauth2/models.py:138 +#: authentik/providers/oauth2/models.py msgid "Client ID" msgstr "" -#: authentik/providers/oauth2/models.py:144 +#: authentik/providers/oauth2/models.py msgid "Client Secret" msgstr "" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py msgid "Redirect URIs" msgstr "" -#: authentik/providers/oauth2/models.py:151 +#: authentik/providers/oauth2/models.py msgid "Enter each URI on a new line." msgstr "" -#: authentik/providers/oauth2/models.py:156 +#: authentik/providers/oauth2/models.py msgid "Include claims in id_token" msgstr "" -#: authentik/providers/oauth2/models.py:158 +#: authentik/providers/oauth2/models.py msgid "" "Include User claims from scopes in the id_token, for applications that don't " "access the userinfo endpoint." msgstr "" -#: authentik/providers/oauth2/models.py:167 +#: authentik/providers/oauth2/models.py msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "" -#: authentik/providers/oauth2/models.py:175 -#: authentik/providers/oauth2/models.py:183 +#: authentik/providers/oauth2/models.py msgid "" "Tokens not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/oauth2/models.py:192 +#: authentik/providers/oauth2/models.py msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "" -#: authentik/providers/oauth2/models.py:199 +#: authentik/providers/oauth2/models.py msgid "Configure how the issuer field of the ID Token should be filled." msgstr "" -#: authentik/providers/oauth2/models.py:204 +#: authentik/providers/oauth2/models.py msgid "Signing Key" msgstr "" -#: authentik/providers/oauth2/models.py:208 +#: authentik/providers/oauth2/models.py msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "" -#: authentik/providers/oauth2/models.py:215 +#: authentik/providers/oauth2/models.py msgid "" "Any JWT signed by the JWK of the selected source can be used to authenticate." msgstr "" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Provider" msgstr "" -#: authentik/providers/oauth2/models.py:289 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Providers" msgstr "" -#: authentik/providers/oauth2/models.py:298 -#: authentik/providers/oauth2/models.py:431 +#: authentik/providers/oauth2/models.py msgid "Scopes" msgstr "" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py msgid "Code" msgstr "" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py msgid "Nonce" msgstr "" -#: authentik/providers/oauth2/models.py:320 +#: authentik/providers/oauth2/models.py msgid "Code Challenge" msgstr "" -#: authentik/providers/oauth2/models.py:322 +#: authentik/providers/oauth2/models.py msgid "Code Challenge Method" msgstr "" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py msgid "Authorization Code" msgstr "" -#: authentik/providers/oauth2/models.py:343 +#: authentik/providers/oauth2/models.py msgid "Authorization Codes" msgstr "" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Token" msgstr "" -#: authentik/providers/oauth2/models.py:386 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Tokens" msgstr "" -#: authentik/providers/oauth2/models.py:396 +#: authentik/providers/oauth2/models.py msgid "ID Token" msgstr "" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Token" msgstr "" -#: authentik/providers/oauth2/models.py:416 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Tokens" msgstr "" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py msgid "Device Token" msgstr "" -#: authentik/providers/oauth2/models.py:444 +#: authentik/providers/oauth2/models.py msgid "Device Tokens" msgstr "" -#: authentik/providers/oauth2/views/authorize.py:490 -#: authentik/providers/saml/views/flows.py:88 +#: authentik/providers/oauth2/views/authorize.py +#: authentik/providers/saml/views/flows.py #, python-format msgid "Redirecting to %(app)s..." msgstr "" -#: authentik/providers/oauth2/views/device_init.py:152 +#: authentik/providers/oauth2/views/device_init.py msgid "Invalid code" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:56 -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your User Information" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access you Email addresses" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your Groups" msgstr "" -#: authentik/providers/oauth2/views/userinfo.py:60 +#: authentik/providers/oauth2/views/userinfo.py msgid "authentik API Access on behalf of your user" msgstr "" -#: authentik/providers/proxy/api.py:53 +#: authentik/providers/proxy/api.py msgid "User and password attributes must be set when basic auth is enabled." msgstr "" -#: authentik/providers/proxy/api.py:64 +#: authentik/providers/proxy/api.py msgid "Internal host cannot be empty when forward auth is disabled." msgstr "" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py msgid "Validate SSL Certificates of upstream servers" msgstr "" -#: authentik/providers/proxy/models.py:56 +#: authentik/providers/proxy/models.py msgid "Internal host SSL Validation" msgstr "" -#: authentik/providers/proxy/models.py:62 +#: authentik/providers/proxy/models.py msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." msgstr "" -#: authentik/providers/proxy/models.py:71 +#: authentik/providers/proxy/models.py msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." msgstr "" -#: authentik/providers/proxy/models.py:79 +#: authentik/providers/proxy/models.py msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." msgstr "" -#: authentik/providers/proxy/models.py:85 +#: authentik/providers/proxy/models.py msgid "Set HTTP-Basic Authentication" msgstr "" -#: authentik/providers/proxy/models.py:87 +#: authentik/providers/proxy/models.py msgid "" "Set a custom HTTP-Basic Authentication header based on values from authentik." msgstr "" -#: authentik/providers/proxy/models.py:92 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Username Key" msgstr "" -#: authentik/providers/proxy/models.py:94 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not " "set, the user's Email address is used." msgstr "" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Password Key" msgstr "" -#: authentik/providers/proxy/models.py:101 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py msgid "Proxy Provider" msgstr "" -#: authentik/providers/proxy/models.py:156 +#: authentik/providers/proxy/models.py msgid "Proxy Providers" msgstr "" -#: authentik/providers/radius/models.py:19 +#: authentik/providers/radius/models.py msgid "Shared secret between clients and server to hash packets." msgstr "" -#: authentik/providers/radius/models.py:25 +#: authentik/providers/radius/models.py msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." msgstr "" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py msgid "Radius Provider" msgstr "" -#: authentik/providers/radius/models.py:62 +#: authentik/providers/radius/models.py msgid "Radius Providers" msgstr "" -#: authentik/providers/saml/api/providers.py:261 +#: authentik/providers/saml/api/providers.py msgid "Invalid XML Syntax" msgstr "" -#: authentik/providers/saml/api/providers.py:271 +#: authentik/providers/saml/api/providers.py #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "" -#: authentik/providers/saml/models.py:39 +#: authentik/providers/saml/models.py msgid "ACS URL" msgstr "" -#: authentik/providers/saml/models.py:44 +#: authentik/providers/saml/models.py msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." msgstr "" -#: authentik/providers/saml/models.py:48 +#: authentik/providers/saml/models.py msgid "Also known as EntityID" msgstr "" -#: authentik/providers/saml/models.py:52 +#: authentik/providers/saml/models.py msgid "Service Provider Binding" msgstr "" -#: authentik/providers/saml/models.py:54 +#: authentik/providers/saml/models.py msgid "" "This determines how authentik sends the response back to the Service " "Provider." msgstr "" -#: authentik/providers/saml/models.py:64 +#: authentik/providers/saml/models.py msgid "NameID Property Mapping" msgstr "" -#: authentik/providers/saml/models.py:66 +#: authentik/providers/saml/models.py msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" msgstr "" -#: authentik/providers/saml/models.py:75 +#: authentik/providers/saml/models.py msgid "" "Assertion valid not before current time + this value (Format: hours=-1;" "minutes=-2;seconds=-3)." msgstr "" -#: authentik/providers/saml/models.py:83 +#: authentik/providers/saml/models.py msgid "" "Assertion not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/saml/models.py:92 +#: authentik/providers/saml/models.py msgid "" "Session not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA1" msgstr "" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA256" msgstr "" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA384" msgstr "" -#: authentik/providers/saml/models.py:103 authentik/sources/saml/models.py:154 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA512" msgstr "" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA1" msgstr "" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA256" msgstr "" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA384" msgstr "" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA512" msgstr "" -#: authentik/providers/saml/models.py:114 authentik/sources/saml/models.py:165 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "DSA-SHA1" msgstr "" -#: authentik/providers/saml/models.py:125 authentik/sources/saml/models.py:131 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." msgstr "" -#: authentik/providers/saml/models.py:129 authentik/sources/saml/models.py:135 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Verification Certificate" msgstr "" -#: authentik/providers/saml/models.py:137 +#: authentik/providers/saml/models.py msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "" -#: authentik/providers/saml/models.py:139 authentik/sources/saml/models.py:145 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Signing Keypair" msgstr "" -#: authentik/providers/saml/models.py:143 +#: authentik/providers/saml/models.py msgid "Default relay_state value for IDP-initiated logins" msgstr "" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py msgid "SAML Provider" msgstr "" -#: authentik/providers/saml/models.py:173 +#: authentik/providers/saml/models.py msgid "SAML Providers" msgstr "" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py msgid "SAML Property Mapping" msgstr "" -#: authentik/providers/saml/models.py:198 +#: authentik/providers/saml/models.py msgid "SAML Property Mappings" msgstr "" -#: authentik/providers/scim/models.py:23 +#: authentik/providers/scim/models.py msgid "Base URL to SCIM requests, usually ends in /v2" msgstr "" -#: authentik/providers/scim/models.py:24 +#: authentik/providers/scim/models.py msgid "Authentication token" msgstr "" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:99 +#: authentik/providers/scim/models.py authentik/sources/ldap/models.py msgid "Property mappings used for group creation/updating." msgstr "" -#: authentik/providers/scim/models.py:72 +#: authentik/providers/scim/models.py msgid "SCIM Provider" msgstr "" -#: authentik/providers/scim/models.py:73 +#: authentik/providers/scim/models.py msgid "SCIM Providers" msgstr "" -#: authentik/providers/scim/models.py:93 +#: authentik/providers/scim/models.py msgid "SCIM Mapping" msgstr "" -#: authentik/providers/scim/models.py:94 +#: authentik/providers/scim/models.py msgid "SCIM Mappings" msgstr "" -#: authentik/providers/scim/tasks.py:58 +#: authentik/providers/scim/tasks.py msgid "Starting full SCIM sync" msgstr "" -#: authentik/providers/scim/tasks.py:68 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of users" msgstr "" -#: authentik/providers/scim/tasks.py:72 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of groups" msgstr "" -#: authentik/providers/scim/tasks.py:104 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "" -#: authentik/providers/scim/tasks.py:115 authentik/providers/scim/tasks.py:156 +#: authentik/providers/scim/tasks.py #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "" -#: authentik/providers/scim/tasks.py:145 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py msgid "Role" msgstr "" -#: authentik/rbac/models.py:53 +#: authentik/rbac/models.py msgid "Roles" msgstr "" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py msgid "System permission" msgstr "" -#: authentik/rbac/models.py:68 +#: authentik/rbac/models.py msgid "System permissions" msgstr "" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py msgid "Can view system info" msgstr "" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py msgid "Can view system tasks" msgstr "" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py msgid "Can run system tasks" msgstr "" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py msgid "Can access admin interface" msgstr "" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py msgid "Can view system settings" msgstr "" -#: authentik/rbac/models.py:75 +#: authentik/rbac/models.py msgid "Can edit system settings" msgstr "" -#: authentik/recovery/management/commands/create_admin_group.py:13 +#: authentik/recovery/management/commands/create_admin_group.py msgid "Create admin group if the default group gets deleted." msgstr "" -#: authentik/recovery/management/commands/create_recovery_key.py:17 +#: authentik/recovery/management/commands/create_recovery_key.py msgid "Create a Key which can be used to restore access to authentik." msgstr "" -#: authentik/recovery/views.py:25 +#: authentik/recovery/views.py msgid "Used recovery-link to authenticate." msgstr "" -#: authentik/sources/ldap/models.py:42 +#: authentik/sources/ldap/models.py msgid "Server URI" msgstr "" -#: authentik/sources/ldap/models.py:51 +#: authentik/sources/ldap/models.py msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this " "keypair." msgstr "" -#: authentik/sources/ldap/models.py:60 +#: authentik/sources/ldap/models.py msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "" -#: authentik/sources/ldap/models.py:63 +#: authentik/sources/ldap/models.py msgid "Bind CN" msgstr "" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py msgid "Enable Start TLS" msgstr "" -#: authentik/sources/ldap/models.py:66 +#: authentik/sources/ldap/models.py msgid "Use Server URI for SNI verification" msgstr "" -#: authentik/sources/ldap/models.py:68 +#: authentik/sources/ldap/models.py msgid "Base DN" msgstr "" -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for User-queries." msgstr "" -#: authentik/sources/ldap/models.py:71 +#: authentik/sources/ldap/models.py msgid "Addition User DN" msgstr "" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for Group-queries." msgstr "" -#: authentik/sources/ldap/models.py:76 +#: authentik/sources/ldap/models.py msgid "Addition Group DN" msgstr "" -#: authentik/sources/ldap/models.py:82 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Users." msgstr "" -#: authentik/sources/ldap/models.py:85 +#: authentik/sources/ldap/models.py msgid "Field which contains members of a group." msgstr "" -#: authentik/sources/ldap/models.py:89 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Groups." msgstr "" -#: authentik/sources/ldap/models.py:92 +#: authentik/sources/ldap/models.py msgid "Field which contains a unique Identifier." msgstr "" -#: authentik/sources/ldap/models.py:106 +#: authentik/sources/ldap/models.py msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py msgid "LDAP Source" msgstr "" -#: authentik/sources/ldap/models.py:250 +#: authentik/sources/ldap/models.py msgid "LDAP Sources" msgstr "" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mapping" msgstr "" -#: authentik/sources/ldap/models.py:273 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mappings" msgstr "" -#: authentik/sources/ldap/signals.py:53 +#: authentik/sources/ldap/signals.py msgid "Password does not match Active Directory Complexity." msgstr "" -#: authentik/sources/oauth/clients/oauth2.py:69 +#: authentik/sources/oauth/clients/oauth2.py msgid "No token received." msgstr "" -#: authentik/sources/oauth/models.py:25 +#: authentik/sources/oauth/models.py msgid "Request Token URL" msgstr "" -#: authentik/sources/oauth/models.py:27 +#: authentik/sources/oauth/models.py msgid "" "URL used to request the initial token. This URL is only required for OAuth 1." msgstr "" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py msgid "Authorization URL" msgstr "" -#: authentik/sources/oauth/models.py:34 +#: authentik/sources/oauth/models.py msgid "URL the user is redirect to to conest the flow." msgstr "" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py msgid "Access Token URL" msgstr "" -#: authentik/sources/oauth/models.py:40 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to retrieve tokens." msgstr "" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py msgid "Profile URL" msgstr "" -#: authentik/sources/oauth/models.py:46 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to get user information." msgstr "" -#: authentik/sources/oauth/models.py:49 +#: authentik/sources/oauth/models.py msgid "Additional Scopes" msgstr "" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py msgid "OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:109 +#: authentik/sources/oauth/models.py msgid "OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:118 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:127 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:136 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:145 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:154 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:163 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:172 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py msgid "Google OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:181 +#: authentik/sources/oauth/models.py msgid "Google OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:190 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:199 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:208 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:217 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Source" msgstr "" -#: authentik/sources/oauth/models.py:226 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Sources" msgstr "" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connection" msgstr "" -#: authentik/sources/oauth/models.py:249 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connections" msgstr "" -#: authentik/sources/oauth/views/callback.py:101 +#: authentik/sources/oauth/views/callback.py #, python-format msgid "Authentication failed: %(reason)s" msgstr "" -#: authentik/sources/plex/models.py:38 +#: authentik/sources/plex/models.py msgid "Client identifier used to talk to Plex." msgstr "" -#: authentik/sources/plex/models.py:45 +#: authentik/sources/plex/models.py msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." msgstr "" -#: authentik/sources/plex/models.py:51 +#: authentik/sources/plex/models.py msgid "Allow friends to authenticate, even if you don't share a server." msgstr "" -#: authentik/sources/plex/models.py:53 +#: authentik/sources/plex/models.py msgid "Plex token used to check friends" msgstr "" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py msgid "Plex Source" msgstr "" -#: authentik/sources/plex/models.py:97 +#: authentik/sources/plex/models.py msgid "Plex Sources" msgstr "" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py msgid "User Plex Source Connection" msgstr "" -#: authentik/sources/plex/models.py:114 +#: authentik/sources/plex/models.py msgid "User Plex Source Connections" msgstr "" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py msgid "Redirect Binding" msgstr "" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py msgid "POST Binding" msgstr "" -#: authentik/sources/saml/models.py:43 +#: authentik/sources/saml/models.py msgid "POST Binding with auto-confirmation" msgstr "" -#: authentik/sources/saml/models.py:71 +#: authentik/sources/saml/models.py msgid "Flow used before authentication." msgstr "" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py msgid "Issuer" msgstr "" -#: authentik/sources/saml/models.py:79 +#: authentik/sources/saml/models.py msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py msgid "SSO URL" msgstr "" -#: authentik/sources/saml/models.py:84 +#: authentik/sources/saml/models.py msgid "URL that the initial Login request is sent to." msgstr "" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py msgid "SLO URL" msgstr "" -#: authentik/sources/saml/models.py:91 +#: authentik/sources/saml/models.py msgid "Optional URL if your IDP supports Single-Logout." msgstr "" -#: authentik/sources/saml/models.py:97 +#: authentik/sources/saml/models.py msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." msgstr "" -#: authentik/sources/saml/models.py:105 +#: authentik/sources/saml/models.py msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is sent." msgstr "" -#: authentik/sources/saml/models.py:116 +#: authentik/sources/saml/models.py msgid "Delete temporary users after" msgstr "" -#: authentik/sources/saml/models.py:119 +#: authentik/sources/saml/models.py msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " "manually. (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: authentik/sources/saml/models.py:143 +#: authentik/sources/saml/models.py msgid "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py msgid "SAML Source" msgstr "" -#: authentik/sources/saml/models.py:228 +#: authentik/sources/saml/models.py msgid "SAML Sources" msgstr "" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py msgid "User SAML Source Connection" msgstr "" -#: authentik/sources/saml/models.py:244 +#: authentik/sources/saml/models.py msgid "User SAML Source Connections" msgstr "" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_duo/models.py:81 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Device" msgstr "" -#: authentik/stages/authenticator_duo/models.py:105 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Devices" msgstr "" -#: authentik/stages/authenticator_sms/models.py:58 +#: authentik/stages/authenticator_sms/models.py msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is " "not reused in the future." msgstr "" -#: authentik/stages/authenticator_sms/models.py:69 +#: authentik/stages/authenticator_sms/models.py msgid "Optionally modify the payload being sent to custom providers." msgstr "" -#: authentik/stages/authenticator_sms/models.py:82 +#: authentik/stages/authenticator_sms/models.py #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_sms/models.py:182 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Device" msgstr "" -#: authentik/stages/authenticator_sms/models.py:228 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Devices" msgstr "" -#: authentik/stages/authenticator_sms/stage.py:58 -#: authentik/stages/authenticator_totp/stage.py:42 -#: authentik/stages/authenticator_totp/stage.py:45 +#: authentik/stages/authenticator_sms/stage.py +#: authentik/stages/authenticator_totp/stage.py msgid "Code does not match" msgstr "" -#: authentik/stages/authenticator_sms/stage.py:74 +#: authentik/stages/authenticator_sms/stage.py msgid "Invalid phone number" msgstr "" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_static/models.py:54 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py msgid "Static Device" msgstr "" -#: authentik/stages/authenticator_static/models.py:100 +#: authentik/stages/authenticator_static/models.py msgid "Static Devices" msgstr "" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py msgid "Static Token" msgstr "" -#: authentik/stages/authenticator_static/models.py:131 +#: authentik/stages/authenticator_static/models.py msgid "Static Tokens" msgstr "" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py msgid "6 digits, widely compatible" msgstr "" -#: authentik/stages/authenticator_totp/models.py:27 +#: authentik/stages/authenticator_totp/models.py msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_totp/models.py:64 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Device" msgstr "" -#: authentik/stages/authenticator_totp/models.py:246 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Devices" msgstr "" -#: authentik/stages/authenticator_validate/challenge.py:124 +#: authentik/stages/authenticator_validate/challenge.py msgid "Invalid Token" msgstr "" -#: authentik/stages/authenticator_validate/models.py:18 +#: authentik/stages/authenticator_validate/models.py msgid "Static" msgstr "" -#: authentik/stages/authenticator_validate/models.py:19 +#: authentik/stages/authenticator_validate/models.py msgid "TOTP" msgstr "" -#: authentik/stages/authenticator_validate/models.py:20 +#: authentik/stages/authenticator_validate/models.py msgid "WebAuthn" msgstr "" -#: authentik/stages/authenticator_validate/models.py:21 +#: authentik/stages/authenticator_validate/models.py msgid "Duo" msgstr "" -#: authentik/stages/authenticator_validate/models.py:22 +#: authentik/stages/authenticator_validate/models.py msgid "SMS" msgstr "" -#: authentik/stages/authenticator_validate/models.py:49 +#: authentik/stages/authenticator_validate/models.py msgid "" "Stages used to configure Authenticator when user doesn't have any compatible " "devices. After this configuration Stage passes, the user is not prompted " "again." msgstr "" -#: authentik/stages/authenticator_validate/models.py:56 +#: authentik/stages/authenticator_validate/models.py msgid "Device classes which can be used to authenticate" msgstr "" -#: authentik/stages/authenticator_validate/models.py:64 +#: authentik/stages/authenticator_validate/models.py msgid "" "If any of the user's device has been used within this threshold, this stage " "will be skipped" msgstr "" -#: authentik/stages/authenticator_validate/models.py:70 +#: authentik/stages/authenticator_validate/models.py msgid "Enforce user verification for WebAuthn devices." msgstr "" -#: authentik/stages/authenticator_validate/models.py:92 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stage" msgstr "" -#: authentik/stages/authenticator_validate/models.py:93 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stages" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stage" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:114 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stages" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Device" msgstr "" -#: authentik/stages/authenticator_webauthn/models.py:153 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Devices" msgstr "" -#: authentik/stages/captcha/models.py:14 +#: authentik/stages/captcha/models.py msgid "Public key, acquired your captcha Provider." msgstr "" -#: authentik/stages/captcha/models.py:15 +#: authentik/stages/captcha/models.py msgid "Private key, acquired your captcha Provider." msgstr "" -#: authentik/stages/captcha/models.py:37 +#: authentik/stages/captcha/models.py msgid "Captcha Stage" msgstr "" -#: authentik/stages/captcha/models.py:38 +#: authentik/stages/captcha/models.py msgid "Captcha Stages" msgstr "" -#: authentik/stages/consent/models.py:30 +#: authentik/stages/consent/models.py msgid "" "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)." msgstr "" -#: authentik/stages/consent/models.py:50 +#: authentik/stages/consent/models.py msgid "Consent Stage" msgstr "" -#: authentik/stages/consent/models.py:51 +#: authentik/stages/consent/models.py msgid "Consent Stages" msgstr "" -#: authentik/stages/consent/models.py:72 +#: authentik/stages/consent/models.py msgid "User Consent" msgstr "" -#: authentik/stages/consent/models.py:73 +#: authentik/stages/consent/models.py msgid "User Consents" msgstr "" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py msgid "Deny Stage" msgstr "" -#: authentik/stages/deny/models.py:34 +#: authentik/stages/deny/models.py msgid "Deny Stages" msgstr "" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py msgid "Dummy Stage" msgstr "" -#: authentik/stages/dummy/models.py:36 +#: authentik/stages/dummy/models.py msgid "Dummy Stages" msgstr "" -#: authentik/stages/email/models.py:27 +#: authentik/stages/email/models.py msgid "Password Reset" msgstr "" -#: authentik/stages/email/models.py:31 +#: authentik/stages/email/models.py msgid "Account Confirmation" msgstr "" -#: authentik/stages/email/models.py:60 +#: authentik/stages/email/models.py msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." msgstr "" -#: authentik/stages/email/models.py:75 +#: authentik/stages/email/models.py msgid "Activate users upon completion of stage." msgstr "" -#: authentik/stages/email/models.py:79 +#: authentik/stages/email/models.py msgid "Time in minutes the token sent is valid." msgstr "" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py msgid "Email Stage" msgstr "" -#: authentik/stages/email/models.py:134 +#: authentik/stages/email/models.py msgid "Email Stages" msgstr "" -#: authentik/stages/email/stage.py:127 +#: authentik/stages/email/stage.py msgid "Exception occurred while rendering E-mail template" msgstr "" -#: authentik/stages/email/stage.py:141 +#: authentik/stages/email/stage.py msgid "Successfully verified Email." msgstr "" -#: authentik/stages/email/stage.py:148 authentik/stages/email/stage.py:174 +#: authentik/stages/email/stage.py msgid "No pending user." msgstr "" -#: authentik/stages/email/stage.py:164 +#: authentik/stages/email/stage.py msgid "Email sent." msgstr "" -#: authentik/stages/email/stage.py:177 +#: authentik/stages/email/stage.py msgid "Email Successfully sent." msgstr "" -#: authentik/stages/email/templates/email/account_confirmation.html:10 -#: authentik/stages/email/templates/email/account_confirmation.txt:1 +#: authentik/stages/email/templates/email/account_confirmation.html +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "Welcome!" msgstr "" -#: authentik/stages/email/templates/email/account_confirmation.html:19 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just press the button below." msgstr "" -#: authentik/stages/email/templates/email/account_confirmation.html:24 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "Confirm Account" msgstr "" -#: authentik/stages/email/templates/email/account_confirmation.html:36 +#: authentik/stages/email/templates/email/account_confirmation.html #, python-format msgid "" "\n" @@ -2347,13 +2334,13 @@ msgid "" " " msgstr "" -#: authentik/stages/email/templates/email/account_confirmation.txt:3 +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just open the link below." msgstr "" -#: authentik/stages/email/templates/email/event_notification.html:46 +#: authentik/stages/email/templates/email/event_notification.html #, python-format msgid "" "\n" @@ -2362,26 +2349,26 @@ msgid "" " " msgstr "" -#: authentik/stages/email/templates/email/event_notification.txt:1 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Dear authentik user," msgstr "" -#: authentik/stages/email/templates/email/event_notification.txt:3 +#: authentik/stages/email/templates/email/event_notification.txt msgid "The following notification was created:" msgstr "" -#: authentik/stages/email/templates/email/event_notification.txt:8 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Additional attributes:" msgstr "" -#: authentik/stages/email/templates/email/event_notification.txt:13 +#: authentik/stages/email/templates/email/event_notification.txt #, python-format msgid "" "\n" "This email was sent from the notification transport %(name)s.\n" msgstr "" -#: authentik/stages/email/templates/email/password_reset.html:10 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2389,7 +2376,7 @@ msgid "" " " msgstr "" -#: authentik/stages/email/templates/email/password_reset.html:21 +#: authentik/stages/email/templates/email/password_reset.html msgid "" "\n" " You recently requested to change your password for your authentik " @@ -2397,7 +2384,7 @@ msgid "" " " msgstr "" -#: authentik/stages/email/templates/email/password_reset.html:39 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2406,19 +2393,19 @@ msgid "" " " msgstr "" -#: authentik/stages/email/templates/email/password_reset.txt:1 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "Hi %(username)s," msgstr "" -#: authentik/stages/email/templates/email/password_reset.txt:3 +#: authentik/stages/email/templates/email/password_reset.txt msgid "" "\n" "You recently requested to change your password for your authentik account. " "Use the link below to set a new password.\n" msgstr "" -#: authentik/stages/email/templates/email/password_reset.txt:7 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "" "\n" @@ -2426,11 +2413,11 @@ msgid "" "above is valid for %(expires)s.\n" msgstr "" -#: authentik/stages/email/templates/email/setup.html:9 +#: authentik/stages/email/templates/email/setup.html msgid "authentik Test-Email" msgstr "" -#: authentik/stages/email/templates/email/setup.html:17 +#: authentik/stages/email/templates/email/setup.html msgid "" "\n" " This is a test email to inform you, that you've " @@ -2438,383 +2425,382 @@ msgid "" " " msgstr "" -#: authentik/stages/email/templates/email/setup.txt:2 +#: authentik/stages/email/templates/email/setup.txt msgid "" "\n" "This is a test email to inform you, that you've successfully configured " "authentik emails.\n" msgstr "" -#: authentik/stages/identification/api.py:21 +#: authentik/stages/identification/api.py msgid "When no user fields are selected, at least one source must be selected" msgstr "" -#: authentik/stages/identification/models.py:29 +#: authentik/stages/identification/models.py msgid "" "Fields of the user object to match against. (Hold shift to select multiple " "options)" msgstr "" -#: authentik/stages/identification/models.py:47 +#: authentik/stages/identification/models.py msgid "When enabled, user fields are matched regardless of their casing." msgstr "" -#: authentik/stages/identification/models.py:52 +#: authentik/stages/identification/models.py msgid "" "When a valid username/email has been entered, and this option is enabled, " "the user's username and avatar will be shown. Otherwise, the text that the " "user entered will be shown" msgstr "" -#: authentik/stages/identification/models.py:60 +#: authentik/stages/identification/models.py msgid "" "When enabled, the stage will succeed and continue even when incorrect user " "info is entered." msgstr "" -#: authentik/stages/identification/models.py:72 +#: authentik/stages/identification/models.py msgid "Optional enrollment flow, which is linked at the bottom of the page." msgstr "" -#: authentik/stages/identification/models.py:81 +#: authentik/stages/identification/models.py msgid "Optional recovery flow, which is linked at the bottom of the page." msgstr "" -#: authentik/stages/identification/models.py:90 +#: authentik/stages/identification/models.py msgid "Optional passwordless flow, which is linked at the bottom of the page." msgstr "" -#: authentik/stages/identification/models.py:94 +#: authentik/stages/identification/models.py msgid "Specify which sources should be shown." msgstr "" -#: authentik/stages/identification/models.py:115 +#: authentik/stages/identification/models.py msgid "Identification Stage" msgstr "" -#: authentik/stages/identification/models.py:116 +#: authentik/stages/identification/models.py msgid "Identification Stages" msgstr "" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py msgid "Log in" msgstr "" -#: authentik/stages/identification/stage.py:190 +#: authentik/stages/identification/stage.py msgid "Continue" msgstr "" -#: authentik/stages/invitation/models.py:22 +#: authentik/stages/invitation/models.py msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " "invitation is given." msgstr "" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py msgid "Invitation Stage" msgstr "" -#: authentik/stages/invitation/models.py:46 +#: authentik/stages/invitation/models.py msgid "Invitation Stages" msgstr "" -#: authentik/stages/invitation/models.py:61 +#: authentik/stages/invitation/models.py msgid "When set, only the configured flow can use this invitation." msgstr "" -#: authentik/stages/invitation/models.py:65 +#: authentik/stages/invitation/models.py msgid "When enabled, the invitation will be deleted after usage." msgstr "" -#: authentik/stages/invitation/models.py:72 +#: authentik/stages/invitation/models.py msgid "Optional fixed data to enforce on user enrollment." msgstr "" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py msgid "Invitation" msgstr "" -#: authentik/stages/invitation/models.py:86 +#: authentik/stages/invitation/models.py msgid "Invitations" msgstr "" -#: authentik/stages/invitation/stage.py:63 +#: authentik/stages/invitation/stage.py msgid "Invalid invite/invite not found" msgstr "" -#: authentik/stages/password/models.py:21 +#: authentik/stages/password/models.py msgid "User database + standard password" msgstr "" -#: authentik/stages/password/models.py:25 +#: authentik/stages/password/models.py msgid "User database + app passwords" msgstr "" -#: authentik/stages/password/models.py:29 +#: authentik/stages/password/models.py msgid "User database + LDAP password" msgstr "" -#: authentik/stages/password/models.py:39 +#: authentik/stages/password/models.py msgid "Selection of backends to test the password against." msgstr "" -#: authentik/stages/password/models.py:44 +#: authentik/stages/password/models.py msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." msgstr "" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py msgid "Password Stage" msgstr "" -#: authentik/stages/password/models.py:77 +#: authentik/stages/password/models.py msgid "Password Stages" msgstr "" -#: authentik/stages/password/stage.py:125 +#: authentik/stages/password/stage.py msgid "Invalid password" msgstr "" -#: authentik/stages/prompt/models.py:44 +#: authentik/stages/prompt/models.py msgid "Text: Simple Text input" msgstr "" -#: authentik/stages/prompt/models.py:46 +#: authentik/stages/prompt/models.py msgid "Text area: Multiline Text Input." msgstr "" -#: authentik/stages/prompt/models.py:49 +#: authentik/stages/prompt/models.py msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "" -#: authentik/stages/prompt/models.py:53 +#: authentik/stages/prompt/models.py msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "" -#: authentik/stages/prompt/models.py:59 +#: authentik/stages/prompt/models.py msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." msgstr "" -#: authentik/stages/prompt/models.py:61 +#: authentik/stages/prompt/models.py msgid "Email: Text field with Email type." msgstr "" -#: authentik/stages/prompt/models.py:65 +#: authentik/stages/prompt/models.py msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need " "to be identical." msgstr "" -#: authentik/stages/prompt/models.py:72 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a group of radio buttons." msgstr "" -#: authentik/stages/prompt/models.py:74 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a dropdown." msgstr "" -#: authentik/stages/prompt/models.py:81 +#: authentik/stages/prompt/models.py msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" msgstr "" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py msgid "Separator: Static Separator Line" msgstr "" -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "" -#: authentik/stages/prompt/models.py:88 +#: authentik/stages/prompt/models.py msgid "Static: Static value, displayed as-is." msgstr "" -#: authentik/stages/prompt/models.py:90 +#: authentik/stages/prompt/models.py msgid "authentik: Selection of locales authentik supports" msgstr "" -#: authentik/stages/prompt/models.py:117 +#: authentik/stages/prompt/models.py msgid "Name of the form field, also used to store the value" msgstr "" -#: authentik/stages/prompt/models.py:125 +#: authentik/stages/prompt/models.py msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." msgstr "" -#: authentik/stages/prompt/models.py:133 +#: authentik/stages/prompt/models.py msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." msgstr "" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py msgid "Prompt" msgstr "" -#: authentik/stages/prompt/models.py:323 +#: authentik/stages/prompt/models.py msgid "Prompts" msgstr "" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py msgid "Prompt Stage" msgstr "" -#: authentik/stages/prompt/models.py:351 +#: authentik/stages/prompt/models.py msgid "Prompt Stages" msgstr "" -#: authentik/stages/prompt/stage.py:109 +#: authentik/stages/prompt/stage.py msgid "Passwords don't match." msgstr "" -#: authentik/stages/user_delete/models.py:31 +#: authentik/stages/user_delete/models.py msgid "User Delete Stage" msgstr "" -#: authentik/stages/user_delete/models.py:32 +#: authentik/stages/user_delete/models.py msgid "User Delete Stages" msgstr "" -#: authentik/stages/user_delete/stage.py:19 +#: authentik/stages/user_delete/stage.py msgid "No Pending User." msgstr "" -#: authentik/stages/user_login/models.py:47 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured network" msgstr "" -#: authentik/stages/user_login/models.py:52 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured GeoIP location" msgstr "" -#: authentik/stages/user_login/models.py:55 +#: authentik/stages/user_login/models.py msgid "Terminate all other sessions of the user logging in." msgstr "" -#: authentik/stages/user_login/models.py:61 +#: authentik/stages/user_login/models.py msgid "" "Offset the session will be extended by when the user picks the remember me " "option. Default of 0 means that the remember me option will not be shown. " "(Format: hours=-1;minutes=-2;seconds=-3)" msgstr "" -#: authentik/stages/user_login/models.py:84 +#: authentik/stages/user_login/models.py msgid "User Login Stage" msgstr "" -#: authentik/stages/user_login/models.py:85 +#: authentik/stages/user_login/models.py msgid "User Login Stages" msgstr "" -#: authentik/stages/user_login/stage.py:86 +#: authentik/stages/user_login/stage.py msgid "No Pending user to login." msgstr "" -#: authentik/stages/user_login/stage.py:113 +#: authentik/stages/user_login/stage.py msgid "Successfully logged in!" msgstr "" -#: authentik/stages/user_logout/models.py:30 +#: authentik/stages/user_logout/models.py msgid "User Logout Stage" msgstr "" -#: authentik/stages/user_logout/models.py:31 +#: authentik/stages/user_logout/models.py msgid "User Logout Stages" msgstr "" -#: authentik/stages/user_write/models.py:31 +#: authentik/stages/user_write/models.py msgid "When set, newly created users are inactive and cannot login." msgstr "" -#: authentik/stages/user_write/models.py:39 +#: authentik/stages/user_write/models.py msgid "Optionally add newly created users to this group." msgstr "" -#: authentik/stages/user_write/models.py:68 +#: authentik/stages/user_write/models.py msgid "User Write Stage" msgstr "" -#: authentik/stages/user_write/models.py:69 +#: authentik/stages/user_write/models.py msgid "User Write Stages" msgstr "" -#: authentik/stages/user_write/stage.py:142 +#: authentik/stages/user_write/stage.py msgid "No Pending data." msgstr "" -#: authentik/stages/user_write/stage.py:148 +#: authentik/stages/user_write/stage.py msgid "No user found and can't create new user." msgstr "" -#: authentik/stages/user_write/stage.py:165 -#: authentik/stages/user_write/stage.py:179 +#: authentik/stages/user_write/stage.py msgid "Failed to update user. Please try again later." msgstr "" -#: authentik/tenants/models.py:30 +#: authentik/tenants/models.py msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." msgstr "" -#: authentik/tenants/models.py:50 +#: authentik/tenants/models.py msgid "Configure how authentik should show avatars for users." msgstr "" -#: authentik/tenants/models.py:54 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their name." msgstr "" -#: authentik/tenants/models.py:57 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their email address." msgstr "" -#: authentik/tenants/models.py:60 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their username." msgstr "" -#: authentik/tenants/models.py:66 +#: authentik/tenants/models.py msgid "" "Events will be deleted after this duration.(Format: weeks=3;days=2;hours=3," "seconds=2)." msgstr "" -#: authentik/tenants/models.py:70 +#: authentik/tenants/models.py msgid "The option configures the footer links on the flow executor pages." msgstr "" -#: authentik/tenants/models.py:76 +#: authentik/tenants/models.py msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." msgstr "" -#: authentik/tenants/models.py:82 +#: authentik/tenants/models.py msgid "Globally enable/disable impersonation." msgstr "" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py msgid "Tenant" msgstr "" -#: authentik/tenants/models.py:106 +#: authentik/tenants/models.py msgid "Tenants" msgstr "" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py msgid "Domain" msgstr "" -#: authentik/tenants/models.py:127 +#: authentik/tenants/models.py msgid "Domains" msgstr "" diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 464f3a378c..8bc6e75f4f 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1782,8 +1782,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2961,8 +2961,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3739,8 +3739,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3916,10 +3916,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5000,7 +5000,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5335,10 +5335,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5387,7 +5387,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7880,7 +7880,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8415,4 +8415,4 @@ Bindings to groups/users are checked against the user of the event. - \ No newline at end of file + From 84fdd4d737b2936da9c6a3ff1d6d0e20a7f3b8f5 Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 7 Feb 2024 16:58:33 +0100 Subject: [PATCH 035/105] events: fix SystemTask timestamps and scheduling (#8435) * events: fix SystemTask timestamps Signed-off-by: Jens Langhammer * fix error during prefill Signed-off-by: Jens Langhammer * fix prefill not running per tenants Signed-off-by: Jens Langhammer * run scheduled tasks on startup when needed Signed-off-by: Jens Langhammer * remove some explicit startup tasks Signed-off-by: Jens Langhammer * fix unrelated crypto warning Signed-off-by: Jens Langhammer * fix import loop on reputation policy Signed-off-by: Jens Langhammer * pass correct task params Signed-off-by: Jens Langhammer * make enterprise task monitored Signed-off-by: Jens Langhammer * slightly different formatting for task list Signed-off-by: Jens Langhammer * also pre-squash migrations Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/crypto/apps.py | 6 +- authentik/enterprise/tasks.py | 3 +- authentik/events/api/tasks.py | 28 +++----- authentik/events/apps.py | 30 +++++++- ...ve_systemtask_finish_timestamp_and_more.py | 68 +++++++++++++++++++ ...ve_systemtask_finish_timestamp_and_more.py | 40 +++++++++++ authentik/events/models.py | 5 +- authentik/events/system_tasks.py | 31 ++++++--- authentik/policies/engine.py | 6 +- authentik/policies/reputation/apps.py | 2 + authentik/policies/reputation/models.py | 1 - authentik/policies/reputation/signals.py | 2 +- authentik/policies/reputation/tasks.py | 2 +- authentik/policies/reputation/tests.py | 3 +- authentik/root/celery.py | 3 - authentik/root/middleware.py | 7 +- schema.yml | 7 +- .../admin/system-tasks/SystemTaskListPage.ts | 2 +- 18 files changed, 194 insertions(+), 52 deletions(-) create mode 100644 authentik/events/migrations/0004_systemtask_squashed_0005_remove_systemtask_finish_timestamp_and_more.py create mode 100644 authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py diff --git a/authentik/crypto/apps.py b/authentik/crypto/apps.py index 2afb4c579e..f919ca600f 100644 --- a/authentik/crypto/apps.py +++ b/authentik/crypto/apps.py @@ -1,6 +1,6 @@ """authentik crypto app config""" -from datetime import datetime +from datetime import datetime, timezone from typing import Optional from authentik.blueprints.apps import ManagedAppConfig @@ -47,9 +47,9 @@ class AuthentikCryptoConfig(ManagedAppConfig): cert: Optional[CertificateKeyPair] = CertificateKeyPair.objects.filter( managed=MANAGED_KEY ).first() - now = datetime.now() + now = datetime.now(tz=timezone.utc) if not cert or ( - now < cert.certificate.not_valid_before or now > cert.certificate.not_valid_after + now < cert.certificate.not_valid_after_utc or now > cert.certificate.not_valid_after_utc ): self._create_update_cert() diff --git a/authentik/enterprise/tasks.py b/authentik/enterprise/tasks.py index 2e46bd8b3b..df0d934f89 100644 --- a/authentik/enterprise/tasks.py +++ b/authentik/enterprise/tasks.py @@ -1,10 +1,11 @@ """Enterprise tasks""" from authentik.enterprise.models import LicenseKey +from authentik.events.system_tasks import SystemTask from authentik.root.celery import CELERY_APP -@CELERY_APP.task() +@CELERY_APP.task(base=SystemTask) def calculate_license(): """Calculate licensing status""" LicenseKey.get_total().record_usage() diff --git a/authentik/events/api/tasks.py b/authentik/events/api/tasks.py index a0d303b958..ec7b1aaa88 100644 --- a/authentik/events/api/tasks.py +++ b/authentik/events/api/tasks.py @@ -1,6 +1,5 @@ """Tasks API""" -from datetime import datetime, timezone from importlib import import_module from django.contrib import messages @@ -8,7 +7,14 @@ from django.utils.translation import gettext_lazy as _ from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import OpenApiResponse, extend_schema from rest_framework.decorators import action -from rest_framework.fields import CharField, ChoiceField, ListField, SerializerMethodField +from rest_framework.fields import ( + CharField, + ChoiceField, + DateTimeField, + FloatField, + ListField, + SerializerMethodField, +) from rest_framework.request import Request from rest_framework.response import Response from rest_framework.serializers import ModelSerializer @@ -28,9 +34,9 @@ class SystemTaskSerializer(ModelSerializer): full_name = SerializerMethodField() uid = CharField(required=False) description = CharField() - start_timestamp = SerializerMethodField() - finish_timestamp = SerializerMethodField() - duration = SerializerMethodField() + start_timestamp = DateTimeField(read_only=True) + finish_timestamp = DateTimeField(read_only=True) + duration = FloatField(read_only=True) status = ChoiceField(choices=[(x.value, x.name) for x in TaskStatus]) messages = ListField(child=CharField()) @@ -41,18 +47,6 @@ class SystemTaskSerializer(ModelSerializer): return f"{instance.name}:{instance.uid}" return instance.name - def get_start_timestamp(self, instance: SystemTask) -> datetime: - """Timestamp when the task started""" - return datetime.fromtimestamp(instance.start_timestamp, tz=timezone.utc) - - def get_finish_timestamp(self, instance: SystemTask) -> datetime: - """Timestamp when the task finished""" - return datetime.fromtimestamp(instance.finish_timestamp, tz=timezone.utc) - - def get_duration(self, instance: SystemTask) -> float: - """Get the duration a task took to run""" - return max(instance.finish_timestamp - instance.start_timestamp, 0) - class Meta: model = SystemTask fields = [ diff --git a/authentik/events/apps.py b/authentik/events/apps.py index 5948d43d2f..1a7c060806 100644 --- a/authentik/events/apps.py +++ b/authentik/events/apps.py @@ -1,9 +1,12 @@ """authentik events app""" +from celery.schedules import crontab from prometheus_client import Gauge, Histogram from authentik.blueprints.apps import ManagedAppConfig from authentik.lib.config import CONFIG, ENV_PREFIX +from authentik.lib.utils.reflection import path_to_class +from authentik.root.celery import CELERY_APP # TODO: Deprecated metric - remove in 2024.2 or later GAUGE_TASKS = Gauge( @@ -57,7 +60,7 @@ class AuthentikEventsConfig(ManagedAppConfig): message=msg, ).save() - def reconcile_prefill_tasks(self): + def reconcile_tenant_prefill_tasks(self): """Prefill tasks""" from authentik.events.models import SystemTask from authentik.events.system_tasks import _prefill_tasks @@ -67,3 +70,28 @@ class AuthentikEventsConfig(ManagedAppConfig): continue task.save() self.logger.debug("prefilled task", task_name=task.name) + + def reconcile_tenant_run_scheduled_tasks(self): + """Run schedule tasks which are behind schedule (only applies + to tasks of which we keep metrics)""" + from authentik.events.models import TaskStatus + from authentik.events.system_tasks import SystemTask as CelerySystemTask + + for task in CELERY_APP.conf["beat_schedule"].values(): + schedule = task["schedule"] + if not isinstance(schedule, crontab): + continue + task_class: CelerySystemTask = path_to_class(task["task"]) + if not isinstance(task_class, CelerySystemTask): + continue + db_task = task_class.db() + if not db_task: + continue + due, _ = schedule.is_due(db_task.finish_timestamp) + if due or db_task.status == TaskStatus.UNKNOWN: + self.logger.debug("Running past-due scheduled task", task=task["task"]) + task_class.apply_async( + args=task.get("args", None), + kwargs=task.get("kwargs", None), + **task.get("options", {}), + ) diff --git a/authentik/events/migrations/0004_systemtask_squashed_0005_remove_systemtask_finish_timestamp_and_more.py b/authentik/events/migrations/0004_systemtask_squashed_0005_remove_systemtask_finish_timestamp_and_more.py new file mode 100644 index 0000000000..b66db2af63 --- /dev/null +++ b/authentik/events/migrations/0004_systemtask_squashed_0005_remove_systemtask_finish_timestamp_and_more.py @@ -0,0 +1,68 @@ +# Generated by Django 5.0.1 on 2024-02-07 15:42 + +import uuid + +import django.utils.timezone +from django.db import migrations, models + +import authentik.core.models + + +class Migration(migrations.Migration): + + replaces = [ + ("authentik_events", "0004_systemtask"), + ("authentik_events", "0005_remove_systemtask_finish_timestamp_and_more"), + ] + + dependencies = [ + ("authentik_events", "0003_rename_tenant_event_brand"), + ] + + operations = [ + migrations.CreateModel( + name="SystemTask", + fields=[ + ( + "expires", + models.DateTimeField(default=authentik.core.models.default_token_duration), + ), + ("expiring", models.BooleanField(default=True)), + ( + "uuid", + models.UUIDField( + default=uuid.uuid4, editable=False, primary_key=True, serialize=False + ), + ), + ("name", models.TextField()), + ("uid", models.TextField(null=True)), + ( + "status", + models.TextField( + choices=[ + ("unknown", "Unknown"), + ("successful", "Successful"), + ("warning", "Warning"), + ("error", "Error"), + ] + ), + ), + ("description", models.TextField(null=True)), + ("messages", models.JSONField()), + ("task_call_module", models.TextField()), + ("task_call_func", models.TextField()), + ("task_call_args", models.JSONField(default=list)), + ("task_call_kwargs", models.JSONField(default=dict)), + ("duration", models.FloatField(default=0)), + ("finish_timestamp", models.DateTimeField(default=django.utils.timezone.now)), + ("start_timestamp", models.DateTimeField(default=django.utils.timezone.now)), + ], + options={ + "verbose_name": "System Task", + "verbose_name_plural": "System Tasks", + "permissions": [("run_task", "Run task")], + "default_permissions": ["view"], + "unique_together": {("name", "uid")}, + }, + ), + ] diff --git a/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py b/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py new file mode 100644 index 0000000000..b42fb252fc --- /dev/null +++ b/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py @@ -0,0 +1,40 @@ +# Generated by Django 5.0.1 on 2024-02-06 18:02 + +import django.utils.timezone +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_events", "0004_systemtask"), + ] + + operations = [ + migrations.RemoveField( + model_name="systemtask", + name="finish_timestamp", + ), + migrations.RemoveField( + model_name="systemtask", + name="start_timestamp", + ), + migrations.AddField( + model_name="systemtask", + name="duration", + field=models.FloatField(default=0), + preserve_default=False, + ), + migrations.AddField( + model_name="systemtask", + name="finish_timestamp", + field=models.DateTimeField(default=django.utils.timezone.now), + preserve_default=False, + ), + migrations.AddField( + model_name="systemtask", + name="start_timestamp", + field=models.DateTimeField(default=django.utils.timezone.now), + preserve_default=False, + ), + ] diff --git a/authentik/events/models.py b/authentik/events/models.py index a2e7d71190..900536f3e6 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -620,8 +620,9 @@ class SystemTask(SerializerModel, ExpiringModel): name = models.TextField() uid = models.TextField(null=True) - start_timestamp = models.FloatField() - finish_timestamp = models.FloatField() + start_timestamp = models.DateTimeField() + finish_timestamp = models.DateTimeField() + duration = models.FloatField() status = models.TextField(choices=TaskStatus.choices) diff --git a/authentik/events/system_tasks.py b/authentik/events/system_tasks.py index a4bc60d569..2140128232 100644 --- a/authentik/events/system_tasks.py +++ b/authentik/events/system_tasks.py @@ -1,7 +1,7 @@ """Monitored tasks""" -from datetime import timedelta -from timeit import default_timer +from datetime import datetime, timedelta +from time import perf_counter from typing import Any, Optional from django.utils.timezone import now @@ -28,7 +28,9 @@ class SystemTask(TenantTask): _messages: list[str] _uid: Optional[str] - _start: Optional[float] = None + # Precise start time from perf_counter + _start_precise: Optional[float] = None + _start: Optional[datetime] = None def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) @@ -53,9 +55,17 @@ class SystemTask(TenantTask): self._messages = [exception_to_string(exception)] def before_start(self, task_id, args, kwargs): - self._start = default_timer() + self._start_precise = perf_counter() + self._start = now() return super().before_start(task_id, args, kwargs) + def db(self) -> Optional[DBSystemTask]: + """Get DB object for latest task""" + return DBSystemTask.objects.filter( + name=self.__name__, + uid=self._uid, + ).first() + # pylint: disable=too-many-arguments def after_return(self, status, retval, task_id, args: list[Any], kwargs: dict[str, Any], einfo): super().after_return(status, retval, task_id, args, kwargs, einfo=einfo) @@ -72,8 +82,9 @@ class SystemTask(TenantTask): uid=self._uid, defaults={ "description": self.__doc__, - "start_timestamp": self._start or default_timer(), - "finish_timestamp": default_timer(), + "start_timestamp": self._start or now(), + "finish_timestamp": now(), + "duration": max(perf_counter() - self._start_precise, 0), "task_call_module": self.__module__, "task_call_func": self.__name__, "task_call_args": args, @@ -96,8 +107,9 @@ class SystemTask(TenantTask): uid=self._uid, defaults={ "description": self.__doc__, - "start_timestamp": self._start or default_timer(), - "finish_timestamp": default_timer(), + "start_timestamp": self._start or now(), + "finish_timestamp": now(), + "duration": max(perf_counter() - self._start_precise, 0), "task_call_module": self.__module__, "task_call_func": self.__name__, "task_call_args": args, @@ -123,11 +135,14 @@ def prefill_task(func): DBSystemTask( name=func.__name__, description=func.__doc__, + start_timestamp=now(), + finish_timestamp=now(), status=TaskStatus.UNKNOWN, messages=sanitize_item([_("Task has not been run yet.")]), task_call_module=func.__module__, task_call_func=func.__name__, expiring=False, + duration=0, ) ) return func diff --git a/authentik/policies/engine.py b/authentik/policies/engine.py index 76610d626d..7b786ea4cb 100644 --- a/authentik/policies/engine.py +++ b/authentik/policies/engine.py @@ -2,7 +2,7 @@ from multiprocessing import Pipe, current_process from multiprocessing.connection import Connection -from timeit import default_timer +from time import perf_counter from typing import Iterator, Optional from django.core.cache import cache @@ -84,10 +84,10 @@ class PolicyEngine: def _check_cache(self, binding: PolicyBinding): if not self.use_cache: return False - before = default_timer() + before = perf_counter() key = cache_key(binding, self.request) cached_policy = cache.get(key, None) - duration = max(default_timer() - before, 0) + duration = max(perf_counter() - before, 0) if not cached_policy: return False self.logger.debug( diff --git a/authentik/policies/reputation/apps.py b/authentik/policies/reputation/apps.py index 4c3628ac71..f01f85790f 100644 --- a/authentik/policies/reputation/apps.py +++ b/authentik/policies/reputation/apps.py @@ -2,6 +2,8 @@ from authentik.blueprints.apps import ManagedAppConfig +CACHE_KEY_PREFIX = "goauthentik.io/policies/reputation/scores/" + class AuthentikPolicyReputationConfig(ManagedAppConfig): """Authentik reputation app config""" diff --git a/authentik/policies/reputation/models.py b/authentik/policies/reputation/models.py index 8326124571..abcddac2cc 100644 --- a/authentik/policies/reputation/models.py +++ b/authentik/policies/reputation/models.py @@ -19,7 +19,6 @@ from authentik.policies.types import PolicyRequest, PolicyResult from authentik.root.middleware import ClientIPMiddleware LOGGER = get_logger() -CACHE_KEY_PREFIX = "goauthentik.io/policies/reputation/scores/" def reputation_expiry(): diff --git a/authentik/policies/reputation/signals.py b/authentik/policies/reputation/signals.py index 354b8492db..5830143372 100644 --- a/authentik/policies/reputation/signals.py +++ b/authentik/policies/reputation/signals.py @@ -8,7 +8,7 @@ from structlog.stdlib import get_logger from authentik.core.signals import login_failed from authentik.lib.config import CONFIG -from authentik.policies.reputation.models import CACHE_KEY_PREFIX +from authentik.policies.reputation.apps import CACHE_KEY_PREFIX from authentik.policies.reputation.tasks import save_reputation from authentik.root.middleware import ClientIPMiddleware from authentik.stages.identification.signals import identification_failed diff --git a/authentik/policies/reputation/tasks.py b/authentik/policies/reputation/tasks.py index f04ccac99a..fcdceaa7e4 100644 --- a/authentik/policies/reputation/tasks.py +++ b/authentik/policies/reputation/tasks.py @@ -7,8 +7,8 @@ from authentik.events.context_processors.asn import ASN_CONTEXT_PROCESSOR from authentik.events.context_processors.geoip import GEOIP_CONTEXT_PROCESSOR from authentik.events.models import TaskStatus from authentik.events.system_tasks import SystemTask, prefill_task +from authentik.policies.reputation.apps import CACHE_KEY_PREFIX from authentik.policies.reputation.models import Reputation -from authentik.policies.reputation.signals import CACHE_KEY_PREFIX from authentik.root.celery import CELERY_APP LOGGER = get_logger() diff --git a/authentik/policies/reputation/tests.py b/authentik/policies/reputation/tests.py index 96429f5fa6..534d808bf7 100644 --- a/authentik/policies/reputation/tests.py +++ b/authentik/policies/reputation/tests.py @@ -6,7 +6,8 @@ from django.test import RequestFactory, TestCase from authentik.core.models import User from authentik.lib.generators import generate_id from authentik.policies.reputation.api import ReputationPolicySerializer -from authentik.policies.reputation.models import CACHE_KEY_PREFIX, Reputation, ReputationPolicy +from authentik.policies.reputation.apps import CACHE_KEY_PREFIX +from authentik.policies.reputation.models import Reputation, ReputationPolicy from authentik.policies.reputation.tasks import save_reputation from authentik.policies.types import PolicyRequest from authentik.stages.password import BACKEND_INBUILT diff --git a/authentik/root/celery.py b/authentik/root/celery.py index 48645673b2..33c4b99a70 100644 --- a/authentik/root/celery.py +++ b/authentik/root/celery.py @@ -91,13 +91,10 @@ def _get_startup_tasks_default_tenant() -> list[Callable]: def _get_startup_tasks_all_tenants() -> list[Callable]: """Get all tasks to be run on startup for all tenants""" from authentik.admin.tasks import clear_update_notifications - from authentik.outposts.tasks import outpost_connection_discovery, outpost_controller_all from authentik.providers.proxy.tasks import proxy_set_defaults return [ clear_update_notifications, - outpost_connection_discovery, - outpost_controller_all, proxy_set_defaults, ] diff --git a/authentik/root/middleware.py b/authentik/root/middleware.py index d61ed5510d..0c91a2d08a 100644 --- a/authentik/root/middleware.py +++ b/authentik/root/middleware.py @@ -1,8 +1,7 @@ """Dynamically set SameSite depending if the upstream connection is TLS or not""" from hashlib import sha512 -from time import time -from timeit import default_timer +from time import perf_counter, time from typing import Any, Callable, Optional from django.conf import settings @@ -294,14 +293,14 @@ class LoggingMiddleware: self.get_response = get_response def __call__(self, request: HttpRequest) -> HttpResponse: - start = default_timer() + start = perf_counter() response = self.get_response(request) status_code = response.status_code kwargs = { "request_id": getattr(request, "request_id", None), } kwargs.update(getattr(response, "ak_context", {})) - self.log(request, status_code, int((default_timer() - start) * 1000), **kwargs) + self.log(request, status_code, int((perf_counter() - start) * 1000), **kwargs) return response def log(self, request: HttpRequest, status_code: int, runtime: int, **kwargs): diff --git a/schema.yml b/schema.yml index f9bc7b12fb..89cb7665d7 100644 --- a/schema.yml +++ b/schema.yml @@ -2935,8 +2935,6 @@ paths: schema: $ref: '#/components/schemas/PolicyTestResult' description: '' - '404': - description: for_user user not found '400': content: application/json: @@ -43573,17 +43571,14 @@ components: start_timestamp: type: string format: date-time - description: Timestamp when the task started readOnly: true finish_timestamp: type: string format: date-time - description: Timestamp when the task finished readOnly: true duration: type: number format: double - description: Get the duration a task took to run readOnly: true status: $ref: '#/components/schemas/SystemTaskStatusEnum' @@ -43963,6 +43958,7 @@ components: maxLength: 254 avatar: type: string + description: User's avatar, either a http/https URL or a data URI readOnly: true attributes: type: object @@ -44634,6 +44630,7 @@ components: maxLength: 254 avatar: type: string + description: User's avatar, either a http/https URL or a data URI readOnly: true uid: type: string diff --git a/web/src/admin/system-tasks/SystemTaskListPage.ts b/web/src/admin/system-tasks/SystemTaskListPage.ts index 2279629a97..94ab673045 100644 --- a/web/src/admin/system-tasks/SystemTaskListPage.ts +++ b/web/src/admin/system-tasks/SystemTaskListPage.ts @@ -110,7 +110,7 @@ export class SystemTaskListPage extends TablePage { row(item: SystemTask): TemplateResult[] { return [ - html`${item.name}${item.uid ? `:${item.uid}` : ""}`, + html`
${item.name}${item.uid ? `:${item.uid}` : ""}
`, html`${item.description}`, html`
${getRelativeTime(item.finishTimestamp)}
${item.finishTimestamp.toLocaleString()}`, From e5cc2c6d985e586d7e2e4eda71a8f7be068b15c1 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:59:06 +0100 Subject: [PATCH 036/105] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#8433) Translate locale/en/LC_MESSAGES/django.po in zh_CN 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh_CN/LC_MESSAGES/django.po | 1116 ++++++++++++++-------------- 1 file changed, 562 insertions(+), 554 deletions(-) diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index dd336981c2..df58c7a448 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-26 17:26+0000\n" +"POT-Creation-Date: 2024-02-06 00:06+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: deluxghost, 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/authentik/teams/119923/zh_CN/)\n" @@ -24,32 +24,32 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: authentik/api/schema.py:25 +#: authentik/api/schema.py:26 msgid "Generic API Error" msgstr "通用 API 错误" -#: authentik/api/schema.py:33 +#: authentik/api/schema.py:34 msgid "Validation Error" msgstr "校验错误" -#: authentik/blueprints/api.py:43 +#: authentik/blueprints/api.py:44 msgid "Blueprint file does not exist" msgstr "蓝图文件不存在" -#: authentik/blueprints/api.py:54 +#: authentik/blueprints/api.py:55 #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "验证蓝图失败:%(logs)s" -#: authentik/blueprints/api.py:59 +#: authentik/blueprints/api.py:60 msgid "Either path or content must be set." msgstr "必须设置路径或内容。" -#: authentik/blueprints/models.py:30 +#: authentik/blueprints/models.py:31 msgid "Managed by authentik" msgstr "由 authentik 管理" -#: authentik/blueprints/models.py:32 +#: authentik/blueprints/models.py:33 msgid "" "Objects that are managed by authentik. These objects are created and updated" " automatically. This flag only indicates that an object can be overwritten " @@ -59,11 +59,11 @@ msgstr "" "由 authentik 管理的对象。这些对象会自动创建和更新。此标记仅仅表明对象可以被 Migration 覆盖。您仍然可以通过 API " "修改对象,但这些修改可能会在之后的更新中被覆盖。" -#: authentik/blueprints/models.py:112 +#: authentik/blueprints/models.py:113 msgid "Blueprint Instance" msgstr "蓝图实例" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py:114 msgid "Blueprint Instances" msgstr "蓝图实例" @@ -72,227 +72,235 @@ msgstr "蓝图实例" msgid "authentik Export - %(date)s" msgstr "authentik 导出 - %(date)s" -#: authentik/blueprints/v1/tasks.py:145 authentik/crypto/tasks.py:87 +#: authentik/blueprints/v1/tasks.py:146 authentik/crypto/tasks.py:88 #, python-format msgid "Successfully imported %(count)d files." msgstr "已成功导入 %(count)d 个文件。" -#: authentik/brands/models.py:22 +#: authentik/brands/models.py:23 msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" msgstr "激活此品牌的域。可以是超集,即 `a.b` 可以同时表示 `aa.b` 和 `ba.b`" -#: authentik/brands/models.py:58 +#: authentik/brands/models.py:59 msgid "Web Certificate used by the authentik Core webserver." msgstr "authentik 核心 Web 服务器使用的 Web 证书。" -#: authentik/brands/models.py:84 +#: authentik/brands/models.py:85 msgid "Brand" msgstr "品牌" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py:86 msgid "Brands" msgstr "品牌" -#: authentik/core/api/providers.py:122 +#: authentik/core/api/providers.py:123 msgid "SAML Provider from Metadata" msgstr "来自元数据的 SAML 提供程序" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py:124 msgid "Create a SAML Provider by importing its Metadata." msgstr "通过导入元数据来创建 SAML 提供程序。" -#: authentik/core/api/users.py:149 +#: authentik/core/api/users.py:162 msgid "No leading or trailing slashes allowed." msgstr "不允许前缀或后缀斜线。" -#: authentik/core/api/users.py:152 +#: authentik/core/api/users.py:165 msgid "No empty segments in user path allowed." msgstr "不允许用户路径包含空段。" -#: authentik/core/models.py:92 +#: authentik/core/models.py:94 msgid "name" msgstr "名称" -#: authentik/core/models.py:94 +#: authentik/core/models.py:96 msgid "Users added to this group will be superusers." msgstr "添加到该组的用户均为超级用户。" -#: authentik/core/models.py:168 +#: authentik/core/models.py:170 msgid "Group" msgstr "组" -#: authentik/core/models.py:169 +#: authentik/core/models.py:171 msgid "Groups" msgstr "组" -#: authentik/core/models.py:184 +#: authentik/core/models.py:202 msgid "User's display name." msgstr "用户的显示名称。" -#: authentik/core/models.py:280 authentik/providers/oauth2/models.py:295 +#: authentik/core/models.py:298 authentik/providers/oauth2/models.py:296 msgid "User" msgstr "用户" -#: authentik/core/models.py:281 +#: authentik/core/models.py:299 msgid "Users" msgstr "用户" -#: authentik/core/models.py:283 +#: authentik/core/models.py:301 #: authentik/stages/email/templates/email/password_reset.html:28 msgid "Reset Password" msgstr "重置密码" -#: authentik/core/models.py:284 +#: authentik/core/models.py:302 msgid "Can impersonate other users" msgstr "可以模拟其他用户的身份" -#: authentik/core/models.py:285 authentik/rbac/models.py:54 +#: authentik/core/models.py:303 authentik/rbac/models.py:55 msgid "Can assign permissions to users" msgstr "可以为用户分配权限" -#: authentik/core/models.py:286 authentik/rbac/models.py:55 +#: authentik/core/models.py:304 authentik/rbac/models.py:56 msgid "Can unassign permissions from users" msgstr "可以取消分配用户的权限" -#: authentik/core/models.py:308 +#: authentik/core/models.py:305 +msgid "Can preview user data sent to providers" +msgstr "可以预览发送给提供程序的用户数据" + +#: authentik/core/models.py:306 +msgid "View applications the user has access to" +msgstr "查看用户有权访问的应用程序" + +#: authentik/core/models.py:328 msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." msgstr "当关联应用程序被未验证身份的用户访问时,用于身份验证的流程。" -#: authentik/core/models.py:318 +#: authentik/core/models.py:338 msgid "Flow used when authorizing this provider." msgstr "授权此提供程序时使用的流程。" -#: authentik/core/models.py:330 +#: authentik/core/models.py:350 msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." msgstr "从应用程序访问;为类似 LDAP 和 SCIM 的协议提供的可选反向通道提供程序。" -#: authentik/core/models.py:385 +#: authentik/core/models.py:405 msgid "Application's display Name." msgstr "应用的显示名称。" -#: authentik/core/models.py:386 +#: authentik/core/models.py:406 msgid "Internal application name, used in URLs." msgstr "应用的内部名称,在 URL 中使用。" -#: authentik/core/models.py:398 +#: authentik/core/models.py:418 msgid "Open launch URL in a new browser tab or window." msgstr "在新浏览器标签页或窗口中打开启动 URL。" -#: authentik/core/models.py:462 +#: authentik/core/models.py:482 msgid "Application" msgstr "应用程序" -#: authentik/core/models.py:463 +#: authentik/core/models.py:483 msgid "Applications" msgstr "应用程序" -#: authentik/core/models.py:469 +#: authentik/core/models.py:489 msgid "Use the source-specific identifier" msgstr "使用源特定的标识符" -#: authentik/core/models.py:471 +#: authentik/core/models.py:491 msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." msgstr "链接到电子邮件地址相同的用户。当源不验证电子邮件地址时,可能会有安全隐患。" -#: authentik/core/models.py:475 +#: authentik/core/models.py:495 msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." msgstr "使用用户的电子邮件地址,但在电子邮件地址已存在时拒绝注册。" -#: authentik/core/models.py:478 +#: authentik/core/models.py:498 msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." msgstr "链接到用户名相同的用户。当其他源使用相同用户名时,可能会有安全隐患。" -#: authentik/core/models.py:482 +#: authentik/core/models.py:502 msgid "" "Use the user's username, but deny enrollment when the username already " "exists." msgstr "使用用户的用户名,但在用户名已存在时拒绝注册。" -#: authentik/core/models.py:489 +#: authentik/core/models.py:509 msgid "Source's display Name." msgstr "源的显示名称。" -#: authentik/core/models.py:490 +#: authentik/core/models.py:510 msgid "Internal source name, used in URLs." msgstr "源的内部名称,在 URL 中使用。" -#: authentik/core/models.py:509 +#: authentik/core/models.py:529 msgid "Flow to use when authenticating existing users." msgstr "认证已存在用户时所使用的流程。" -#: authentik/core/models.py:518 +#: authentik/core/models.py:538 msgid "Flow to use when enrolling new users." msgstr "新用户注册的流程。" -#: authentik/core/models.py:526 +#: authentik/core/models.py:546 msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." msgstr "源怎样确定应该验证已有用户的身份还是注册新用户。" -#: authentik/core/models.py:698 +#: authentik/core/models.py:718 msgid "Token" msgstr "令牌" -#: authentik/core/models.py:699 +#: authentik/core/models.py:719 msgid "Tokens" msgstr "令牌" -#: authentik/core/models.py:704 +#: authentik/core/models.py:724 msgid "View token's key" msgstr "查看令牌密钥" -#: authentik/core/models.py:740 +#: authentik/core/models.py:760 msgid "Property Mapping" msgstr "属性映射" -#: authentik/core/models.py:741 +#: authentik/core/models.py:761 msgid "Property Mappings" msgstr "属性映射" -#: authentik/core/models.py:778 +#: authentik/core/models.py:798 msgid "Authenticated Session" msgstr "已认证会话" -#: authentik/core/models.py:779 +#: authentik/core/models.py:799 msgid "Authenticated Sessions" msgstr "已认证会话" -#: authentik/core/sources/flow_manager.py:190 +#: authentik/core/sources/flow_manager.py:191 #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate" " with the source you've previously signed up with." msgstr "来自 %(source)s 的身份验证请求被拒绝。请用您注册时使用的方式验证身份。" -#: authentik/core/sources/flow_manager.py:242 +#: authentik/core/sources/flow_manager.py:243 msgid "Configured flow does not exist." msgstr "配置的流程不存在。" -#: authentik/core/sources/flow_manager.py:272 -#: authentik/core/sources/flow_manager.py:324 +#: authentik/core/sources/flow_manager.py:273 +#: authentik/core/sources/flow_manager.py:325 #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "成功通过 %(source)s 认证!" -#: authentik/core/sources/flow_manager.py:296 +#: authentik/core/sources/flow_manager.py:297 #, python-format msgid "Successfully linked %(source)s!" msgstr "成功链接 %(source)s!" -#: authentik/core/sources/flow_manager.py:315 +#: authentik/core/sources/flow_manager.py:316 msgid "Source is not configured for enrollment." msgstr "源未被配置用于注册。" @@ -353,37 +361,37 @@ msgstr "前往首页" msgid "Powered by authentik" msgstr "由 authentik 强力驱动" -#: authentik/core/views/apps.py:53 -#: authentik/providers/oauth2/views/authorize.py:434 -#: authentik/providers/oauth2/views/device_init.py:70 -#: authentik/providers/saml/views/sso.py:70 +#: authentik/core/views/apps.py:54 +#: authentik/providers/oauth2/views/authorize.py:435 +#: authentik/providers/oauth2/views/device_init.py:71 +#: authentik/providers/saml/views/sso.py:71 #, python-format msgid "You're about to sign into %(application)s." msgstr "您即将登录 %(application)s。" -#: authentik/crypto/api.py:179 +#: authentik/crypto/api.py:180 msgid "Subject-alt name" msgstr "替代名称" -#: authentik/crypto/models.py:30 +#: authentik/crypto/models.py:31 msgid "PEM-encoded Certificate data" msgstr "PEM 编码的证书数据" -#: authentik/crypto/models.py:33 +#: authentik/crypto/models.py:34 msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." msgstr "可选私钥。如果设置,则可以使用此密钥对来加密。" -#: authentik/crypto/models.py:101 +#: authentik/crypto/models.py:102 msgid "Certificate-Key Pair" msgstr "证书密钥对" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py:103 msgid "Certificate-Key Pairs" msgstr "证书密钥对" -#: authentik/enterprise/api.py:33 +#: authentik/enterprise/api.py:34 msgid "Enterprise is required to create/update this object." msgstr "创建/更新此对象需要企业版。" @@ -403,303 +411,303 @@ msgstr "许可证使用情况" msgid "License Usage Records" msgstr "许可证使用情况记录" -#: authentik/enterprise/policy.py:18 +#: authentik/enterprise/policy.py:19 msgid "Enterprise required to access this feature." msgstr "访问此功能需要企业版。" -#: authentik/enterprise/policy.py:20 +#: authentik/enterprise/policy.py:21 msgid "Feature only accessible for internal users." msgstr "仅内部用户能访问此功能。" -#: authentik/enterprise/providers/rac/models.py:48 +#: authentik/enterprise/providers/rac/models.py:49 #: authentik/stages/user_login/models.py:39 msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "确定会话持续多长时间。默认值为 0 表示会话持续到浏览器关闭为止。(格式:hours=-1;minutes=-2;seconds=-3)" -#: authentik/enterprise/providers/rac/models.py:71 +#: authentik/enterprise/providers/rac/models.py:72 msgid "RAC Provider" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py:73 msgid "RAC Providers" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:100 +#: authentik/enterprise/providers/rac/models.py:101 msgid "RAC Endpoint" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py:102 msgid "RAC Endpoints" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:122 +#: authentik/enterprise/providers/rac/models.py:123 msgid "RAC Property Mapping" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py:124 msgid "RAC Property Mappings" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/views.py:108 +#: authentik/enterprise/providers/rac/views.py:109 msgid "Maximum connection limit reached." msgstr "已达到最大连接数。" -#: authentik/enterprise/providers/rac/views.py:112 +#: authentik/enterprise/providers/rac/views.py:113 msgid "(You are already connected in another tab/window)" msgstr "(您已经在另一个标签页/窗口连接了)" -#: authentik/events/api/tasks.py:100 +#: authentik/events/api/tasks.py:101 #, python-format msgid "Successfully started task %(name)s." msgstr "已成功开始任务 %(name)s。" -#: authentik/events/models.py:304 +#: authentik/events/models.py:305 msgid "Event" msgstr "事件" -#: authentik/events/models.py:305 +#: authentik/events/models.py:306 msgid "Events" msgstr "事件" -#: authentik/events/models.py:311 +#: authentik/events/models.py:312 msgid "authentik inbuilt notifications" msgstr "authentik 内置通知" -#: authentik/events/models.py:312 +#: authentik/events/models.py:313 msgid "Generic Webhook" msgstr "通用 Webhook" -#: authentik/events/models.py:313 +#: authentik/events/models.py:314 msgid "Slack Webhook (Slack/Discord)" msgstr "Slack Webhook(Slack/Discord)" -#: authentik/events/models.py:314 +#: authentik/events/models.py:315 msgid "Email" msgstr "电子邮箱" -#: authentik/events/models.py:332 +#: authentik/events/models.py:333 msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." msgstr "仅发送一次通知,例如在向聊天频道发送 Webhook 时。" -#: authentik/events/models.py:397 +#: authentik/events/models.py:398 msgid "Severity" msgstr "严重程度" -#: authentik/events/models.py:402 +#: authentik/events/models.py:403 msgid "Dispatched for user" msgstr "为用户分派" -#: authentik/events/models.py:411 +#: authentik/events/models.py:412 msgid "Event user" msgstr "事件用户" -#: authentik/events/models.py:505 +#: authentik/events/models.py:506 msgid "Notification Transport" msgstr "通知传输" -#: authentik/events/models.py:506 +#: authentik/events/models.py:507 msgid "Notification Transports" msgstr "通知传输" -#: authentik/events/models.py:512 +#: authentik/events/models.py:513 msgid "Notice" msgstr "通知" -#: authentik/events/models.py:513 +#: authentik/events/models.py:514 msgid "Warning" msgstr "警告" -#: authentik/events/models.py:514 +#: authentik/events/models.py:515 msgid "Alert" msgstr "注意" -#: authentik/events/models.py:539 +#: authentik/events/models.py:540 msgid "Notification" msgstr "通知" -#: authentik/events/models.py:540 +#: authentik/events/models.py:541 msgid "Notifications" msgstr "通知" -#: authentik/events/models.py:550 +#: authentik/events/models.py:551 msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." msgstr "选择应使用哪些传输方式来通知用户。如果未选择任何内容,则通知将仅显示在 authentik UI 中。" -#: authentik/events/models.py:558 +#: authentik/events/models.py:559 msgid "Controls which severity level the created notifications will have." msgstr "控制被创建的通知的严重性级别。" -#: authentik/events/models.py:563 +#: authentik/events/models.py:564 msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." msgstr "定义此通知应该发送到哪些用户组。如果留空,则不会发送通知。" -#: authentik/events/models.py:581 +#: authentik/events/models.py:582 msgid "Notification Rule" msgstr "通知规则" -#: authentik/events/models.py:582 +#: authentik/events/models.py:583 msgid "Notification Rules" msgstr "通知规则" -#: authentik/events/models.py:602 +#: authentik/events/models.py:603 msgid "Webhook Mapping" msgstr "Webhook 映射" -#: authentik/events/models.py:603 +#: authentik/events/models.py:604 msgid "Webhook Mappings" msgstr "Webhook 映射" -#: authentik/events/models.py:668 +#: authentik/events/models.py:669 msgid "Run task" msgstr "运行任务" -#: authentik/events/models.py:669 +#: authentik/events/models.py:670 msgid "System Task" msgstr "系统任务" -#: authentik/events/models.py:670 +#: authentik/events/models.py:671 msgid "System Tasks" msgstr "系统任务" -#: authentik/events/system_tasks.py:126 +#: authentik/events/system_tasks.py:127 msgid "Task has not been run yet." msgstr "任务尚未运行。" -#: authentik/flows/api/flows.py:295 +#: authentik/flows/api/flows.py:297 #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "流程不适用于当前用户/请求:%(messages)s" -#: authentik/flows/api/flows_diagram.py:68 -#: authentik/flows/api/flows_diagram.py:94 +#: authentik/flows/api/flows_diagram.py:69 +#: authentik/flows/api/flows_diagram.py:95 #, python-format msgid "Policy (%(type)s)" msgstr "策略(%(type)s)" -#: authentik/flows/api/flows_diagram.py:71 +#: authentik/flows/api/flows_diagram.py:72 #, python-format msgid "Binding %(order)d" msgstr "绑定 %(order)d" -#: authentik/flows/api/flows_diagram.py:118 +#: authentik/flows/api/flows_diagram.py:119 msgid "Policy passed" msgstr "策略通过" -#: authentik/flows/api/flows_diagram.py:122 +#: authentik/flows/api/flows_diagram.py:123 #, python-format msgid "Stage (%(type)s)" msgstr "阶段(%(type)s)" -#: authentik/flows/api/flows_diagram.py:146 -#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py:147 +#: authentik/flows/api/flows_diagram.py:207 msgid "Policy denied" msgstr "策略拒绝" -#: authentik/flows/api/flows_diagram.py:156 -#: authentik/flows/api/flows_diagram.py:168 -#: authentik/flows/api/flows_diagram.py:205 -#: authentik/flows/api/flows_diagram.py:227 +#: authentik/flows/api/flows_diagram.py:157 +#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py:228 msgid "End of the flow" msgstr "流程结束" -#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py:170 msgid "Requirement not fulfilled" msgstr "需求条件未达成" -#: authentik/flows/api/flows_diagram.py:177 +#: authentik/flows/api/flows_diagram.py:178 msgid "Flow authentication requirement" msgstr "流程身份验证需求" -#: authentik/flows/api/flows_diagram.py:183 +#: authentik/flows/api/flows_diagram.py:184 msgid "Requirement fulfilled" msgstr "需求条件已达成" -#: authentik/flows/api/flows_diagram.py:196 +#: authentik/flows/api/flows_diagram.py:197 msgid "Pre-flow policies" msgstr "流程前置策略" -#: authentik/flows/api/flows_diagram.py:214 authentik/flows/models.py:194 +#: authentik/flows/api/flows_diagram.py:215 authentik/flows/models.py:195 msgid "Flow" msgstr "流程" -#: authentik/flows/exceptions.py:19 +#: authentik/flows/exceptions.py:20 msgid "Flow does not apply to current user." msgstr "流程不应用于当前用户。" -#: authentik/flows/models.py:115 +#: authentik/flows/models.py:116 #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "动态内存中阶段:%(doc)s" -#: authentik/flows/models.py:130 +#: authentik/flows/models.py:131 msgid "Visible in the URL." msgstr "在 URL 中可见。" -#: authentik/flows/models.py:132 +#: authentik/flows/models.py:133 msgid "Shown as the Title in Flow pages." msgstr "显示为流程页面中的标题。" -#: authentik/flows/models.py:139 +#: authentik/flows/models.py:140 msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." msgstr "决定此流程的用途。例如,当未经身份验证的用户访问 authentik 时,会重定向到身份验证流程。" -#: authentik/flows/models.py:148 +#: authentik/flows/models.py:149 msgid "Background shown during execution" msgstr "执行时的背景" -#: authentik/flows/models.py:155 +#: authentik/flows/models.py:156 msgid "" "Enable compatibility mode, increases compatibility with password managers on" " mobile devices." msgstr "启用兼容模式,增强与移动设备上密码管理器的兼容性。" -#: authentik/flows/models.py:163 +#: authentik/flows/models.py:164 msgid "Configure what should happen when a flow denies access to a user." msgstr "配置当流程拒绝访问一名用户时应该发生什么。" -#: authentik/flows/models.py:169 +#: authentik/flows/models.py:170 msgid "Required level of authentication and authorization to access a flow." msgstr "需要身份验证和授权等级以访问流程。" -#: authentik/flows/models.py:195 +#: authentik/flows/models.py:196 msgid "Flows" msgstr "流程" -#: authentik/flows/models.py:198 +#: authentik/flows/models.py:199 msgid "Can export a Flow" msgstr "可以导出流程" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py:200 msgid "Can inspect a Flow's execution" msgstr "可以检视流程执行" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py:201 msgid "View Flow's cache metrics" msgstr "查看流程缓存指标" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py:202 msgid "Clear Flow's cache metrics" msgstr "清除流程缓存指标" -#: authentik/flows/models.py:217 +#: authentik/flows/models.py:218 msgid "Evaluate policies during the Flow planning process." msgstr "在流程规划过程中评估策略。" -#: authentik/flows/models.py:221 +#: authentik/flows/models.py:222 msgid "Evaluate policies when the Stage is present to the user." msgstr "在阶段呈现给用户时评估策略。" -#: authentik/flows/models.py:228 +#: authentik/flows/models.py:229 msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -709,62 +717,62 @@ msgstr "" "配置流程执行器应如何处理对质询的无效响应。RETRY 向执行器返回错误消息和类似的质询。RESTART " "从头开始重新启动流程,RESTART_WITH_CONTEXT 在保留当前上下文的同时重新启动流程。" -#: authentik/flows/models.py:251 +#: authentik/flows/models.py:252 msgid "Flow Stage Binding" msgstr "流程阶段绑定" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py:253 msgid "Flow Stage Bindings" msgstr "流程阶段绑定" -#: authentik/flows/models.py:267 +#: authentik/flows/models.py:268 msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." msgstr "经过身份验证的用户用来配置此阶段的流程。如果为空,用户将无法配置此阶段。" -#: authentik/flows/models.py:307 +#: authentik/flows/models.py:308 msgid "Flow Token" msgstr "流程令牌" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py:309 msgid "Flow Tokens" msgstr "流程令牌" -#: authentik/lib/utils/time.py:27 +#: authentik/lib/utils/time.py:28 #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "%(value)s 的格式不正确,应为 'hours=3;minutes=1'。" -#: authentik/lib/validators.py:16 +#: authentik/lib/validators.py:17 #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "字段 {field_names} 必须一同使用。" -#: authentik/outposts/api/service_connections.py:127 +#: authentik/outposts/api/service_connections.py:128 msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "您只能在连接到本地集群时使用空的 kubeconfig。" -#: authentik/outposts/api/service_connections.py:135 +#: authentik/outposts/api/service_connections.py:136 msgid "Invalid kubeconfig" msgstr "无效 kubeconfig " -#: authentik/outposts/models.py:123 +#: authentik/outposts/models.py:124 msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" msgstr "如果启用,则使用本地连接。需要 Docker Socket / Kubernetes 集成" -#: authentik/outposts/models.py:153 +#: authentik/outposts/models.py:154 msgid "Outpost Service-Connection" msgstr "前哨服务连接" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py:155 msgid "Outpost Service-Connections" msgstr "前哨服务连接" -#: authentik/outposts/models.py:162 +#: authentik/outposts/models.py:163 msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." @@ -772,242 +780,242 @@ msgstr "" "当连接到本地 Docker " "守护进程时,可以使用“unix://”格式,或者在连接远程系统时,使用“https://:2376”格式。" -#: authentik/outposts/models.py:174 +#: authentik/outposts/models.py:175 msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." msgstr "验证端点证书所依据的 CA。可以留空,表示不进行验证。" -#: authentik/outposts/models.py:186 +#: authentik/outposts/models.py:187 msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." msgstr "用于身份验证的证书/密钥。可以留空表示不验证。" -#: authentik/outposts/models.py:204 +#: authentik/outposts/models.py:205 msgid "Docker Service-Connection" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py:206 msgid "Docker Service-Connections" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:213 +#: authentik/outposts/models.py:214 msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." msgstr "在这里粘贴您的 kubeconfig。authentik 会自动使用当前选择的上下文。" -#: authentik/outposts/models.py:219 +#: authentik/outposts/models.py:220 msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "验证 Kubernetes API 端点的 SSL 证书" -#: authentik/outposts/models.py:236 +#: authentik/outposts/models.py:237 msgid "Kubernetes Service-Connection" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py:238 msgid "Kubernetes Service-Connections" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:253 +#: authentik/outposts/models.py:254 msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave" " empty if authentik should not handle the deployment." msgstr "选择 authentik 在管理此前哨时需要使用的服务连接。如果 authentik 不应该处理此部署,则应该留空。" -#: authentik/outposts/models.py:420 +#: authentik/outposts/models.py:421 msgid "Outpost" msgstr "前哨" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py:422 msgid "Outposts" msgstr "前哨" -#: authentik/policies/denied.py:24 +#: authentik/policies/denied.py:25 msgid "Access denied" msgstr "访问被拒绝" -#: authentik/policies/dummy/models.py:44 +#: authentik/policies/dummy/models.py:45 msgid "Dummy Policy" msgstr "虚拟策略" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py:46 msgid "Dummy Policies" msgstr "虚拟策略" -#: authentik/policies/event_matcher/api.py:20 -#: authentik/policies/event_matcher/models.py:56 +#: authentik/policies/event_matcher/api.py:21 +#: authentik/policies/event_matcher/models.py:57 msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "匹配选定应用程序创建的事件。如果留空,则匹配所有应用程序。" -#: authentik/policies/event_matcher/api.py:29 -#: authentik/policies/event_matcher/models.py:64 +#: authentik/policies/event_matcher/api.py:30 +#: authentik/policies/event_matcher/models.py:65 msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." msgstr "匹配选定模型创建的事件。如果留空,则匹配所有模型。选择应用程序后,则匹配该应用程序的所有模型。" -#: authentik/policies/event_matcher/api.py:42 +#: authentik/policies/event_matcher/api.py:43 msgid "At least one criteria must be set." msgstr "必须至少设置一项标准。" -#: authentik/policies/event_matcher/models.py:48 +#: authentik/policies/event_matcher/models.py:49 msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "将创建的事件与此操作类型匹配。留空时,所有操作类型都将匹配。" -#: authentik/policies/event_matcher/models.py:73 +#: authentik/policies/event_matcher/models.py:74 msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "匹配事件的客户端 IP(严格匹配,要匹配网段请使用表达式策略)" -#: authentik/policies/event_matcher/models.py:143 +#: authentik/policies/event_matcher/models.py:144 msgid "Event Matcher Policy" msgstr "事件匹配策略" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py:145 msgid "Event Matcher Policies" msgstr "事件匹配策略" -#: authentik/policies/expiry/models.py:45 +#: authentik/policies/expiry/models.py:46 #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "密码在 %(days)d 天前过期。请更新您的密码。" -#: authentik/policies/expiry/models.py:49 +#: authentik/policies/expiry/models.py:50 msgid "Password has expired." msgstr "密码已过期。" -#: authentik/policies/expiry/models.py:53 +#: authentik/policies/expiry/models.py:54 msgid "Password Expiry Policy" msgstr "密码过期策略" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py:55 msgid "Password Expiry Policies" msgstr "密码过期策略" -#: authentik/policies/expression/models.py:40 +#: authentik/policies/expression/models.py:41 msgid "Expression Policy" msgstr "表达式策略" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py:42 msgid "Expression Policies" msgstr "表达式策略" -#: authentik/policies/models.py:22 +#: authentik/policies/models.py:23 msgid "all, all policies must pass" msgstr "All,必须通过所有策略" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py:24 msgid "any, any policy must pass" msgstr "Any,必须通过任意策略" -#: authentik/policies/models.py:46 +#: authentik/policies/models.py:47 msgid "Policy Binding Model" msgstr "策略绑定模型" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py:48 msgid "Policy Binding Models" msgstr "策略绑定模型" -#: authentik/policies/models.py:86 +#: authentik/policies/models.py:87 msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "反转策略的结果。消息不受影响。" -#: authentik/policies/models.py:89 +#: authentik/policies/models.py:90 msgid "Timeout after which Policy execution is terminated." msgstr "策略执行终止的超时时间。" -#: authentik/policies/models.py:92 +#: authentik/policies/models.py:93 msgid "Result if the Policy execution fails." msgstr "策略执行失败时的结果。" -#: authentik/policies/models.py:145 +#: authentik/policies/models.py:146 msgid "Policy Binding" msgstr "策略绑定" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py:147 msgid "Policy Bindings" msgstr "策略绑定" -#: authentik/policies/models.py:167 +#: authentik/policies/models.py:168 msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." msgstr "启用此选项后,将记录此策略的所有执行日志。默认情况下,只记录执行错误。" -#: authentik/policies/models.py:189 +#: authentik/policies/models.py:190 msgid "Policy" msgstr "策略" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py:191 msgid "Policies" msgstr "策略" -#: authentik/policies/models.py:193 +#: authentik/policies/models.py:194 msgid "View Policy's cache metrics" msgstr "查看策略缓存指标" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py:195 msgid "Clear Policy's cache metrics" msgstr "清除策略缓存指标" -#: authentik/policies/password/models.py:27 +#: authentik/policies/password/models.py:28 msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "要检查的字段键,可以使用输入阶段中定义的字段键。" -#: authentik/policies/password/models.py:44 +#: authentik/policies/password/models.py:45 msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "密码哈希允许出现在 HaveIBeenPwned 中多少次" -#: authentik/policies/password/models.py:49 +#: authentik/policies/password/models.py:50 msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "如果 zxcvbn 分数小于等于此值,则策略失败。" -#: authentik/policies/password/models.py:72 +#: authentik/policies/password/models.py:73 msgid "Password not set in context" msgstr "未在上下文中设置密码" -#: authentik/policies/password/models.py:134 +#: authentik/policies/password/models.py:135 #, python-format msgid "Password exists on %(count)d online lists." msgstr "%(count)d 个在线列表中存在密码。" -#: authentik/policies/password/models.py:154 +#: authentik/policies/password/models.py:155 msgid "Password is too weak." msgstr "密码太弱。" -#: authentik/policies/password/models.py:162 +#: authentik/policies/password/models.py:163 msgid "Password Policy" msgstr "密码策略" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py:164 msgid "Password Policies" msgstr "密码策略" -#: authentik/policies/reputation/api.py:18 +#: authentik/policies/reputation/api.py:19 msgid "Either IP or Username must be checked" msgstr "必须检查 IP 或用户名" -#: authentik/policies/reputation/models.py:67 +#: authentik/policies/reputation/models.py:68 msgid "Reputation Policy" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py:69 msgid "Reputation Policies" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:96 +#: authentik/policies/reputation/models.py:97 msgid "Reputation Score" msgstr "信誉分数" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py:98 msgid "Reputation Scores" msgstr "信誉分数" @@ -1047,21 +1055,21 @@ msgstr "" " 策略绑定 '%(name)s' 返回结果 '%(result)s'\n" " " -#: authentik/policies/views.py:68 +#: authentik/policies/views.py:69 msgid "Failed to resolve application" msgstr "解析应用程序失败" -#: authentik/providers/ldap/models.py:25 +#: authentik/providers/ldap/models.py:26 msgid "DN under which objects are accessible." msgstr "可访问对象的 DN。" -#: authentik/providers/ldap/models.py:34 +#: authentik/providers/ldap/models.py:35 msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." msgstr "该组中的用户可以执行搜索查询。如果未设置,则每个用户都可以执行搜索查询。" -#: authentik/providers/ldap/models.py:53 +#: authentik/providers/ldap/models.py:54 msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " @@ -1070,7 +1078,7 @@ msgstr "" "起始 uidNumbers,这个数字会被添加到 user.pk 中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "2000,以确保我们不会与本地用户的 uidNumber 发生冲突" -#: authentik/providers/ldap/models.py:62 +#: authentik/providers/ldap/models.py:63 msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1080,8 +1088,8 @@ msgstr "" "起始 gidNumbers,这个数字会被添加到从 group.pk 生成的数字中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "4000,以确保我们不会与本地群组或用户主组的 gidNumber 发生冲突" -#: authentik/providers/ldap/models.py:76 -#: authentik/providers/radius/models.py:34 +#: authentik/providers/ldap/models.py:77 +#: authentik/providers/radius/models.py:35 msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be" @@ -1092,499 +1100,499 @@ msgstr "" "启用时,可以通过在密码后添加分号和 TOTP 代码来使用基于代码的多因素身份验证。仅在所有绑定到此提供程序的用户都已配置 TOTP " "设备的情况下才应该启用,否则密码可能会因为包含分号而被错误地拒绝。" -#: authentik/providers/ldap/models.py:108 +#: authentik/providers/ldap/models.py:109 msgid "LDAP Provider" msgstr "LDAP 提供程序" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py:110 msgid "LDAP Providers" msgstr "LDAP 提供程序" -#: authentik/providers/oauth2/id_token.py:27 +#: authentik/providers/oauth2/id_token.py:28 msgid "Based on the Hashed User ID" msgstr "基于经过哈希处理的用户 ID" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py:29 msgid "Based on user ID" msgstr "基于用户 ID" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py:30 msgid "Based on user UUID" msgstr "基于用户 UUID" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py:31 msgid "Based on the username" msgstr "基于用户名" -#: authentik/providers/oauth2/id_token.py:33 +#: authentik/providers/oauth2/id_token.py:34 msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "基于用户的电子邮箱。建议在 UPN 方法上使用。" -#: authentik/providers/oauth2/id_token.py:38 +#: authentik/providers/oauth2/id_token.py:39 msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." msgstr "基于用户的 UPN,仅当用户设置了 'upn' 属性时才有效。仅当您有不同的 UPN 和 Mail 域时才使用此方法。" -#: authentik/providers/oauth2/models.py:43 +#: authentik/providers/oauth2/models.py:44 msgid "Confidential" msgstr "机密" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py:45 msgid "Public" msgstr "公开" -#: authentik/providers/oauth2/models.py:66 +#: authentik/providers/oauth2/models.py:67 msgid "Same identifier is used for all providers" msgstr "所有提供程序都使用相同的标识符" -#: authentik/providers/oauth2/models.py:68 +#: authentik/providers/oauth2/models.py:69 msgid "Each provider has a different issuer, based on the application slug." msgstr "根据应用程序 Slug,每个提供程序都有不同的颁发者。" -#: authentik/providers/oauth2/models.py:75 +#: authentik/providers/oauth2/models.py:76 msgid "code (Authorization Code Flow)" msgstr "code(授权码流程)" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py:77 msgid "id_token (Implicit Flow)" msgstr "id_token(隐式流程)" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py:78 msgid "id_token token (Implicit Flow)" msgstr "id_token token(隐式流程)" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py:79 msgid "code token (Hybrid Flow)" msgstr "code token(混合流程)" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py:80 msgid "code id_token (Hybrid Flow)" msgstr "code id_token(混合流程)" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py:81 msgid "code id_token token (Hybrid Flow)" msgstr "code id_token token(混合流程)" -#: authentik/providers/oauth2/models.py:86 +#: authentik/providers/oauth2/models.py:87 msgid "HS256 (Symmetric Encryption)" msgstr "HS256(对称加密)" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py:88 msgid "RS256 (Asymmetric Encryption)" msgstr "RS256(非对称加密)" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py:89 msgid "ES256 (Asymmetric Encryption)" msgstr "ES256(非对称加密)" -#: authentik/providers/oauth2/models.py:94 +#: authentik/providers/oauth2/models.py:95 msgid "Scope used by the client" msgstr "客户端使用的作用域" -#: authentik/providers/oauth2/models.py:98 +#: authentik/providers/oauth2/models.py:99 msgid "" "Description shown to the user when consenting. If left empty, the user won't" " be informed." msgstr "同意授权时向用户显示的描述。如果留空,则不会告知用户。" -#: authentik/providers/oauth2/models.py:117 +#: authentik/providers/oauth2/models.py:118 msgid "Scope Mapping" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py:119 msgid "Scope Mappings" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:128 +#: authentik/providers/oauth2/models.py:129 msgid "Client Type" msgstr "客户端类型" -#: authentik/providers/oauth2/models.py:130 +#: authentik/providers/oauth2/models.py:131 msgid "" "Confidential clients are capable of maintaining the confidentiality of their" " credentials. Public clients are incapable" msgstr "机密客户端有能力维护其凭据的机密性。公开客户端无此能力。" -#: authentik/providers/oauth2/models.py:137 +#: authentik/providers/oauth2/models.py:138 msgid "Client ID" msgstr "客户端 ID" -#: authentik/providers/oauth2/models.py:143 +#: authentik/providers/oauth2/models.py:144 msgid "Client Secret" msgstr "客户端密钥" -#: authentik/providers/oauth2/models.py:149 +#: authentik/providers/oauth2/models.py:150 msgid "Redirect URIs" msgstr "重定向 URI" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py:151 msgid "Enter each URI on a new line." msgstr "每行输入一个 URI。" -#: authentik/providers/oauth2/models.py:155 +#: authentik/providers/oauth2/models.py:156 msgid "Include claims in id_token" msgstr "在 id_token 中包含声明" -#: authentik/providers/oauth2/models.py:157 +#: authentik/providers/oauth2/models.py:158 msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." msgstr "对于不访问 userinfo 端点的应用程序,将来自作用域的用户声明包含在 id_token 中。" -#: authentik/providers/oauth2/models.py:166 +#: authentik/providers/oauth2/models.py:167 msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,访问代码无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:174 -#: authentik/providers/oauth2/models.py:182 +#: authentik/providers/oauth2/models.py:175 +#: authentik/providers/oauth2/models.py:183 msgid "" "Tokens not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,令牌无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:191 +#: authentik/providers/oauth2/models.py:192 msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。" -#: authentik/providers/oauth2/models.py:198 +#: authentik/providers/oauth2/models.py:199 msgid "Configure how the issuer field of the ID Token should be filled." msgstr "配置如何填写 ID 令牌的颁发者字段。" -#: authentik/providers/oauth2/models.py:203 +#: authentik/providers/oauth2/models.py:204 msgid "Signing Key" msgstr "签名密钥" -#: authentik/providers/oauth2/models.py:207 +#: authentik/providers/oauth2/models.py:208 msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "用于签名令牌的密钥。仅当 JWT 算法设置为 RS256 时才需要。" -#: authentik/providers/oauth2/models.py:214 +#: authentik/providers/oauth2/models.py:215 msgid "" "Any JWT signed by the JWK of the selected source can be used to " "authenticate." msgstr "任何由选定来源的 JWK 签发的 JWT 都可以用于身份验证。" -#: authentik/providers/oauth2/models.py:287 +#: authentik/providers/oauth2/models.py:288 msgid "OAuth2/OpenID Provider" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py:289 msgid "OAuth2/OpenID Providers" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:297 -#: authentik/providers/oauth2/models.py:430 +#: authentik/providers/oauth2/models.py:298 +#: authentik/providers/oauth2/models.py:431 msgid "Scopes" msgstr "作用域" -#: authentik/providers/oauth2/models.py:317 +#: authentik/providers/oauth2/models.py:318 msgid "Code" msgstr "代码" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py:319 msgid "Nonce" msgstr "Nonce" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py:320 msgid "Code Challenge" msgstr "代码质询" -#: authentik/providers/oauth2/models.py:321 +#: authentik/providers/oauth2/models.py:322 msgid "Code Challenge Method" msgstr "代码质询方法" -#: authentik/providers/oauth2/models.py:341 +#: authentik/providers/oauth2/models.py:342 msgid "Authorization Code" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py:343 msgid "Authorization Codes" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:384 +#: authentik/providers/oauth2/models.py:385 msgid "OAuth2 Access Token" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py:386 msgid "OAuth2 Access Tokens" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:395 +#: authentik/providers/oauth2/models.py:396 msgid "ID Token" msgstr "ID 令牌" -#: authentik/providers/oauth2/models.py:414 +#: authentik/providers/oauth2/models.py:415 msgid "OAuth2 Refresh Token" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py:416 msgid "OAuth2 Refresh Tokens" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:442 +#: authentik/providers/oauth2/models.py:443 msgid "Device Token" msgstr "设备令牌" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py:444 msgid "Device Tokens" msgstr "设备令牌" -#: authentik/providers/oauth2/views/authorize.py:489 -#: authentik/providers/saml/views/flows.py:87 +#: authentik/providers/oauth2/views/authorize.py:490 +#: authentik/providers/saml/views/flows.py:88 #, python-format msgid "Redirecting to %(app)s..." msgstr "正在跳转到 %(app)s…" -#: authentik/providers/oauth2/views/device_init.py:151 +#: authentik/providers/oauth2/views/device_init.py:152 msgid "Invalid code" msgstr "无效代码" -#: authentik/providers/oauth2/views/userinfo.py:55 #: authentik/providers/oauth2/views/userinfo.py:56 +#: authentik/providers/oauth2/views/userinfo.py:57 msgid "GitHub Compatibility: Access your User Information" msgstr "GitHub 兼容性:访问您的用户信息" -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py:58 msgid "GitHub Compatibility: Access you Email addresses" msgstr "GitHub 兼容性:访问您的电子邮件地址" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py:59 msgid "GitHub Compatibility: Access your Groups" msgstr "GitHub 兼容性:访问您的组" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py:60 msgid "authentik API Access on behalf of your user" msgstr "代表您的用户访问 authentik API" -#: authentik/providers/proxy/api.py:52 +#: authentik/providers/proxy/api.py:53 msgid "User and password attributes must be set when basic auth is enabled." msgstr "启用 Basic Auth 时,必须设置用户和密码属性。" -#: authentik/providers/proxy/api.py:63 +#: authentik/providers/proxy/api.py:64 msgid "Internal host cannot be empty when forward auth is disabled." msgstr "禁用 Forward Auth 时,内部主机不能为空。" -#: authentik/providers/proxy/models.py:54 +#: authentik/providers/proxy/models.py:55 msgid "Validate SSL Certificates of upstream servers" msgstr "验证上游服务器的 SSL 证书" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py:56 msgid "Internal host SSL Validation" msgstr "内部主机 SSL 验证" -#: authentik/providers/proxy/models.py:61 +#: authentik/providers/proxy/models.py:62 msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." msgstr "在 traefik 和 nginx auth_request 中启用对 ForwardAuth 的支持。排除 internal_host。" -#: authentik/providers/proxy/models.py:70 +#: authentik/providers/proxy/models.py:71 msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." msgstr "用于描述何处不需要身份验证的正则表达式。每个新行都被解释为一个新的正则表达式。" -#: authentik/providers/proxy/models.py:78 +#: authentik/providers/proxy/models.py:79 msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." msgstr "启用时,此提供程序将会拦截 Authorization 标头,并基于其值认证请求。" -#: authentik/providers/proxy/models.py:84 +#: authentik/providers/proxy/models.py:85 msgid "Set HTTP-Basic Authentication" msgstr "设置 HTTP-Basic 身份验证" -#: authentik/providers/proxy/models.py:86 +#: authentik/providers/proxy/models.py:87 msgid "" "Set a custom HTTP-Basic Authentication header based on values from " "authentik." msgstr "根据来自 authentik 的值设置自定义 HTTP-Basic 身份验证标头。" -#: authentik/providers/proxy/models.py:91 +#: authentik/providers/proxy/models.py:92 msgid "HTTP-Basic Username Key" msgstr "HTTP-Basic 用户名密钥" -#: authentik/providers/proxy/models.py:93 +#: authentik/providers/proxy/models.py:94 msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not" " set, the user's Email address is used." msgstr "用于 HTTP-Basic 标头用户名部分的用户/组属性。如果未设置,则使用用户的电子邮件地址。" -#: authentik/providers/proxy/models.py:99 +#: authentik/providers/proxy/models.py:100 msgid "HTTP-Basic Password Key" msgstr "HTTP-Basic 密码密钥" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py:101 msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "用于 HTTP-Basic 标头的密码部分的用户/组属性。" -#: authentik/providers/proxy/models.py:154 +#: authentik/providers/proxy/models.py:155 msgid "Proxy Provider" msgstr "代理提供程序" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py:156 msgid "Proxy Providers" msgstr "代理提供程序" -#: authentik/providers/radius/models.py:18 +#: authentik/providers/radius/models.py:19 msgid "Shared secret between clients and server to hash packets." msgstr "在客户端和服务端之间共享密钥以哈希数据包。" -#: authentik/providers/radius/models.py:24 +#: authentik/providers/radius/models.py:25 msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." msgstr "允许客户端连接的 CIDR 列表(逗号分隔)。严格的 CIDR 会在宽松的之前匹配。来自 CIDR 范围外的客户端连接将会被丢弃。" -#: authentik/providers/radius/models.py:60 +#: authentik/providers/radius/models.py:61 msgid "Radius Provider" msgstr "Radius 提供程序" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py:62 msgid "Radius Providers" msgstr "Radius 提供程序" -#: authentik/providers/saml/api/providers.py:258 +#: authentik/providers/saml/api/providers.py:261 msgid "Invalid XML Syntax" msgstr "无效 XML 语法" -#: authentik/providers/saml/api/providers.py:268 +#: authentik/providers/saml/api/providers.py:271 #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "导入元数据失败:%(message)s" -#: authentik/providers/saml/models.py:38 +#: authentik/providers/saml/models.py:39 msgid "ACS URL" msgstr "ACS URL" -#: authentik/providers/saml/models.py:43 +#: authentik/providers/saml/models.py:44 msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." msgstr "断言的 Audience 受限字段的值。留空时,不会添加 Audience 限制。" -#: authentik/providers/saml/models.py:47 +#: authentik/providers/saml/models.py:48 msgid "Also known as EntityID" msgstr "也称为 EntityID" -#: authentik/providers/saml/models.py:51 +#: authentik/providers/saml/models.py:52 msgid "Service Provider Binding" msgstr "服务提供程序绑定" -#: authentik/providers/saml/models.py:53 +#: authentik/providers/saml/models.py:54 msgid "" "This determines how authentik sends the response back to the Service " "Provider." msgstr "确定 authentik 如何将响应发送回服务提供程序。" -#: authentik/providers/saml/models.py:63 +#: authentik/providers/saml/models.py:64 msgid "NameID Property Mapping" msgstr "NameID 属性映射" -#: authentik/providers/saml/models.py:65 +#: authentik/providers/saml/models.py:66 msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" msgstr "配置如何创建 NameID 值。如果留空,将考虑传入请求的 NameIDPolicy" -#: authentik/providers/saml/models.py:74 +#: authentik/providers/saml/models.py:75 msgid "" "Assertion valid not before current time + this value (Format: " "hours=-1;minutes=-2;seconds=-3)." msgstr "从当前时间经过多久时或之后,断言有效(格式:hours=-1;minutes=-2;seconds=-3)。" -#: authentik/providers/saml/models.py:82 +#: authentik/providers/saml/models.py:83 msgid "" "Assertion not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,断言无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:91 +#: authentik/providers/saml/models.py:92 msgid "" "Session not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,会话无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:99 authentik/sources/saml/models.py:150 +#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 msgid "SHA1" msgstr "SHA1" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 msgid "SHA256" msgstr "SHA256" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 msgid "SHA384" msgstr "SHA384" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py:103 authentik/sources/saml/models.py:154 msgid "SHA512" msgstr "SHA512" -#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:160 +#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 msgid "RSA-SHA1" msgstr "RSA-SHA1" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 msgid "RSA-SHA256" msgstr "RSA-SHA256" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 msgid "RSA-SHA384" msgstr "RSA-SHA384" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 msgid "RSA-SHA512" msgstr "RSA-SHA512" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py:114 authentik/sources/saml/models.py:165 msgid "DSA-SHA1" msgstr "DSA-SHA1" -#: authentik/providers/saml/models.py:124 authentik/sources/saml/models.py:130 +#: authentik/providers/saml/models.py:125 authentik/sources/saml/models.py:131 msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." msgstr "选中后,传入断言的签名将根据此证书进行验证。要允许未签名的请求,请保留默认值。" -#: authentik/providers/saml/models.py:128 authentik/sources/saml/models.py:134 +#: authentik/providers/saml/models.py:129 authentik/sources/saml/models.py:135 msgid "Verification Certificate" msgstr "验证证书" -#: authentik/providers/saml/models.py:136 +#: authentik/providers/saml/models.py:137 msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "密钥对,用于签署发送给服务提供程序的传出响应。" -#: authentik/providers/saml/models.py:138 authentik/sources/saml/models.py:144 +#: authentik/providers/saml/models.py:139 authentik/sources/saml/models.py:145 msgid "Signing Keypair" msgstr "签名密钥对" -#: authentik/providers/saml/models.py:142 +#: authentik/providers/saml/models.py:143 msgid "Default relay_state value for IDP-initiated logins" msgstr "用于 IDP 发起登录的默认 relay_state 值" -#: authentik/providers/saml/models.py:171 +#: authentik/providers/saml/models.py:172 msgid "SAML Provider" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py:173 msgid "SAML Providers" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:196 +#: authentik/providers/saml/models.py:197 msgid "SAML Property Mapping" msgstr "SAML 属性映射" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py:198 msgid "SAML Property Mappings" msgstr "SAML 属性映射" @@ -1596,7 +1604,7 @@ msgstr "SCIM 请求的基础 URL,通常以 /v2 结尾" msgid "Authentication token" msgstr "身份验证令牌" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:98 +#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:99 msgid "Property mappings used for group creation/updating." msgstr "用于创建/更新组的属性映射。" @@ -1616,434 +1624,434 @@ msgstr "SCIM 映射" msgid "SCIM Mappings" msgstr "SCIM 映射" -#: authentik/providers/scim/tasks.py:57 +#: authentik/providers/scim/tasks.py:58 msgid "Starting full SCIM sync" msgstr "开始全量 SCIM 同步" -#: authentik/providers/scim/tasks.py:67 +#: authentik/providers/scim/tasks.py:68 #, python-format msgid "Syncing page %(page)d of users" msgstr "正在同步用户页面 %(page)d" -#: authentik/providers/scim/tasks.py:71 +#: authentik/providers/scim/tasks.py:72 #, python-format msgid "Syncing page %(page)d of groups" msgstr "正在同步群组页面 %(page)d" -#: authentik/providers/scim/tasks.py:103 +#: authentik/providers/scim/tasks.py:104 #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步用户 %(user_name)s 失败:%(error)s" -#: authentik/providers/scim/tasks.py:114 authentik/providers/scim/tasks.py:155 +#: authentik/providers/scim/tasks.py:115 authentik/providers/scim/tasks.py:156 #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "由于以下错误,同步停止:%(error)s" -#: authentik/providers/scim/tasks.py:144 +#: authentik/providers/scim/tasks.py:145 #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步组 %(group_name)s 失败:%(error)s" -#: authentik/rbac/models.py:51 +#: authentik/rbac/models.py:52 msgid "Role" msgstr "角色" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py:53 msgid "Roles" msgstr "角色" -#: authentik/rbac/models.py:66 +#: authentik/rbac/models.py:67 msgid "System permission" msgstr "系统权限" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py:68 msgid "System permissions" msgstr "系统权限" -#: authentik/rbac/models.py:69 +#: authentik/rbac/models.py:70 msgid "Can view system info" msgstr "可以查看系统信息" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py:71 msgid "Can view system tasks" msgstr "可以查看系统任务" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py:72 msgid "Can run system tasks" msgstr "可以运行系统任务" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py:73 msgid "Can access admin interface" msgstr "可以访问管理员界面" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py:74 msgid "Can view system settings" msgstr "可以查看系统设置" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py:75 msgid "Can edit system settings" msgstr "可以编辑系统设置" -#: authentik/recovery/management/commands/create_admin_group.py:12 +#: authentik/recovery/management/commands/create_admin_group.py:13 msgid "Create admin group if the default group gets deleted." msgstr "如果默认组被删除,则创建管理员组。" -#: authentik/recovery/management/commands/create_recovery_key.py:16 +#: authentik/recovery/management/commands/create_recovery_key.py:17 msgid "Create a Key which can be used to restore access to authentik." msgstr "创建一个密钥,可用于恢复对 authentik 的访问权限。" -#: authentik/recovery/views.py:24 +#: authentik/recovery/views.py:25 msgid "Used recovery-link to authenticate." msgstr "已使用恢复链接进行身份验证。" -#: authentik/sources/ldap/models.py:41 +#: authentik/sources/ldap/models.py:42 msgid "Server URI" msgstr "服务器 URI" -#: authentik/sources/ldap/models.py:50 +#: authentik/sources/ldap/models.py:51 msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this" " keypair." msgstr "可选,根据此密钥对中的 CA 链验证 LDAP 服务器的证书。" -#: authentik/sources/ldap/models.py:59 +#: authentik/sources/ldap/models.py:60 msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "基于 LDAP 服务端证书进行身份验证的客户端证书。" -#: authentik/sources/ldap/models.py:62 +#: authentik/sources/ldap/models.py:63 msgid "Bind CN" msgstr "Bind CN" -#: authentik/sources/ldap/models.py:64 +#: authentik/sources/ldap/models.py:65 msgid "Enable Start TLS" msgstr "启用 Start TLS" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py:66 msgid "Use Server URI for SNI verification" msgstr "SNI 验证时使用服务器 URI" -#: authentik/sources/ldap/models.py:67 +#: authentik/sources/ldap/models.py:68 msgid "Base DN" msgstr "Base DN" -#: authentik/sources/ldap/models.py:69 +#: authentik/sources/ldap/models.py:70 msgid "Prepended to Base DN for User-queries." msgstr "添加到用户查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py:71 msgid "Addition User DN" msgstr "额外的用户 DN" -#: authentik/sources/ldap/models.py:74 +#: authentik/sources/ldap/models.py:75 msgid "Prepended to Base DN for Group-queries." msgstr "添加到组查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py:76 msgid "Addition Group DN" msgstr "额外的组 DN" -#: authentik/sources/ldap/models.py:81 +#: authentik/sources/ldap/models.py:82 msgid "Consider Objects matching this filter to be Users." msgstr "将与此筛选器匹配的对象视为用户。" -#: authentik/sources/ldap/models.py:84 +#: authentik/sources/ldap/models.py:85 msgid "Field which contains members of a group." msgstr "包含组成员的字段。" -#: authentik/sources/ldap/models.py:88 +#: authentik/sources/ldap/models.py:89 msgid "Consider Objects matching this filter to be Groups." msgstr "将与此过滤器匹配的对象视为组。" -#: authentik/sources/ldap/models.py:91 +#: authentik/sources/ldap/models.py:92 msgid "Field which contains a unique Identifier." msgstr "包含唯一标识符的字段。" -#: authentik/sources/ldap/models.py:105 +#: authentik/sources/ldap/models.py:106 msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "当用户修改密码时,将其同步回 LDAP。仅可在单点 LDAP 源时启用。" -#: authentik/sources/ldap/models.py:248 +#: authentik/sources/ldap/models.py:249 msgid "LDAP Source" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py:250 msgid "LDAP Sources" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:271 +#: authentik/sources/ldap/models.py:272 msgid "LDAP Property Mapping" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py:273 msgid "LDAP Property Mappings" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/signals.py:52 +#: authentik/sources/ldap/signals.py:53 msgid "Password does not match Active Directory Complexity." msgstr "密码与 Active Directory 复杂度不匹配。" -#: authentik/sources/oauth/clients/oauth2.py:68 +#: authentik/sources/oauth/clients/oauth2.py:69 msgid "No token received." msgstr "未收到令牌。" -#: authentik/sources/oauth/models.py:24 +#: authentik/sources/oauth/models.py:25 msgid "Request Token URL" msgstr "请求令牌 URL" -#: authentik/sources/oauth/models.py:26 +#: authentik/sources/oauth/models.py:27 msgid "" "URL used to request the initial token. This URL is only required for OAuth " "1." msgstr "用于请求初始令牌的 URL。只有 OAuth 1 才需要此网址。" -#: authentik/sources/oauth/models.py:32 +#: authentik/sources/oauth/models.py:33 msgid "Authorization URL" msgstr "授权 URL" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py:34 msgid "URL the user is redirect to to conest the flow." msgstr "为控制流程,使用户被重定向到的 URL" -#: authentik/sources/oauth/models.py:38 +#: authentik/sources/oauth/models.py:39 msgid "Access Token URL" msgstr "访问令牌 URL" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py:40 msgid "URL used by authentik to retrieve tokens." msgstr "authentik 用来获取令牌的 URL。" -#: authentik/sources/oauth/models.py:44 +#: authentik/sources/oauth/models.py:45 msgid "Profile URL" msgstr "个人资料 URL" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py:46 msgid "URL used by authentik to get user information." msgstr "authentik 用来获取用户信息的 URL。" -#: authentik/sources/oauth/models.py:48 +#: authentik/sources/oauth/models.py:49 msgid "Additional Scopes" msgstr "额外的作用域" -#: authentik/sources/oauth/models.py:107 +#: authentik/sources/oauth/models.py:108 msgid "OAuth Source" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py:109 msgid "OAuth Sources" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:116 +#: authentik/sources/oauth/models.py:117 msgid "GitHub OAuth Source" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py:118 msgid "GitHub OAuth Sources" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:125 +#: authentik/sources/oauth/models.py:126 msgid "Twitch OAuth Source" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py:127 msgid "Twitch OAuth Sources" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:134 +#: authentik/sources/oauth/models.py:135 msgid "Mailcow OAuth Source" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py:136 msgid "Mailcow OAuth Sources" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:143 +#: authentik/sources/oauth/models.py:144 msgid "Twitter OAuth Source" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py:145 msgid "Twitter OAuth Sources" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:152 +#: authentik/sources/oauth/models.py:153 msgid "Facebook OAuth Source" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py:154 msgid "Facebook OAuth Sources" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:161 +#: authentik/sources/oauth/models.py:162 msgid "Discord OAuth Source" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py:163 msgid "Discord OAuth Sources" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:170 +#: authentik/sources/oauth/models.py:171 msgid "Patreon OAuth Source" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py:172 msgid "Patreon OAuth Sources" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:179 +#: authentik/sources/oauth/models.py:180 msgid "Google OAuth Source" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py:181 msgid "Google OAuth Sources" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:188 +#: authentik/sources/oauth/models.py:189 msgid "Azure AD OAuth Source" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py:190 msgid "Azure AD OAuth Sources" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:197 +#: authentik/sources/oauth/models.py:198 msgid "OpenID OAuth Source" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py:199 msgid "OpenID OAuth Sources" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:206 +#: authentik/sources/oauth/models.py:207 msgid "Apple OAuth Source" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py:208 msgid "Apple OAuth Sources" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:215 +#: authentik/sources/oauth/models.py:216 msgid "Okta OAuth Source" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py:217 msgid "Okta OAuth Sources" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:224 +#: authentik/sources/oauth/models.py:225 msgid "Reddit OAuth Source" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py:226 msgid "Reddit OAuth Sources" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:247 +#: authentik/sources/oauth/models.py:248 msgid "User OAuth Source Connection" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py:249 msgid "User OAuth Source Connections" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/views/callback.py:100 +#: authentik/sources/oauth/views/callback.py:101 #, python-format msgid "Authentication failed: %(reason)s" msgstr "身份验证失败:%(reason)s" -#: authentik/sources/plex/models.py:37 +#: authentik/sources/plex/models.py:38 msgid "Client identifier used to talk to Plex." msgstr "用来与 Plex 通信的客户端标识符。" -#: authentik/sources/plex/models.py:44 +#: authentik/sources/plex/models.py:45 msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." msgstr "用户必须是哪个服务器的成员才能获取权限。空列表允许任何服务器。" -#: authentik/sources/plex/models.py:50 +#: authentik/sources/plex/models.py:51 msgid "Allow friends to authenticate, even if you don't share a server." msgstr "允许好友进行身份验证,即使您不共享服务器。" -#: authentik/sources/plex/models.py:52 +#: authentik/sources/plex/models.py:53 msgid "Plex token used to check friends" msgstr "用于检查好友的 Plex 令牌" -#: authentik/sources/plex/models.py:95 +#: authentik/sources/plex/models.py:96 msgid "Plex Source" msgstr "Plex 源" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py:97 msgid "Plex Sources" msgstr "Plex 源" -#: authentik/sources/plex/models.py:112 +#: authentik/sources/plex/models.py:113 msgid "User Plex Source Connection" msgstr "用户 Plex 源连接" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py:114 msgid "User Plex Source Connections" msgstr "用户 Plex 源连接" -#: authentik/sources/saml/models.py:40 +#: authentik/sources/saml/models.py:41 msgid "Redirect Binding" msgstr "重定向绑定" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py:42 msgid "POST Binding" msgstr "POST 绑定" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py:43 msgid "POST Binding with auto-confirmation" msgstr "带有自动确认功能的 POST 绑定" -#: authentik/sources/saml/models.py:70 +#: authentik/sources/saml/models.py:71 msgid "Flow used before authentication." msgstr "身份验证之前使用的流程。" -#: authentik/sources/saml/models.py:77 +#: authentik/sources/saml/models.py:78 msgid "Issuer" msgstr "颁发者" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py:79 msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "也称为 Entity ID。 默认为元数据 URL。" -#: authentik/sources/saml/models.py:82 +#: authentik/sources/saml/models.py:83 msgid "SSO URL" msgstr "SSO URL" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py:84 msgid "URL that the initial Login request is sent to." msgstr "初始登录请求发送到的 URL。" -#: authentik/sources/saml/models.py:89 +#: authentik/sources/saml/models.py:90 msgid "SLO URL" msgstr "SLO URL" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py:91 msgid "Optional URL if your IDP supports Single-Logout." msgstr "如果您的 IDP 支持单点登出,则为可选 URL。" -#: authentik/sources/saml/models.py:96 +#: authentik/sources/saml/models.py:97 msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." msgstr "允许由 IdP 启动的身份验证流程。这可能存在安全风险,因为未对请求 ID 进行验证。" -#: authentik/sources/saml/models.py:104 +#: authentik/sources/saml/models.py:105 msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is " "sent." msgstr "发送给 IdP 的 NameID 策略。可以取消设置,此时不会发送任何策略。" -#: authentik/sources/saml/models.py:115 +#: authentik/sources/saml/models.py:116 msgid "Delete temporary users after" msgstr "多久后删除临时用户" -#: authentik/sources/saml/models.py:118 +#: authentik/sources/saml/models.py:119 msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " @@ -2052,134 +2060,134 @@ msgstr "" "删除临时用户的时间偏移。这仅适用于您的 IDP 使用 NameID 格式 'transient' " "且用户未手动登出的情况。(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/sources/saml/models.py:142 +#: authentik/sources/saml/models.py:143 msgid "" "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "密钥对,用于签署发送给身份提供程序的传出响应。" -#: authentik/sources/saml/models.py:226 +#: authentik/sources/saml/models.py:227 msgid "SAML Source" msgstr "SAML 源" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py:228 msgid "SAML Sources" msgstr "SAML 源" -#: authentik/sources/saml/models.py:242 +#: authentik/sources/saml/models.py:243 msgid "User SAML Source Connection" msgstr "用户 SAML 源连接" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py:244 msgid "User SAML Source Connections" msgstr "用户 SAML 源连接" -#: authentik/stages/authenticator_duo/models.py:79 +#: authentik/stages/authenticator_duo/models.py:80 msgid "Duo Authenticator Setup Stage" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py:81 msgid "Duo Authenticator Setup Stages" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:103 +#: authentik/stages/authenticator_duo/models.py:104 msgid "Duo Device" msgstr "Duo 设备" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py:105 msgid "Duo Devices" msgstr "Duo 设备" -#: authentik/stages/authenticator_sms/models.py:57 +#: authentik/stages/authenticator_sms/models.py:58 msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" " not reused in the future." msgstr "启用时,电话号码仅在注册期间用于验证用户的真实性。仅保存电话号码的哈希,以确保将来不会重复使用。" -#: authentik/stages/authenticator_sms/models.py:68 +#: authentik/stages/authenticator_sms/models.py:69 msgid "Optionally modify the payload being sent to custom providers." msgstr "可选地,修改发送到自定义提供程序的载荷。" -#: authentik/stages/authenticator_sms/models.py:81 +#: authentik/stages/authenticator_sms/models.py:82 #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "使用此代码在 authentik 中验证身份:%(token)s" -#: authentik/stages/authenticator_sms/models.py:180 +#: authentik/stages/authenticator_sms/models.py:181 msgid "SMS Authenticator Setup Stage" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py:182 msgid "SMS Authenticator Setup Stages" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:226 +#: authentik/stages/authenticator_sms/models.py:227 msgid "SMS Device" msgstr "短信设备" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py:228 msgid "SMS Devices" msgstr "短信设备" -#: authentik/stages/authenticator_sms/stage.py:57 -#: authentik/stages/authenticator_totp/stage.py:41 -#: authentik/stages/authenticator_totp/stage.py:44 +#: authentik/stages/authenticator_sms/stage.py:58 +#: authentik/stages/authenticator_totp/stage.py:42 +#: authentik/stages/authenticator_totp/stage.py:45 msgid "Code does not match" msgstr "代码不匹配" -#: authentik/stages/authenticator_sms/stage.py:73 +#: authentik/stages/authenticator_sms/stage.py:74 msgid "Invalid phone number" msgstr "无效电话号码" -#: authentik/stages/authenticator_static/models.py:52 +#: authentik/stages/authenticator_static/models.py:53 msgid "Static Authenticator Setup Stage" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py:54 msgid "Static Authenticator Setup Stages" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:98 +#: authentik/stages/authenticator_static/models.py:99 msgid "Static Device" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py:100 msgid "Static Devices" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:129 +#: authentik/stages/authenticator_static/models.py:130 msgid "Static Token" msgstr "静态令牌" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py:131 msgid "Static Tokens" msgstr "静态令牌" -#: authentik/stages/authenticator_totp/models.py:25 +#: authentik/stages/authenticator_totp/models.py:26 msgid "6 digits, widely compatible" msgstr "6 位数字,广泛兼容" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py:27 msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "8 位数字,与 Google 身份验证器等应用不兼容" -#: authentik/stages/authenticator_totp/models.py:62 +#: authentik/stages/authenticator_totp/models.py:63 msgid "TOTP Authenticator Setup Stage" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py:64 msgid "TOTP Authenticator Setup Stages" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:244 +#: authentik/stages/authenticator_totp/models.py:245 msgid "TOTP Device" msgstr "TOTP 设备" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py:246 msgid "TOTP Devices" msgstr "TOTP 设备" -#: authentik/stages/authenticator_validate/challenge.py:123 +#: authentik/stages/authenticator_validate/challenge.py:124 msgid "Invalid Token" msgstr "无效令牌" @@ -2232,19 +2240,19 @@ msgstr "身份验证器验证阶段" msgid "Authenticator Validation Stages" msgstr "身份验证器验证阶段" -#: authentik/stages/authenticator_webauthn/models.py:112 +#: authentik/stages/authenticator_webauthn/models.py:113 msgid "WebAuthn Authenticator Setup Stage" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py:114 msgid "WebAuthn Authenticator Setup Stages" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:151 +#: authentik/stages/authenticator_webauthn/models.py:152 msgid "WebAuthn Device" msgstr "WebAuthn 设备" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py:153 msgid "WebAuthn Devices" msgstr "WebAuthn 设备" @@ -2285,69 +2293,69 @@ msgstr "用户同意授权" msgid "User Consents" msgstr "用户同意授权" -#: authentik/stages/deny/models.py:32 +#: authentik/stages/deny/models.py:33 msgid "Deny Stage" msgstr "拒绝阶段" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py:34 msgid "Deny Stages" msgstr "拒绝阶段" -#: authentik/stages/dummy/models.py:34 +#: authentik/stages/dummy/models.py:35 msgid "Dummy Stage" msgstr "虚拟阶段" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py:36 msgid "Dummy Stages" msgstr "虚拟阶段" -#: authentik/stages/email/models.py:26 +#: authentik/stages/email/models.py:27 msgid "Password Reset" msgstr "密码重置" -#: authentik/stages/email/models.py:30 +#: authentik/stages/email/models.py:31 msgid "Account Confirmation" msgstr "账户确认" -#: authentik/stages/email/models.py:59 +#: authentik/stages/email/models.py:60 msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." msgstr "启用后,将使用全局电子邮件连接设置,下面的连接设置将被忽略。" -#: authentik/stages/email/models.py:74 +#: authentik/stages/email/models.py:75 msgid "Activate users upon completion of stage." msgstr "完成阶段后激活用户。" -#: authentik/stages/email/models.py:78 +#: authentik/stages/email/models.py:79 msgid "Time in minutes the token sent is valid." msgstr "发出令牌的有效时间(单位为分钟)。" -#: authentik/stages/email/models.py:132 +#: authentik/stages/email/models.py:133 msgid "Email Stage" msgstr "电子邮件阶段" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py:134 msgid "Email Stages" msgstr "电子邮件阶段" -#: authentik/stages/email/stage.py:126 +#: authentik/stages/email/stage.py:127 msgid "Exception occurred while rendering E-mail template" msgstr "渲染电子邮件模板时发生异常" -#: authentik/stages/email/stage.py:140 +#: authentik/stages/email/stage.py:141 msgid "Successfully verified Email." msgstr "已成功验证电子邮件。" -#: authentik/stages/email/stage.py:147 authentik/stages/email/stage.py:173 +#: authentik/stages/email/stage.py:148 authentik/stages/email/stage.py:174 msgid "No pending user." msgstr "没有待处理的用户。" -#: authentik/stages/email/stage.py:163 +#: authentik/stages/email/stage.py:164 msgid "Email sent." msgstr "电子邮件已发出。" -#: authentik/stages/email/stage.py:176 +#: authentik/stages/email/stage.py:177 msgid "Email Successfully sent." msgstr "成功发送电子邮件。" @@ -2491,7 +2499,7 @@ msgstr "" "\n" "这是一封测试电子邮件,用于通知您已成功配置 authentik 电子邮件。\n" -#: authentik/stages/identification/api.py:20 +#: authentik/stages/identification/api.py:21 msgid "When no user fields are selected, at least one source must be selected" msgstr "如果未选择用户字段,则至少要选择一个源" @@ -2542,184 +2550,184 @@ msgstr "识别阶段" msgid "Identification Stages" msgstr "识别阶段" -#: authentik/stages/identification/stage.py:188 +#: authentik/stages/identification/stage.py:189 msgid "Log in" msgstr "登录" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py:190 msgid "Continue" msgstr "继续" -#: authentik/stages/invitation/models.py:21 +#: authentik/stages/invitation/models.py:22 msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " "invitation is given." msgstr "如果设置了此标志,则当没有发出邀请时,此阶段将跳转到下一个阶段。默认情况下,当没有发出邀请时,此阶段将取消流程。" -#: authentik/stages/invitation/models.py:44 +#: authentik/stages/invitation/models.py:45 msgid "Invitation Stage" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py:46 msgid "Invitation Stages" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:60 +#: authentik/stages/invitation/models.py:61 msgid "When set, only the configured flow can use this invitation." msgstr "设置时,只有配置的流程可以使用此邀请。" -#: authentik/stages/invitation/models.py:64 +#: authentik/stages/invitation/models.py:65 msgid "When enabled, the invitation will be deleted after usage." msgstr "启用后,邀请将在使用后被删除。" -#: authentik/stages/invitation/models.py:71 +#: authentik/stages/invitation/models.py:72 msgid "Optional fixed data to enforce on user enrollment." msgstr "在用户注册时强制设置的可选固定数据。" -#: authentik/stages/invitation/models.py:84 +#: authentik/stages/invitation/models.py:85 msgid "Invitation" msgstr "邀请" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py:86 msgid "Invitations" msgstr "邀请" -#: authentik/stages/invitation/stage.py:62 +#: authentik/stages/invitation/stage.py:63 msgid "Invalid invite/invite not found" msgstr "邀请无效/未找到" -#: authentik/stages/password/models.py:20 +#: authentik/stages/password/models.py:21 msgid "User database + standard password" msgstr "用户数据库 + 标准密码" -#: authentik/stages/password/models.py:24 +#: authentik/stages/password/models.py:25 msgid "User database + app passwords" msgstr "用户数据库 + 应用程序密码" -#: authentik/stages/password/models.py:28 +#: authentik/stages/password/models.py:29 msgid "User database + LDAP password" msgstr "用户数据库 + LDAP 密码" -#: authentik/stages/password/models.py:38 +#: authentik/stages/password/models.py:39 msgid "Selection of backends to test the password against." msgstr "选择用于测试密码的后端。" -#: authentik/stages/password/models.py:43 +#: authentik/stages/password/models.py:44 msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." msgstr "在取消流程之前,用户可以尝试多少次。要锁定用户,请使用信誉策略和 user_write 阶段。" -#: authentik/stages/password/models.py:75 +#: authentik/stages/password/models.py:76 msgid "Password Stage" msgstr "密码阶段" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py:77 msgid "Password Stages" msgstr "密码阶段" -#: authentik/stages/password/stage.py:124 +#: authentik/stages/password/stage.py:125 msgid "Invalid password" msgstr "无效密码" -#: authentik/stages/prompt/models.py:43 +#: authentik/stages/prompt/models.py:44 msgid "Text: Simple Text input" msgstr "文本:简单文本输入" -#: authentik/stages/prompt/models.py:45 +#: authentik/stages/prompt/models.py:46 msgid "Text area: Multiline Text Input." msgstr "文本框:多行文本输入。" -#: authentik/stages/prompt/models.py:48 +#: authentik/stages/prompt/models.py:49 msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "文本(只读):简单文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:52 +#: authentik/stages/prompt/models.py:53 msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "文本框(只读):多行文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:58 +#: authentik/stages/prompt/models.py:59 msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." msgstr "用户名:与文本输入相同,但检查并防止用户名重复。" -#: authentik/stages/prompt/models.py:60 +#: authentik/stages/prompt/models.py:61 msgid "Email: Text field with Email type." msgstr "电子邮箱:电子邮箱类型的文本字段。" -#: authentik/stages/prompt/models.py:64 +#: authentik/stages/prompt/models.py:65 msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need" " to be identical." msgstr "密码:屏蔽显示输入内容,多个此类型的输入如果在同一个输入项下,则内容需要相同。" -#: authentik/stages/prompt/models.py:71 +#: authentik/stages/prompt/models.py:72 msgid "Fixed choice field rendered as a group of radio buttons." msgstr "显示为一组单选按钮的固定选项字段。" -#: authentik/stages/prompt/models.py:73 +#: authentik/stages/prompt/models.py:74 msgid "Fixed choice field rendered as a dropdown." msgstr "显示为下拉框的固定选项字段。" -#: authentik/stages/prompt/models.py:80 +#: authentik/stages/prompt/models.py:81 msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" msgstr "文件:任意文件上传。文件内容将在流程上下文中以 data-URI 形式提供" -#: authentik/stages/prompt/models.py:85 +#: authentik/stages/prompt/models.py:86 msgid "Separator: Static Separator Line" msgstr "分隔符:静态分隔线" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py:87 msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "隐藏:隐藏字段,可用于将数据插入表单。" -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py:88 msgid "Static: Static value, displayed as-is." msgstr "静态:静态值,按原样显示。" -#: authentik/stages/prompt/models.py:89 +#: authentik/stages/prompt/models.py:90 msgid "authentik: Selection of locales authentik supports" msgstr "authentik:选择 authentik 支持的语言环境" -#: authentik/stages/prompt/models.py:116 +#: authentik/stages/prompt/models.py:117 msgid "Name of the form field, also used to store the value" msgstr "表单域的名称,也用于存储值" -#: authentik/stages/prompt/models.py:124 +#: authentik/stages/prompt/models.py:125 msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." msgstr "可选的简短提示,用来描述期望的输入值。在创建固定选项字段时,启用以表达式解释,并返回多个选项的列表。" -#: authentik/stages/prompt/models.py:132 +#: authentik/stages/prompt/models.py:133 msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." msgstr "可选的预设输入初始值。在创建固定选项字段时,启用以表达式解释,并返回多个默认选项的列表。" -#: authentik/stages/prompt/models.py:321 +#: authentik/stages/prompt/models.py:322 msgid "Prompt" msgstr "输入" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py:323 msgid "Prompts" msgstr "输入" -#: authentik/stages/prompt/models.py:349 +#: authentik/stages/prompt/models.py:350 msgid "Prompt Stage" msgstr "输入阶段" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py:351 msgid "Prompt Stages" msgstr "输入阶段" -#: authentik/stages/prompt/stage.py:108 +#: authentik/stages/prompt/stage.py:109 msgid "Passwords don't match." msgstr "密码不匹配。" @@ -2731,7 +2739,7 @@ msgstr "用户删除阶段" msgid "User Delete Stages" msgstr "用户删除阶段" -#: authentik/stages/user_delete/stage.py:18 +#: authentik/stages/user_delete/stage.py:19 msgid "No Pending User." msgstr "没有待处理的用户。" @@ -2764,11 +2772,11 @@ msgstr "用户登录阶段" msgid "User Login Stages" msgstr "用户登录阶段" -#: authentik/stages/user_login/stage.py:85 +#: authentik/stages/user_login/stage.py:86 msgid "No Pending user to login." msgstr "没有待定用户可以登录。" -#: authentik/stages/user_login/stage.py:112 +#: authentik/stages/user_login/stage.py:113 msgid "Successfully logged in!" msgstr "已成功登录!" @@ -2796,73 +2804,73 @@ msgstr "用户写入阶段" msgid "User Write Stages" msgstr "用户写入阶段" -#: authentik/stages/user_write/stage.py:141 +#: authentik/stages/user_write/stage.py:142 msgid "No Pending data." msgstr "没有待处理的数据。" -#: authentik/stages/user_write/stage.py:147 +#: authentik/stages/user_write/stage.py:148 msgid "No user found and can't create new user." msgstr "未找到用户并且无法创建新用户。" -#: authentik/stages/user_write/stage.py:164 -#: authentik/stages/user_write/stage.py:178 +#: authentik/stages/user_write/stage.py:165 +#: authentik/stages/user_write/stage.py:179 msgid "Failed to update user. Please try again later." msgstr "更新用户失败。请稍后重试。" -#: authentik/tenants/models.py:29 +#: authentik/tenants/models.py:30 msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." msgstr "模式名称必须以 t_ 开始,只能包含小写字母和数字,并且少于 63 个字符。" -#: authentik/tenants/models.py:49 +#: authentik/tenants/models.py:50 msgid "Configure how authentik should show avatars for users." msgstr "配置 authentik 应该如何显示用户头像。" -#: authentik/tenants/models.py:53 +#: authentik/tenants/models.py:54 msgid "Enable the ability for users to change their name." msgstr "启用用户修改自己名称的能力。" -#: authentik/tenants/models.py:56 +#: authentik/tenants/models.py:57 msgid "Enable the ability for users to change their email address." msgstr "启用用户修改自己电子邮件地址的能力。" -#: authentik/tenants/models.py:59 +#: authentik/tenants/models.py:60 msgid "Enable the ability for users to change their username." msgstr "启用用户修改自己用户名的能力。" -#: authentik/tenants/models.py:65 +#: authentik/tenants/models.py:66 msgid "" "Events will be deleted after this duration.(Format: " "weeks=3;days=2;hours=3,seconds=2)." msgstr "事件会在多久后被删除。(格式:weeks=3;days=2;hours=3,seconds=2)。" -#: authentik/tenants/models.py:69 +#: authentik/tenants/models.py:70 msgid "The option configures the footer links on the flow executor pages." msgstr "此选项配置流程执行器页面上的页脚链接。" -#: authentik/tenants/models.py:75 +#: authentik/tenants/models.py:76 msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." msgstr "启用时,所有由用户造成的事件会在相应用户被删除时一并删除。" -#: authentik/tenants/models.py:81 +#: authentik/tenants/models.py:82 msgid "Globally enable/disable impersonation." msgstr "全局启用/禁用模拟身份。" -#: authentik/tenants/models.py:104 +#: authentik/tenants/models.py:105 msgid "Tenant" msgstr "租户" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py:106 msgid "Tenants" msgstr "租户" -#: authentik/tenants/models.py:125 +#: authentik/tenants/models.py:126 msgid "Domain" msgstr "域名" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py:127 msgid "Domains" msgstr "域名" From 1afd5ef95a39ff0c1774c069744c524b4f84fcd1 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:03:39 +0000 Subject: [PATCH 037/105] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#8434) Translate django.po in zh-Hans 100% translated source file: 'django.po' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh-Hans/LC_MESSAGES/django.po | 1116 +++++++++++++------------- 1 file changed, 562 insertions(+), 554 deletions(-) diff --git a/locale/zh-Hans/LC_MESSAGES/django.po b/locale/zh-Hans/LC_MESSAGES/django.po index ffb21e292e..9dd73eac4c 100644 --- a/locale/zh-Hans/LC_MESSAGES/django.po +++ b/locale/zh-Hans/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-26 17:26+0000\n" +"POT-Creation-Date: 2024-02-06 00:06+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: deluxghost, 2024\n" "Language-Team: Chinese Simplified (https://app.transifex.com/authentik/teams/119923/zh-Hans/)\n" @@ -24,32 +24,32 @@ msgstr "" "Language: zh-Hans\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: authentik/api/schema.py:25 +#: authentik/api/schema.py:26 msgid "Generic API Error" msgstr "通用 API 错误" -#: authentik/api/schema.py:33 +#: authentik/api/schema.py:34 msgid "Validation Error" msgstr "校验错误" -#: authentik/blueprints/api.py:43 +#: authentik/blueprints/api.py:44 msgid "Blueprint file does not exist" msgstr "蓝图文件不存在" -#: authentik/blueprints/api.py:54 +#: authentik/blueprints/api.py:55 #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "验证蓝图失败:%(logs)s" -#: authentik/blueprints/api.py:59 +#: authentik/blueprints/api.py:60 msgid "Either path or content must be set." msgstr "必须设置路径或内容。" -#: authentik/blueprints/models.py:30 +#: authentik/blueprints/models.py:31 msgid "Managed by authentik" msgstr "由 authentik 管理" -#: authentik/blueprints/models.py:32 +#: authentik/blueprints/models.py:33 msgid "" "Objects that are managed by authentik. These objects are created and updated" " automatically. This flag only indicates that an object can be overwritten " @@ -59,11 +59,11 @@ msgstr "" "由 authentik 管理的对象。这些对象会自动创建和更新。此标记仅仅表明对象可以被 Migration 覆盖。您仍然可以通过 API " "修改对象,但这些修改可能会在之后的更新中被覆盖。" -#: authentik/blueprints/models.py:112 +#: authentik/blueprints/models.py:113 msgid "Blueprint Instance" msgstr "蓝图实例" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py:114 msgid "Blueprint Instances" msgstr "蓝图实例" @@ -72,227 +72,235 @@ msgstr "蓝图实例" msgid "authentik Export - %(date)s" msgstr "authentik 导出 - %(date)s" -#: authentik/blueprints/v1/tasks.py:145 authentik/crypto/tasks.py:87 +#: authentik/blueprints/v1/tasks.py:146 authentik/crypto/tasks.py:88 #, python-format msgid "Successfully imported %(count)d files." msgstr "已成功导入 %(count)d 个文件。" -#: authentik/brands/models.py:22 +#: authentik/brands/models.py:23 msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" msgstr "激活此品牌的域。可以是超集,即 `a.b` 可以同时表示 `aa.b` 和 `ba.b`" -#: authentik/brands/models.py:58 +#: authentik/brands/models.py:59 msgid "Web Certificate used by the authentik Core webserver." msgstr "authentik 核心 Web 服务器使用的 Web 证书。" -#: authentik/brands/models.py:84 +#: authentik/brands/models.py:85 msgid "Brand" msgstr "品牌" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py:86 msgid "Brands" msgstr "品牌" -#: authentik/core/api/providers.py:122 +#: authentik/core/api/providers.py:123 msgid "SAML Provider from Metadata" msgstr "来自元数据的 SAML 提供程序" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py:124 msgid "Create a SAML Provider by importing its Metadata." msgstr "通过导入元数据来创建 SAML 提供程序。" -#: authentik/core/api/users.py:149 +#: authentik/core/api/users.py:162 msgid "No leading or trailing slashes allowed." msgstr "不允许前缀或后缀斜线。" -#: authentik/core/api/users.py:152 +#: authentik/core/api/users.py:165 msgid "No empty segments in user path allowed." msgstr "不允许用户路径包含空段。" -#: authentik/core/models.py:92 +#: authentik/core/models.py:94 msgid "name" msgstr "名称" -#: authentik/core/models.py:94 +#: authentik/core/models.py:96 msgid "Users added to this group will be superusers." msgstr "添加到该组的用户均为超级用户。" -#: authentik/core/models.py:168 +#: authentik/core/models.py:170 msgid "Group" msgstr "组" -#: authentik/core/models.py:169 +#: authentik/core/models.py:171 msgid "Groups" msgstr "组" -#: authentik/core/models.py:184 +#: authentik/core/models.py:202 msgid "User's display name." msgstr "用户的显示名称。" -#: authentik/core/models.py:280 authentik/providers/oauth2/models.py:295 +#: authentik/core/models.py:298 authentik/providers/oauth2/models.py:296 msgid "User" msgstr "用户" -#: authentik/core/models.py:281 +#: authentik/core/models.py:299 msgid "Users" msgstr "用户" -#: authentik/core/models.py:283 +#: authentik/core/models.py:301 #: authentik/stages/email/templates/email/password_reset.html:28 msgid "Reset Password" msgstr "重置密码" -#: authentik/core/models.py:284 +#: authentik/core/models.py:302 msgid "Can impersonate other users" msgstr "可以模拟其他用户的身份" -#: authentik/core/models.py:285 authentik/rbac/models.py:54 +#: authentik/core/models.py:303 authentik/rbac/models.py:55 msgid "Can assign permissions to users" msgstr "可以为用户分配权限" -#: authentik/core/models.py:286 authentik/rbac/models.py:55 +#: authentik/core/models.py:304 authentik/rbac/models.py:56 msgid "Can unassign permissions from users" msgstr "可以取消分配用户的权限" -#: authentik/core/models.py:308 +#: authentik/core/models.py:305 +msgid "Can preview user data sent to providers" +msgstr "可以预览发送给提供程序的用户数据" + +#: authentik/core/models.py:306 +msgid "View applications the user has access to" +msgstr "查看用户有权访问的应用程序" + +#: authentik/core/models.py:328 msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." msgstr "当关联应用程序被未验证身份的用户访问时,用于身份验证的流程。" -#: authentik/core/models.py:318 +#: authentik/core/models.py:338 msgid "Flow used when authorizing this provider." msgstr "授权此提供程序时使用的流程。" -#: authentik/core/models.py:330 +#: authentik/core/models.py:350 msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." msgstr "从应用程序访问;为类似 LDAP 和 SCIM 的协议提供的可选反向通道提供程序。" -#: authentik/core/models.py:385 +#: authentik/core/models.py:405 msgid "Application's display Name." msgstr "应用的显示名称。" -#: authentik/core/models.py:386 +#: authentik/core/models.py:406 msgid "Internal application name, used in URLs." msgstr "应用的内部名称,在 URL 中使用。" -#: authentik/core/models.py:398 +#: authentik/core/models.py:418 msgid "Open launch URL in a new browser tab or window." msgstr "在新浏览器标签页或窗口中打开启动 URL。" -#: authentik/core/models.py:462 +#: authentik/core/models.py:482 msgid "Application" msgstr "应用程序" -#: authentik/core/models.py:463 +#: authentik/core/models.py:483 msgid "Applications" msgstr "应用程序" -#: authentik/core/models.py:469 +#: authentik/core/models.py:489 msgid "Use the source-specific identifier" msgstr "使用源特定的标识符" -#: authentik/core/models.py:471 +#: authentik/core/models.py:491 msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." msgstr "链接到电子邮件地址相同的用户。当源不验证电子邮件地址时,可能会有安全隐患。" -#: authentik/core/models.py:475 +#: authentik/core/models.py:495 msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." msgstr "使用用户的电子邮件地址,但在电子邮件地址已存在时拒绝注册。" -#: authentik/core/models.py:478 +#: authentik/core/models.py:498 msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." msgstr "链接到用户名相同的用户。当其他源使用相同用户名时,可能会有安全隐患。" -#: authentik/core/models.py:482 +#: authentik/core/models.py:502 msgid "" "Use the user's username, but deny enrollment when the username already " "exists." msgstr "使用用户的用户名,但在用户名已存在时拒绝注册。" -#: authentik/core/models.py:489 +#: authentik/core/models.py:509 msgid "Source's display Name." msgstr "源的显示名称。" -#: authentik/core/models.py:490 +#: authentik/core/models.py:510 msgid "Internal source name, used in URLs." msgstr "源的内部名称,在 URL 中使用。" -#: authentik/core/models.py:509 +#: authentik/core/models.py:529 msgid "Flow to use when authenticating existing users." msgstr "认证已存在用户时所使用的流程。" -#: authentik/core/models.py:518 +#: authentik/core/models.py:538 msgid "Flow to use when enrolling new users." msgstr "新用户注册的流程。" -#: authentik/core/models.py:526 +#: authentik/core/models.py:546 msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." msgstr "源怎样确定应该验证已有用户的身份还是注册新用户。" -#: authentik/core/models.py:698 +#: authentik/core/models.py:718 msgid "Token" msgstr "令牌" -#: authentik/core/models.py:699 +#: authentik/core/models.py:719 msgid "Tokens" msgstr "令牌" -#: authentik/core/models.py:704 +#: authentik/core/models.py:724 msgid "View token's key" msgstr "查看令牌密钥" -#: authentik/core/models.py:740 +#: authentik/core/models.py:760 msgid "Property Mapping" msgstr "属性映射" -#: authentik/core/models.py:741 +#: authentik/core/models.py:761 msgid "Property Mappings" msgstr "属性映射" -#: authentik/core/models.py:778 +#: authentik/core/models.py:798 msgid "Authenticated Session" msgstr "已认证会话" -#: authentik/core/models.py:779 +#: authentik/core/models.py:799 msgid "Authenticated Sessions" msgstr "已认证会话" -#: authentik/core/sources/flow_manager.py:190 +#: authentik/core/sources/flow_manager.py:191 #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate" " with the source you've previously signed up with." msgstr "来自 %(source)s 的身份验证请求被拒绝。请用您注册时使用的方式验证身份。" -#: authentik/core/sources/flow_manager.py:242 +#: authentik/core/sources/flow_manager.py:243 msgid "Configured flow does not exist." msgstr "配置的流程不存在。" -#: authentik/core/sources/flow_manager.py:272 -#: authentik/core/sources/flow_manager.py:324 +#: authentik/core/sources/flow_manager.py:273 +#: authentik/core/sources/flow_manager.py:325 #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "成功通过 %(source)s 认证!" -#: authentik/core/sources/flow_manager.py:296 +#: authentik/core/sources/flow_manager.py:297 #, python-format msgid "Successfully linked %(source)s!" msgstr "成功链接 %(source)s!" -#: authentik/core/sources/flow_manager.py:315 +#: authentik/core/sources/flow_manager.py:316 msgid "Source is not configured for enrollment." msgstr "源未被配置用于注册。" @@ -353,37 +361,37 @@ msgstr "前往首页" msgid "Powered by authentik" msgstr "由 authentik 强力驱动" -#: authentik/core/views/apps.py:53 -#: authentik/providers/oauth2/views/authorize.py:434 -#: authentik/providers/oauth2/views/device_init.py:70 -#: authentik/providers/saml/views/sso.py:70 +#: authentik/core/views/apps.py:54 +#: authentik/providers/oauth2/views/authorize.py:435 +#: authentik/providers/oauth2/views/device_init.py:71 +#: authentik/providers/saml/views/sso.py:71 #, python-format msgid "You're about to sign into %(application)s." msgstr "您即将登录 %(application)s。" -#: authentik/crypto/api.py:179 +#: authentik/crypto/api.py:180 msgid "Subject-alt name" msgstr "替代名称" -#: authentik/crypto/models.py:30 +#: authentik/crypto/models.py:31 msgid "PEM-encoded Certificate data" msgstr "PEM 编码的证书数据" -#: authentik/crypto/models.py:33 +#: authentik/crypto/models.py:34 msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." msgstr "可选私钥。如果设置,则可以使用此密钥对来加密。" -#: authentik/crypto/models.py:101 +#: authentik/crypto/models.py:102 msgid "Certificate-Key Pair" msgstr "证书密钥对" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py:103 msgid "Certificate-Key Pairs" msgstr "证书密钥对" -#: authentik/enterprise/api.py:33 +#: authentik/enterprise/api.py:34 msgid "Enterprise is required to create/update this object." msgstr "创建/更新此对象需要企业版。" @@ -403,303 +411,303 @@ msgstr "许可证使用情况" msgid "License Usage Records" msgstr "许可证使用情况记录" -#: authentik/enterprise/policy.py:18 +#: authentik/enterprise/policy.py:19 msgid "Enterprise required to access this feature." msgstr "访问此功能需要企业版。" -#: authentik/enterprise/policy.py:20 +#: authentik/enterprise/policy.py:21 msgid "Feature only accessible for internal users." msgstr "仅内部用户能访问此功能。" -#: authentik/enterprise/providers/rac/models.py:48 +#: authentik/enterprise/providers/rac/models.py:49 #: authentik/stages/user_login/models.py:39 msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "确定会话持续多长时间。默认值为 0 表示会话持续到浏览器关闭为止。(格式:hours=-1;minutes=-2;seconds=-3)" -#: authentik/enterprise/providers/rac/models.py:71 +#: authentik/enterprise/providers/rac/models.py:72 msgid "RAC Provider" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py:73 msgid "RAC Providers" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:100 +#: authentik/enterprise/providers/rac/models.py:101 msgid "RAC Endpoint" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py:102 msgid "RAC Endpoints" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:122 +#: authentik/enterprise/providers/rac/models.py:123 msgid "RAC Property Mapping" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py:124 msgid "RAC Property Mappings" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/views.py:108 +#: authentik/enterprise/providers/rac/views.py:109 msgid "Maximum connection limit reached." msgstr "已达到最大连接数。" -#: authentik/enterprise/providers/rac/views.py:112 +#: authentik/enterprise/providers/rac/views.py:113 msgid "(You are already connected in another tab/window)" msgstr "(您已经在另一个标签页/窗口连接了)" -#: authentik/events/api/tasks.py:100 +#: authentik/events/api/tasks.py:101 #, python-format msgid "Successfully started task %(name)s." msgstr "已成功开始任务 %(name)s。" -#: authentik/events/models.py:304 +#: authentik/events/models.py:305 msgid "Event" msgstr "事件" -#: authentik/events/models.py:305 +#: authentik/events/models.py:306 msgid "Events" msgstr "事件" -#: authentik/events/models.py:311 +#: authentik/events/models.py:312 msgid "authentik inbuilt notifications" msgstr "authentik 内置通知" -#: authentik/events/models.py:312 +#: authentik/events/models.py:313 msgid "Generic Webhook" msgstr "通用 Webhook" -#: authentik/events/models.py:313 +#: authentik/events/models.py:314 msgid "Slack Webhook (Slack/Discord)" msgstr "Slack Webhook(Slack/Discord)" -#: authentik/events/models.py:314 +#: authentik/events/models.py:315 msgid "Email" msgstr "电子邮箱" -#: authentik/events/models.py:332 +#: authentik/events/models.py:333 msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." msgstr "仅发送一次通知,例如在向聊天频道发送 Webhook 时。" -#: authentik/events/models.py:397 +#: authentik/events/models.py:398 msgid "Severity" msgstr "严重程度" -#: authentik/events/models.py:402 +#: authentik/events/models.py:403 msgid "Dispatched for user" msgstr "为用户分派" -#: authentik/events/models.py:411 +#: authentik/events/models.py:412 msgid "Event user" msgstr "事件用户" -#: authentik/events/models.py:505 +#: authentik/events/models.py:506 msgid "Notification Transport" msgstr "通知传输" -#: authentik/events/models.py:506 +#: authentik/events/models.py:507 msgid "Notification Transports" msgstr "通知传输" -#: authentik/events/models.py:512 +#: authentik/events/models.py:513 msgid "Notice" msgstr "通知" -#: authentik/events/models.py:513 +#: authentik/events/models.py:514 msgid "Warning" msgstr "警告" -#: authentik/events/models.py:514 +#: authentik/events/models.py:515 msgid "Alert" msgstr "注意" -#: authentik/events/models.py:539 +#: authentik/events/models.py:540 msgid "Notification" msgstr "通知" -#: authentik/events/models.py:540 +#: authentik/events/models.py:541 msgid "Notifications" msgstr "通知" -#: authentik/events/models.py:550 +#: authentik/events/models.py:551 msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." msgstr "选择应使用哪些传输方式来通知用户。如果未选择任何内容,则通知将仅显示在 authentik UI 中。" -#: authentik/events/models.py:558 +#: authentik/events/models.py:559 msgid "Controls which severity level the created notifications will have." msgstr "控制被创建的通知的严重性级别。" -#: authentik/events/models.py:563 +#: authentik/events/models.py:564 msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." msgstr "定义此通知应该发送到哪些用户组。如果留空,则不会发送通知。" -#: authentik/events/models.py:581 +#: authentik/events/models.py:582 msgid "Notification Rule" msgstr "通知规则" -#: authentik/events/models.py:582 +#: authentik/events/models.py:583 msgid "Notification Rules" msgstr "通知规则" -#: authentik/events/models.py:602 +#: authentik/events/models.py:603 msgid "Webhook Mapping" msgstr "Webhook 映射" -#: authentik/events/models.py:603 +#: authentik/events/models.py:604 msgid "Webhook Mappings" msgstr "Webhook 映射" -#: authentik/events/models.py:668 +#: authentik/events/models.py:669 msgid "Run task" msgstr "运行任务" -#: authentik/events/models.py:669 +#: authentik/events/models.py:670 msgid "System Task" msgstr "系统任务" -#: authentik/events/models.py:670 +#: authentik/events/models.py:671 msgid "System Tasks" msgstr "系统任务" -#: authentik/events/system_tasks.py:126 +#: authentik/events/system_tasks.py:127 msgid "Task has not been run yet." msgstr "任务尚未运行。" -#: authentik/flows/api/flows.py:295 +#: authentik/flows/api/flows.py:297 #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "流程不适用于当前用户/请求:%(messages)s" -#: authentik/flows/api/flows_diagram.py:68 -#: authentik/flows/api/flows_diagram.py:94 +#: authentik/flows/api/flows_diagram.py:69 +#: authentik/flows/api/flows_diagram.py:95 #, python-format msgid "Policy (%(type)s)" msgstr "策略(%(type)s)" -#: authentik/flows/api/flows_diagram.py:71 +#: authentik/flows/api/flows_diagram.py:72 #, python-format msgid "Binding %(order)d" msgstr "绑定 %(order)d" -#: authentik/flows/api/flows_diagram.py:118 +#: authentik/flows/api/flows_diagram.py:119 msgid "Policy passed" msgstr "策略通过" -#: authentik/flows/api/flows_diagram.py:122 +#: authentik/flows/api/flows_diagram.py:123 #, python-format msgid "Stage (%(type)s)" msgstr "阶段(%(type)s)" -#: authentik/flows/api/flows_diagram.py:146 -#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py:147 +#: authentik/flows/api/flows_diagram.py:207 msgid "Policy denied" msgstr "策略拒绝" -#: authentik/flows/api/flows_diagram.py:156 -#: authentik/flows/api/flows_diagram.py:168 -#: authentik/flows/api/flows_diagram.py:205 -#: authentik/flows/api/flows_diagram.py:227 +#: authentik/flows/api/flows_diagram.py:157 +#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py:228 msgid "End of the flow" msgstr "流程结束" -#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py:170 msgid "Requirement not fulfilled" msgstr "需求条件未达成" -#: authentik/flows/api/flows_diagram.py:177 +#: authentik/flows/api/flows_diagram.py:178 msgid "Flow authentication requirement" msgstr "流程身份验证需求" -#: authentik/flows/api/flows_diagram.py:183 +#: authentik/flows/api/flows_diagram.py:184 msgid "Requirement fulfilled" msgstr "需求条件已达成" -#: authentik/flows/api/flows_diagram.py:196 +#: authentik/flows/api/flows_diagram.py:197 msgid "Pre-flow policies" msgstr "流程前置策略" -#: authentik/flows/api/flows_diagram.py:214 authentik/flows/models.py:194 +#: authentik/flows/api/flows_diagram.py:215 authentik/flows/models.py:195 msgid "Flow" msgstr "流程" -#: authentik/flows/exceptions.py:19 +#: authentik/flows/exceptions.py:20 msgid "Flow does not apply to current user." msgstr "流程不应用于当前用户。" -#: authentik/flows/models.py:115 +#: authentik/flows/models.py:116 #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "动态内存中阶段:%(doc)s" -#: authentik/flows/models.py:130 +#: authentik/flows/models.py:131 msgid "Visible in the URL." msgstr "在 URL 中可见。" -#: authentik/flows/models.py:132 +#: authentik/flows/models.py:133 msgid "Shown as the Title in Flow pages." msgstr "显示为流程页面中的标题。" -#: authentik/flows/models.py:139 +#: authentik/flows/models.py:140 msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." msgstr "决定此流程的用途。例如,当未经身份验证的用户访问 authentik 时,会重定向到身份验证流程。" -#: authentik/flows/models.py:148 +#: authentik/flows/models.py:149 msgid "Background shown during execution" msgstr "执行时的背景" -#: authentik/flows/models.py:155 +#: authentik/flows/models.py:156 msgid "" "Enable compatibility mode, increases compatibility with password managers on" " mobile devices." msgstr "启用兼容模式,增强与移动设备上密码管理器的兼容性。" -#: authentik/flows/models.py:163 +#: authentik/flows/models.py:164 msgid "Configure what should happen when a flow denies access to a user." msgstr "配置当流程拒绝访问一名用户时应该发生什么。" -#: authentik/flows/models.py:169 +#: authentik/flows/models.py:170 msgid "Required level of authentication and authorization to access a flow." msgstr "需要身份验证和授权等级以访问流程。" -#: authentik/flows/models.py:195 +#: authentik/flows/models.py:196 msgid "Flows" msgstr "流程" -#: authentik/flows/models.py:198 +#: authentik/flows/models.py:199 msgid "Can export a Flow" msgstr "可以导出流程" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py:200 msgid "Can inspect a Flow's execution" msgstr "可以检视流程执行" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py:201 msgid "View Flow's cache metrics" msgstr "查看流程缓存指标" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py:202 msgid "Clear Flow's cache metrics" msgstr "清除流程缓存指标" -#: authentik/flows/models.py:217 +#: authentik/flows/models.py:218 msgid "Evaluate policies during the Flow planning process." msgstr "在流程规划过程中评估策略。" -#: authentik/flows/models.py:221 +#: authentik/flows/models.py:222 msgid "Evaluate policies when the Stage is present to the user." msgstr "在阶段呈现给用户时评估策略。" -#: authentik/flows/models.py:228 +#: authentik/flows/models.py:229 msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -709,62 +717,62 @@ msgstr "" "配置流程执行器应如何处理对质询的无效响应。RETRY 向执行器返回错误消息和类似的质询。RESTART " "从头开始重新启动流程,RESTART_WITH_CONTEXT 在保留当前上下文的同时重新启动流程。" -#: authentik/flows/models.py:251 +#: authentik/flows/models.py:252 msgid "Flow Stage Binding" msgstr "流程阶段绑定" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py:253 msgid "Flow Stage Bindings" msgstr "流程阶段绑定" -#: authentik/flows/models.py:267 +#: authentik/flows/models.py:268 msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." msgstr "经过身份验证的用户用来配置此阶段的流程。如果为空,用户将无法配置此阶段。" -#: authentik/flows/models.py:307 +#: authentik/flows/models.py:308 msgid "Flow Token" msgstr "流程令牌" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py:309 msgid "Flow Tokens" msgstr "流程令牌" -#: authentik/lib/utils/time.py:27 +#: authentik/lib/utils/time.py:28 #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "%(value)s 的格式不正确,应为 'hours=3;minutes=1'。" -#: authentik/lib/validators.py:16 +#: authentik/lib/validators.py:17 #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "字段 {field_names} 必须一同使用。" -#: authentik/outposts/api/service_connections.py:127 +#: authentik/outposts/api/service_connections.py:128 msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "您只能在连接到本地集群时使用空的 kubeconfig。" -#: authentik/outposts/api/service_connections.py:135 +#: authentik/outposts/api/service_connections.py:136 msgid "Invalid kubeconfig" msgstr "无效 kubeconfig " -#: authentik/outposts/models.py:123 +#: authentik/outposts/models.py:124 msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" msgstr "如果启用,则使用本地连接。需要 Docker Socket / Kubernetes 集成" -#: authentik/outposts/models.py:153 +#: authentik/outposts/models.py:154 msgid "Outpost Service-Connection" msgstr "前哨服务连接" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py:155 msgid "Outpost Service-Connections" msgstr "前哨服务连接" -#: authentik/outposts/models.py:162 +#: authentik/outposts/models.py:163 msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." @@ -772,242 +780,242 @@ msgstr "" "当连接到本地 Docker " "守护进程时,可以使用“unix://”格式,或者在连接远程系统时,使用“https://:2376”格式。" -#: authentik/outposts/models.py:174 +#: authentik/outposts/models.py:175 msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." msgstr "验证端点证书所依据的 CA。可以留空,表示不进行验证。" -#: authentik/outposts/models.py:186 +#: authentik/outposts/models.py:187 msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." msgstr "用于身份验证的证书/密钥。可以留空表示不验证。" -#: authentik/outposts/models.py:204 +#: authentik/outposts/models.py:205 msgid "Docker Service-Connection" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py:206 msgid "Docker Service-Connections" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:213 +#: authentik/outposts/models.py:214 msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." msgstr "在这里粘贴您的 kubeconfig。authentik 会自动使用当前选择的上下文。" -#: authentik/outposts/models.py:219 +#: authentik/outposts/models.py:220 msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "验证 Kubernetes API 端点的 SSL 证书" -#: authentik/outposts/models.py:236 +#: authentik/outposts/models.py:237 msgid "Kubernetes Service-Connection" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py:238 msgid "Kubernetes Service-Connections" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:253 +#: authentik/outposts/models.py:254 msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave" " empty if authentik should not handle the deployment." msgstr "选择 authentik 在管理此前哨时需要使用的服务连接。如果 authentik 不应该处理此部署,则应该留空。" -#: authentik/outposts/models.py:420 +#: authentik/outposts/models.py:421 msgid "Outpost" msgstr "前哨" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py:422 msgid "Outposts" msgstr "前哨" -#: authentik/policies/denied.py:24 +#: authentik/policies/denied.py:25 msgid "Access denied" msgstr "访问被拒绝" -#: authentik/policies/dummy/models.py:44 +#: authentik/policies/dummy/models.py:45 msgid "Dummy Policy" msgstr "虚拟策略" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py:46 msgid "Dummy Policies" msgstr "虚拟策略" -#: authentik/policies/event_matcher/api.py:20 -#: authentik/policies/event_matcher/models.py:56 +#: authentik/policies/event_matcher/api.py:21 +#: authentik/policies/event_matcher/models.py:57 msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "匹配选定应用程序创建的事件。如果留空,则匹配所有应用程序。" -#: authentik/policies/event_matcher/api.py:29 -#: authentik/policies/event_matcher/models.py:64 +#: authentik/policies/event_matcher/api.py:30 +#: authentik/policies/event_matcher/models.py:65 msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." msgstr "匹配选定模型创建的事件。如果留空,则匹配所有模型。选择应用程序后,则匹配该应用程序的所有模型。" -#: authentik/policies/event_matcher/api.py:42 +#: authentik/policies/event_matcher/api.py:43 msgid "At least one criteria must be set." msgstr "必须至少设置一项标准。" -#: authentik/policies/event_matcher/models.py:48 +#: authentik/policies/event_matcher/models.py:49 msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "将创建的事件与此操作类型匹配。留空时,所有操作类型都将匹配。" -#: authentik/policies/event_matcher/models.py:73 +#: authentik/policies/event_matcher/models.py:74 msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "匹配事件的客户端 IP(严格匹配,要匹配网段请使用表达式策略)" -#: authentik/policies/event_matcher/models.py:143 +#: authentik/policies/event_matcher/models.py:144 msgid "Event Matcher Policy" msgstr "事件匹配策略" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py:145 msgid "Event Matcher Policies" msgstr "事件匹配策略" -#: authentik/policies/expiry/models.py:45 +#: authentik/policies/expiry/models.py:46 #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "密码在 %(days)d 天前过期。请更新您的密码。" -#: authentik/policies/expiry/models.py:49 +#: authentik/policies/expiry/models.py:50 msgid "Password has expired." msgstr "密码已过期。" -#: authentik/policies/expiry/models.py:53 +#: authentik/policies/expiry/models.py:54 msgid "Password Expiry Policy" msgstr "密码过期策略" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py:55 msgid "Password Expiry Policies" msgstr "密码过期策略" -#: authentik/policies/expression/models.py:40 +#: authentik/policies/expression/models.py:41 msgid "Expression Policy" msgstr "表达式策略" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py:42 msgid "Expression Policies" msgstr "表达式策略" -#: authentik/policies/models.py:22 +#: authentik/policies/models.py:23 msgid "all, all policies must pass" msgstr "All,必须通过所有策略" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py:24 msgid "any, any policy must pass" msgstr "Any,必须通过任意策略" -#: authentik/policies/models.py:46 +#: authentik/policies/models.py:47 msgid "Policy Binding Model" msgstr "策略绑定模型" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py:48 msgid "Policy Binding Models" msgstr "策略绑定模型" -#: authentik/policies/models.py:86 +#: authentik/policies/models.py:87 msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "反转策略的结果。消息不受影响。" -#: authentik/policies/models.py:89 +#: authentik/policies/models.py:90 msgid "Timeout after which Policy execution is terminated." msgstr "策略执行终止的超时时间。" -#: authentik/policies/models.py:92 +#: authentik/policies/models.py:93 msgid "Result if the Policy execution fails." msgstr "策略执行失败时的结果。" -#: authentik/policies/models.py:145 +#: authentik/policies/models.py:146 msgid "Policy Binding" msgstr "策略绑定" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py:147 msgid "Policy Bindings" msgstr "策略绑定" -#: authentik/policies/models.py:167 +#: authentik/policies/models.py:168 msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." msgstr "启用此选项后,将记录此策略的所有执行日志。默认情况下,只记录执行错误。" -#: authentik/policies/models.py:189 +#: authentik/policies/models.py:190 msgid "Policy" msgstr "策略" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py:191 msgid "Policies" msgstr "策略" -#: authentik/policies/models.py:193 +#: authentik/policies/models.py:194 msgid "View Policy's cache metrics" msgstr "查看策略缓存指标" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py:195 msgid "Clear Policy's cache metrics" msgstr "清除策略缓存指标" -#: authentik/policies/password/models.py:27 +#: authentik/policies/password/models.py:28 msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "要检查的字段键,可以使用输入阶段中定义的字段键。" -#: authentik/policies/password/models.py:44 +#: authentik/policies/password/models.py:45 msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "密码哈希允许出现在 HaveIBeenPwned 中多少次" -#: authentik/policies/password/models.py:49 +#: authentik/policies/password/models.py:50 msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "如果 zxcvbn 分数小于等于此值,则策略失败。" -#: authentik/policies/password/models.py:72 +#: authentik/policies/password/models.py:73 msgid "Password not set in context" msgstr "未在上下文中设置密码" -#: authentik/policies/password/models.py:134 +#: authentik/policies/password/models.py:135 #, python-format msgid "Password exists on %(count)d online lists." msgstr "%(count)d 个在线列表中存在密码。" -#: authentik/policies/password/models.py:154 +#: authentik/policies/password/models.py:155 msgid "Password is too weak." msgstr "密码太弱。" -#: authentik/policies/password/models.py:162 +#: authentik/policies/password/models.py:163 msgid "Password Policy" msgstr "密码策略" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py:164 msgid "Password Policies" msgstr "密码策略" -#: authentik/policies/reputation/api.py:18 +#: authentik/policies/reputation/api.py:19 msgid "Either IP or Username must be checked" msgstr "必须检查 IP 或用户名" -#: authentik/policies/reputation/models.py:67 +#: authentik/policies/reputation/models.py:68 msgid "Reputation Policy" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py:69 msgid "Reputation Policies" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:96 +#: authentik/policies/reputation/models.py:97 msgid "Reputation Score" msgstr "信誉分数" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py:98 msgid "Reputation Scores" msgstr "信誉分数" @@ -1047,21 +1055,21 @@ msgstr "" " 策略绑定 '%(name)s' 返回结果 '%(result)s'\n" " " -#: authentik/policies/views.py:68 +#: authentik/policies/views.py:69 msgid "Failed to resolve application" msgstr "解析应用程序失败" -#: authentik/providers/ldap/models.py:25 +#: authentik/providers/ldap/models.py:26 msgid "DN under which objects are accessible." msgstr "可访问对象的 DN。" -#: authentik/providers/ldap/models.py:34 +#: authentik/providers/ldap/models.py:35 msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." msgstr "该组中的用户可以执行搜索查询。如果未设置,则每个用户都可以执行搜索查询。" -#: authentik/providers/ldap/models.py:53 +#: authentik/providers/ldap/models.py:54 msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " @@ -1070,7 +1078,7 @@ msgstr "" "起始 uidNumbers,这个数字会被添加到 user.pk 中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "2000,以确保我们不会与本地用户的 uidNumber 发生冲突" -#: authentik/providers/ldap/models.py:62 +#: authentik/providers/ldap/models.py:63 msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1080,8 +1088,8 @@ msgstr "" "起始 gidNumbers,这个数字会被添加到从 group.pk 生成的数字中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "4000,以确保我们不会与本地群组或用户主组的 gidNumber 发生冲突" -#: authentik/providers/ldap/models.py:76 -#: authentik/providers/radius/models.py:34 +#: authentik/providers/ldap/models.py:77 +#: authentik/providers/radius/models.py:35 msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be" @@ -1092,499 +1100,499 @@ msgstr "" "启用时,可以通过在密码后添加分号和 TOTP 代码来使用基于代码的多因素身份验证。仅在所有绑定到此提供程序的用户都已配置 TOTP " "设备的情况下才应该启用,否则密码可能会因为包含分号而被错误地拒绝。" -#: authentik/providers/ldap/models.py:108 +#: authentik/providers/ldap/models.py:109 msgid "LDAP Provider" msgstr "LDAP 提供程序" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py:110 msgid "LDAP Providers" msgstr "LDAP 提供程序" -#: authentik/providers/oauth2/id_token.py:27 +#: authentik/providers/oauth2/id_token.py:28 msgid "Based on the Hashed User ID" msgstr "基于经过哈希处理的用户 ID" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py:29 msgid "Based on user ID" msgstr "基于用户 ID" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py:30 msgid "Based on user UUID" msgstr "基于用户 UUID" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py:31 msgid "Based on the username" msgstr "基于用户名" -#: authentik/providers/oauth2/id_token.py:33 +#: authentik/providers/oauth2/id_token.py:34 msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "基于用户的电子邮箱。建议在 UPN 方法上使用。" -#: authentik/providers/oauth2/id_token.py:38 +#: authentik/providers/oauth2/id_token.py:39 msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." msgstr "基于用户的 UPN,仅当用户设置了 'upn' 属性时才有效。仅当您有不同的 UPN 和 Mail 域时才使用此方法。" -#: authentik/providers/oauth2/models.py:43 +#: authentik/providers/oauth2/models.py:44 msgid "Confidential" msgstr "机密" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py:45 msgid "Public" msgstr "公开" -#: authentik/providers/oauth2/models.py:66 +#: authentik/providers/oauth2/models.py:67 msgid "Same identifier is used for all providers" msgstr "所有提供程序都使用相同的标识符" -#: authentik/providers/oauth2/models.py:68 +#: authentik/providers/oauth2/models.py:69 msgid "Each provider has a different issuer, based on the application slug." msgstr "根据应用程序 Slug,每个提供程序都有不同的颁发者。" -#: authentik/providers/oauth2/models.py:75 +#: authentik/providers/oauth2/models.py:76 msgid "code (Authorization Code Flow)" msgstr "code(授权码流程)" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py:77 msgid "id_token (Implicit Flow)" msgstr "id_token(隐式流程)" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py:78 msgid "id_token token (Implicit Flow)" msgstr "id_token token(隐式流程)" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py:79 msgid "code token (Hybrid Flow)" msgstr "code token(混合流程)" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py:80 msgid "code id_token (Hybrid Flow)" msgstr "code id_token(混合流程)" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py:81 msgid "code id_token token (Hybrid Flow)" msgstr "code id_token token(混合流程)" -#: authentik/providers/oauth2/models.py:86 +#: authentik/providers/oauth2/models.py:87 msgid "HS256 (Symmetric Encryption)" msgstr "HS256(对称加密)" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py:88 msgid "RS256 (Asymmetric Encryption)" msgstr "RS256(非对称加密)" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py:89 msgid "ES256 (Asymmetric Encryption)" msgstr "ES256(非对称加密)" -#: authentik/providers/oauth2/models.py:94 +#: authentik/providers/oauth2/models.py:95 msgid "Scope used by the client" msgstr "客户端使用的作用域" -#: authentik/providers/oauth2/models.py:98 +#: authentik/providers/oauth2/models.py:99 msgid "" "Description shown to the user when consenting. If left empty, the user won't" " be informed." msgstr "同意授权时向用户显示的描述。如果留空,则不会告知用户。" -#: authentik/providers/oauth2/models.py:117 +#: authentik/providers/oauth2/models.py:118 msgid "Scope Mapping" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py:119 msgid "Scope Mappings" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:128 +#: authentik/providers/oauth2/models.py:129 msgid "Client Type" msgstr "客户端类型" -#: authentik/providers/oauth2/models.py:130 +#: authentik/providers/oauth2/models.py:131 msgid "" "Confidential clients are capable of maintaining the confidentiality of their" " credentials. Public clients are incapable" msgstr "机密客户端有能力维护其凭据的机密性。公开客户端无此能力。" -#: authentik/providers/oauth2/models.py:137 +#: authentik/providers/oauth2/models.py:138 msgid "Client ID" msgstr "客户端 ID" -#: authentik/providers/oauth2/models.py:143 +#: authentik/providers/oauth2/models.py:144 msgid "Client Secret" msgstr "客户端密钥" -#: authentik/providers/oauth2/models.py:149 +#: authentik/providers/oauth2/models.py:150 msgid "Redirect URIs" msgstr "重定向 URI" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py:151 msgid "Enter each URI on a new line." msgstr "每行输入一个 URI。" -#: authentik/providers/oauth2/models.py:155 +#: authentik/providers/oauth2/models.py:156 msgid "Include claims in id_token" msgstr "在 id_token 中包含声明" -#: authentik/providers/oauth2/models.py:157 +#: authentik/providers/oauth2/models.py:158 msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." msgstr "对于不访问 userinfo 端点的应用程序,将来自作用域的用户声明包含在 id_token 中。" -#: authentik/providers/oauth2/models.py:166 +#: authentik/providers/oauth2/models.py:167 msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,访问代码无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:174 -#: authentik/providers/oauth2/models.py:182 +#: authentik/providers/oauth2/models.py:175 +#: authentik/providers/oauth2/models.py:183 msgid "" "Tokens not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,令牌无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:191 +#: authentik/providers/oauth2/models.py:192 msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。" -#: authentik/providers/oauth2/models.py:198 +#: authentik/providers/oauth2/models.py:199 msgid "Configure how the issuer field of the ID Token should be filled." msgstr "配置如何填写 ID 令牌的颁发者字段。" -#: authentik/providers/oauth2/models.py:203 +#: authentik/providers/oauth2/models.py:204 msgid "Signing Key" msgstr "签名密钥" -#: authentik/providers/oauth2/models.py:207 +#: authentik/providers/oauth2/models.py:208 msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "用于签名令牌的密钥。仅当 JWT 算法设置为 RS256 时才需要。" -#: authentik/providers/oauth2/models.py:214 +#: authentik/providers/oauth2/models.py:215 msgid "" "Any JWT signed by the JWK of the selected source can be used to " "authenticate." msgstr "任何由选定来源的 JWK 签发的 JWT 都可以用于身份验证。" -#: authentik/providers/oauth2/models.py:287 +#: authentik/providers/oauth2/models.py:288 msgid "OAuth2/OpenID Provider" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py:289 msgid "OAuth2/OpenID Providers" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:297 -#: authentik/providers/oauth2/models.py:430 +#: authentik/providers/oauth2/models.py:298 +#: authentik/providers/oauth2/models.py:431 msgid "Scopes" msgstr "作用域" -#: authentik/providers/oauth2/models.py:317 +#: authentik/providers/oauth2/models.py:318 msgid "Code" msgstr "代码" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py:319 msgid "Nonce" msgstr "Nonce" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py:320 msgid "Code Challenge" msgstr "代码质询" -#: authentik/providers/oauth2/models.py:321 +#: authentik/providers/oauth2/models.py:322 msgid "Code Challenge Method" msgstr "代码质询方法" -#: authentik/providers/oauth2/models.py:341 +#: authentik/providers/oauth2/models.py:342 msgid "Authorization Code" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py:343 msgid "Authorization Codes" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:384 +#: authentik/providers/oauth2/models.py:385 msgid "OAuth2 Access Token" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py:386 msgid "OAuth2 Access Tokens" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:395 +#: authentik/providers/oauth2/models.py:396 msgid "ID Token" msgstr "ID 令牌" -#: authentik/providers/oauth2/models.py:414 +#: authentik/providers/oauth2/models.py:415 msgid "OAuth2 Refresh Token" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py:416 msgid "OAuth2 Refresh Tokens" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:442 +#: authentik/providers/oauth2/models.py:443 msgid "Device Token" msgstr "设备令牌" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py:444 msgid "Device Tokens" msgstr "设备令牌" -#: authentik/providers/oauth2/views/authorize.py:489 -#: authentik/providers/saml/views/flows.py:87 +#: authentik/providers/oauth2/views/authorize.py:490 +#: authentik/providers/saml/views/flows.py:88 #, python-format msgid "Redirecting to %(app)s..." msgstr "正在跳转到 %(app)s…" -#: authentik/providers/oauth2/views/device_init.py:151 +#: authentik/providers/oauth2/views/device_init.py:152 msgid "Invalid code" msgstr "无效代码" -#: authentik/providers/oauth2/views/userinfo.py:55 #: authentik/providers/oauth2/views/userinfo.py:56 +#: authentik/providers/oauth2/views/userinfo.py:57 msgid "GitHub Compatibility: Access your User Information" msgstr "GitHub 兼容性:访问您的用户信息" -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py:58 msgid "GitHub Compatibility: Access you Email addresses" msgstr "GitHub 兼容性:访问您的电子邮件地址" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py:59 msgid "GitHub Compatibility: Access your Groups" msgstr "GitHub 兼容性:访问您的组" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py:60 msgid "authentik API Access on behalf of your user" msgstr "代表您的用户访问 authentik API" -#: authentik/providers/proxy/api.py:52 +#: authentik/providers/proxy/api.py:53 msgid "User and password attributes must be set when basic auth is enabled." msgstr "启用 Basic Auth 时,必须设置用户和密码属性。" -#: authentik/providers/proxy/api.py:63 +#: authentik/providers/proxy/api.py:64 msgid "Internal host cannot be empty when forward auth is disabled." msgstr "禁用 Forward Auth 时,内部主机不能为空。" -#: authentik/providers/proxy/models.py:54 +#: authentik/providers/proxy/models.py:55 msgid "Validate SSL Certificates of upstream servers" msgstr "验证上游服务器的 SSL 证书" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py:56 msgid "Internal host SSL Validation" msgstr "内部主机 SSL 验证" -#: authentik/providers/proxy/models.py:61 +#: authentik/providers/proxy/models.py:62 msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." msgstr "在 traefik 和 nginx auth_request 中启用对 ForwardAuth 的支持。排除 internal_host。" -#: authentik/providers/proxy/models.py:70 +#: authentik/providers/proxy/models.py:71 msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." msgstr "用于描述何处不需要身份验证的正则表达式。每个新行都被解释为一个新的正则表达式。" -#: authentik/providers/proxy/models.py:78 +#: authentik/providers/proxy/models.py:79 msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." msgstr "启用时,此提供程序将会拦截 Authorization 标头,并基于其值认证请求。" -#: authentik/providers/proxy/models.py:84 +#: authentik/providers/proxy/models.py:85 msgid "Set HTTP-Basic Authentication" msgstr "设置 HTTP-Basic 身份验证" -#: authentik/providers/proxy/models.py:86 +#: authentik/providers/proxy/models.py:87 msgid "" "Set a custom HTTP-Basic Authentication header based on values from " "authentik." msgstr "根据来自 authentik 的值设置自定义 HTTP-Basic 身份验证标头。" -#: authentik/providers/proxy/models.py:91 +#: authentik/providers/proxy/models.py:92 msgid "HTTP-Basic Username Key" msgstr "HTTP-Basic 用户名密钥" -#: authentik/providers/proxy/models.py:93 +#: authentik/providers/proxy/models.py:94 msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not" " set, the user's Email address is used." msgstr "用于 HTTP-Basic 标头用户名部分的用户/组属性。如果未设置,则使用用户的电子邮件地址。" -#: authentik/providers/proxy/models.py:99 +#: authentik/providers/proxy/models.py:100 msgid "HTTP-Basic Password Key" msgstr "HTTP-Basic 密码密钥" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py:101 msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "用于 HTTP-Basic 标头的密码部分的用户/组属性。" -#: authentik/providers/proxy/models.py:154 +#: authentik/providers/proxy/models.py:155 msgid "Proxy Provider" msgstr "代理提供程序" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py:156 msgid "Proxy Providers" msgstr "代理提供程序" -#: authentik/providers/radius/models.py:18 +#: authentik/providers/radius/models.py:19 msgid "Shared secret between clients and server to hash packets." msgstr "在客户端和服务端之间共享密钥以哈希数据包。" -#: authentik/providers/radius/models.py:24 +#: authentik/providers/radius/models.py:25 msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." msgstr "允许客户端连接的 CIDR 列表(逗号分隔)。严格的 CIDR 会在宽松的之前匹配。来自 CIDR 范围外的客户端连接将会被丢弃。" -#: authentik/providers/radius/models.py:60 +#: authentik/providers/radius/models.py:61 msgid "Radius Provider" msgstr "Radius 提供程序" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py:62 msgid "Radius Providers" msgstr "Radius 提供程序" -#: authentik/providers/saml/api/providers.py:258 +#: authentik/providers/saml/api/providers.py:261 msgid "Invalid XML Syntax" msgstr "无效 XML 语法" -#: authentik/providers/saml/api/providers.py:268 +#: authentik/providers/saml/api/providers.py:271 #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "导入元数据失败:%(message)s" -#: authentik/providers/saml/models.py:38 +#: authentik/providers/saml/models.py:39 msgid "ACS URL" msgstr "ACS URL" -#: authentik/providers/saml/models.py:43 +#: authentik/providers/saml/models.py:44 msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." msgstr "断言的 Audience 受限字段的值。留空时,不会添加 Audience 限制。" -#: authentik/providers/saml/models.py:47 +#: authentik/providers/saml/models.py:48 msgid "Also known as EntityID" msgstr "也称为 EntityID" -#: authentik/providers/saml/models.py:51 +#: authentik/providers/saml/models.py:52 msgid "Service Provider Binding" msgstr "服务提供程序绑定" -#: authentik/providers/saml/models.py:53 +#: authentik/providers/saml/models.py:54 msgid "" "This determines how authentik sends the response back to the Service " "Provider." msgstr "确定 authentik 如何将响应发送回服务提供程序。" -#: authentik/providers/saml/models.py:63 +#: authentik/providers/saml/models.py:64 msgid "NameID Property Mapping" msgstr "NameID 属性映射" -#: authentik/providers/saml/models.py:65 +#: authentik/providers/saml/models.py:66 msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" msgstr "配置如何创建 NameID 值。如果留空,将考虑传入请求的 NameIDPolicy" -#: authentik/providers/saml/models.py:74 +#: authentik/providers/saml/models.py:75 msgid "" "Assertion valid not before current time + this value (Format: " "hours=-1;minutes=-2;seconds=-3)." msgstr "从当前时间经过多久时或之后,断言有效(格式:hours=-1;minutes=-2;seconds=-3)。" -#: authentik/providers/saml/models.py:82 +#: authentik/providers/saml/models.py:83 msgid "" "Assertion not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,断言无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:91 +#: authentik/providers/saml/models.py:92 msgid "" "Session not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,会话无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:99 authentik/sources/saml/models.py:150 +#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 msgid "SHA1" msgstr "SHA1" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 msgid "SHA256" msgstr "SHA256" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 msgid "SHA384" msgstr "SHA384" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py:103 authentik/sources/saml/models.py:154 msgid "SHA512" msgstr "SHA512" -#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:160 +#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 msgid "RSA-SHA1" msgstr "RSA-SHA1" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 msgid "RSA-SHA256" msgstr "RSA-SHA256" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 msgid "RSA-SHA384" msgstr "RSA-SHA384" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 msgid "RSA-SHA512" msgstr "RSA-SHA512" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py:114 authentik/sources/saml/models.py:165 msgid "DSA-SHA1" msgstr "DSA-SHA1" -#: authentik/providers/saml/models.py:124 authentik/sources/saml/models.py:130 +#: authentik/providers/saml/models.py:125 authentik/sources/saml/models.py:131 msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." msgstr "选中后,传入断言的签名将根据此证书进行验证。要允许未签名的请求,请保留默认值。" -#: authentik/providers/saml/models.py:128 authentik/sources/saml/models.py:134 +#: authentik/providers/saml/models.py:129 authentik/sources/saml/models.py:135 msgid "Verification Certificate" msgstr "验证证书" -#: authentik/providers/saml/models.py:136 +#: authentik/providers/saml/models.py:137 msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "密钥对,用于签署发送给服务提供程序的传出响应。" -#: authentik/providers/saml/models.py:138 authentik/sources/saml/models.py:144 +#: authentik/providers/saml/models.py:139 authentik/sources/saml/models.py:145 msgid "Signing Keypair" msgstr "签名密钥对" -#: authentik/providers/saml/models.py:142 +#: authentik/providers/saml/models.py:143 msgid "Default relay_state value for IDP-initiated logins" msgstr "用于 IDP 发起登录的默认 relay_state 值" -#: authentik/providers/saml/models.py:171 +#: authentik/providers/saml/models.py:172 msgid "SAML Provider" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py:173 msgid "SAML Providers" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:196 +#: authentik/providers/saml/models.py:197 msgid "SAML Property Mapping" msgstr "SAML 属性映射" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py:198 msgid "SAML Property Mappings" msgstr "SAML 属性映射" @@ -1596,7 +1604,7 @@ msgstr "SCIM 请求的基础 URL,通常以 /v2 结尾" msgid "Authentication token" msgstr "身份验证令牌" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:98 +#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:99 msgid "Property mappings used for group creation/updating." msgstr "用于创建/更新组的属性映射。" @@ -1616,434 +1624,434 @@ msgstr "SCIM 映射" msgid "SCIM Mappings" msgstr "SCIM 映射" -#: authentik/providers/scim/tasks.py:57 +#: authentik/providers/scim/tasks.py:58 msgid "Starting full SCIM sync" msgstr "开始全量 SCIM 同步" -#: authentik/providers/scim/tasks.py:67 +#: authentik/providers/scim/tasks.py:68 #, python-format msgid "Syncing page %(page)d of users" msgstr "正在同步用户页面 %(page)d" -#: authentik/providers/scim/tasks.py:71 +#: authentik/providers/scim/tasks.py:72 #, python-format msgid "Syncing page %(page)d of groups" msgstr "正在同步群组页面 %(page)d" -#: authentik/providers/scim/tasks.py:103 +#: authentik/providers/scim/tasks.py:104 #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步用户 %(user_name)s 失败:%(error)s" -#: authentik/providers/scim/tasks.py:114 authentik/providers/scim/tasks.py:155 +#: authentik/providers/scim/tasks.py:115 authentik/providers/scim/tasks.py:156 #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "由于以下错误,同步停止:%(error)s" -#: authentik/providers/scim/tasks.py:144 +#: authentik/providers/scim/tasks.py:145 #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步组 %(group_name)s 失败:%(error)s" -#: authentik/rbac/models.py:51 +#: authentik/rbac/models.py:52 msgid "Role" msgstr "角色" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py:53 msgid "Roles" msgstr "角色" -#: authentik/rbac/models.py:66 +#: authentik/rbac/models.py:67 msgid "System permission" msgstr "系统权限" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py:68 msgid "System permissions" msgstr "系统权限" -#: authentik/rbac/models.py:69 +#: authentik/rbac/models.py:70 msgid "Can view system info" msgstr "可以查看系统信息" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py:71 msgid "Can view system tasks" msgstr "可以查看系统任务" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py:72 msgid "Can run system tasks" msgstr "可以运行系统任务" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py:73 msgid "Can access admin interface" msgstr "可以访问管理员界面" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py:74 msgid "Can view system settings" msgstr "可以查看系统设置" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py:75 msgid "Can edit system settings" msgstr "可以编辑系统设置" -#: authentik/recovery/management/commands/create_admin_group.py:12 +#: authentik/recovery/management/commands/create_admin_group.py:13 msgid "Create admin group if the default group gets deleted." msgstr "如果默认组被删除,则创建管理员组。" -#: authentik/recovery/management/commands/create_recovery_key.py:16 +#: authentik/recovery/management/commands/create_recovery_key.py:17 msgid "Create a Key which can be used to restore access to authentik." msgstr "创建一个密钥,可用于恢复对 authentik 的访问权限。" -#: authentik/recovery/views.py:24 +#: authentik/recovery/views.py:25 msgid "Used recovery-link to authenticate." msgstr "已使用恢复链接进行身份验证。" -#: authentik/sources/ldap/models.py:41 +#: authentik/sources/ldap/models.py:42 msgid "Server URI" msgstr "服务器 URI" -#: authentik/sources/ldap/models.py:50 +#: authentik/sources/ldap/models.py:51 msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this" " keypair." msgstr "可选,根据此密钥对中的 CA 链验证 LDAP 服务器的证书。" -#: authentik/sources/ldap/models.py:59 +#: authentik/sources/ldap/models.py:60 msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "基于 LDAP 服务端证书进行身份验证的客户端证书。" -#: authentik/sources/ldap/models.py:62 +#: authentik/sources/ldap/models.py:63 msgid "Bind CN" msgstr "Bind CN" -#: authentik/sources/ldap/models.py:64 +#: authentik/sources/ldap/models.py:65 msgid "Enable Start TLS" msgstr "启用 Start TLS" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py:66 msgid "Use Server URI for SNI verification" msgstr "SNI 验证时使用服务器 URI" -#: authentik/sources/ldap/models.py:67 +#: authentik/sources/ldap/models.py:68 msgid "Base DN" msgstr "Base DN" -#: authentik/sources/ldap/models.py:69 +#: authentik/sources/ldap/models.py:70 msgid "Prepended to Base DN for User-queries." msgstr "添加到用户查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py:71 msgid "Addition User DN" msgstr "额外的用户 DN" -#: authentik/sources/ldap/models.py:74 +#: authentik/sources/ldap/models.py:75 msgid "Prepended to Base DN for Group-queries." msgstr "添加到组查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py:76 msgid "Addition Group DN" msgstr "额外的组 DN" -#: authentik/sources/ldap/models.py:81 +#: authentik/sources/ldap/models.py:82 msgid "Consider Objects matching this filter to be Users." msgstr "将与此筛选器匹配的对象视为用户。" -#: authentik/sources/ldap/models.py:84 +#: authentik/sources/ldap/models.py:85 msgid "Field which contains members of a group." msgstr "包含组成员的字段。" -#: authentik/sources/ldap/models.py:88 +#: authentik/sources/ldap/models.py:89 msgid "Consider Objects matching this filter to be Groups." msgstr "将与此过滤器匹配的对象视为组。" -#: authentik/sources/ldap/models.py:91 +#: authentik/sources/ldap/models.py:92 msgid "Field which contains a unique Identifier." msgstr "包含唯一标识符的字段。" -#: authentik/sources/ldap/models.py:105 +#: authentik/sources/ldap/models.py:106 msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "当用户修改密码时,将其同步回 LDAP。仅可在单点 LDAP 源时启用。" -#: authentik/sources/ldap/models.py:248 +#: authentik/sources/ldap/models.py:249 msgid "LDAP Source" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py:250 msgid "LDAP Sources" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:271 +#: authentik/sources/ldap/models.py:272 msgid "LDAP Property Mapping" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py:273 msgid "LDAP Property Mappings" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/signals.py:52 +#: authentik/sources/ldap/signals.py:53 msgid "Password does not match Active Directory Complexity." msgstr "密码与 Active Directory 复杂度不匹配。" -#: authentik/sources/oauth/clients/oauth2.py:68 +#: authentik/sources/oauth/clients/oauth2.py:69 msgid "No token received." msgstr "未收到令牌。" -#: authentik/sources/oauth/models.py:24 +#: authentik/sources/oauth/models.py:25 msgid "Request Token URL" msgstr "请求令牌 URL" -#: authentik/sources/oauth/models.py:26 +#: authentik/sources/oauth/models.py:27 msgid "" "URL used to request the initial token. This URL is only required for OAuth " "1." msgstr "用于请求初始令牌的 URL。只有 OAuth 1 才需要此网址。" -#: authentik/sources/oauth/models.py:32 +#: authentik/sources/oauth/models.py:33 msgid "Authorization URL" msgstr "授权 URL" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py:34 msgid "URL the user is redirect to to conest the flow." msgstr "为控制流程,使用户被重定向到的 URL" -#: authentik/sources/oauth/models.py:38 +#: authentik/sources/oauth/models.py:39 msgid "Access Token URL" msgstr "访问令牌 URL" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py:40 msgid "URL used by authentik to retrieve tokens." msgstr "authentik 用来获取令牌的 URL。" -#: authentik/sources/oauth/models.py:44 +#: authentik/sources/oauth/models.py:45 msgid "Profile URL" msgstr "个人资料 URL" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py:46 msgid "URL used by authentik to get user information." msgstr "authentik 用来获取用户信息的 URL。" -#: authentik/sources/oauth/models.py:48 +#: authentik/sources/oauth/models.py:49 msgid "Additional Scopes" msgstr "额外的作用域" -#: authentik/sources/oauth/models.py:107 +#: authentik/sources/oauth/models.py:108 msgid "OAuth Source" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py:109 msgid "OAuth Sources" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:116 +#: authentik/sources/oauth/models.py:117 msgid "GitHub OAuth Source" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py:118 msgid "GitHub OAuth Sources" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:125 +#: authentik/sources/oauth/models.py:126 msgid "Twitch OAuth Source" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py:127 msgid "Twitch OAuth Sources" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:134 +#: authentik/sources/oauth/models.py:135 msgid "Mailcow OAuth Source" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py:136 msgid "Mailcow OAuth Sources" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:143 +#: authentik/sources/oauth/models.py:144 msgid "Twitter OAuth Source" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py:145 msgid "Twitter OAuth Sources" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:152 +#: authentik/sources/oauth/models.py:153 msgid "Facebook OAuth Source" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py:154 msgid "Facebook OAuth Sources" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:161 +#: authentik/sources/oauth/models.py:162 msgid "Discord OAuth Source" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py:163 msgid "Discord OAuth Sources" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:170 +#: authentik/sources/oauth/models.py:171 msgid "Patreon OAuth Source" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py:172 msgid "Patreon OAuth Sources" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:179 +#: authentik/sources/oauth/models.py:180 msgid "Google OAuth Source" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py:181 msgid "Google OAuth Sources" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:188 +#: authentik/sources/oauth/models.py:189 msgid "Azure AD OAuth Source" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py:190 msgid "Azure AD OAuth Sources" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:197 +#: authentik/sources/oauth/models.py:198 msgid "OpenID OAuth Source" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py:199 msgid "OpenID OAuth Sources" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:206 +#: authentik/sources/oauth/models.py:207 msgid "Apple OAuth Source" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py:208 msgid "Apple OAuth Sources" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:215 +#: authentik/sources/oauth/models.py:216 msgid "Okta OAuth Source" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py:217 msgid "Okta OAuth Sources" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:224 +#: authentik/sources/oauth/models.py:225 msgid "Reddit OAuth Source" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py:226 msgid "Reddit OAuth Sources" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:247 +#: authentik/sources/oauth/models.py:248 msgid "User OAuth Source Connection" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py:249 msgid "User OAuth Source Connections" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/views/callback.py:100 +#: authentik/sources/oauth/views/callback.py:101 #, python-format msgid "Authentication failed: %(reason)s" msgstr "身份验证失败:%(reason)s" -#: authentik/sources/plex/models.py:37 +#: authentik/sources/plex/models.py:38 msgid "Client identifier used to talk to Plex." msgstr "用来与 Plex 通信的客户端标识符。" -#: authentik/sources/plex/models.py:44 +#: authentik/sources/plex/models.py:45 msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." msgstr "用户必须是哪个服务器的成员才能获取权限。空列表允许任何服务器。" -#: authentik/sources/plex/models.py:50 +#: authentik/sources/plex/models.py:51 msgid "Allow friends to authenticate, even if you don't share a server." msgstr "允许好友进行身份验证,即使您不共享服务器。" -#: authentik/sources/plex/models.py:52 +#: authentik/sources/plex/models.py:53 msgid "Plex token used to check friends" msgstr "用于检查好友的 Plex 令牌" -#: authentik/sources/plex/models.py:95 +#: authentik/sources/plex/models.py:96 msgid "Plex Source" msgstr "Plex 源" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py:97 msgid "Plex Sources" msgstr "Plex 源" -#: authentik/sources/plex/models.py:112 +#: authentik/sources/plex/models.py:113 msgid "User Plex Source Connection" msgstr "用户 Plex 源连接" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py:114 msgid "User Plex Source Connections" msgstr "用户 Plex 源连接" -#: authentik/sources/saml/models.py:40 +#: authentik/sources/saml/models.py:41 msgid "Redirect Binding" msgstr "重定向绑定" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py:42 msgid "POST Binding" msgstr "POST 绑定" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py:43 msgid "POST Binding with auto-confirmation" msgstr "带有自动确认功能的 POST 绑定" -#: authentik/sources/saml/models.py:70 +#: authentik/sources/saml/models.py:71 msgid "Flow used before authentication." msgstr "身份验证之前使用的流程。" -#: authentik/sources/saml/models.py:77 +#: authentik/sources/saml/models.py:78 msgid "Issuer" msgstr "颁发者" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py:79 msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "也称为 Entity ID。 默认为元数据 URL。" -#: authentik/sources/saml/models.py:82 +#: authentik/sources/saml/models.py:83 msgid "SSO URL" msgstr "SSO URL" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py:84 msgid "URL that the initial Login request is sent to." msgstr "初始登录请求发送到的 URL。" -#: authentik/sources/saml/models.py:89 +#: authentik/sources/saml/models.py:90 msgid "SLO URL" msgstr "SLO URL" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py:91 msgid "Optional URL if your IDP supports Single-Logout." msgstr "如果您的 IDP 支持单点登出,则为可选 URL。" -#: authentik/sources/saml/models.py:96 +#: authentik/sources/saml/models.py:97 msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." msgstr "允许由 IdP 启动的身份验证流程。这可能存在安全风险,因为未对请求 ID 进行验证。" -#: authentik/sources/saml/models.py:104 +#: authentik/sources/saml/models.py:105 msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is " "sent." msgstr "发送给 IdP 的 NameID 策略。可以取消设置,此时不会发送任何策略。" -#: authentik/sources/saml/models.py:115 +#: authentik/sources/saml/models.py:116 msgid "Delete temporary users after" msgstr "多久后删除临时用户" -#: authentik/sources/saml/models.py:118 +#: authentik/sources/saml/models.py:119 msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " @@ -2052,134 +2060,134 @@ msgstr "" "删除临时用户的时间偏移。这仅适用于您的 IDP 使用 NameID 格式 'transient' " "且用户未手动登出的情况。(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/sources/saml/models.py:142 +#: authentik/sources/saml/models.py:143 msgid "" "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "密钥对,用于签署发送给身份提供程序的传出响应。" -#: authentik/sources/saml/models.py:226 +#: authentik/sources/saml/models.py:227 msgid "SAML Source" msgstr "SAML 源" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py:228 msgid "SAML Sources" msgstr "SAML 源" -#: authentik/sources/saml/models.py:242 +#: authentik/sources/saml/models.py:243 msgid "User SAML Source Connection" msgstr "用户 SAML 源连接" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py:244 msgid "User SAML Source Connections" msgstr "用户 SAML 源连接" -#: authentik/stages/authenticator_duo/models.py:79 +#: authentik/stages/authenticator_duo/models.py:80 msgid "Duo Authenticator Setup Stage" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py:81 msgid "Duo Authenticator Setup Stages" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:103 +#: authentik/stages/authenticator_duo/models.py:104 msgid "Duo Device" msgstr "Duo 设备" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py:105 msgid "Duo Devices" msgstr "Duo 设备" -#: authentik/stages/authenticator_sms/models.py:57 +#: authentik/stages/authenticator_sms/models.py:58 msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" " not reused in the future." msgstr "启用时,电话号码仅在注册期间用于验证用户的真实性。仅保存电话号码的哈希,以确保将来不会重复使用。" -#: authentik/stages/authenticator_sms/models.py:68 +#: authentik/stages/authenticator_sms/models.py:69 msgid "Optionally modify the payload being sent to custom providers." msgstr "可选地,修改发送到自定义提供程序的载荷。" -#: authentik/stages/authenticator_sms/models.py:81 +#: authentik/stages/authenticator_sms/models.py:82 #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "使用此代码在 authentik 中验证身份:%(token)s" -#: authentik/stages/authenticator_sms/models.py:180 +#: authentik/stages/authenticator_sms/models.py:181 msgid "SMS Authenticator Setup Stage" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py:182 msgid "SMS Authenticator Setup Stages" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:226 +#: authentik/stages/authenticator_sms/models.py:227 msgid "SMS Device" msgstr "短信设备" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py:228 msgid "SMS Devices" msgstr "短信设备" -#: authentik/stages/authenticator_sms/stage.py:57 -#: authentik/stages/authenticator_totp/stage.py:41 -#: authentik/stages/authenticator_totp/stage.py:44 +#: authentik/stages/authenticator_sms/stage.py:58 +#: authentik/stages/authenticator_totp/stage.py:42 +#: authentik/stages/authenticator_totp/stage.py:45 msgid "Code does not match" msgstr "代码不匹配" -#: authentik/stages/authenticator_sms/stage.py:73 +#: authentik/stages/authenticator_sms/stage.py:74 msgid "Invalid phone number" msgstr "无效电话号码" -#: authentik/stages/authenticator_static/models.py:52 +#: authentik/stages/authenticator_static/models.py:53 msgid "Static Authenticator Setup Stage" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py:54 msgid "Static Authenticator Setup Stages" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:98 +#: authentik/stages/authenticator_static/models.py:99 msgid "Static Device" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py:100 msgid "Static Devices" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:129 +#: authentik/stages/authenticator_static/models.py:130 msgid "Static Token" msgstr "静态令牌" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py:131 msgid "Static Tokens" msgstr "静态令牌" -#: authentik/stages/authenticator_totp/models.py:25 +#: authentik/stages/authenticator_totp/models.py:26 msgid "6 digits, widely compatible" msgstr "6 位数字,广泛兼容" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py:27 msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "8 位数字,与 Google 身份验证器等应用不兼容" -#: authentik/stages/authenticator_totp/models.py:62 +#: authentik/stages/authenticator_totp/models.py:63 msgid "TOTP Authenticator Setup Stage" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py:64 msgid "TOTP Authenticator Setup Stages" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:244 +#: authentik/stages/authenticator_totp/models.py:245 msgid "TOTP Device" msgstr "TOTP 设备" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py:246 msgid "TOTP Devices" msgstr "TOTP 设备" -#: authentik/stages/authenticator_validate/challenge.py:123 +#: authentik/stages/authenticator_validate/challenge.py:124 msgid "Invalid Token" msgstr "无效令牌" @@ -2232,19 +2240,19 @@ msgstr "身份验证器验证阶段" msgid "Authenticator Validation Stages" msgstr "身份验证器验证阶段" -#: authentik/stages/authenticator_webauthn/models.py:112 +#: authentik/stages/authenticator_webauthn/models.py:113 msgid "WebAuthn Authenticator Setup Stage" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py:114 msgid "WebAuthn Authenticator Setup Stages" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:151 +#: authentik/stages/authenticator_webauthn/models.py:152 msgid "WebAuthn Device" msgstr "WebAuthn 设备" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py:153 msgid "WebAuthn Devices" msgstr "WebAuthn 设备" @@ -2285,69 +2293,69 @@ msgstr "用户同意授权" msgid "User Consents" msgstr "用户同意授权" -#: authentik/stages/deny/models.py:32 +#: authentik/stages/deny/models.py:33 msgid "Deny Stage" msgstr "拒绝阶段" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py:34 msgid "Deny Stages" msgstr "拒绝阶段" -#: authentik/stages/dummy/models.py:34 +#: authentik/stages/dummy/models.py:35 msgid "Dummy Stage" msgstr "虚拟阶段" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py:36 msgid "Dummy Stages" msgstr "虚拟阶段" -#: authentik/stages/email/models.py:26 +#: authentik/stages/email/models.py:27 msgid "Password Reset" msgstr "密码重置" -#: authentik/stages/email/models.py:30 +#: authentik/stages/email/models.py:31 msgid "Account Confirmation" msgstr "账户确认" -#: authentik/stages/email/models.py:59 +#: authentik/stages/email/models.py:60 msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." msgstr "启用后,将使用全局电子邮件连接设置,下面的连接设置将被忽略。" -#: authentik/stages/email/models.py:74 +#: authentik/stages/email/models.py:75 msgid "Activate users upon completion of stage." msgstr "完成阶段后激活用户。" -#: authentik/stages/email/models.py:78 +#: authentik/stages/email/models.py:79 msgid "Time in minutes the token sent is valid." msgstr "发出令牌的有效时间(单位为分钟)。" -#: authentik/stages/email/models.py:132 +#: authentik/stages/email/models.py:133 msgid "Email Stage" msgstr "电子邮件阶段" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py:134 msgid "Email Stages" msgstr "电子邮件阶段" -#: authentik/stages/email/stage.py:126 +#: authentik/stages/email/stage.py:127 msgid "Exception occurred while rendering E-mail template" msgstr "渲染电子邮件模板时发生异常" -#: authentik/stages/email/stage.py:140 +#: authentik/stages/email/stage.py:141 msgid "Successfully verified Email." msgstr "已成功验证电子邮件。" -#: authentik/stages/email/stage.py:147 authentik/stages/email/stage.py:173 +#: authentik/stages/email/stage.py:148 authentik/stages/email/stage.py:174 msgid "No pending user." msgstr "没有待处理的用户。" -#: authentik/stages/email/stage.py:163 +#: authentik/stages/email/stage.py:164 msgid "Email sent." msgstr "电子邮件已发出。" -#: authentik/stages/email/stage.py:176 +#: authentik/stages/email/stage.py:177 msgid "Email Successfully sent." msgstr "成功发送电子邮件。" @@ -2491,7 +2499,7 @@ msgstr "" "\n" "这是一封测试电子邮件,用于通知您已成功配置 authentik 电子邮件。\n" -#: authentik/stages/identification/api.py:20 +#: authentik/stages/identification/api.py:21 msgid "When no user fields are selected, at least one source must be selected" msgstr "如果未选择用户字段,则至少要选择一个源" @@ -2542,184 +2550,184 @@ msgstr "识别阶段" msgid "Identification Stages" msgstr "识别阶段" -#: authentik/stages/identification/stage.py:188 +#: authentik/stages/identification/stage.py:189 msgid "Log in" msgstr "登录" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py:190 msgid "Continue" msgstr "继续" -#: authentik/stages/invitation/models.py:21 +#: authentik/stages/invitation/models.py:22 msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " "invitation is given." msgstr "如果设置了此标志,则当没有发出邀请时,此阶段将跳转到下一个阶段。默认情况下,当没有发出邀请时,此阶段将取消流程。" -#: authentik/stages/invitation/models.py:44 +#: authentik/stages/invitation/models.py:45 msgid "Invitation Stage" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py:46 msgid "Invitation Stages" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:60 +#: authentik/stages/invitation/models.py:61 msgid "When set, only the configured flow can use this invitation." msgstr "设置时,只有配置的流程可以使用此邀请。" -#: authentik/stages/invitation/models.py:64 +#: authentik/stages/invitation/models.py:65 msgid "When enabled, the invitation will be deleted after usage." msgstr "启用后,邀请将在使用后被删除。" -#: authentik/stages/invitation/models.py:71 +#: authentik/stages/invitation/models.py:72 msgid "Optional fixed data to enforce on user enrollment." msgstr "在用户注册时强制设置的可选固定数据。" -#: authentik/stages/invitation/models.py:84 +#: authentik/stages/invitation/models.py:85 msgid "Invitation" msgstr "邀请" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py:86 msgid "Invitations" msgstr "邀请" -#: authentik/stages/invitation/stage.py:62 +#: authentik/stages/invitation/stage.py:63 msgid "Invalid invite/invite not found" msgstr "邀请无效/未找到" -#: authentik/stages/password/models.py:20 +#: authentik/stages/password/models.py:21 msgid "User database + standard password" msgstr "用户数据库 + 标准密码" -#: authentik/stages/password/models.py:24 +#: authentik/stages/password/models.py:25 msgid "User database + app passwords" msgstr "用户数据库 + 应用程序密码" -#: authentik/stages/password/models.py:28 +#: authentik/stages/password/models.py:29 msgid "User database + LDAP password" msgstr "用户数据库 + LDAP 密码" -#: authentik/stages/password/models.py:38 +#: authentik/stages/password/models.py:39 msgid "Selection of backends to test the password against." msgstr "选择用于测试密码的后端。" -#: authentik/stages/password/models.py:43 +#: authentik/stages/password/models.py:44 msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." msgstr "在取消流程之前,用户可以尝试多少次。要锁定用户,请使用信誉策略和 user_write 阶段。" -#: authentik/stages/password/models.py:75 +#: authentik/stages/password/models.py:76 msgid "Password Stage" msgstr "密码阶段" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py:77 msgid "Password Stages" msgstr "密码阶段" -#: authentik/stages/password/stage.py:124 +#: authentik/stages/password/stage.py:125 msgid "Invalid password" msgstr "无效密码" -#: authentik/stages/prompt/models.py:43 +#: authentik/stages/prompt/models.py:44 msgid "Text: Simple Text input" msgstr "文本:简单文本输入" -#: authentik/stages/prompt/models.py:45 +#: authentik/stages/prompt/models.py:46 msgid "Text area: Multiline Text Input." msgstr "文本框:多行文本输入。" -#: authentik/stages/prompt/models.py:48 +#: authentik/stages/prompt/models.py:49 msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "文本(只读):简单文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:52 +#: authentik/stages/prompt/models.py:53 msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "文本框(只读):多行文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:58 +#: authentik/stages/prompt/models.py:59 msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." msgstr "用户名:与文本输入相同,但检查并防止用户名重复。" -#: authentik/stages/prompt/models.py:60 +#: authentik/stages/prompt/models.py:61 msgid "Email: Text field with Email type." msgstr "电子邮箱:电子邮箱类型的文本字段。" -#: authentik/stages/prompt/models.py:64 +#: authentik/stages/prompt/models.py:65 msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need" " to be identical." msgstr "密码:屏蔽显示输入内容,多个此类型的输入如果在同一个输入项下,则内容需要相同。" -#: authentik/stages/prompt/models.py:71 +#: authentik/stages/prompt/models.py:72 msgid "Fixed choice field rendered as a group of radio buttons." msgstr "显示为一组单选按钮的固定选项字段。" -#: authentik/stages/prompt/models.py:73 +#: authentik/stages/prompt/models.py:74 msgid "Fixed choice field rendered as a dropdown." msgstr "显示为下拉框的固定选项字段。" -#: authentik/stages/prompt/models.py:80 +#: authentik/stages/prompt/models.py:81 msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" msgstr "文件:任意文件上传。文件内容将在流程上下文中以 data-URI 形式提供" -#: authentik/stages/prompt/models.py:85 +#: authentik/stages/prompt/models.py:86 msgid "Separator: Static Separator Line" msgstr "分隔符:静态分隔线" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py:87 msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "隐藏:隐藏字段,可用于将数据插入表单。" -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py:88 msgid "Static: Static value, displayed as-is." msgstr "静态:静态值,按原样显示。" -#: authentik/stages/prompt/models.py:89 +#: authentik/stages/prompt/models.py:90 msgid "authentik: Selection of locales authentik supports" msgstr "authentik:选择 authentik 支持的语言环境" -#: authentik/stages/prompt/models.py:116 +#: authentik/stages/prompt/models.py:117 msgid "Name of the form field, also used to store the value" msgstr "表单域的名称,也用于存储值" -#: authentik/stages/prompt/models.py:124 +#: authentik/stages/prompt/models.py:125 msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." msgstr "可选的简短提示,用来描述期望的输入值。在创建固定选项字段时,启用以表达式解释,并返回多个选项的列表。" -#: authentik/stages/prompt/models.py:132 +#: authentik/stages/prompt/models.py:133 msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." msgstr "可选的预设输入初始值。在创建固定选项字段时,启用以表达式解释,并返回多个默认选项的列表。" -#: authentik/stages/prompt/models.py:321 +#: authentik/stages/prompt/models.py:322 msgid "Prompt" msgstr "输入" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py:323 msgid "Prompts" msgstr "输入" -#: authentik/stages/prompt/models.py:349 +#: authentik/stages/prompt/models.py:350 msgid "Prompt Stage" msgstr "输入阶段" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py:351 msgid "Prompt Stages" msgstr "输入阶段" -#: authentik/stages/prompt/stage.py:108 +#: authentik/stages/prompt/stage.py:109 msgid "Passwords don't match." msgstr "密码不匹配。" @@ -2731,7 +2739,7 @@ msgstr "用户删除阶段" msgid "User Delete Stages" msgstr "用户删除阶段" -#: authentik/stages/user_delete/stage.py:18 +#: authentik/stages/user_delete/stage.py:19 msgid "No Pending User." msgstr "没有待处理的用户。" @@ -2764,11 +2772,11 @@ msgstr "用户登录阶段" msgid "User Login Stages" msgstr "用户登录阶段" -#: authentik/stages/user_login/stage.py:85 +#: authentik/stages/user_login/stage.py:86 msgid "No Pending user to login." msgstr "没有待定用户可以登录。" -#: authentik/stages/user_login/stage.py:112 +#: authentik/stages/user_login/stage.py:113 msgid "Successfully logged in!" msgstr "已成功登录!" @@ -2796,73 +2804,73 @@ msgstr "用户写入阶段" msgid "User Write Stages" msgstr "用户写入阶段" -#: authentik/stages/user_write/stage.py:141 +#: authentik/stages/user_write/stage.py:142 msgid "No Pending data." msgstr "没有待处理的数据。" -#: authentik/stages/user_write/stage.py:147 +#: authentik/stages/user_write/stage.py:148 msgid "No user found and can't create new user." msgstr "未找到用户并且无法创建新用户。" -#: authentik/stages/user_write/stage.py:164 -#: authentik/stages/user_write/stage.py:178 +#: authentik/stages/user_write/stage.py:165 +#: authentik/stages/user_write/stage.py:179 msgid "Failed to update user. Please try again later." msgstr "更新用户失败。请稍后重试。" -#: authentik/tenants/models.py:29 +#: authentik/tenants/models.py:30 msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." msgstr "模式名称必须以 t_ 开始,只能包含小写字母和数字,并且少于 63 个字符。" -#: authentik/tenants/models.py:49 +#: authentik/tenants/models.py:50 msgid "Configure how authentik should show avatars for users." msgstr "配置 authentik 应该如何显示用户头像。" -#: authentik/tenants/models.py:53 +#: authentik/tenants/models.py:54 msgid "Enable the ability for users to change their name." msgstr "启用用户修改自己名称的能力。" -#: authentik/tenants/models.py:56 +#: authentik/tenants/models.py:57 msgid "Enable the ability for users to change their email address." msgstr "启用用户修改自己电子邮件地址的能力。" -#: authentik/tenants/models.py:59 +#: authentik/tenants/models.py:60 msgid "Enable the ability for users to change their username." msgstr "启用用户修改自己用户名的能力。" -#: authentik/tenants/models.py:65 +#: authentik/tenants/models.py:66 msgid "" "Events will be deleted after this duration.(Format: " "weeks=3;days=2;hours=3,seconds=2)." msgstr "事件会在多久后被删除。(格式:weeks=3;days=2;hours=3,seconds=2)。" -#: authentik/tenants/models.py:69 +#: authentik/tenants/models.py:70 msgid "The option configures the footer links on the flow executor pages." msgstr "此选项配置流程执行器页面上的页脚链接。" -#: authentik/tenants/models.py:75 +#: authentik/tenants/models.py:76 msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." msgstr "启用时,所有由用户造成的事件会在相应用户被删除时一并删除。" -#: authentik/tenants/models.py:81 +#: authentik/tenants/models.py:82 msgid "Globally enable/disable impersonation." msgstr "全局启用/禁用模拟身份。" -#: authentik/tenants/models.py:104 +#: authentik/tenants/models.py:105 msgid "Tenant" msgstr "租户" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py:106 msgid "Tenants" msgstr "租户" -#: authentik/tenants/models.py:125 +#: authentik/tenants/models.py:126 msgid "Domain" msgstr "域名" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py:127 msgid "Domains" msgstr "域名" From b92630804f7d1ae0b29293fb307441c6f7cebba7 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:15:50 +0000 Subject: [PATCH 038/105] web: bump API Client version (#8446) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index ac084d2df0..2e31878340 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -17,7 +17,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.5.5", "@fortawesome/fontawesome-free": "^6.5.1", - "@goauthentik/api": "^2023.10.7-1706576211", + "@goauthentik/api": "^2023.10.7-1707321538", "@lit-labs/context": "^0.4.0", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", @@ -2915,9 +2915,9 @@ } }, "node_modules/@goauthentik/api": { - "version": "2023.10.7-1706576211", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.7-1706576211.tgz", - "integrity": "sha512-mpDMRquBZkYIE/wb7uG+p7Jax/ge0TCVoI0ZsW9vn9uspvHAkoX6K7kA78wW8ktA7wUEeJ51l5GoIHYRMdhavA==" + "version": "2023.10.7-1707321538", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.7-1707321538.tgz", + "integrity": "sha512-e7ObneWy6/lX6gfjOwAzTC25wpU+Nn5EqdfH949ENLvicJbG3OGf5tOPsCMFxUHA/M9aZmx8P9tyjJlG5NoB+g==" }, "node_modules/@hcaptcha/types": { "version": "1.0.3", diff --git a/web/package.json b/web/package.json index b8853f4ea1..7326b73e64 100644 --- a/web/package.json +++ b/web/package.json @@ -42,7 +42,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.5.5", "@fortawesome/fontawesome-free": "^6.5.1", - "@goauthentik/api": "^2023.10.7-1706576211", + "@goauthentik/api": "^2023.10.7-1707321538", "@lit-labs/context": "^0.4.0", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", From c90792d87616cab50dc5c64bf6fbc7e41112ab1c Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 7 Feb 2024 21:21:16 +0100 Subject: [PATCH 039/105] stages/authenticator_validate: fix error when using pretend_user (#8447) --- authentik/core/auth.py | 2 ++ authentik/core/tasks.py | 2 ++ .../stages/authenticator_validate/stage.py | 12 ++++++- authentik/stages/identification/stage.py | 2 +- authentik/stages/identification/tests.py | 36 +++++++++++++++++++ 5 files changed, 52 insertions(+), 2 deletions(-) diff --git a/authentik/core/auth.py b/authentik/core/auth.py index a4ede1387d..c73a3802a5 100644 --- a/authentik/core/auth.py +++ b/authentik/core/auth.py @@ -43,7 +43,9 @@ class TokenBackend(InbuiltBackend): self, request: HttpRequest, username: Optional[str], password: Optional[str], **kwargs: Any ) -> Optional[User]: try: + # pylint: disable=no-member user = User._default_manager.get_by_natural_key(username) + # pylint: disable=no-member except User.DoesNotExist: # Run the default password hasher once to reduce the timing # difference between an existing and a nonexistent user (#20760). diff --git a/authentik/core/tasks.py b/authentik/core/tasks.py index 4d66aaa4f8..61ac773d6d 100644 --- a/authentik/core/tasks.py +++ b/authentik/core/tasks.py @@ -37,6 +37,7 @@ def clean_expired_models(self: SystemTask): messages.append(f"Expired {amount} {cls._meta.verbose_name_plural}") # Special case amount = 0 + # pylint: disable=no-member for session in AuthenticatedSession.objects.all(): cache_key = f"{KEY_PREFIX}{session.session_key}" value = None @@ -49,6 +50,7 @@ def clean_expired_models(self: SystemTask): session.delete() amount += 1 LOGGER.debug("Expired sessions", model=AuthenticatedSession, amount=amount) + # pylint: disable=no-member messages.append(f"Expired {amount} {AuthenticatedSession._meta.verbose_name_plural}") self.set_status(TaskStatus.SUCCESSFUL, *messages) diff --git a/authentik/stages/authenticator_validate/stage.py b/authentik/stages/authenticator_validate/stage.py index 10c3466c2d..f7f62a6d1b 100644 --- a/authentik/stages/authenticator_validate/stage.py +++ b/authentik/stages/authenticator_validate/stage.py @@ -14,7 +14,7 @@ from authentik.core.api.utils import JSONDictField, PassiveSerializer from authentik.core.models import User from authentik.events.models import Event, EventAction from authentik.flows.challenge import ChallengeResponse, ChallengeTypes, WithUserInfoChallenge -from authentik.flows.exceptions import FlowSkipStageException +from authentik.flows.exceptions import FlowSkipStageException, StageInvalidException from authentik.flows.models import FlowDesignation, NotConfiguredAction, Stage from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER from authentik.flows.stage import ChallengeStageView @@ -154,6 +154,16 @@ class AuthenticatorValidateStageView(ChallengeStageView): def get_device_challenges(self) -> list[dict]: """Get a list of all device challenges applicable for the current stage""" challenges = [] + pending_user = self.get_pending_user() + if pending_user.is_anonymous: + # We shouldn't get here without any kind of authentication data + raise StageInvalidException() + # When `pretend_user_exists` is enabled in the identification stage, + # `pending_user` will be a user model that isn't save to the DB + # hence it doesn't have a PK. In that case we just return an empty list of + # authenticators + if not pending_user.pk: + return [] # Convert to a list to have usable log output instead of just user_devices = list(devices_for_user(self.get_pending_user())) self.logger.debug("Got devices for user", devices=user_devices) diff --git a/authentik/stages/identification/stage.py b/authentik/stages/identification/stage.py index f8d0928531..2e5de86f8b 100644 --- a/authentik/stages/identification/stage.py +++ b/authentik/stages/identification/stage.py @@ -123,7 +123,7 @@ class IdentificationChallengeResponse(ChallengeResponse): if not current_stage.show_matched_user: self.stage.executor.plan.context[PLAN_CONTEXT_PENDING_USER_IDENTIFIER] = uid_field # when `pretend` is enabled, continue regardless - if current_stage.pretend_user_exists: + if current_stage.pretend_user_exists and not current_stage.password_stage: return attrs raise ValidationError("Failed to authenticate.") self.pre_user = pre_user diff --git a/authentik/stages/identification/tests.py b/authentik/stages/identification/tests.py index 469da0eae5..671d5aab6c 100644 --- a/authentik/stages/identification/tests.py +++ b/authentik/stages/identification/tests.py @@ -100,6 +100,42 @@ class TestIdentificationStage(FlowTestCase): user_fields=["email"], ) + def test_invalid_with_password_pretend(self): + """Test with invalid email and invalid password in single step (with pretend_user_exists)""" + self.stage.pretend_user_exists = True + pw_stage = PasswordStage.objects.create(name="password", backends=[BACKEND_INBUILT]) + self.stage.password_stage = pw_stage + self.stage.save() + form_data = { + "uid_field": self.user.email + "test", + "password": self.user.username + "test", + } + url = reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}) + response = self.client.post(url, form_data) + self.assertStageResponse( + response, + self.flow, + component="ak-stage-identification", + password_fields=True, + primary_action="Log in", + response_errors={ + "non_field_errors": [{"code": "invalid", "string": "Failed to authenticate."}] + }, + sources=[ + { + "challenge": { + "component": "xak-flow-redirect", + "to": "/source/oauth/login/test/", + "type": ChallengeTypes.REDIRECT.value, + }, + "icon_url": "/static/authentik/sources/default.svg", + "name": "test", + } + ], + show_source_labels=False, + user_fields=["email"], + ) + def test_invalid_with_username(self): """Test invalid with username (user exists but stage only allows email)""" form_data = {"uid_field": self.user.username} From ebd05be2c4e8eec8280c94188eea124c972550e0 Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 8 Feb 2024 13:44:33 +0100 Subject: [PATCH 040/105] root: simplify task signal imports (#8454) * *: deduplicate boilerplate for importing related models Signed-off-by: Jens Langhammer * also auto-import .checks Signed-off-by: Jens Langhammer * fix error during prometheus metrics from #8435 Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/admin/apps.py | 4 ---- authentik/blueprints/apps.py | 17 +++++++++++++++++ authentik/core/apps.py | 4 ---- authentik/crypto/apps.py | 4 ---- authentik/enterprise/apps.py | 4 ---- authentik/enterprise/providers/rac/apps.py | 4 ---- authentik/enterprise/settings.py | 6 +++--- authentik/enterprise/tasks.py | 9 +++++---- authentik/events/apps.py | 4 ---- authentik/events/models.py | 5 ++--- authentik/flows/apps.py | 4 ---- authentik/outposts/apps.py | 4 ---- authentik/policies/apps.py | 4 ---- authentik/policies/reputation/apps.py | 8 -------- authentik/providers/proxy/apps.py | 4 ---- authentik/providers/scim/apps.py | 4 ---- authentik/rbac/apps.py | 4 ---- authentik/root/settings.py | 5 ++++- authentik/sources/ldap/apps.py | 4 ---- authentik/sources/saml/apps.py | 4 ---- authentik/stages/authenticator_duo/apps.py | 4 ---- authentik/stages/authenticator_static/apps.py | 4 ---- authentik/stages/email/apps.py | 8 -------- authentik/tenants/apps.py | 4 ---- 24 files changed, 31 insertions(+), 95 deletions(-) diff --git a/authentik/admin/apps.py b/authentik/admin/apps.py index 91d087365b..d151a6f953 100644 --- a/authentik/admin/apps.py +++ b/authentik/admin/apps.py @@ -15,7 +15,3 @@ class AuthentikAdminConfig(ManagedAppConfig): label = "authentik_admin" verbose_name = "authentik Admin" default = True - - def reconcile_global_load_admin_signals(self): - """Load admin signals""" - self.import_module("authentik.admin.signals") diff --git a/authentik/blueprints/apps.py b/authentik/blueprints/apps.py index 0d31f42335..695bc68ce1 100644 --- a/authentik/blueprints/apps.py +++ b/authentik/blueprints/apps.py @@ -21,10 +21,27 @@ class ManagedAppConfig(AppConfig): self.logger = get_logger().bind(app_name=app_name) def ready(self) -> None: + self.import_related() self.reconcile_global() self.reconcile_tenant() return super().ready() + def import_related(self): + """Automatically import related modules which rely on just being imported + to register themselves (mainly django signals and celery tasks)""" + + def import_relative(rel_module: str): + try: + module_name = f"{self.name}.{rel_module}" + import_module(module_name) + self.logger.info("Imported related module", module=module_name) + except ModuleNotFoundError: + pass + + import_relative("checks") + import_relative("tasks") + import_relative("signals") + def import_module(self, path: str): """Load module""" import_module(path) diff --git a/authentik/core/apps.py b/authentik/core/apps.py index b0b8595b6a..866405327c 100644 --- a/authentik/core/apps.py +++ b/authentik/core/apps.py @@ -14,10 +14,6 @@ class AuthentikCoreConfig(ManagedAppConfig): mountpoint = "" default = True - def reconcile_global_load_core_signals(self): - """Load core signals""" - self.import_module("authentik.core.signals") - def reconcile_global_debug_worker_hook(self): """Dispatch startup tasks inline when debugging""" if settings.DEBUG: diff --git a/authentik/crypto/apps.py b/authentik/crypto/apps.py index f919ca600f..d80076657c 100644 --- a/authentik/crypto/apps.py +++ b/authentik/crypto/apps.py @@ -17,10 +17,6 @@ class AuthentikCryptoConfig(ManagedAppConfig): verbose_name = "authentik Crypto" default = True - def reconcile_global_load_crypto_tasks(self): - """Load crypto tasks""" - self.import_module("authentik.crypto.tasks") - def _create_update_cert(self): from authentik.crypto.builder import CertificateBuilder from authentik.crypto.models import CertificateKeyPair diff --git a/authentik/enterprise/apps.py b/authentik/enterprise/apps.py index ae979dac77..0b1057ac9a 100644 --- a/authentik/enterprise/apps.py +++ b/authentik/enterprise/apps.py @@ -17,10 +17,6 @@ class AuthentikEnterpriseConfig(EnterpriseConfig): verbose_name = "authentik Enterprise" default = True - def reconcile_global_load_enterprise_signals(self): - """Load enterprise signals""" - self.import_module("authentik.enterprise.signals") - def enabled(self): """Return true if enterprise is enabled and valid""" return self.check_enabled() or settings.TEST diff --git a/authentik/enterprise/providers/rac/apps.py b/authentik/enterprise/providers/rac/apps.py index d5ad27b6d5..6359c5594b 100644 --- a/authentik/enterprise/providers/rac/apps.py +++ b/authentik/enterprise/providers/rac/apps.py @@ -12,7 +12,3 @@ class AuthentikEnterpriseProviderRAC(EnterpriseConfig): default = True mountpoint = "" ws_mountpoint = "authentik.enterprise.providers.rac.urls" - - def reconcile_global_load_rac_signals(self): - """Load rac signals""" - self.import_module("authentik.enterprise.providers.rac.signals") diff --git a/authentik/enterprise/settings.py b/authentik/enterprise/settings.py index fb91d7f444..f026c70c22 100644 --- a/authentik/enterprise/settings.py +++ b/authentik/enterprise/settings.py @@ -5,9 +5,9 @@ from celery.schedules import crontab from authentik.lib.utils.time import fqdn_rand CELERY_BEAT_SCHEDULE = { - "enterprise_calculate_license": { - "task": "authentik.enterprise.tasks.calculate_license", - "schedule": crontab(minute=fqdn_rand("calculate_license"), hour="*/2"), + "enterprise_update_usage": { + "task": "authentik.enterprise.tasks.enterprise_update_usage", + "schedule": crontab(minute=fqdn_rand("enterprise_update_usage"), hour="*/2"), "options": {"queue": "authentik_scheduled"}, } } diff --git a/authentik/enterprise/tasks.py b/authentik/enterprise/tasks.py index df0d934f89..df5fa54e7d 100644 --- a/authentik/enterprise/tasks.py +++ b/authentik/enterprise/tasks.py @@ -1,11 +1,12 @@ """Enterprise tasks""" from authentik.enterprise.models import LicenseKey -from authentik.events.system_tasks import SystemTask +from authentik.events.system_tasks import SystemTask, prefill_task from authentik.root.celery import CELERY_APP -@CELERY_APP.task(base=SystemTask) -def calculate_license(): - """Calculate licensing status""" +@CELERY_APP.task(bind=True, base=SystemTask) +@prefill_task +def enterprise_update_usage(self: SystemTask): + """Update enterprise license status""" LicenseKey.get_total().record_usage() diff --git a/authentik/events/apps.py b/authentik/events/apps.py index 1a7c060806..a5ca9375a9 100644 --- a/authentik/events/apps.py +++ b/authentik/events/apps.py @@ -35,10 +35,6 @@ class AuthentikEventsConfig(ManagedAppConfig): verbose_name = "authentik Events" default = True - def reconcile_global_load_events_signals(self): - """Load events signals""" - self.import_module("authentik.events.signals") - def reconcile_global_check_deprecations(self): """Check for config deprecations""" from authentik.events.models import Event, EventAction diff --git a/authentik/events/models.py b/authentik/events/models.py index 900536f3e6..5d78a3aa12 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -642,17 +642,16 @@ class SystemTask(SerializerModel, ExpiringModel): def update_metrics(self): """Update prometheus metrics""" - duration = max(self.finish_timestamp - self.start_timestamp, 0) # TODO: Deprecated metric - remove in 2024.2 or later GAUGE_TASKS.labels( tenant=connection.schema_name, task_name=self.name, task_uid=self.uid or "", status=self.status.lower(), - ).set(duration) + ).set(self.duration) SYSTEM_TASK_TIME.labels( tenant=connection.schema_name, - ).observe(duration) + ).observe(self.duration) SYSTEM_TASK_STATUS.labels( tenant=connection.schema_name, task_name=self.name, diff --git a/authentik/flows/apps.py b/authentik/flows/apps.py index b0ffff2c70..976dec2e28 100644 --- a/authentik/flows/apps.py +++ b/authentik/flows/apps.py @@ -31,10 +31,6 @@ class AuthentikFlowsConfig(ManagedAppConfig): verbose_name = "authentik Flows" default = True - def reconcile_global_load_flows_signals(self): - """Load flows signals""" - self.import_module("authentik.flows.signals") - def reconcile_global_load_stages(self): """Ensure all stages are loaded""" from authentik.flows.models import Stage diff --git a/authentik/outposts/apps.py b/authentik/outposts/apps.py index 8cf7874c78..f07b8297c4 100644 --- a/authentik/outposts/apps.py +++ b/authentik/outposts/apps.py @@ -30,10 +30,6 @@ class AuthentikOutpostConfig(ManagedAppConfig): verbose_name = "authentik Outpost" default = True - def reconcile_global_load_outposts_signals(self): - """Load outposts signals""" - self.import_module("authentik.outposts.signals") - def reconcile_tenant_embedded_outpost(self): """Ensure embedded outpost""" from authentik.outposts.models import ( diff --git a/authentik/policies/apps.py b/authentik/policies/apps.py index 7d70dc5a0e..107a801295 100644 --- a/authentik/policies/apps.py +++ b/authentik/policies/apps.py @@ -35,7 +35,3 @@ class AuthentikPoliciesConfig(ManagedAppConfig): label = "authentik_policies" verbose_name = "authentik Policies" default = True - - def reconcile_global_load_policies_signals(self): - """Load policies signals""" - self.import_module("authentik.policies.signals") diff --git a/authentik/policies/reputation/apps.py b/authentik/policies/reputation/apps.py index f01f85790f..60b2c77b05 100644 --- a/authentik/policies/reputation/apps.py +++ b/authentik/policies/reputation/apps.py @@ -12,11 +12,3 @@ class AuthentikPolicyReputationConfig(ManagedAppConfig): label = "authentik_policies_reputation" verbose_name = "authentik Policies.Reputation" default = True - - def reconcile_global_load_policies_reputation_signals(self): - """Load policies.reputation signals""" - self.import_module("authentik.policies.reputation.signals") - - def reconcile_global_load_policies_reputation_tasks(self): - """Load policies.reputation tasks""" - self.import_module("authentik.policies.reputation.tasks") diff --git a/authentik/providers/proxy/apps.py b/authentik/providers/proxy/apps.py index a5c0af761c..c5a384f748 100644 --- a/authentik/providers/proxy/apps.py +++ b/authentik/providers/proxy/apps.py @@ -10,7 +10,3 @@ class AuthentikProviderProxyConfig(ManagedAppConfig): label = "authentik_providers_proxy" verbose_name = "authentik Providers.Proxy" default = True - - def reconcile_global_load_providers_proxy_signals(self): - """Load proxy signals""" - self.import_module("authentik.providers.proxy.signals") diff --git a/authentik/providers/scim/apps.py b/authentik/providers/scim/apps.py index efba40a977..9e6f3836f2 100644 --- a/authentik/providers/scim/apps.py +++ b/authentik/providers/scim/apps.py @@ -10,7 +10,3 @@ class AuthentikProviderSCIMConfig(ManagedAppConfig): label = "authentik_providers_scim" verbose_name = "authentik Providers.SCIM" default = True - - def reconcile_global_load_signals(self): - """Load signals""" - self.import_module("authentik.providers.scim.signals") diff --git a/authentik/rbac/apps.py b/authentik/rbac/apps.py index e04979bce3..72424c244a 100644 --- a/authentik/rbac/apps.py +++ b/authentik/rbac/apps.py @@ -10,7 +10,3 @@ class AuthentikRBACConfig(ManagedAppConfig): label = "authentik_rbac" verbose_name = "authentik RBAC" default = True - - def reconcile_global_load_rbac_signals(self): - """Load rbac signals""" - self.import_module("authentik.rbac.signals") diff --git a/authentik/root/settings.py b/authentik/root/settings.py index 5aabaa62f5..902825f377 100644 --- a/authentik/root/settings.py +++ b/authentik/root/settings.py @@ -69,7 +69,6 @@ TENANT_APPS = [ "authentik.admin", "authentik.api", "authentik.crypto", - "authentik.events", "authentik.flows", "authentik.outposts", "authentik.policies.dummy", @@ -509,5 +508,9 @@ try: except ImportError: pass +# Import events after other apps since it relies on tasks and other things from all apps +# being imported for @prefill_task +TENANT_APPS.append("authentik.events") + SHARED_APPS = list(OrderedDict.fromkeys(SHARED_APPS + TENANT_APPS)) INSTALLED_APPS = list(OrderedDict.fromkeys(SHARED_APPS + TENANT_APPS)) diff --git a/authentik/sources/ldap/apps.py b/authentik/sources/ldap/apps.py index a7380f4f70..808a048a25 100644 --- a/authentik/sources/ldap/apps.py +++ b/authentik/sources/ldap/apps.py @@ -10,7 +10,3 @@ class AuthentikSourceLDAPConfig(ManagedAppConfig): label = "authentik_sources_ldap" verbose_name = "authentik Sources.LDAP" default = True - - def reconcile_global_load_sources_ldap_signals(self): - """Load sources.ldap signals""" - self.import_module("authentik.sources.ldap.signals") diff --git a/authentik/sources/saml/apps.py b/authentik/sources/saml/apps.py index 53d35f8eae..4d6feb54b5 100644 --- a/authentik/sources/saml/apps.py +++ b/authentik/sources/saml/apps.py @@ -11,7 +11,3 @@ class AuthentikSourceSAMLConfig(ManagedAppConfig): verbose_name = "authentik Sources.SAML" mountpoint = "source/saml/" default = True - - def reconcile_global_load_sources_saml_signals(self): - """Load sources.saml signals""" - self.import_module("authentik.sources.saml.signals") diff --git a/authentik/stages/authenticator_duo/apps.py b/authentik/stages/authenticator_duo/apps.py index 0e0e5d9271..3e9ceb3b1c 100644 --- a/authentik/stages/authenticator_duo/apps.py +++ b/authentik/stages/authenticator_duo/apps.py @@ -10,7 +10,3 @@ class AuthentikStageAuthenticatorDuoConfig(ManagedAppConfig): label = "authentik_stages_authenticator_duo" verbose_name = "authentik Stages.Authenticator.Duo" default = True - - def reconcile_global_load_tasks(self): - """Load tasks""" - self.import_module("authentik.stages.authenticator_duo.tasks") diff --git a/authentik/stages/authenticator_static/apps.py b/authentik/stages/authenticator_static/apps.py index 9cbcd5b372..02dc8af690 100644 --- a/authentik/stages/authenticator_static/apps.py +++ b/authentik/stages/authenticator_static/apps.py @@ -10,7 +10,3 @@ class AuthentikStageAuthenticatorStaticConfig(ManagedAppConfig): label = "authentik_stages_authenticator_static" verbose_name = "authentik Stages.Authenticator.Static" default = True - - def reconcile_global_load_stages_authenticator_static_signals(self): - """Load stages.authenticator_static signals""" - self.import_module("authentik.stages.authenticator_static.signals") diff --git a/authentik/stages/email/apps.py b/authentik/stages/email/apps.py index cc1c4fb97b..007ca8ac5d 100644 --- a/authentik/stages/email/apps.py +++ b/authentik/stages/email/apps.py @@ -1,11 +1,7 @@ """authentik email stage config""" -from structlog.stdlib import get_logger - from authentik.blueprints.apps import ManagedAppConfig -LOGGER = get_logger() - class AuthentikStageEmailConfig(ManagedAppConfig): """authentik email stage config""" @@ -14,7 +10,3 @@ class AuthentikStageEmailConfig(ManagedAppConfig): label = "authentik_stages_email" verbose_name = "authentik Stages.Email" default = True - - def reconcile_global_load_stages_emails_tasks(self): - """Load stages.emails tasks""" - self.import_module("authentik.stages.email.tasks") diff --git a/authentik/tenants/apps.py b/authentik/tenants/apps.py index 9322d33180..3ae4f3014a 100644 --- a/authentik/tenants/apps.py +++ b/authentik/tenants/apps.py @@ -28,10 +28,6 @@ class AuthentikTenantsConfig(ManagedAppConfig): verbose_name = "authentik Tenants" default = True - def reconcile_global_load_checks(self): - """Load tenant checks""" - self.import_module("authentik.tenants.checks") - def reconcile_global_default_tenant(self): """Make sure default tenant exists, especially after a migration""" post_migrate.connect(ensure_default_tenant) From 15376820265d2030907cc0436409594d58559faf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:07:38 +0100 Subject: [PATCH 041/105] core: bump sentry-sdk from 1.40.0 to 1.40.2 (#8452) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.40.0 to 1.40.2. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.40.0...1.40.2) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9be5ad9a88..0175817058 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3671,13 +3671,13 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "sentry-sdk" -version = "1.40.0" +version = "1.40.2" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = "*" files = [ - {file = "sentry-sdk-1.40.0.tar.gz", hash = "sha256:34ad8cfc9b877aaa2a8eb86bfe5296a467fffe0619b931a05b181c45f6da59bf"}, - {file = "sentry_sdk-1.40.0-py2.py3-none-any.whl", hash = "sha256:78575620331186d32f34b7ece6edea97ce751f58df822547d3ab85517881a27a"}, + {file = "sentry-sdk-1.40.2.tar.gz", hash = "sha256:c98c8e9bb4dc8ff1e67473caf6467acfccf915dadcc26d0efb0d6791a8652610"}, + {file = "sentry_sdk-1.40.2-py2.py3-none-any.whl", hash = "sha256:696ef61a323a207e6a20b018ddc6591adb81c671434c88d1a4f2e95ffa75556c"}, ] [package.dependencies] @@ -3703,7 +3703,7 @@ huey = ["huey (>=2)"] loguru = ["loguru (>=0.5)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] -pure-eval = ["asttokens", "executing", "pure-eval"] +pure-eval = ["asttokens", "executing", "pure_eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] From 25d3f2e06e0fad1e4753cc38c9263befe8cab337 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:07:50 +0100 Subject: [PATCH 042/105] core: bump python from 3.12.1-slim-bookworm to 3.12.2-slim-bookworm (#8450) Bumps python from 3.12.1-slim-bookworm to 3.12.2-slim-bookworm. --- updated-dependencies: - dependency-name: python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8a2b6c7534..5d85a1d3f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -83,7 +83,7 @@ RUN --mount=type=secret,id=GEOIPUPDATE_ACCOUNT_ID \ /bin/sh -c "/usr/bin/entry.sh || echo 'Failed to get GeoIP database, disabling'; exit 0" # Stage 5: Python dependencies -FROM docker.io/python:3.12.1-slim-bookworm AS python-deps +FROM docker.io/python:3.12.2-slim-bookworm AS python-deps WORKDIR /ak-root/poetry @@ -108,7 +108,7 @@ RUN --mount=type=bind,target=./pyproject.toml,src=./pyproject.toml \ poetry install --only=main --no-ansi --no-interaction # Stage 6: Run -FROM docker.io/python:3.12.1-slim-bookworm AS final-image +FROM docker.io/python:3.12.2-slim-bookworm AS final-image ARG GIT_BUILD_HASH ARG VERSION From 8818ce3306062756687f41608ebf5396101b03b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:08:06 +0100 Subject: [PATCH 043/105] website: bump postcss from 8.4.34 to 8.4.35 in /website (#8451) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.34 to 8.4.35. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.34...8.4.35) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 75720c0e57..c59778a703 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -18,7 +18,7 @@ "@mdx-js/react": "^3.0.0", "clsx": "^2.1.0", "disqus-react": "^1.1.5", - "postcss": "^8.4.34", + "postcss": "^8.4.35", "prism-react-renderer": "^2.3.1", "rapidoc": "^9.3.4", "react": "^18.2.0", @@ -13161,9 +13161,9 @@ } }, "node_modules/postcss": { - "version": "8.4.34", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz", - "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", diff --git a/website/package.json b/website/package.json index e9bde5556a..506c3bc834 100644 --- a/website/package.json +++ b/website/package.json @@ -25,7 +25,7 @@ "@mdx-js/react": "^3.0.0", "clsx": "^2.1.0", "disqus-react": "^1.1.5", - "postcss": "^8.4.34", + "postcss": "^8.4.35", "prism-react-renderer": "^2.3.1", "rapidoc": "^9.3.4", "react-before-after-slider-component": "^1.1.8", From b99fca62d8c034edcdca97d7ede430b2955a8baa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:08:19 +0100 Subject: [PATCH 044/105] web: bump the wdio group in /tests/wdio with 4 updates (#8448) Bumps the wdio group in /tests/wdio with 4 updates: [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli), [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner), [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework) and [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter). Updates `@wdio/cli` from 8.30.0 to 8.31.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.31.0/packages/wdio-cli) Updates `@wdio/local-runner` from 8.30.0 to 8.31.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.31.0/packages/wdio-local-runner) Updates `@wdio/mocha-framework` from 8.30.0 to 8.31.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.31.0/packages/wdio-mocha-framework) Updates `@wdio/spec-reporter` from 8.30.0 to 8.31.0 - [Release notes](https://github.com/webdriverio/webdriverio/releases) - [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md) - [Commits](https://github.com/webdriverio/webdriverio/commits/v8.31.0/packages/wdio-spec-reporter) --- updated-dependencies: - dependency-name: "@wdio/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/local-runner" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/mocha-framework" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio - dependency-name: "@wdio/spec-reporter" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wdio ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 148 +++++++++++++++++------------------ tests/wdio/package.json | 8 +- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 7958ebcd74..83459a4c3d 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -12,10 +12,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "@wdio/cli": "^8.30.0", - "@wdio/local-runner": "^8.30.0", - "@wdio/mocha-framework": "^8.30.0", - "@wdio/spec-reporter": "^8.30.0", + "@wdio/cli": "^8.31.0", + "@wdio/local-runner": "^8.31.0", + "@wdio/mocha-framework": "^8.31.0", + "@wdio/spec-reporter": "^8.31.0", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", @@ -1187,19 +1187,19 @@ } }, "node_modules/@wdio/cli": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.30.0.tgz", - "integrity": "sha512-gQ3+MG8I3/LU9DnyNuTI8WfmcMRo87pPGioGRrvli1ChG2J+KepFVRSodzzTfoi/B6gz0pFD0sVZpaHXJV7F6w==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.31.0.tgz", + "integrity": "sha512-nf+tTnZ8P90NS3sVJJhCT+Vp5CMzMddP1aNrms1ZfAWKA54UBL057qtF3GfRXDaX6VDMyg30nbR3RQexvGIn+Q==", "dev": true, "dependencies": { "@types/node": "^20.1.1", "@vitest/snapshot": "^1.2.1", - "@wdio/config": "8.30.0", - "@wdio/globals": "8.30.0", + "@wdio/config": "8.31.0", + "@wdio/globals": "8.31.0", "@wdio/logger": "8.28.0", "@wdio/protocols": "8.29.7", - "@wdio/types": "8.30.0", - "@wdio/utils": "8.30.0", + "@wdio/types": "8.31.0", + "@wdio/utils": "8.31.0", "async-exit-hook": "^2.0.1", "chalk": "^5.2.0", "chokidar": "^3.5.3", @@ -1214,7 +1214,7 @@ "lodash.union": "^4.6.0", "read-pkg-up": "^10.0.0", "recursive-readdir": "^2.2.3", - "webdriverio": "8.30.0", + "webdriverio": "8.31.0", "yargs": "^17.7.2" }, "bin": { @@ -1237,14 +1237,14 @@ } }, "node_modules/@wdio/config": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.30.0.tgz", - "integrity": "sha512-ayymrXa1QWeJzwryFZ2SvKl6wwo7h1LiboFX6W+NsgiseEtb1SGxLezObRIcQIK7W4JSfBznPjMGLMHepY86YA==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.31.0.tgz", + "integrity": "sha512-/Ie+Qda9nE5C8TOvCunc8YgLdpkphH0djwwHDlmXzva+y3vpsCbQnA5OP6bodry193cX6timLHzsoc7n3puzDQ==", "dev": true, "dependencies": { "@wdio/logger": "8.28.0", - "@wdio/types": "8.30.0", - "@wdio/utils": "8.30.0", + "@wdio/types": "8.31.0", + "@wdio/utils": "8.31.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", @@ -1255,29 +1255,29 @@ } }, "node_modules/@wdio/globals": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.30.0.tgz", - "integrity": "sha512-V5m3nOLlamHUYIt0yl+oXactZ+4rV/3PrLpue7R6gYYtlyBtaeIeMP4vc/9h/jcaeUDSI55AGKtzCn9i4KVmDw==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.31.0.tgz", + "integrity": "sha512-vMqL7XGeQ0W7OyW16jhgM/Kq8S1jFcWV0SYNLbkrwDyq5X4kzJXm3wrHXVsWi5D/SMRcJ1aE+qls6OeyVlciAg==", "dev": true, "engines": { "node": "^16.13 || >=18" }, "optionalDependencies": { - "expect-webdriverio": "^4.10.1", - "webdriverio": "8.30.0" + "expect-webdriverio": "^4.11.2", + "webdriverio": "8.31.0" } }, "node_modules/@wdio/local-runner": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.30.0.tgz", - "integrity": "sha512-dMDVdRcwjnRgDCzmBdHavUaOrgOXCL4kvagEZzJarmx/dSJ2dE47221trec8WQp7VdfkN7sBtBoTiUqJBXBuLQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.31.0.tgz", + "integrity": "sha512-MyUB2bzY8RAc0z4zgAfn4y4JIaPHUZdZrKcxj3S3csVJWMhOcBU7aPwGGklXfzloMbxXYoVLe9zNtLMhXbJ4BQ==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", "@wdio/repl": "8.24.12", - "@wdio/runner": "8.30.0", - "@wdio/types": "8.30.0", + "@wdio/runner": "8.31.0", + "@wdio/types": "8.31.0", "async-exit-hook": "^2.0.1", "split2": "^4.1.0", "stream-buffers": "^3.0.2" @@ -1314,16 +1314,16 @@ } }, "node_modules/@wdio/mocha-framework": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.30.0.tgz", - "integrity": "sha512-8RiRPm2r+IBx9/Ykawa3qjd8w79OXI8mnsbVevPYPtfwrPe0SV2/8PB4eQjWMifwM3cLkvIXCIk4vHCI5rhEGQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/mocha-framework/-/mocha-framework-8.31.0.tgz", + "integrity": "sha512-BtMVrILW+EzQY6vqAH+RL2QObafnzdw9saTMbI4HiGyg1axj4t+++dy3GKvjvh63Gu2w7MFpykHDMVXz9AC7FQ==", "dev": true, "dependencies": { "@types/mocha": "^10.0.0", "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.30.0", - "@wdio/utils": "8.30.0", + "@wdio/types": "8.31.0", + "@wdio/utils": "8.31.0", "mocha": "^10.0.0" }, "engines": { @@ -1349,14 +1349,14 @@ } }, "node_modules/@wdio/reporter": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.30.0.tgz", - "integrity": "sha512-3gUdmkII/eLpCzLyLj0HBYoJ38e+64RvWMb3Fzw3iUpfxvWm4d9PWbv3Jlkcj7FAIgEhXjJHld9ua3bulBsTiw==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.31.0.tgz", + "integrity": "sha512-3eRYGvmtMFq/vlUZfGM7qMaiOfFq/bLDj/u3PZfgV6vP601VT4tmqJMz8fYFgdHj6yxJp7iHInOGQ40aALB0qA==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.30.0", + "@wdio/types": "8.31.0", "diff": "^5.0.0", "object-inspect": "^1.12.0" }, @@ -1365,35 +1365,35 @@ } }, "node_modules/@wdio/runner": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.30.0.tgz", - "integrity": "sha512-fiCU8zq5njO/PcMmnN/cwLLgI6wrDSViYtUeS2nXCcSBL/ScXnPEel2Myf/JSi+G9NwQPoNIQpFaAFuu+raWig==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.31.0.tgz", + "integrity": "sha512-jVm6OgHom8Z7h/QWxYQpxIMeqNB7TCftmozr+1yi0NayHGBijrLIVNBLP8POu/tJ9bc2hFseFaIrpFxHRwBd1Q==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.30.0", - "@wdio/globals": "8.30.0", + "@wdio/config": "8.31.0", + "@wdio/globals": "8.31.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.30.0", - "@wdio/utils": "8.30.0", + "@wdio/types": "8.31.0", + "@wdio/utils": "8.31.0", "deepmerge-ts": "^5.0.0", - "expect-webdriverio": "^4.10.1", + "expect-webdriverio": "^4.11.2", "gaze": "^1.1.2", - "webdriver": "8.30.0", - "webdriverio": "8.30.0" + "webdriver": "8.31.0", + "webdriverio": "8.31.0" }, "engines": { "node": "^16.13 || >=18" } }, "node_modules/@wdio/spec-reporter": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.30.0.tgz", - "integrity": "sha512-/tUBCE9segS/rQhlqBkvSulhQvD1eXoRMyZbVn+AdoPS2TnS1TQwANIqpNhQkYbtyd2GOLVLrOsy4HPUvuud/g==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.31.0.tgz", + "integrity": "sha512-RTioV786Oa4wUaQE7SSTswMUqP8ao7ZeB4/co6asGGs29H1l2kgvGPZElMb14h5BgbwCn01Na3jctUc0Ada4Xg==", "dev": true, "dependencies": { - "@wdio/reporter": "8.30.0", - "@wdio/types": "8.30.0", + "@wdio/reporter": "8.31.0", + "@wdio/types": "8.31.0", "chalk": "^5.1.2", "easy-table": "^1.2.0", "pretty-ms": "^7.0.0" @@ -1415,9 +1415,9 @@ } }, "node_modules/@wdio/types": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.30.0.tgz", - "integrity": "sha512-KkGz12glMh2whnkKpplqx1+3nRwmFh/JsPQRWHwSbIy5HuGfaRa9I+qDZQQUrhbmSACXMft/pfAGM0v05/T4EQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.31.0.tgz", + "integrity": "sha512-uHAeJ5JMHCOkLXdwht+uS4QC7Pz3piEcEKGzsz6TJzvTgZLhxRlUfYkkxogbae05DZBHnRKfZD+XWH92cjgsIg==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1427,14 +1427,14 @@ } }, "node_modules/@wdio/utils": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.30.0.tgz", - "integrity": "sha512-moUAN2YtysUNw48zPf2s/h4Or/DkJQIaP/2H2uoM4rRN+4+TIVu4GnJ2sHWvJufPYQiaFXsaWSQjfm6AJFzmaw==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.31.0.tgz", + "integrity": "sha512-gCsNh1ejiwnjnyYBBz1SQs9kT81+QN2JjVgQellR18KS3K30u96+gutXtU9CefKF+48uYw7bJPyx5d4mL1908g==", "dev": true, "dependencies": { "@puppeteer/browsers": "^1.6.0", "@wdio/logger": "8.28.0", - "@wdio/types": "8.30.0", + "@wdio/types": "8.31.0", "decamelize": "^6.0.0", "deepmerge-ts": "^5.1.0", "edgedriver": "^5.3.5", @@ -3298,9 +3298,9 @@ } }, "node_modules/expect-webdriverio": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.10.1.tgz", - "integrity": "sha512-62O5H+io//4vgVsC/m//ept0LyFuyKLVnSJQWByWZ1vdkBv9DQAWouILfis867WMUj9sxrZP6pXyLgp285XIkg==", + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.11.2.tgz", + "integrity": "sha512-PK8lrQmRhK8NRtE8i/CJsnKS/QGrHULQW5EfmyKxIiLHnXd7t8dX0dWJn/fiYVtrPKBUyXSL6h52QqvZVc9yGQ==", "dev": true, "dependencies": { "@vitest/snapshot": "^1.2.2", @@ -8748,18 +8748,18 @@ } }, "node_modules/webdriver": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.30.0.tgz", - "integrity": "sha512-ZGXezwJ2G3BN1C9jHmvJRin4Cku44MxawLiguGHQgsW+HRa7OXKc4nCRuoxlKMtEi5Be3oQIN4gqILx/KQ1doQ==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.31.0.tgz", + "integrity": "sha512-xDRch3TyjhblofZv6hV+fUJGKJFEg4a3QYB+MocZcwWrXTWDxOuZn9E2xohmABq/3yr1cvSOnhUonvMSTQmnmg==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.30.0", + "@wdio/config": "8.31.0", "@wdio/logger": "8.28.0", "@wdio/protocols": "8.29.7", - "@wdio/types": "8.30.0", - "@wdio/utils": "8.30.0", + "@wdio/types": "8.31.0", + "@wdio/utils": "8.31.0", "deepmerge-ts": "^5.1.0", "got": "^12.6.1", "ky": "^0.33.0", @@ -8770,18 +8770,18 @@ } }, "node_modules/webdriverio": { - "version": "8.30.0", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.30.0.tgz", - "integrity": "sha512-U3uTbdGTwXRwVheiwAEi9DF9ioi4rAL2Sz8lVrVpOQ7lq0O7dyxLjYcagd1G13vlJTFLUKWc8OBbuTKY8A5+6w==", + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.31.0.tgz", + "integrity": "sha512-MMsPJHQy9EiM5mGh23m77MqcCa3oD6PVtJfWDyY3xaPHeBeZzgm/t/FfeBlnoEPP74FU0iamdTkxqsbuWkdRpg==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.30.0", + "@wdio/config": "8.31.0", "@wdio/logger": "8.28.0", "@wdio/protocols": "8.29.7", "@wdio/repl": "8.24.12", - "@wdio/types": "8.30.0", - "@wdio/utils": "8.30.0", + "@wdio/types": "8.31.0", + "@wdio/utils": "8.31.0", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", @@ -8798,7 +8798,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.30.0" + "webdriver": "8.31.0" }, "engines": { "node": "^16.13 || >=18" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index 389b227960..1094ab2f12 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -6,10 +6,10 @@ "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "@wdio/cli": "^8.30.0", - "@wdio/local-runner": "^8.30.0", - "@wdio/mocha-framework": "^8.30.0", - "@wdio/spec-reporter": "^8.30.0", + "@wdio/cli": "^8.31.0", + "@wdio/local-runner": "^8.31.0", + "@wdio/mocha-framework": "^8.31.0", + "@wdio/spec-reporter": "^8.31.0", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", From db17f04830db67d99c3dfbe26adbc9e804b37d34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:09:08 +0100 Subject: [PATCH 045/105] core: bump github.com/getsentry/sentry-go from 0.26.0 to 0.27.0 (#8449) Bumps [github.com/getsentry/sentry-go](https://github.com/getsentry/sentry-go) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/getsentry/sentry-go/releases) - [Changelog](https://github.com/getsentry/sentry-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-go/compare/v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: github.com/getsentry/sentry-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0cb1ef1812..1f58f1eeed 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( beryju.io/ldap v0.1.0 github.com/coreos/go-oidc v2.2.1+incompatible - github.com/getsentry/sentry-go v0.26.0 + github.com/getsentry/sentry-go v0.27.0 github.com/go-http-utils/etag v0.0.0-20161124023236-513ea8f21eb1 github.com/go-ldap/ldap/v3 v3.4.6 github.com/go-openapi/runtime v0.27.1 diff --git a/go.sum b/go.sum index 18b5dec5bb..023b4794d7 100644 --- a/go.sum +++ b/go.sum @@ -69,8 +69,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/getsentry/sentry-go v0.26.0 h1:IX3++sF6/4B5JcevhdZfdKIHfyvMmAq/UnqcyT2H6mA= -github.com/getsentry/sentry-go v0.26.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA= github.com/go-asn1-ber/asn1-ber v1.5.5/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= From 20996e994eed423f07ba9a6228419c6665862cbf Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 8 Feb 2024 17:22:16 +0100 Subject: [PATCH 046/105] enterprise: fix system task missing set_status (#8455) * fix missing set_status on enterprise task Signed-off-by: Jens Langhammer * default task status to successful Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/enterprise/tasks.py | 2 ++ authentik/events/apps.py | 2 +- authentik/events/models.py | 2 ++ authentik/events/system_tasks.py | 3 ++- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/authentik/enterprise/tasks.py b/authentik/enterprise/tasks.py index df5fa54e7d..0d5a537a8d 100644 --- a/authentik/enterprise/tasks.py +++ b/authentik/enterprise/tasks.py @@ -1,6 +1,7 @@ """Enterprise tasks""" from authentik.enterprise.models import LicenseKey +from authentik.events.models import TaskStatus from authentik.events.system_tasks import SystemTask, prefill_task from authentik.root.celery import CELERY_APP @@ -10,3 +11,4 @@ from authentik.root.celery import CELERY_APP def enterprise_update_usage(self: SystemTask): """Update enterprise license status""" LicenseKey.get_total().record_usage() + self.set_status(TaskStatus.SUCCESSFUL) diff --git a/authentik/events/apps.py b/authentik/events/apps.py index a5ca9375a9..fdad4f9aa3 100644 --- a/authentik/events/apps.py +++ b/authentik/events/apps.py @@ -18,7 +18,7 @@ GAUGE_TASKS = Gauge( SYSTEM_TASK_TIME = Histogram( "authentik_system_tasks_time_seconds", "Runtime of system tasks", - ["tenant"], + ["tenant", "task_name", "task_uid"], ) SYSTEM_TASK_STATUS = Gauge( "authentik_system_tasks_status", diff --git a/authentik/events/models.py b/authentik/events/models.py index 5d78a3aa12..179d9edf29 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -651,6 +651,8 @@ class SystemTask(SerializerModel, ExpiringModel): ).set(self.duration) SYSTEM_TASK_TIME.labels( tenant=connection.schema_name, + task_name=self.name, + task_uid=self.uid or "", ).observe(self.duration) SYSTEM_TASK_STATUS.labels( tenant=connection.schema_name, diff --git a/authentik/events/system_tasks.py b/authentik/events/system_tasks.py index 2140128232..26535da80c 100644 --- a/authentik/events/system_tasks.py +++ b/authentik/events/system_tasks.py @@ -24,7 +24,7 @@ class SystemTask(TenantTask): # For tasks that should only be listed if they failed, set this to False save_on_success: bool - _status: Optional[TaskStatus] + _status: TaskStatus _messages: list[str] _uid: Optional[str] @@ -34,6 +34,7 @@ class SystemTask(TenantTask): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) + self._status = TaskStatus.SUCCESSFUL self.save_on_success = True self._uid = None self._status = None From aa8dc94a97bce775e84dcdeb74d127a1477cb227 Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 8 Feb 2024 17:22:27 +0100 Subject: [PATCH 047/105] enterprise/providers/rac: fix maximum_connections set to -1 not being effective (#8456) Signed-off-by: Jens Langhammer --- authentik/enterprise/providers/rac/views.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/authentik/enterprise/providers/rac/views.py b/authentik/enterprise/providers/rac/views.py index b6de8b89e8..1028c1cf70 100644 --- a/authentik/enterprise/providers/rac/views.py +++ b/authentik/enterprise/providers/rac/views.py @@ -104,14 +104,15 @@ class RACFinalStage(RedirectStage): # Check if we're already at the maximum connection limit all_tokens = ConnectionToken.filter_not_expired( endpoint=self.endpoint, - ).exclude(endpoint__maximum_connections__lte=-1) - if all_tokens.count() >= self.endpoint.maximum_connections: - msg = [_("Maximum connection limit reached.")] - # Check if any other tokens exist for the current user, and inform them - # they are already connected - if all_tokens.filter(session__user=self.request.user).exists(): - msg.append(_("(You are already connected in another tab/window)")) - return self.executor.stage_invalid(" ".join(msg)) + ) + if self.endpoint.maximum_connections > -1: + if all_tokens.count() >= self.endpoint.maximum_connections: + msg = [_("Maximum connection limit reached.")] + # Check if any other tokens exist for the current user, and inform them + # they are already connected + if all_tokens.filter(session__user=self.request.user).exists(): + msg.append(_("(You are already connected in another tab/window)")) + return self.executor.stage_invalid(" ".join(msg)) return super().dispatch(request, *args, **kwargs) def get_challenge(self, *args, **kwargs) -> RedirectChallenge: From 0b8678f7eeabfe73f90148c151b6da8e568fff83 Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 8 Feb 2024 22:48:55 +0100 Subject: [PATCH 048/105] core: use correct .evaluate implementation for testing PropertyMappings (#8459) * core: use correct .evaluate implementation for testing PropertyMappings Signed-off-by: Jens Langhammer * only dispatch refresh if modal is allowed to close Signed-off-by: Jens Langhammer * sigh...bump max allowed node memory Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/core/api/propertymappings.py | 6 +++++- authentik/enterprise/providers/rac/models.py | 14 +++++++++----- web/package.json | 8 ++++---- .../property-mappings/PropertyMappingTestForm.ts | 10 ++++++---- web/src/elements/forms/ModalForm.ts | 12 ++++++------ 5 files changed, 30 insertions(+), 20 deletions(-) diff --git a/authentik/core/api/propertymappings.py b/authentik/core/api/propertymappings.py index 8382e0ac02..55f6b3f704 100644 --- a/authentik/core/api/propertymappings.py +++ b/authentik/core/api/propertymappings.py @@ -118,7 +118,11 @@ class PropertyMappingViewSet( @action(detail=True, pagination_class=None, filter_backends=[], methods=["POST"]) def test(self, request: Request, pk: str) -> Response: """Test Property Mapping""" - mapping: PropertyMapping = self.get_object() + _mapping: PropertyMapping = self.get_object() + # Use `get_subclass` to get correct class and correct `.evaluate` implementation + mapping = PropertyMapping.objects.get_subclass(pk=_mapping.pk) + # FIXME: when we separate policy mappings between ones for sources + # and ones for providers, we need to make the user field optional for the source mapping test_params = PolicyTestSerializer(data=request.data) if not test_params.is_valid(): return Response(test_params.errors, status=400) diff --git a/authentik/enterprise/providers/rac/models.py b/authentik/enterprise/providers/rac/models.py index d1645efc5a..d354617739 100644 --- a/authentik/enterprise/providers/rac/models.py +++ b/authentik/enterprise/providers/rac/models.py @@ -1,17 +1,18 @@ """RAC Models""" -from typing import Optional +from typing import Any, Optional from uuid import uuid4 from deepmerge import always_merger from django.db import models from django.db.models import QuerySet +from django.http import HttpRequest from django.utils.translation import gettext as _ from rest_framework.serializers import Serializer from structlog.stdlib import get_logger from authentik.core.exceptions import PropertyMappingExpressionException -from authentik.core.models import ExpiringModel, PropertyMapping, Provider, default_token_key +from authentik.core.models import ExpiringModel, PropertyMapping, Provider, User, default_token_key from authentik.events.models import Event, EventAction from authentik.lib.models import SerializerModel from authentik.lib.utils.time import timedelta_string_validator @@ -107,6 +108,12 @@ class RACPropertyMapping(PropertyMapping): static_settings = models.JSONField(default=dict) + def evaluate(self, user: Optional[User], request: Optional[HttpRequest], **kwargs) -> Any: + """Evaluate `self.expression` using `**kwargs` as Context.""" + if len(self.static_settings) > 0: + return self.static_settings + return super().evaluate(user, request, **kwargs) + @property def component(self) -> str: return "ak-property-mapping-rac-form" @@ -155,9 +162,6 @@ class ConnectionToken(ExpiringModel): def mapping_evaluator(mappings: QuerySet): for mapping in mappings: mapping: RACPropertyMapping - if len(mapping.static_settings) > 0: - always_merger.merge(settings, mapping.static_settings) - continue try: mapping_settings = mapping.evaluate( self.session.user, None, endpoint=self.endpoint, provider=self.provider diff --git a/web/package.json b/web/package.json index 7326b73e64..92c7b2d1fd 100644 --- a/web/package.json +++ b/web/package.json @@ -8,9 +8,9 @@ "build-locales": "run-s build-locales:build", "build-locales:build": "lit-localize build", "build-locales:repair": "prettier --write ./src/locale-codes.ts", - "rollup:build": "cross-env NODE_OPTIONS='--max_old_space_size=4096' rollup -c ./rollup.config.mjs", - "rollup:build-proxy": "cross-env NODE_OPTIONS='--max_old_space_size=4096' rollup -c ./rollup.proxy.mjs", - "rollup:watch": "cross-env NODE_OPTIONS='--max_old_space_size=4096' rollup -c -w", + "rollup:build": "cross-env NODE_OPTIONS='--max_old_space_size=8192' rollup -c ./rollup.config.mjs", + "rollup:build-proxy": "cross-env NODE_OPTIONS='--max_old_space_size=8192' rollup -c ./rollup.proxy.mjs", + "rollup:watch": "cross-env NODE_OPTIONS='--max_old_space_size=8192' rollup -c -w", "build": "run-s build-locales rollup:build", "build-proxy": "run-s build-locales rollup:build-proxy", "watch": "run-s build-locales rollup:watch", @@ -28,7 +28,7 @@ "tsc:execute": "tsc --noEmit -p .", "tsc": "run-s build-locales tsc:execute", "storybook": "storybook dev -p 6006", - "storybook:build": "cross-env NODE_OPTIONS='--max_old_space_size=4096' storybook build", + "storybook:build": "cross-env NODE_OPTIONS='--max_old_space_size=8192' storybook build", "storybook:build-import-map": "run-s storybook:build-import-map-script storybook:run-import-map-script", "storybook:build-import-map-script": "cd scripts && tsc --esModuleInterop --module es2020 --target es2020 --moduleResolution 'node' build-storybook-import-maps.ts && mv build-storybook-import-maps.js build-storybook-import-maps.mjs", "storybook:run-import-map-script": "node scripts/build-storybook-import-maps.mjs" diff --git a/web/src/admin/property-mappings/PropertyMappingTestForm.ts b/web/src/admin/property-mappings/PropertyMappingTestForm.ts index e81af9a0c8..e3e010ef73 100644 --- a/web/src/admin/property-mappings/PropertyMappingTestForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingTestForm.ts @@ -84,12 +84,14 @@ export class PolicyTestForm extends Form { user: this.request?.user || 0, context: { ldap: { - name: "test-user", - objectSid: "S-1-5-21-2611707862-2219215769-354220275-1137", - objectClass: "person", displayName: "authentik test user", - sAMAccountName: "sAMAccountName", distinguishedName: "cn=user,ou=users,dc=goauthentik,dc=io", + givenName: "test", + name: "test-user", + objectClass: "person", + objectSid: "S-1-5-21-2611707862-2219215769-354220275-1137", + sAMAccountName: "sAMAccountName", + sn: "user", }, }, }; diff --git a/web/src/elements/forms/ModalForm.ts b/web/src/elements/forms/ModalForm.ts index 1930b7d752..6f058ce33d 100644 --- a/web/src/elements/forms/ModalForm.ts +++ b/web/src/elements/forms/ModalForm.ts @@ -36,15 +36,15 @@ export class ModalForm extends ModalButton { if (this.closeAfterSuccessfulSubmit) { this.open = false; form?.resetForm(); + this.dispatchEvent( + new CustomEvent(EVENT_REFRESH, { + bubbles: true, + composed: true, + }), + ); } this.loading = false; this.locked = false; - this.dispatchEvent( - new CustomEvent(EVENT_REFRESH, { - bubbles: true, - composed: true, - }), - ); }) .catch((exc) => { this.loading = false; From 4dadcc1dfd86fec0abbbffbcb487602d717b0bf7 Mon Sep 17 00:00:00 2001 From: Jens L Date: Thu, 8 Feb 2024 22:51:41 +0100 Subject: [PATCH 049/105] web/admin: hide expiry time if item is set to not expire (#8457) * web/admin: hide expiry time if item is set to not expire Signed-off-by: Jens Langhammer * format Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- Makefile | 2 +- authentik/stages/consent/api.py | 2 +- blueprints/schema.json | 876 ++++++++++++----------- schema.yml | 82 +-- web/src/admin/tokens/TokenListPage.ts | 2 +- web/src/elements/user/UserConsentList.ts | 2 +- 6 files changed, 486 insertions(+), 480 deletions(-) diff --git a/Makefile b/Makefile index 070ea6d50b..40905f2eb9 100644 --- a/Makefile +++ b/Makefile @@ -156,7 +156,7 @@ gen-client-ts: gen-clean-ts ## Build and install the authentik API for Typescri --git-user-id goauthentik mkdir -p web/node_modules/@goauthentik/api cd ./${GEN_API_TS} && npm i - \cp -rfv ./${GEN_API_TS}/* web/node_modules/@goauthentik/api + \cp -rf ./${GEN_API_TS}/* web/node_modules/@goauthentik/api gen-client-go: gen-clean-go ## Build and install the authentik API for Golang mkdir -p ./${GEN_API_GO} ./${GEN_API_GO}/templates diff --git a/authentik/stages/consent/api.py b/authentik/stages/consent/api.py index 8c22a2d250..7b4b2f886b 100644 --- a/authentik/stages/consent/api.py +++ b/authentik/stages/consent/api.py @@ -40,7 +40,7 @@ class UserConsentSerializer(StageSerializer): class Meta: model = UserConsent - fields = ["pk", "expires", "user", "application", "permissions"] + fields = ["pk", "expires", "expiring", "user", "application", "permissions"] class UserConsentViewSet( diff --git a/blueprints/schema.json b/blueprints/schema.json index e54530a04f..6a745cebb1 100644 --- a/blueprints/schema.json +++ b/blueprints/schema.json @@ -115,191 +115,6 @@ } } }, - { - "type": "object", - "required": [ - "model", - "identifiers" - ], - "properties": { - "model": { - "const": "authentik_events.event" - }, - "id": { - "type": "string" - }, - "state": { - "type": "string", - "enum": [ - "absent", - "present", - "created", - "must_created" - ], - "default": "present" - }, - "conditions": { - "type": "array", - "items": { - "type": "boolean" - } - }, - "attrs": { - "$ref": "#/$defs/model_authentik_events.event" - }, - "identifiers": { - "$ref": "#/$defs/model_authentik_events.event" - } - } - }, - { - "type": "object", - "required": [ - "model", - "identifiers" - ], - "properties": { - "model": { - "const": "authentik_events.notificationtransport" - }, - "id": { - "type": "string" - }, - "state": { - "type": "string", - "enum": [ - "absent", - "present", - "created", - "must_created" - ], - "default": "present" - }, - "conditions": { - "type": "array", - "items": { - "type": "boolean" - } - }, - "attrs": { - "$ref": "#/$defs/model_authentik_events.notificationtransport" - }, - "identifiers": { - "$ref": "#/$defs/model_authentik_events.notificationtransport" - } - } - }, - { - "type": "object", - "required": [ - "model", - "identifiers" - ], - "properties": { - "model": { - "const": "authentik_events.notification" - }, - "id": { - "type": "string" - }, - "state": { - "type": "string", - "enum": [ - "absent", - "present", - "created", - "must_created" - ], - "default": "present" - }, - "conditions": { - "type": "array", - "items": { - "type": "boolean" - } - }, - "attrs": { - "$ref": "#/$defs/model_authentik_events.notification" - }, - "identifiers": { - "$ref": "#/$defs/model_authentik_events.notification" - } - } - }, - { - "type": "object", - "required": [ - "model", - "identifiers" - ], - "properties": { - "model": { - "const": "authentik_events.notificationrule" - }, - "id": { - "type": "string" - }, - "state": { - "type": "string", - "enum": [ - "absent", - "present", - "created", - "must_created" - ], - "default": "present" - }, - "conditions": { - "type": "array", - "items": { - "type": "boolean" - } - }, - "attrs": { - "$ref": "#/$defs/model_authentik_events.notificationrule" - }, - "identifiers": { - "$ref": "#/$defs/model_authentik_events.notificationrule" - } - } - }, - { - "type": "object", - "required": [ - "model", - "identifiers" - ], - "properties": { - "model": { - "const": "authentik_events.notificationwebhookmapping" - }, - "id": { - "type": "string" - }, - "state": { - "type": "string", - "enum": [ - "absent", - "present", - "created", - "must_created" - ], - "default": "present" - }, - "conditions": { - "type": "array", - "items": { - "type": "boolean" - } - }, - "attrs": { - "$ref": "#/$defs/model_authentik_events.notificationwebhookmapping" - }, - "identifiers": { - "$ref": "#/$defs/model_authentik_events.notificationwebhookmapping" - } - } - }, { "type": "object", "required": [ @@ -2779,6 +2594,191 @@ } } }, + { + "type": "object", + "required": [ + "model", + "identifiers" + ], + "properties": { + "model": { + "const": "authentik_events.event" + }, + "id": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "absent", + "present", + "created", + "must_created" + ], + "default": "present" + }, + "conditions": { + "type": "array", + "items": { + "type": "boolean" + } + }, + "attrs": { + "$ref": "#/$defs/model_authentik_events.event" + }, + "identifiers": { + "$ref": "#/$defs/model_authentik_events.event" + } + } + }, + { + "type": "object", + "required": [ + "model", + "identifiers" + ], + "properties": { + "model": { + "const": "authentik_events.notificationtransport" + }, + "id": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "absent", + "present", + "created", + "must_created" + ], + "default": "present" + }, + "conditions": { + "type": "array", + "items": { + "type": "boolean" + } + }, + "attrs": { + "$ref": "#/$defs/model_authentik_events.notificationtransport" + }, + "identifiers": { + "$ref": "#/$defs/model_authentik_events.notificationtransport" + } + } + }, + { + "type": "object", + "required": [ + "model", + "identifiers" + ], + "properties": { + "model": { + "const": "authentik_events.notification" + }, + "id": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "absent", + "present", + "created", + "must_created" + ], + "default": "present" + }, + "conditions": { + "type": "array", + "items": { + "type": "boolean" + } + }, + "attrs": { + "$ref": "#/$defs/model_authentik_events.notification" + }, + "identifiers": { + "$ref": "#/$defs/model_authentik_events.notification" + } + } + }, + { + "type": "object", + "required": [ + "model", + "identifiers" + ], + "properties": { + "model": { + "const": "authentik_events.notificationrule" + }, + "id": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "absent", + "present", + "created", + "must_created" + ], + "default": "present" + }, + "conditions": { + "type": "array", + "items": { + "type": "boolean" + } + }, + "attrs": { + "$ref": "#/$defs/model_authentik_events.notificationrule" + }, + "identifiers": { + "$ref": "#/$defs/model_authentik_events.notificationrule" + } + } + }, + { + "type": "object", + "required": [ + "model", + "identifiers" + ], + "properties": { + "model": { + "const": "authentik_events.notificationwebhookmapping" + }, + "id": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "absent", + "present", + "created", + "must_created" + ], + "default": "present" + }, + "conditions": { + "type": "array", + "items": { + "type": "boolean" + } + }, + "attrs": { + "$ref": "#/$defs/model_authentik_events.notificationwebhookmapping" + }, + "identifiers": { + "$ref": "#/$defs/model_authentik_events.notificationwebhookmapping" + } + } + }, { "type": "object", "required": [ @@ -2863,249 +2863,6 @@ }, "required": [] }, - "model_authentik_events.event": { - "type": "object", - "properties": { - "user": { - "type": "object", - "additionalProperties": true, - "title": "User" - }, - "action": { - "type": "string", - "enum": [ - "login", - "login_failed", - "logout", - "user_write", - "suspicious_request", - "password_set", - "secret_view", - "secret_rotate", - "invitation_used", - "authorize_application", - "source_linked", - "impersonation_started", - "impersonation_ended", - "flow_execution", - "policy_execution", - "policy_exception", - "property_mapping_exception", - "system_task_execution", - "system_task_exception", - "system_exception", - "configuration_error", - "model_created", - "model_updated", - "model_deleted", - "email_sent", - "update_available", - "custom_" - ], - "title": "Action" - }, - "app": { - "type": "string", - "minLength": 1, - "title": "App" - }, - "context": { - "type": "object", - "additionalProperties": true, - "title": "Context" - }, - "client_ip": { - "type": [ - "string", - "null" - ], - "minLength": 1, - "title": "Client ip" - }, - "expires": { - "type": "string", - "format": "date-time", - "title": "Expires" - }, - "brand": { - "type": "object", - "additionalProperties": true, - "title": "Brand" - } - }, - "required": [] - }, - "model_authentik_events.notificationtransport": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "title": "Name" - }, - "mode": { - "type": "string", - "enum": [ - "local", - "webhook", - "webhook_slack", - "email" - ], - "title": "Mode" - }, - "webhook_url": { - "type": "string", - "title": "Webhook url" - }, - "webhook_mapping": { - "type": "integer", - "title": "Webhook mapping" - }, - "send_once": { - "type": "boolean", - "title": "Send once", - "description": "Only send notification once, for example when sending a webhook into a chat channel." - } - }, - "required": [] - }, - "model_authentik_events.notification": { - "type": "object", - "properties": { - "event": { - "type": "object", - "properties": { - "user": { - "type": "object", - "additionalProperties": true, - "title": "User" - }, - "action": { - "type": "string", - "enum": [ - "login", - "login_failed", - "logout", - "user_write", - "suspicious_request", - "password_set", - "secret_view", - "secret_rotate", - "invitation_used", - "authorize_application", - "source_linked", - "impersonation_started", - "impersonation_ended", - "flow_execution", - "policy_execution", - "policy_exception", - "property_mapping_exception", - "system_task_execution", - "system_task_exception", - "system_exception", - "configuration_error", - "model_created", - "model_updated", - "model_deleted", - "email_sent", - "update_available", - "custom_" - ], - "title": "Action" - }, - "app": { - "type": "string", - "minLength": 1, - "title": "App" - }, - "context": { - "type": "object", - "additionalProperties": true, - "title": "Context" - }, - "client_ip": { - "type": [ - "string", - "null" - ], - "minLength": 1, - "title": "Client ip" - }, - "expires": { - "type": "string", - "format": "date-time", - "title": "Expires" - }, - "brand": { - "type": "object", - "additionalProperties": true, - "title": "Brand" - } - }, - "required": [ - "action", - "app" - ], - "title": "Event" - }, - "seen": { - "type": "boolean", - "title": "Seen" - } - }, - "required": [] - }, - "model_authentik_events.notificationrule": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "title": "Name" - }, - "transports": { - "type": "array", - "items": { - "type": "integer", - "description": "Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI." - }, - "title": "Transports", - "description": "Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI." - }, - "severity": { - "type": "string", - "enum": [ - "notice", - "warning", - "alert" - ], - "title": "Severity", - "description": "Controls which severity level the created notifications will have." - }, - "group": { - "type": "integer", - "title": "Group", - "description": "Define which group of users this notification should be sent and shown to. If left empty, Notification won't ben sent." - } - }, - "required": [] - }, - "model_authentik_events.notificationwebhookmapping": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "title": "Name" - }, - "expression": { - "type": "string", - "minLength": 1, - "title": "Expression" - } - }, - "required": [] - }, "model_authentik_flows.flow": { "type": "object", "properties": { @@ -3453,7 +3210,6 @@ "authentik.admin", "authentik.api", "authentik.crypto", - "authentik.events", "authentik.flows", "authentik.outposts", "authentik.policies.dummy", @@ -3500,7 +3256,8 @@ "authentik.core", "authentik.enterprise", "authentik.enterprise.audit", - "authentik.enterprise.providers.rac" + "authentik.enterprise.providers.rac", + "authentik.events" ], "title": "App", "description": "Match events created by selected application. When left empty, all applications are matched." @@ -3514,11 +3271,6 @@ null, "authentik_tenants.domain", "authentik_crypto.certificatekeypair", - "authentik_events.event", - "authentik_events.notificationtransport", - "authentik_events.notification", - "authentik_events.notificationrule", - "authentik_events.notificationwebhookmapping", "authentik_flows.flow", "authentik_flows.flowstagebinding", "authentik_outposts.dockerserviceconnection", @@ -3585,7 +3337,12 @@ "authentik_enterprise.license", "authentik_providers_rac.racprovider", "authentik_providers_rac.endpoint", - "authentik_providers_rac.racpropertymapping" + "authentik_providers_rac.racpropertymapping", + "authentik_events.event", + "authentik_events.notificationtransport", + "authentik_events.notification", + "authentik_events.notificationrule", + "authentik_events.notificationwebhookmapping" ], "title": "Model", "description": "Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched." @@ -6168,6 +5925,10 @@ "format": "date-time", "title": "Expires" }, + "expiring": { + "type": "boolean", + "title": "Expiring" + }, "user": { "type": "object", "properties": { @@ -8251,6 +8012,249 @@ }, "required": [] }, + "model_authentik_events.event": { + "type": "object", + "properties": { + "user": { + "type": "object", + "additionalProperties": true, + "title": "User" + }, + "action": { + "type": "string", + "enum": [ + "login", + "login_failed", + "logout", + "user_write", + "suspicious_request", + "password_set", + "secret_view", + "secret_rotate", + "invitation_used", + "authorize_application", + "source_linked", + "impersonation_started", + "impersonation_ended", + "flow_execution", + "policy_execution", + "policy_exception", + "property_mapping_exception", + "system_task_execution", + "system_task_exception", + "system_exception", + "configuration_error", + "model_created", + "model_updated", + "model_deleted", + "email_sent", + "update_available", + "custom_" + ], + "title": "Action" + }, + "app": { + "type": "string", + "minLength": 1, + "title": "App" + }, + "context": { + "type": "object", + "additionalProperties": true, + "title": "Context" + }, + "client_ip": { + "type": [ + "string", + "null" + ], + "minLength": 1, + "title": "Client ip" + }, + "expires": { + "type": "string", + "format": "date-time", + "title": "Expires" + }, + "brand": { + "type": "object", + "additionalProperties": true, + "title": "Brand" + } + }, + "required": [] + }, + "model_authentik_events.notificationtransport": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "title": "Name" + }, + "mode": { + "type": "string", + "enum": [ + "local", + "webhook", + "webhook_slack", + "email" + ], + "title": "Mode" + }, + "webhook_url": { + "type": "string", + "title": "Webhook url" + }, + "webhook_mapping": { + "type": "integer", + "title": "Webhook mapping" + }, + "send_once": { + "type": "boolean", + "title": "Send once", + "description": "Only send notification once, for example when sending a webhook into a chat channel." + } + }, + "required": [] + }, + "model_authentik_events.notification": { + "type": "object", + "properties": { + "event": { + "type": "object", + "properties": { + "user": { + "type": "object", + "additionalProperties": true, + "title": "User" + }, + "action": { + "type": "string", + "enum": [ + "login", + "login_failed", + "logout", + "user_write", + "suspicious_request", + "password_set", + "secret_view", + "secret_rotate", + "invitation_used", + "authorize_application", + "source_linked", + "impersonation_started", + "impersonation_ended", + "flow_execution", + "policy_execution", + "policy_exception", + "property_mapping_exception", + "system_task_execution", + "system_task_exception", + "system_exception", + "configuration_error", + "model_created", + "model_updated", + "model_deleted", + "email_sent", + "update_available", + "custom_" + ], + "title": "Action" + }, + "app": { + "type": "string", + "minLength": 1, + "title": "App" + }, + "context": { + "type": "object", + "additionalProperties": true, + "title": "Context" + }, + "client_ip": { + "type": [ + "string", + "null" + ], + "minLength": 1, + "title": "Client ip" + }, + "expires": { + "type": "string", + "format": "date-time", + "title": "Expires" + }, + "brand": { + "type": "object", + "additionalProperties": true, + "title": "Brand" + } + }, + "required": [ + "action", + "app" + ], + "title": "Event" + }, + "seen": { + "type": "boolean", + "title": "Seen" + } + }, + "required": [] + }, + "model_authentik_events.notificationrule": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "title": "Name" + }, + "transports": { + "type": "array", + "items": { + "type": "integer", + "description": "Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI." + }, + "title": "Transports", + "description": "Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI." + }, + "severity": { + "type": "string", + "enum": [ + "notice", + "warning", + "alert" + ], + "title": "Severity", + "description": "Controls which severity level the created notifications will have." + }, + "group": { + "type": "integer", + "title": "Group", + "description": "Define which group of users this notification should be sent and shown to. If left empty, Notification won't ben sent." + } + }, + "required": [] + }, + "model_authentik_events.notificationwebhookmapping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "title": "Name" + }, + "expression": { + "type": "string", + "minLength": 1, + "title": "Expression" + } + }, + "required": [] + }, "model_authentik_blueprints.metaapplyblueprint": { "type": "object", "properties": { diff --git a/schema.yml b/schema.yml index 89cb7665d7..97214b0055 100644 --- a/schema.yml +++ b/schema.yml @@ -18282,11 +18282,6 @@ paths: description: |- * `authentik_tenants.domain` - Domain * `authentik_crypto.certificatekeypair` - Certificate-Key Pair - * `authentik_events.event` - Event - * `authentik_events.notificationtransport` - Notification Transport - * `authentik_events.notification` - Notification - * `authentik_events.notificationrule` - Notification Rule - * `authentik_events.notificationwebhookmapping` - Webhook Mapping * `authentik_flows.flow` - Flow * `authentik_flows.flowstagebinding` - Flow Stage Binding * `authentik_outposts.dockerserviceconnection` - Docker Service-Connection @@ -18354,6 +18349,11 @@ paths: * `authentik_providers_rac.racprovider` - RAC Provider * `authentik_providers_rac.endpoint` - RAC Endpoint * `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + * `authentik_events.event` - Event + * `authentik_events.notificationtransport` - Notification Transport + * `authentik_events.notification` - Notification + * `authentik_events.notificationrule` - Notification Rule + * `authentik_events.notificationwebhookmapping` - Webhook Mapping required: true - in: query name: object_pk @@ -18570,11 +18570,6 @@ paths: description: |- * `authentik_tenants.domain` - Domain * `authentik_crypto.certificatekeypair` - Certificate-Key Pair - * `authentik_events.event` - Event - * `authentik_events.notificationtransport` - Notification Transport - * `authentik_events.notification` - Notification - * `authentik_events.notificationrule` - Notification Rule - * `authentik_events.notificationwebhookmapping` - Webhook Mapping * `authentik_flows.flow` - Flow * `authentik_flows.flowstagebinding` - Flow Stage Binding * `authentik_outposts.dockerserviceconnection` - Docker Service-Connection @@ -18642,6 +18637,11 @@ paths: * `authentik_providers_rac.racprovider` - RAC Provider * `authentik_providers_rac.endpoint` - RAC Endpoint * `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + * `authentik_events.event` - Event + * `authentik_events.notificationtransport` - Notification Transport + * `authentik_events.notification` - Notification + * `authentik_events.notificationrule` - Notification Rule + * `authentik_events.notificationwebhookmapping` - Webhook Mapping required: true - in: query name: object_pk @@ -29357,7 +29357,6 @@ components: - authentik.admin - authentik.api - authentik.crypto - - authentik.events - authentik.flows - authentik.outposts - authentik.policies.dummy @@ -29405,13 +29404,13 @@ components: - authentik.enterprise - authentik.enterprise.audit - authentik.enterprise.providers.rac + - authentik.events type: string description: |- * `authentik.tenants` - authentik Tenants * `authentik.admin` - authentik Admin * `authentik.api` - authentik API * `authentik.crypto` - authentik Crypto - * `authentik.events` - authentik Events * `authentik.flows` - authentik Flows * `authentik.outposts` - authentik Outpost * `authentik.policies.dummy` - authentik Policies.Dummy @@ -29459,6 +29458,7 @@ components: * `authentik.enterprise` - authentik Enterprise * `authentik.enterprise.audit` - authentik Enterprise.Audit * `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + * `authentik.events` - authentik Events AppleChallengeResponseRequest: type: object description: Pseudo class for plex response @@ -32412,7 +32412,6 @@ components: * `authentik.admin` - authentik Admin * `authentik.api` - authentik API * `authentik.crypto` - authentik Crypto - * `authentik.events` - authentik Events * `authentik.flows` - authentik Flows * `authentik.outposts` - authentik Outpost * `authentik.policies.dummy` - authentik Policies.Dummy @@ -32460,6 +32459,7 @@ components: * `authentik.enterprise` - authentik Enterprise * `authentik.enterprise.audit` - authentik Enterprise.Audit * `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + * `authentik.events` - authentik Events model: allOf: - $ref: '#/components/schemas/ModelEnum' @@ -32469,11 +32469,6 @@ components: * `authentik_tenants.domain` - Domain * `authentik_crypto.certificatekeypair` - Certificate-Key Pair - * `authentik_events.event` - Event - * `authentik_events.notificationtransport` - Notification Transport - * `authentik_events.notification` - Notification - * `authentik_events.notificationrule` - Notification Rule - * `authentik_events.notificationwebhookmapping` - Webhook Mapping * `authentik_flows.flow` - Flow * `authentik_flows.flowstagebinding` - Flow Stage Binding * `authentik_outposts.dockerserviceconnection` - Docker Service-Connection @@ -32541,6 +32536,11 @@ components: * `authentik_providers_rac.racprovider` - RAC Provider * `authentik_providers_rac.endpoint` - RAC Endpoint * `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + * `authentik_events.event` - Event + * `authentik_events.notificationtransport` - Notification Transport + * `authentik_events.notification` - Notification + * `authentik_events.notificationrule` - Notification Rule + * `authentik_events.notificationwebhookmapping` - Webhook Mapping required: - bound_to - component @@ -32611,7 +32611,6 @@ components: * `authentik.admin` - authentik Admin * `authentik.api` - authentik API * `authentik.crypto` - authentik Crypto - * `authentik.events` - authentik Events * `authentik.flows` - authentik Flows * `authentik.outposts` - authentik Outpost * `authentik.policies.dummy` - authentik Policies.Dummy @@ -32659,6 +32658,7 @@ components: * `authentik.enterprise` - authentik Enterprise * `authentik.enterprise.audit` - authentik Enterprise.Audit * `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + * `authentik.events` - authentik Events model: allOf: - $ref: '#/components/schemas/ModelEnum' @@ -32668,11 +32668,6 @@ components: * `authentik_tenants.domain` - Domain * `authentik_crypto.certificatekeypair` - Certificate-Key Pair - * `authentik_events.event` - Event - * `authentik_events.notificationtransport` - Notification Transport - * `authentik_events.notification` - Notification - * `authentik_events.notificationrule` - Notification Rule - * `authentik_events.notificationwebhookmapping` - Webhook Mapping * `authentik_flows.flow` - Flow * `authentik_flows.flowstagebinding` - Flow Stage Binding * `authentik_outposts.dockerserviceconnection` - Docker Service-Connection @@ -32740,6 +32735,11 @@ components: * `authentik_providers_rac.racprovider` - RAC Provider * `authentik_providers_rac.endpoint` - RAC Endpoint * `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + * `authentik_events.event` - Event + * `authentik_events.notificationtransport` - Notification Transport + * `authentik_events.notification` - Notification + * `authentik_events.notificationrule` - Notification Rule + * `authentik_events.notificationwebhookmapping` - Webhook Mapping required: - name EventRequest: @@ -34983,11 +34983,6 @@ components: enum: - authentik_tenants.domain - authentik_crypto.certificatekeypair - - authentik_events.event - - authentik_events.notificationtransport - - authentik_events.notification - - authentik_events.notificationrule - - authentik_events.notificationwebhookmapping - authentik_flows.flow - authentik_flows.flowstagebinding - authentik_outposts.dockerserviceconnection @@ -35055,15 +35050,15 @@ components: - authentik_providers_rac.racprovider - authentik_providers_rac.endpoint - authentik_providers_rac.racpropertymapping + - authentik_events.event + - authentik_events.notificationtransport + - authentik_events.notification + - authentik_events.notificationrule + - authentik_events.notificationwebhookmapping type: string description: |- * `authentik_tenants.domain` - Domain * `authentik_crypto.certificatekeypair` - Certificate-Key Pair - * `authentik_events.event` - Event - * `authentik_events.notificationtransport` - Notification Transport - * `authentik_events.notification` - Notification - * `authentik_events.notificationrule` - Notification Rule - * `authentik_events.notificationwebhookmapping` - Webhook Mapping * `authentik_flows.flow` - Flow * `authentik_flows.flowstagebinding` - Flow Stage Binding * `authentik_outposts.dockerserviceconnection` - Docker Service-Connection @@ -35131,6 +35126,11 @@ components: * `authentik_providers_rac.racprovider` - RAC Provider * `authentik_providers_rac.endpoint` - RAC Endpoint * `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + * `authentik_events.event` - Event + * `authentik_events.notificationtransport` - Notification Transport + * `authentik_events.notification` - Notification + * `authentik_events.notificationrule` - Notification Rule + * `authentik_events.notificationwebhookmapping` - Webhook Mapping NameIdPolicyEnum: enum: - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress @@ -38238,7 +38238,6 @@ components: * `authentik.admin` - authentik Admin * `authentik.api` - authentik API * `authentik.crypto` - authentik Crypto - * `authentik.events` - authentik Events * `authentik.flows` - authentik Flows * `authentik.outposts` - authentik Outpost * `authentik.policies.dummy` - authentik Policies.Dummy @@ -38286,6 +38285,7 @@ components: * `authentik.enterprise` - authentik Enterprise * `authentik.enterprise.audit` - authentik Enterprise.Audit * `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + * `authentik.events` - authentik Events model: allOf: - $ref: '#/components/schemas/ModelEnum' @@ -38295,11 +38295,6 @@ components: * `authentik_tenants.domain` - Domain * `authentik_crypto.certificatekeypair` - Certificate-Key Pair - * `authentik_events.event` - Event - * `authentik_events.notificationtransport` - Notification Transport - * `authentik_events.notification` - Notification - * `authentik_events.notificationrule` - Notification Rule - * `authentik_events.notificationwebhookmapping` - Webhook Mapping * `authentik_flows.flow` - Flow * `authentik_flows.flowstagebinding` - Flow Stage Binding * `authentik_outposts.dockerserviceconnection` - Docker Service-Connection @@ -38367,6 +38362,11 @@ components: * `authentik_providers_rac.racprovider` - RAC Provider * `authentik_providers_rac.endpoint` - RAC Endpoint * `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + * `authentik_events.event` - Event + * `authentik_events.notificationtransport` - Notification Transport + * `authentik_events.notification` - Notification + * `authentik_events.notificationrule` - Notification Rule + * `authentik_events.notificationwebhookmapping` - Webhook Mapping PatchedEventRequest: type: object description: Event Serializer @@ -44052,6 +44052,8 @@ components: expires: type: string format: date-time + expiring: + type: boolean user: $ref: '#/components/schemas/User' application: diff --git a/web/src/admin/tokens/TokenListPage.ts b/web/src/admin/tokens/TokenListPage.ts index 576460f738..21113e8e30 100644 --- a/web/src/admin/tokens/TokenListPage.ts +++ b/web/src/admin/tokens/TokenListPage.ts @@ -112,7 +112,7 @@ export class TokenListPage extends TablePage { : html``}`, html`${item.userObj?.username}`, html``, - html`${item.expires + html`${item.expires && item.expiring ? html`
${getRelativeTime(item.expires)}
${item.expires.toLocaleString()}` : msg("-")}`, diff --git a/web/src/elements/user/UserConsentList.ts b/web/src/elements/user/UserConsentList.ts index 96e488c9d0..606eb10e8b 100644 --- a/web/src/elements/user/UserConsentList.ts +++ b/web/src/elements/user/UserConsentList.ts @@ -62,7 +62,7 @@ export class UserConsentList extends Table { row(item: UserConsent): TemplateResult[] { return [ html`${item.application.name}`, - html`${item.expires + html`${item.expires && item.expiring ? html`
${getRelativeTime(item.expires)}
${item.expires.toLocaleString()}` : msg("-")}`, From 40a1e5a9b2f38267d1655a50c78db3667a0d1d28 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Thu, 8 Feb 2024 16:07:23 -0600 Subject: [PATCH 050/105] website/blog: Blog about oss devs and content creators (#8458) * draft * added image * added header info * added images, tweaks * really adding images * Optimised images with calibre/image-actions * fixed typo on Listenters * tweak * stop codespell from complaining Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> Co-authored-by: Jens Langhammer --- .github/codespell-words.txt | 1 + .../content-creator.png | Bin 0 -> 2466624 bytes .../image1.png | Bin 0 -> 87226 bytes .../image2.png | Bin 0 -> 1018965 bytes .../image3.png | Bin 0 -> 57086 bytes .../image4.png | Bin 0 -> 48458 bytes .../item.md | 201 ++++++++++++++++++ 7 files changed, 202 insertions(+) create mode 100644 website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/content-creator.png create mode 100644 website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/image1.png create mode 100644 website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/image2.png create mode 100644 website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/image3.png create mode 100644 website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/image4.png create mode 100644 website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/item.md diff --git a/.github/codespell-words.txt b/.github/codespell-words.txt index 29fb248325..dd00fd8e3e 100644 --- a/.github/codespell-words.txt +++ b/.github/codespell-words.txt @@ -3,3 +3,4 @@ keypairs hass warmup ontext +singed diff --git a/website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/content-creator.png b/website/blog/2024-02-07-open-source-devs-are-the-original-content-creators/content-creator.png new file mode 100644 index 0000000000000000000000000000000000000000..6f4416f82c50a9f2b6b87f1182a7f22009cd669e GIT binary patch literal 2466624 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 & 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%0A`06*}*%3WI_Aikm%3wk3IQB-V^nO!@u^g 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 D*Zg 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

o(r;n*hLp#wEfdN-?e?~ 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

se-H-;MWAlj9cQUZES}JNR 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%0AmO0*fM}mOYU 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⪼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�T0%3>rk?nWT=~&P&#-@sB%pOZQvzJ+_K4^ zjJ+qHfDUDNp8`-^l^i+f1We<$W}N}7T*8x%a62xhBAyq?4Lv$Bc?9IFBPBaDz@fo0 z{HD}VR(v;z7dfae#?n;22F-$7<7%Ug?5k|a#Hc%T?g7#~=oEbx;zfUSsKX6nh zB75rcc;rbxO#Ndl=|zoBe!(Q8nVmEn$Bj{%hGdD~=$3|*4gS(F88piy>BN)iP^`!Q z?B~9C_}zc?>F|-KC^34MW9ac_N-@Jr4&<8dz4GCl(n5#2DnRAq`bKRdt?Jr4{HayKMk7Jjc zj%LzEr$)C>sW5t1BaXgJIk~4@p1^cHWj0NIrL;Iuxj*+L4*h-|4Q}*)FNgj`s=AsZ z@D>dDQ|q}NxZ0k3t{pXeEk8WLdy*zc+G*~$-WHyg!}FqJkFJPnuyEB65gs(_Qc&Nod>PnzqV%aSr5*Y^#! z@NxlPYpU=Hc76Gox~6*wt!~PW=iU77>rJ2EM}k(t zF=caOBMwdk6ovvh(7a*EzY_b?@(4Y3l&<081XkcT*D8L5v&-e?mV1A5t*`gs?w#y0 z^Tr!*9KQCoSM&L5mfd|RpO-qA=YR3biZir1S56;L+l=18(r@G4gF!w9{?H(O`y5E& zg!chf&Ks17?b!UNGkzhzPk;v8lX}ZV5~dGJdW;&|s-H)K{&)Jkna#v^+A__Fe}(d; z{~BLYU}WdP3;#^M@#Xkx&c`2?KDq=}dUyHxRB`q#D}q~I4>!$R61ac|#_?AZh**BC z86M=+0ag4(4{IySts3x49{#XXI`I;D86feIEdiWBRQ&GDsyJ?M z!S@J1U~~W$_#f~GA`=gn{i>V#Udda%Bj5O{o|5lbT<8+CQBN(So@6kYz^ckmxO zI|I$Zr3sEsOkJUc@A+y<1sgI^GUtktQv>$P4|@BC7JK0Px=vIR!f%U9$qDA_<>@*1EU(88mSuSb(? zXt(u-2ihU8c(e)atA1Ci2Moctgu=?hTY1~s<u(;eX1S*z+=r>N7_KhE z^TxaPQ#XPkW}8?(X`+P<`^_G*bk2s==Q4@G@~;mQOrifKCp?xJC^ovrpMX`{^BPBL zzxFO_Ut;W+PFL{6stPkV&3d9=_Y(NH8@b!h>Op3X(H(&sz>E>^Bq(T^nx&~$1oe&a zq4!FbCq^yWJ_Xp$Wc+0;_|f~(PXWBNRpUnO4jec;+bDS(2uj=69xr9Nq<}~N!mB*w zVb+rSg2n8jpc9)gwl?iI@Xhc_Qy%-oc4X}MMCysY3Yy`;tSNg@k&U)v>}M%8-F44V ze=>mXX95YC3qD#RNnU2I&1|o%rYDWqpukqnR~j1=QWxl#yHPS7Hg?rug`WCR)T6r!McN z9-m0C;_=9`+vG$CFGmO2iU$cSvSF6|EZ@V+ll^&FrWMEiVH-cu_xmTk&6TGWLP}O z?{G^x5%u@){BOS#J(^h~Is(B5H`<{_DE4VGT{mW}9gnD|!=`^FcmckU#?hHQshCFp z!>Ge1+ z6KU!=$-!$k87v(ULs?^}M>dAq7a7v#>GQZNtbq6CN002M$Nkl>WBg0kak$5TFlwAj4NynK*=Wrr zA9!BJOD`Uz0SKU#*6=~uJh{hQpxE9L(;BVvhJLLtj>6Yp1Obs5lbB*&37NA-5A$VbRcM#-f(_9>z ztiam2M`pw020%ae`68|P>5X!yJ4fxvGkHAoAib%VBKDP6LDzawSA-gyRMzBjB% zn39{QT*;5EnK6>HrPHO+T_C;>zKv(!>>vh?98r;iX*pjjoeZ};o3XcY6OK*ix>354 zR#KB8ntmk2y{QizpE?$vP5Xu`?}pdh@}*$uc@)AC*ua@(*VeKL%{|Mj&=kfkN!5f;0k%Meqc%JP629JBS#IDp@?ZVx z*ZZcsujS2ApZna)nPreC+UaBU&khbd`JtEZ1W)(D$-vtz0C@N-b%4n@`dOM<`lS5U zUvdEtug=R;`0&?YR`k4lC5yhC2+JE9!mHqsHqRfy46o?=NJ$@`ja13Lw~t?F z*|OtH5tTH)8d);9{6%~TijDq^d<}pMST0?>l05Tp^J32Rhpzc3efdgY^0l{I_)B~6 zBXA|32Y6j}7JBc+r=}8uTWF|H7aBqs#wu%dV4#8qGO>}k*#`X1?f)4(OyE88i(JUZ z0JVE;r9Y3uUiu9*`Al+A$UK7XUnu~b& zV>!&V%yyz6eIOc)Z4c3LGEa1<_YC&0W)%Q&2pV0=n81u4fu7o<@FZx)CpQ4sZtfXh zB#*IGBo{zu4$ozI9lu=AQSeHjy`pmlYv_ zaWy`+_H;FSSh2O=%RX9yZI{eGiu}x6!h@L@f)L(AhIIL{2|I!nIM{mqNp%W$_ zkipdiX)h!oVYZX@Y$JMY(Gn^X0Kf>y1|L1xHk;0#zg<3?3Lv-J**ogF7d~;E?P9;Q zE1~V(%+`63LH~`sy;~aFN}5Y;>(zn47*Y(ZLX6z0#9J1 z6AHqoHrC*IAPKUVwe?=cRRU21CPAm*XEW|3Fc-#B2PT8q+bLtUjPDR(+@zg31ia`C z-a6}%e6_8}v14sA4GjX)f=oNeVh31U zcOkRuFdj6~2f@hEdm|1n#-cOit9+O4h5ngMH7`(Oqu4^TzRr z=)iyKTzgO1fUfM=;jzW3hXkoU%uFi!Vx#^KKFn`|R|z__k2O>9qfWAk%mo<3TjLI) z*TanNKNVfLba`Si`UP*8w1hb5T5p#UtfssAD&uqyC@dBI$P&D4On%0mbJ2O5m75ur zDN+fvrc8Jd%zPOAXb>><$);9u0?%o$a$egOg@UJjM);@WzhGNjNtzA@Mo zgHq_MD77fG!VI1YH_c6OLWk8(I!p={xE9EfU&FH5oyg{;MAWQHu7eXeZB)sNLPDA8 ziqm0Is{0Xml_^Y#7MH##f=+<}GFzyIT?5ql2d3%74zpz_ltTl@uucp=a8WGMM}sFz zX8$ns6<+exaD-OImr`rUrZHASA~tZ^;kF8cKd{?rCLK+k{Sjy!EYpN31YUH6mty1v z<19yWP)JWl$Ub1gSI%=nx#4D9oGTyjp;tqJlViom+8mN2Jx@hALUmxmw^>dcB`_Ok zOB#7JEwZ$+r1}cD@MxMO=RjvYMoTA5uC1f|+8+Qejk$S8h0})hUJf zB`+Nf=SGK0X4b88?&ymrJ*M`0)$Hd#|M|nG|KKx+Z@&6^lp{|*p2{mXvj*K0Bn>3s zYG4K4$hNpp9h}nOVCd^4l1*@xm*l}O{lOPGF_?^rnQ$K@==xsPssHp(|J32Pe)~5M zKlDR+A`<;j2LaQA+z~JhP0}=~2{i5N6YptKa;EhjA_VjUrZ>NSsSqAixH)Z{8 zy@YROf8}I>1grNIK3#sDZ`rk8D#ulHl`q}M$Thj5YsKzmQS*+`Nv`r2zr;N{n~ z^pj!|Apl#ZlVj5)h5kBrj>(%eWmfrSSYOqdC3i`qL*)3e{4U8czjU-{a-RP=*1hs9 zFZ$QrBd^V@P%{9S^Xc51U%F%c%*FctIPD+LllvowQvl>qZvDc+CJyaM%*pgep#e|j zVbQ(e7w?kr$Kfr|CrIFal#aqJLTryivq7V)vMG&`79R3-BKviojDjRvo-owmFFl*V zfe)U){^z`~D%Z)^cIG-Cf3A_&e28Df4K8+ZlBRUQDkbNXqob#f+$v8=JHlM|(WQ+! zX7Jy$!g=Ig@|CuQXaAHo^aLkc;n3&kFH5g;6A!_(c+<|8{}-MO z4h_^ibQC<`cNsiE-@yg`!V|wzkPHb1A?V=?sXMgvMtcWpI}bzYC>(EQPnWa7 zQN0OXGkEyL0v!BKJ|5lnAl=?fY|B0J$uB?D9!|5QF1~HYFVl~!Z?wao7EwJ>CwMeA zx*Q#m-)tfQ(hk;xS01zV;qazA!5?y;v4^ccvRo|naytWB15E+8s9JG#8BX}>o2!F^ z&x?*LD=0VZHshky&4cK`lbO9_6^4D9=wJ62%006zv>!pByOG(=1eMOlCo~?>_Kcs* z;J9}$t3pD96)+D%J4<2~%Tw9I$wtYR-Cezwmk(ucCb~za#x9Y3XDxvlfn*Gjy{$4X zu-}||5X2JbyPA#C*(kG3)PXl7UJAX&8-lc!`PnzkKwSXna`GEDvSZqaJ)X2J^F0q6j((p2)9#8BclBojs`N_LI*%*FY55w-YEaS)#L; zlHZJ;E7_pEoA*bT*e~s0p!u@>v?7}ak=ea0g}j($jYikqkbR^8Raj@w0mqu>Pk8};>Tv=937K2 z$bt^%cJ)Vmw&aNAnEpl^z;>3D(wx5s_xRo$RYXJZo#A-P``Kp zY(SI0IYH87IG_9av?nfS`REhT(abs(h_XztZ_In#(!AsiE%dLmq5Os(4^&HYzS#Np zH%Z^WXwC(uMt5?4=I{Q)e-u5NK*a9w8w3e43|NCosRYsXb}V7O$O6mM$0AB3HBbw< zdjJKV#vm}GbLd;lbP~CyL|z>#(k(!uGAz9k@Tt=tfinggl3(ggi7^2dA?;;rf)3C& zdK;#OX$>Qlle{_;I5lQ!p}|>hNSQtPpv;0$I-D`^!Ir$HjcQ2vWNbf5g*}!8&V`6L zq@wN)jz;Ab34i%%4ubuTu?OjfRJA{IssZE9dxJ0%n~F6uCSr z5B}ZZk3ao|JQX_MjSv}j(~E7KR~d$vfa`23fxL*mdIc^6W|ka-D ziYQ%A=bYrqM;+JE$bGZ3UVQPz!*Bi8ZybK&FaCICsi8VJ%VY{M+0c$@Sf{UZH$0Q+ z%AsiTGZ>M(8;H#jQI$6L1`c@AHtf+wb=4V0h3MYk(C-B z3NM`Wkaf!3y`eRU=oor>Dr{Xg4j2P%29pZw zkmhcG2HoUtLU~p$pUu<$ExeU3Ge~5jy$qgQr;bNX>SObmUpZvT0S+?ow#xyVrjZi! znS7%^^26b#>TOVA!D)e2mi-CvfeAKX(W!m7)A~rhO;2gqWmd-WB=0~fUa~E&z}>pn z>y=#Q&=LL>!(Z`*h+O7kX9PWm`))M7DaUlTr%-<73vM~ePl17-lqRn8+^=m!NchdqFjz6{JYcwq+sT}Nq^ zlK&&5qdXT~3-7>9!QA(^@fOqu3hC(sT;)*{+FQ@%-T9&sKO1Lh$6J6z2?qxrl6DGq zWtXoBJ`6%Ij={Jjp^-HztqSCR>u>3=Qmq?#b8qK^bL*Krty}$FU~D=;$4`lBdM?3{ z{;{JtlI$Lx#rKhpl^0I1n|A;mp_DH77wp1t4wbx)KaF;1J#~NcD*KU_+z;BaQduwD z)ko@1zx#S;n0)1xuN=PoL4ZABilqyMZ^=i>qyXU+G}TLm9Gix89cQ-LRY<}#}0nHlF~F>#xdI>+p}{7ROp)hnmnu)MAR1So7#u|v3&-!mi}dBO?5{)STpNtHV{{)`$Hud zr@GAiqLU4br9IEMULcJr+4(DP?u8yRq|8F9zQz?abT`ZmURFF2mg?5(#lv&-8SuVoLX_uhM_>JV#FxE;?$-vs%* zHIEIsmnBu*NIfv_BDHQoGY|7^R31@H|Cf{c(WwtQVwn~>H4qrA z>Yz(qLuUgO#yTDjhmU0J>?-MLIQ`i3$qXm6evGHJMFGDvk#|}_f;<^}C66)s1+#*p zgSX9e3-0UBKOdc(`wfog91i-#&a`d1MpLdelF^OO89c`O6NFAMDfsE8;HlPYV|Ggv z*-3fHq^%kqktKfYHKncIOB=nNnP?ryMgQ0=?S`!)k8ZaTn($?|j~RT%gg&Fgnf00b z#@GTwmlAN(cL*G9J38aw*rLeYEJ*fNFxx~C0mwbmu@i2>N5>s)!Rd$CjGQ~zG7~f` zc~qzNv}QHYjwj{l8s8Y-@QWd6KTHfeLH6&*ZkE4X3*wNky}0p9zmx~ZLxkF+z_41V z{(RaYSOUrHU(1Idvi!irq0aQ0J=#9Bk}EL}ZMAgaJ-Yk2_0ArOE%KNi_(S{hY5H0*L>kSEO2A$Jr31Zf$ry&Rw1(_*XDUu3|A@#&17mR~W zL}fDk5L4n35KjAA`QW86Ron_&U`AjnWwKG6fD>4)#QciZJ0E8#jUmi=iXd{x=!TLS zIXo(7if*0J-Z5jwbmGiT3ge>KjIODzody_K4N|2tb!OAKf^n-IkZTcAom!ne4mP~O z(?&|-gq_N3P^Ai%h+}9m?X3~(2p$}PDUAhEt*ZR0N6*@574JYUa;0ba+xk}w>I7|cFLea;=w`aj-s^3orhIaS zi8``@RYx)DZQqew$;vf(&2eIYH&tXX=fltNzp~>ca4IMo5`cJ94^xVq0${mGW-+4mh+q!?<$KfP_-p8gdfv>f$>%NNf=sIUE?Wt zIskHK-QUZoTE%o-9ps>A3u5yg;YwcR%SjayyoERSqfb-SsYeX$dZJX#LAxLX@9+%TMl|>WBt- za>~45I2j}g9uJ^;xzfON=;W%?E|PSl1KPr;;E{(@@P{CoH_C-L z@OJ)9H&8o`Y=LoI+MTca&3~$VPIG{(#Iz&j$YIxW>%a19mS(M^*B*WFwD<{mg&5>1 zFtEX6{~Y`{1J8Feko#^P{(R%rZzSOKwFI7CI(+_fpU=Smd!2P*K-j)Ex38KS}C z_*L4U87ekJ?iLL3wZJzxnm`dAXWNHvH&J-Qw+@ayY7i{El52e$@>}@%&6LNV!D4Ha z4LQ;WMg+auf?$??OI;fTdg4v9T4yLxC&A+>{jpqh!;C4*oGb(EU^lu_zSD=dbp#)t z_|W!OG4Suk#Yq|8pjxl2cvpxi+@X@xD@?Pdc z9^L#sG#h*2#@I@pj@LrZ?Z`lV84J);Gq|4ew!Q4-WQ+#J6(+R=|q8STzEEAa-Cz6T5w)Bgk_hQCGF9Cx{K{t90y$T% zWxp*t6n>361VPVcta{FVQ{lyC*5oHh)NvO_CHl#hTE^5_X3;5p38)ySILG_>1Wt02 zfKqfWFl^#&19UTn$lJ^*x~qL&x$#u!n_!h-h&S6scmpdsAkT%=r(m4+VL4y-(u$1C z;IgNdpg4md07J*wm)eH#yH|{Kb``jhN&V-@N*?V%o7RrH@wrONNBbnu)?@TmU@Qc* zzK=dfuA@kyZDI%yvXnA~Lq}$YWdebX%NtaSCg03VNDii1L{Px_Zf0{yBO}4!%h^BK zGEI7#EE(HfIy~tm1<}`cv#cDC9=6;|Th%U2ps){Hs85>+Rb(4l$Tq^x1c+;$bYkBs zK|&82hBhm&)U7e7U|_ZziY&bKl&yV-o@R-j`U6Y-j7(;>6Zx4XHGwnzrx{ve2D55P zpvr^`c)J%>__KVo%R)2L(?;Yr5#OU-JzFmB9vazzL6GK>mzz&0@L%lQzm$dfR zp_{I;6(6Kc;PKWwku{$p0x|Q^WF0J6rlN}`kKDh)f}by@BV}T{o#cO(IG(t)0lPK8U`lLCOW2Lb@a^yAzokvD4iZ< z@ET1W*hCN05g{Pyu639cM5FBV-IUZpAqWl%?Or>@63&U4Jf$OL!E+8yPJ4|ejpcr5 z4wk}WkaYg?O~)HCL?8@`ry9yq4(nG5$j1{2hw11VmCnPuaW&hu_qneDafZMILxT}--*u*w^5zQ%xlnS4PHPWr452h4 zb?0*oXfbs8aNXc>u0trF;e|1x2cozPBw6Vs)V~fdZ1rs%ccVj}`|Otv|Mn05IIn{K zZqu&C;9kuWj|RR%H+t0**{L)7gJ%Y1&yez4hYn4_Yo9V5W~V%cmeLhR44wOpU>qy; z_RHC<{ICD@znUi^*Q!foKwncu>%b)=$PiCGsh52?)%=>0N{dO(t!Y0^TUphwDsE9} zIfo-nF6sT6o5|F+Buntg+IDorJx&oB$akbG(CP@Lz)pwogbxTA9VsYQyZA{`{+#!0 z@rlmTaRMND=R!Kd;11Fge1VCdB=p14Lcq`i$M80A!CG>YJ(qPF3&o8f7QnEyd<2^5d9dK08P36pf$&Chwh=Syh>lPl4tnINkE}<^VNHhKR>O{lw05`!Bg^5d|j5-&3hm$^izkfkve&&jte@u*iy&HR{lUaMQd;RS~N_P z$wdxwEA7p{&j;3#7FmlUu<@14HU<1{Uf8RgZ&>oQ6Ayi8`LmAV2vB9)mj%MES2A`K z=9~#8g#{o{NnSNX2rV|nB(JT1R*0_2{b$YtZ5!#VOMd+8B`XxE&klA%16lH$$QBOe%+kQz>|qjrvHsx-(j`5Z%GdjOu=iLt*$t8T z7dSG|AR{SL-)69Td5^lmN0$U81K)yt_s07lTt7=xc_^@ulGsT0ew_@N%2nq_b`fdR9I)GK^lX%b}D zG8@B^Q2{G?;5NfaKujBSO()P*9sP#nN0zoNtbS@hb+o-#BnZg1v z_cPf*9(Al<(P+sKeYz9cu7)T11EB#;dMs$fSNG80LuCOgbw(GXpc8D0UVyLd&~r4f zH|o?_C;}-@U8WeAotc(Af}i$~G7iwzEw|J5&0f2Z4U?}VIAKtaPBfFHv65@S1AE$0PWg1&vPTkOJI*BI%B$FH-=33yC&1DC` zy%L$w9l=fZ#+x7olirHGsBK89yaIKX)LjBs0(vH?=raV1=s$aWL4Yx~)XTQI?^S3} z4+5`n8H3X~b^k!ykIeAfnS%P~Tt9K{@x%GdE;6f$?NGks&QiV{@Pal(EuUK*|4+9~}TV;*_IS&nFq%1gnx)7q;=?Aue z0zw-_1t~&ykAe%V5MY<5)v$%p+!qbhIbc9#br<;<7QrA9dk0=99-$MeAkyr=qw@^j zT*KpYD-M|8PteuK!l$C)zGFJ7PCEiMy$?-jU<@2}2k;(RCgG2BH;NX`wj@C@&4caJ*K$vLybhwdv zWr8N~bP)KOs5*Xh$blJop_7tE8x@m z4W2&1i~MvlH880=hD2l5$?3%C-{-&Z#lye(y-(-OJl_kYhmsrVlpe)ebot82v;ns8((}|?WuL1kSH6-*Hec(qa#&^EnLL3Rp(`@`Mu0~zlAfY7 zxX?D>259j2T4e=ZgEMK5I-F=vKMMD+G$3ga0XEQ6wCTf7^5lj(pEf-C(KPKv8TW>k z!HJdt%;BDV?pL2-Z+;n^PaZ75(PNz#lds-P-u#tbW%4Jz@=>n&k|dc((C23pl8Z^% zWlye?t;f*nl+21`@XhVwC_FeE%B@7p6bGVvx$xy0?*O#i+@_M{50cWoD|y{7UvNcs z`h_Ccx}8h3jZDLD>`P%J|B=s>VEYz1xpI2KuWLA}LxBZ{zt%f?lU7-2@2kJiM@)M3 zZsh@oywKAFKg#&aIhgzCwQ@N=PK&hid;}yVN3tJz+V@tPdzERj?Yb|4Q)m@GsfU3y zFk5cXTpdXAktXMG<-at+*UKf}+-MnTv-3Z~hjhoz8~!E5DmD$>fVU~{yv?5b zWfkPUJ4%F>mhk3Dl3ixC65Eu{In3&THQ}yz-S-4qyBF*A6d# z>E**8fA%wsK$jNToL3qBatCPW3wiqgF6+s?83=n2r>!hPLqFR6pO#6}lF08s2cLr9 zA&+agcK#`!UMoI8^&sWw;Zd)G$~m7xzwJpYd&Lh>cK0J&F62FZ&$N&6QNvIUWYhJ& zF=^Y@!WRsY9{6Z8BOo-mhW%omxEmPq9#~}i7V(4n5|_|Xe`?jy_SMJ|LXJF{^+i3Q z*We%sijPu|1;2%lif)p1-_iD+Uw+7x8wru2U;#QRx6q1zzP9pU1z3D1129X@GDr^| zzS*u{b%RFBU%;~*q`t`!cVOmEyHHp1&LA`V+L#w_fl2pfAT%_ZDTZE3!3Xa_HX*F_ z9$P#8TIw#zY@FF60xO>EU&u0$3+JyKo{8`LsbBa@hoAb1A3MB{hYUD7BP9O0RTBZ9 zWmInlnoX2vN!WWCe82J5o1NKW!1}EOqin-r8625-=uAJ1H|{5Z=Z$y*C-y<2=UrYG zqR3D?GM+G4zm-9014OAO%i8#?{7bWgtfYYJ1IvG6WAUS|NA3w&rMjQZOd${X$>za* zgFZg2!Kk;~g@zzhA094~r?G@tMs)Cg=%NRLTryrxV1@1p1}RIh{8#?0wjj`BhRBtC zEH&iQg54QUDf@2ZNOtHK`~kb|GhZnJ0uzvdKLJ%TvK5Tr#I?+% zvYiMW@0-}tR-S(L`RcW$YG9c`BXA|p>8!5QEuHJW zMS(|-_DW*emB~rqt9LeHW-fTdwPP7|(I4vytAHGtu z`EB5hCgWGOtPk4*!uU4@Iz|O^0yLo`1#OkXBAS(kZp-o9w~~qOla(>$)yUacTdcrl z<@mA3)a~f)=zr)<8<{bACcNYxR?KV?6vBsg^v?I*O8w1pG<;b)%CEZh?ybsIfXqH! zmlNnR# zi4F;7ndNsbfyF-D2|V_PeWfe(4c>_U*nbEZo=IfZl0f||z0+r@h>rJz)34x@zH)RY z`JyxG3V+!kssS`FDlp3r9Fth+i@u_LdvdFbUgx~Ntb5T7a2z}Dng8{7{_(@}*8WA9 z4o10eVaTsW%wT&$U^?X(m+YUEKZc8u5!s}SUiFx|YNdA8PYkLKj08j-b&xn^co_vw zotZw2hHMybr=N6b4Ahx5TLYeUtjR|)I0RL)Wk5~2Lw(l|3)%$!%nr#bC|6L7vTD$H zU~E(x{O+p+9WkEX%WGjNCu8JEL}yzCIDu-w?Z^l{A4((I+1G~V+`4E71=QFyRAPj0P)ML{@Z91lS`JbQ8=I$0c168tvOnhFov(#YsD@^}ZIv64?muh9zbY{!Wcusbuq zb%K&#qfigZ>j)?@gP;Lhj@f#QJRE3LpBe=ibxRMPEU;XB*hky0|{odgVU;Jts{S$Eju6EirS=Sk& zdy!imF?6La>5%%Xl1Jz0BN>ws<VQuHUt4vSe0otPQo1O_@T!xx~ZJgw_49*KGF-76hHrrGMei|N6({CN7x{` z*I7}Dq)Z2@35d2`EZA^v+BQwhye0&a}dDms9cil zcD|EaW@l(4)5!y-58k+nbYGsGzn#*~gV+2)2matn?$+VJUueE>S_#NkVGm&xc#;>L zbAdkfctZ20$9?oE?r!PHwSNiaWx?L%>+sF(mX&wc&xxFdw?PRq955}+Ij=6d1NWkB z=NsfLRvaxgU>2<8z-viGtP(PSx2|*F-{398{vV?LSWJ$28;uDjA-xeq`xsZKOa;W`tx~%BM3|0B+jKnDf@J%bo7` z)KOcP=2^0aklrP)^`91)bDedL;tsIhZ_0cf^#v{Y?CbKU92ky*o%Y(4&?E0APnKO) zDp=be)Bk#s>xumvZ@h8%_P1xV@t0nHIeR|6+@*KQUyEaIIT`!xW01?~>`aItorgV~ zUQd0;H?t(jU^f|q)82sVVPI(B@Je$qWpqKitA9c+7+DPP&9<&cr(fkSaM6OF)1M=+ z`+oFX9}YG@2=CfQe^b8gr8Eg#2`CL+h`UKl)USL%lU z2nX5>nBp|m@9B({$fnLb2)SQo@!$4^No{>(=`PrO827=XEgpFG&1Shb1J(>Aa$miu z4>mo>`!LdMi?-=p^TG8VWWk5qeJ<{XcXAs4mcDe!2fsZ&th{{34*Eh*buci|$oDtc z>Uk>F3>~sC=-{iiU6j+*FJc0_b>%b%C}b7!mUs2i0VapSfON-@ZF>lRJ|y5c5znz;CQ>hZg=l+-CRCVKfCK>N~s1?1uK0q4RbI(3dmABy1es%dC$KYZ~Ce zA70S{u9;09664ocMZiwIV*YNf&2l)G`+QL8f>-oLfDCYOBHYr&H&-9mvSbgBV50X< z(gj2W#LUX#52INC&6w)SS|-$>M)aHC4Idxg7()=kQbKJlwJ;$j96I1nJD6(FXf~oC2k!6$*ltW~G>Mm8F4QZHuscmtnm5uh>-WHYWm`E+&Uegb&L zG?vY=Utnn$uP4}V%Masa1Ag=)-`-VhRL58eO4ujqa`vDS6aia1G+U@ag4DN7s_DFC zPxe5g1A-`zM>Y>VfR8?U1LnifY8H#OsC?fJ9$7z;;F7u#*s>3k;FN%vC3J!{$_koz z`?ys_-AgKxqKj;%0FhWa<0lW}q1P_MltO@OESR)uHzYe$x@X^$Tz2-qX=(m6JW z*MJ5E$l* zNoR=W%y<`Hf{fktI~8HyH}u+T3O-BV(B6q7DbqcTqj!x_B>i#%pzyEYrBr(!nl5J+9i4AnAiUd>X0M!L z`z;~V0%o#I2yqqo^ngwYP_b{y+|M%R3)#2rVQfN!#sb^n!+85bY@>aj(Ax(Rt)tX8 znTALD(Q$R?V>3cZXMQz4k-q6-#^Hj55nyadg5)_Dur#BK4W-+SyM)Af6YB(=&^|9S zB1H6;11g+ykxCGq`A7ffKd+xDBO(|FMuPz)C>4%b2C!2cBe*&a0V1F=!snRGR5p#% z8}uBQ!z5&w7wkeX#b)FfDGdi4(cwPz0W-K6H44ITh}1@xYs{r-bp9IM4t*+);TG8w z1$Ulo#f$dB4a`2l3M}2Bv2r>x_e?F-xa_6m9%DdeoD}U?8l&I*DX(JD zFP+m#0XaYFKmk0tM~02OCfVC9LPBL%hf6&sf%1rS=c0i&X$=UZ3Z?i~a zl7~VG7&b%dKw2H4G;$4&PufUrXtP(C&Xs=Q0sUknntd-akI342ab$IHH?wr$U;pm! zAO7&)d?ta{OovVf%Te(gQ01#{PRIo#F|(S+snRIOQD;1ZJhSVf%Qbd0%Z+Rudl04} zn3}Ak_O!~z=)duspE~@)FZ_Jjt6Y;`TR=Uy(&|hDL`da|m3>rxJ3v#XMg7Prd-6|p zO&Uwr(sO^yulW{jvd^s3 z04_e|j-Z|8KR7~LVIjJ74CIm13Q`nbORqfg;=TojzEe1)S6-!I@`8FACTOmkFXz1v zUS&2k@B2soq1%Ui;O}erBdcTLIt6dja*}oM7H;GX2K;k95H}A6GZ|X^c$$+PD3JGP z%Z^Cqq;Tqmts4V=E&{yrFO5sDbH6%}9Hl$I#aTk!JCWHwZyQW;JoxX|s*gdJGIOK1 z=y0>inq%{Qnh$C8l62T6aO#k?#C(-5r}_ghEB}2jcSFN0K^i!&;XSd5lee}=Sv0rU z>I3HX@V}7lY`v8t_#%gWRNhi$gv?Qx?l_;k?z8K%dApH)Z*FF=_1*8jc6jyGZyvt! zjaLs}`O23MU;5&g4&VIdt4gL{yVNK8@bT01oetN>Pp?h=k8@tXr8#=7ABC@9Y33+F zM}4yBp#k>zXZoDs!L6jpzN+!z(eZV|zK&F`i zWgr~=3s3eUrh9@!#u{X$ssyRb?hw4Ml5u2k&@sUc{`LELv)MDBeDQGOxfePcs(nr1-_54! zw=)yWj1x=h$jWS~+MU9k00(|9C9rXR1-@z*LN{H}t_2v#)3}dLcBxqOL4Ux05U6E! z^4HErU+Gkr`NjUj=R-ebZ$A=!?)V{TWRof;#jNGmG>9{@* z{>^MM%TiFu5=`S}Z*8=PlLrv(8&a-soQuw=FL=AfPsq8D8G7$#FRKgD%~-vZ&8*4n zS*HD%977IxGFF{gW8oJ~u?K>H+7e4FpvQ*zkckyvmXV%I(8@8(ey4BHo+{VC9ec}O z#0CeJJ;>1J5HFznml9Y`hR7!IhR9OTN-T#sO{@`g)*tEv8n1~isNV+IB3EsPU2H%z zGSy#v7)5?Odf~kLYy~#D=^oosool-ymB=l)8UqT=t*Fq~{#Sh`Nx3us^q>Df*|rA| z`$Ns!JXC-wzXXL?L8?xZ%rE7Hj4(7RPjN)&8Ayx^9O?KbA~sG)JJtxcuPzKOGj|wr zwv;e!T;2g|u4gIN1hLS;(1}iRCPQu&nBoYGP(T9Jsc2lzF$RC9*5#a1dD^D}@yBst zU>nuc5R!f~%G97raDXFX$#4stiB=bAVB$MpRU$lS%qrKkTt;4H;D^z1jYm%@w$r4; z5zK;1Ww!&1j2Sff-S5+j+-GnobPZ*3Ys9LR46Gv^W5FQSxod>qlDt`7*v=*uPVvK5 zagldBJq?mkQODsG&mz&v=$tf2bqmLK`pFL;L0?_app|b#IpsArjv9L9YyG4`IG7P* ze*ZGuC~$i2YxHvj-Y07*naRLPCB zo0Q$~NA7`GrJVAk6UmB)#S)y3jkh$M;<0#><&k`fw^(l|JoFV(zT8|eQ0Ab=8;5If zXCSrZlVbEuJ~GYU&@$klE36{UUGjC54nI@2X}tx)qsJb&NF5T%Yw@tNmh_P;m=3gV zdUm#bJ>(3G>RK{r=j!1R3Yz6a254(t4T{CwKp)!n`6_donN`Nm5_9FIM0K$MQm*Y_ zGH-h289i74OQ+PN&riRP`2$Njn~ccHxo6FG{3^^%%rP}5C34|x`dD`*C=u@ord0U0nQuUwlxWf^mXl9vvK$xTdS=n@8W0k)_gI5>5&SfFc&Ov^t%pyn7lsD`7ve!y!G}w zhu88H{+q9U^YF@7v*hljFC9Mr**`hFn=J(#SF^u`AP76thc@vy0=E5w!N8V*e%d*F zI}Iyv=}Qnk`Nt7<&A*YyT|7=dI&x|M6F()0E01Jp`FRL7eC>L6Z}aB75MsypCY4V> zpwGd)(R2qt3SR!u_%a^)#jings3wEf?r; z9G6jLFjC(xRTN<@CF`ACXy(B!BBTb=S&^G&@L1 zhM?*_GX`d_6Aw(spCA7N?;{g%@?RR__~ryWbmWtRUibuJ>E|C_$i~_v88fICOHufw+Sv7{p6YTk0Vuxt?JP$! zz_bamK`|P>`zC)r^2o)TX&>aR9%q1r|I8k#-#fFC1U$Ta#Q25G&6u(QxPd#Lc4Qp= zk1uVO!L*M(Af$tlU3AARCrkX~m(LjJPUte0YTZN@9@4i>=ia=1E~_fSqreHDd)kzG z1$Q34H&B_f_yC9RPS9TNW6(}ty%q57&idhBXHc0op*@m;dN6B55Y((H%k9XjX<>m zi$0neHG9!&KN-+xOk|A5PeW||gkU$0638%avrkl*Z%|B-%ko1(DuH9mGzAIJuHHNV zpK)H~6a)f*#ue zc={7B9xi6asxhpFQ3vtadGYDQ};o z2}qzO_A~Wj=^z?y&!dfS``8=%KbZ;EfQAAzw4kJJ0mkRrihrOn8? z_C0yE8SMgGFpckwd)Pqb)HPd#Zg?<0!J&+eGZyb#>9SIXKA%lMm5pJ8*a(4Zc;3%! zCuxE>oxBn}Drk>!^tWOj-rUD_+{;o@afd!&ohs;RA|f)j1sjc*qtDv7_CVKXwNqZ= zmiiOy!VktRooij?nw-T9MkcWn%a*wDSa@Tz&~P?(mCORVWlRu3yMW$)AsXJ;6|<|z zNI=>0L^7u9Y^6Y4*o7%Uz7bV^m20Nq4z3>X~cfn^v~R;S}qhMaR$1Yb-m zb(sDoodM|@(pX`}oYAg_yu>MM<`qbrgOn1vxg7n`=`}1-eAd1qK-(N($eeBIv2e4k*zwfr-{d@U@mv8h$7_ z;{i7QEU{w@$;d1sN~58Y5&A#KlNOD9*1<;TDbr3@7k24b#)pzkuhb~ zxO7H3WAz}7T;auswBFnv`c`CiDVyQnh{3*^#yIk6 zpd)h8v5IYjaPFmLam;BM5^fsJ!jlfs8duqlpI0w{P~~#nZw`wn|~ww zL_J>}tuvmip&xF4t{0Y7aOeRSoYI&)Lzk43V`NkcCNZ}QbHRtlA)oSr zJh++HLaR+xpDejzS4WDEO`vSi)!$aHf?2<51rZ@q93ViNsg9L zEU@Tx;FtIGMWAk+?)xjIlAj!*(Pm3NGa^&Js^^Y?c6hBPSdpcInuLi*%3D`E4xk3;73a_6+RTnwB%Ep9Rlhk z7X4tPF4B(raO97j11?lZ%lVeUBu^T+wf{2Y*g=Sv$#vVxN_XD@j=!-@!JWU;$M8K& zpo>!{hd%yR_P%&CZxQ-V-U{~hSHF?q(<_HBzx49qPd@vF^w-&sCWnnw_l%A(Q2ObP z@;#R9(S}}qDf_HnhNw7mqD+MlQusA)8kpma(+QpdnEdj#Kiw4*ywc_6U+{N&YuH*e zfirrbKSs|kQ@u#u-AD5utN#lKXI%dMLE8*I&6=1&>Cn?Ebh}UK$wT_QF&Dn@7N0~= z&*0V*c?0NK-r;HX_;%$rJd;;tnx78f!*}1>99pFBU_t%TK1B|tIr2(EWm$hV zgz+i8=!bdbE4A;IBg9p9mCMvsGo`$Nfh{l0B-X(9Sj2o1r+gGxb!wiDUH)aFp z%NdAY&8!nX@iSQx^;`l|FI<1}@aOWTvZpTRtz>y)6Y+S16yFnHAdydB=^lNf+k838 zNchgLzy4YV)A1p5k1p`v&}I|zK2XlJWnkTuID85|2vitrc({%?zOVY#|C7T6pPXjz zmy89jWB?d;I(ta)$jqSk%yP*&oa9oUIwX;slGeIKj+$^Eh;)@i9(Ro*=#tjZs_8@JoGo{V_S_?Z04EjT*(@x2iJnAne(4*~ZkCxmK(JXJuGPTT>vKqz4 z*Yv#`k_Yw#oD%dhjtb6sD6jn*!_3T=YZ?34`|4(vO$sDwH^v-hWYN*iAR?pGpEjZ1 z@WeK?1|JeAwh2193d(;ndrI-|1!vGo&#z~!aW}doIAahl z2+7Voon@gn6TmbJ>q=%-z5Ukrs^d@R?RjJK1bEeD_SA~4pr7Xxu(g`zN&-}GX5TV_ z3_N)070cl5YVD6A0|6lc1;m?}a4DOV*TzTwPe1Fe9vK_6p??BTWu$U!-GGi)YPreE8XlG<0O;AbSz;;P6D@;Jhm>TW}kr(?A@Zp8Q$baxyItNaesBPo( zsH5&V6ef*b)t!L2{7J|^9PC_hH~1AjO1=eaGoVy$r{24 zE1zT=T2iT!ZDc4|&Y2TM${BVhqndD)0t=~FG#4f)d-Gjt3#)$c7k0Eyaaxos+42&)hQZ4q~sKs3_P6) z@bW6E?9dUYUk;TSYLr;sAgeyK6A5kfs85BWjO5Lca4_z4>0an_K2Igab~CFiL9A6r4IZvKB^P>7 zd530vjzcmtt29VY09!z$zbw#CZ{boVHYb70i;-29XU1s$)KC7z;WvNd*AIW;NB(@u z3&1p6=?vLO@4<;kvJHD}T{Ja`5Nx~4M;{L%`?fIz$Uz>yN@blAjhFNvc6j>3R8w4tkXy5aVbFAiC7 zNzZr7Wl1<`^TTpx>l;Nm37fOy*n@^7GLx!@H%K(xtte%kx!-#YufBU+%hTj zMYr=FL-@!o*~vxzmLDo>PfpXj;h_i7%}>V4OUo%44xhU&htJY1<2srTp4f=i)5$HV zg&71(25usF(ueopNfMj4NEmtIA%FPkp;(U6u6X329r#6ac}N*__^X^(nK~+P(DCFS za@29o(UR}}4_QYNi?B!s-(&+6Wpk8=lminVuH7rt%>$X{*rm`aU(3#o-rMQg;kYSa z>F}mroq$~#4gDzd3UhEMC4J+EvIk%ewDk7`wo7qYvj4GPf)j)-8yZf-u84~2 z1fR0>Mt*XJ%b#n<#+?$b`n}KOXdN`!*U($s3r5=*SpCmevKed_z9JF5x=;u5>YHuO z``T;YJ$&ao-_AzkUq5{1%dceF-B%7@{Nm@K?xCL_A7ci5=x9G3*nABAoPL_)tuF_^ zd2&9sPM#nSN$%_OkM;_$Ek8c>d z_51uIvM@jg0UigM%)a3-A=&`MzzGZTO`mL#9eI+m03{<0A$1vfAD^1&_^>5uP0bLeV%%;hf;!9sfP|2L!;UG zbdtUZN;PlJ%~E4i>Jzsv!du$mp0#A@mw}l;k>9o@yr+zfzU$xDhbFcJ5>v>;ze**x;IkZId$?m`#2%aJ1()zV}9LgnVZE**9y(r_ity`RO;~l+j!;~KLGR2`LnAy$M?W2(hahlI@VO5}6XU>J9~MNG#`*e84+_9R zUuUF6z5X%1{S#24OAkV-#tF_SXd2gIhBFd^Q826B;^-O@K}^PRDmb8U=G z5tDGxGj*l^DDRQ0zD<5F9q^`9FLKal2{t*zYZA$--gm?NT6@Q}1w)X=<#7$`c+mn|bGn1Re3j<2&De z?eLk;eE#r9fAlATnT{?&(kq#MY7H*IF?NhW9oOJhw`ixoU|o$dChNO8?nRqMhjudI zIMd6PaTPg(Mc*ETrcZqGg~M~#PGIFfF?f~cP4r^}ODCz4Y%=l;Sfq4{PXr(U(pl%J9%n(`>M z@h!OM*aKYk)V)y_%w1Z!IafF(@{cbcdg^ZmZ!I`7TQKmTjmXpg@-$`K1G(uvne!&) zo}0s`lw^~?47g}gVY3H4z+N{x$SL5VRRJLP0Zwxdn&KK5E62jE$dOLBj_JAcec%m} zW?Hv#Ffwpf`WK4Q3P!T`$hmrRY}$@QFI_eOsY4;pmdCNg06K!hFnO)K@JwqxMf!p< z_(ro@AbE%K6Y`qwEB8hw1AFHm2RgbCd(mU@29Coeeoo6^l8U|fTsx%5rzAEOhyrnM zfF)U;RhP;+(AER*IXy+?BlmW?{I!e8PgkcbI8(Opa{=luBMG!2RK_^+DV;xE6^k=Lv1-&Hu(*nddIPEkDuE6=!5|gqi!5f^y&= zi5=)bCb@XsZ~4feeJ3&Hz6{&eCgb=4NeAnQM?Obvojg4NK7H&wN!v7mE!$DXxpyMJ z0ad+Ao#N9BkGJzG?$=&>?eMM42>yD4Pp`a^Wp^*XoV}mEcEolygBU>yaO=awmY)vl z?2MHOUXpJISGIkDZ|Iu-aQCNvt7|DYHeFf1-nLB`MKAwIox+CWoaCQ=k&NKhw!!*U zV;}WsFr^=cn=C44B@`-%z$UbO(A>T`dFj1mG_|aY9Q?@A695K+U^{GT&8I*^0}}BE zz~aM^OMO6Sl9&JCVWRwWqqDezhd(NV2WaHXpW^!%l=JoEBO3=e1{ofj@|`-63m$Dw zlkNT_gb?%6J%S=TK3yN2^6>(J{~e(gmVry_A@q<@o&MxPlfhdBntP5tU_(!JIk4q# z9o6TWy5rxCKap#43(*sd8eKop&1n;SZx3_ZZnjNVN&2ARJ(qn*&SuY`OWDWMK>x`E zoi1Fwa<~zn?dcm&9j@k$$IoWTks0mYzIHtW{EHccKg>Y%gSWnYcrjxqli+eMcF$F(y2VKs?dp>P9hz^Y&6!NDLPe1J~)J=r5_pXQL zV2%Hne9>7CX|HEYK@V$Vhv%yiEHeW5Ef7Tzaa01G+O)o=8Qa5g#^2zaUS1ZeyVar*fzdj(DTz&38TDYrm~F}@(RI_Wq+GBO5)-va>hB8zHe=mE3ivdHC3 z^3~@JY!hUhv+;eHlAOw_3jvjF2h<(8t50J`Vj~0c*JHV_-*HZcwYj-svmC~ubjm~u zZ36F&nMC)<3pln|yJe>>SJscnqyC+%(`1>tOFL?x7kS=}9sK|Kx)Ywwj_f|{Pm}C@ zWjEK^EG4mkIJRL32ogI95_tjQj5U&D`1`~_UtLs=Q&K&c;H51Oht$1u;yCQd3$Up-+3tqf87~aBKumSzRMdCqH+& zVNekQhUJ+QhVZSv5oEBBzX6J90hpA6@^wG5juf2hoKTn!v@_U)cQ>n}1UI!Sg$q%0cI{urPjC!if?9={Jc1OdRM!%>XiKQg&-#yJ z18)O~FUfiPQ)esfqOtM`9MRJ*F-;qdu&NM#ah@0$a%CjQWe3%^({_}t0V^#xP!l)? z)F76&(_v#g9*1{bq8wRM{?beSS$^C%E@5^jqk)3o+Oyh=4DpK-s4exp;c_^n&TM(S zPI5ELw?7I0|NS3+|M0uN^9SLJgYqvoSa&@Ue~uA-vcweZcC7r;L%}#fFCB>7$d}Cg zg8)M-+CNcY_)KuEgL`;{_Y8mt@vr{MFCYH9|MtI$v*RrcK9((ogFoY-4~^A>7EmUJ zQYm`sFsWz&9pGrVYCOsdPk^3W?I)|DDF^SVqs_w1?}pKK0^Kv^m^SquhR(pW>u3-l zc%>xEn2Ts7bTTnbO|fQA1+*3XYM*WojDb}LNqZ@zT+4@6lg8qKA4wk=&@{a2)BvyhUAC3---a{fEgmLya7%77O5LuX2L>}OwJrCq^0fuQ zB=adF4{a{#>t+F^6GQs~lR_hp)=IVE)2i08xi6omUUQVo4IHXL;pc`sEv|Ntm?)pL z#iPNFtjR0brVo^!Ha@8CvYWr!Jwn|8QeIkVch4!Nb5aXyA(}GfZ_A&e1JGQR-P|7k zFFwboQ#Z%9Crw+M-^WrdlhmM*;X3$@{y=NmO0C|X=zH-4VCiHX6>>y^!nxWG*dAqp z8=XDj(ZXhzQ7M2@H}+PlDFxeVqcTPg10zwEIW8@P${%{J1M9BKjO2?4*ajT zwPmwwZe6Nuw%iu(wbcLw_K`PLgp+6W^o#%CmArA3h9@Idj7aGi%+0S|xBN*u9XVc` zF2A`3j{?Zkl$%Ll#)bGLws?GC%iT|Z+JnYldG*JKpS=F&;roC5Cz)v7D-8c#i%-JF zYm?7_2KRpHm0=ET&Vhkw%O$bF4R!c2{F&6{lR%|*A@z-=>iXw0PHw#i8w&+bwmnhV zWQ#R$uiC7VLf_ChHX42)()~?VGhK-Z7TGdlQa^}E(2O<8`D3DEusjF)$XlR94X#1-!35)A z*YP=Nmoovkb;-fi&*a7A^{db4faqI?=P%#PnNRum{LKbct|!3MLvynw#aF4GjxYG+ z-tEJqpS_w$(Z>@w47{5!y_}U#x3e1Rc6bK=2^ON$N)R$N8L~ypc`Je~-rU3ac7iPr za;AxGarcwoV>ZGVXB)AseGwX(@I9o|e|P>USqYeQg;dHpcsmVMHg+V0S%u4w3{2ZR|(+l#=oVG5F~hBV${89MWx7kJWEpKm+(BeaWf^zC76a zFJ1A{J1i(|V8GQjI6*9dKU)U{x!Qi}HLw{R`PX!pp7o&dwB=(wY{2;5R(gb{=ny~N zmZ3{oxuegSL%8<#Q(MXCBE2$Ss0~OzU<(CM^c5>(%nP(9;A-m}^~Sr-@uHh_$*u~z zB@MlwEj>r)-Y#j2W9M!d6MSkua%5gky~x4~R+C|R zVwKX>%qvXj(I;R+j@NUp-tC;XrJnhO7uoCtyWk^KU|EGFFlraknc#FcL85E<3Z5N3 zzUpTc-{q^9y9J9b2SkG;U8NK}uUx;G^PKQH0ZKbGB1>E7?tPLo%_8Gxa_)|=ve7wn z2y-3nT*}J_L4*hQ?;b8?TPu0QP-Nbh00Y`ny!E3~w)|PixzA;C;Iw`r;L~ds`KtN<=kFD3Vagi*mK*@(l5V=VhGyPfiKf0 zduj!hOF1^t%A_v-h+fe{V=mnhjIxcaU%KOGvI8A|%)j;K$j>~l0V;iwEuVQs$F$r( z6C2Z@R_cihfZZUK`YBZ12psUNn$o}6TjR&P%ukuDZYmGp7M$n&rSL4g&_|7lPpll$ zKa+;0o(mRQt%S4EPH^&k`uc;c+SG`8@HcLHu|W|mVTnoc5F>L zdi8N1DCt~S|4KStkMOuFtYB7+h9PB)v2_vpVA>?SdgkLYTr_B>|DltXGA5tMqXu& zckoZz9zgdqr8gOAL^f}lI%tIf9n6;#!%#qqL1FAT9GHa(J)|yagi8@xCd}d#iNeD} zM=sKolahzYjDuyGsZ_#KtZzX?Na2ha5p|act1WgUkfFND18xne)WD?FbMTlpqi|7% z3ODVbjneh)QrffpjGM(-n=1+(7$V})&rz7*Ae&M%ZZ2;bEcb+0jbPHyX$gIux=<-f z4mYGxIEVbO@wV(MWQ}M+z?hrxQ>*SGVW|KgNi|W&pC} z9ghGB*lFX@r#0%@p(C7(?!}Ib{^jqle>;ZZZ^PYRAq!T$)y+FrVnv0sVQHpxQtBhkyU@-GBT)rrjHN1yVy9Zvi1UDA_Xfh(sbyl2@vJoo(!3V_8l=Vy#nT9dTO zCok!RiJ83y9{mDqUwh)RpS3&x7>JZz_ziNWO2M}@!K-naKh3H; zfrydAv@=MoD#cUEmcf)sa`e44SCqXge##cFVw0y0=oFbsmlyg6eAHREZTS1QK=o z4tB|U-|SrPlXk>kvDN&*lRz`bc=3JH zB5Peo9QDn`+wv*-aA@00cH*vPd&IRq3!6bI`nJ%vl^~VLN_G(H*MyZ-!!_w zQ6C!1XNadj1AKTE|IHVmTzumY68~m=bo`}Pd?Ax9irrP(p^5D;efjO5z?y5>g5ZGf zGg*sXEF8gvA3q1m9){<^Grs4!tRgv^)lRmO+|2f)Tlt*53DtLAeED$g+3TIieCxSy z9bU-GL}Z=G$|I{G_-f9$;VVA;_`So!cYfR;)Q#s~DxTiL~p`V>g+xG*XZ@DL>7fm%LmzZush*m(zU-PtWlyH3TaJCvIm&$Q3?nCd%}I?@TYPuJSP) zUy!DDRysLrNo@y!lZEo&2)yyPFGsHhy&gsGR#nk4{>`VM4P6yf5_}2IkqZ3T9@~)| zcv(G$XA?Z6mt;RL#M7&zPq72(FIG$mik-DeEae46z1ZhZ>(kYd@Jg_1`<$^5U1{Xy zx);b%#P)kTP8#S)`)4y3>!dyWmktksEi%BiG&OxSH0$$LY~6EKY|47c-yjR&*7s&R z!?)Nw7y27a%PLFrAO}3_i=QWG!#?4gfG(YC;4pe;-X_?`mI~xu$Tm4}9&|!~_HZKs zD1l0R?YN`uOw?a^&dQ<$>0)cl9op}Li}}&r1f6a^d!v)|PZQ+3nYqI4+c{qARQ|>~7L*U=b%B$*pEI z1PjmW)6?hRAr=5PIDKI*A7P>CbE~7$hdWP<&Nv9X!4f*0exx4@6EyZFD4TNAM$#aWzDjqTA4LcC zEnkkOw^kf|8v7w1y8a0e_JvB?K{NicZ=LI>+>BSor&&3tOzlYQh5NG!6bkf-D^$0V z)^R>EAoJRi$cA0km*CRCdU)m>z0w{`#CKT53kkx`8P+K;K%13^a1sP%NAQ;};$MA$ z&``b0*h3$O=U4*T$mSRi`1ODLe`d^?!8lw9lkOwHWC=9_P*BXZ?DH>C~=>*~pf~BO|sCbe_6(=YZ#SKk_iJ28{ zo*lktDJs6I*ZdTyGZZ?>j>7gIywfWvJ^l}j3|^sQ^IHexJaK5q-r#A_eUh`A`Zfl> zI$K~km~*#hus%9Dseq^2@YVs!jGa!)S#ltJm+_HRrnzz260B{ z)z@D;{N```=HZRk-)?7k?zt@a&XUs_!|>8u4Y=R|yz!Dw7%afAfegNwSGl!?aqKPU zCI?GPEhW{F=rlN~m`?fl@QZ)vZykQ+d%t}6&Ud~&I+?aWBexVBXepZ~sq>5@DYTy? zjuVb=1~_^>Wzta7W+|uq8D#Y_f7(d{2~Vp4g$3f^(DdMCQ=n}QIQUK;JQ&e&(rQ*ywoZF0g4eHH2DUoA z^3!|2rS+Jco3Fwx?`1zwl%P1H@)SiLi2N5m;*^EXiVKzr&aPFF3D}ac9aXgqf1jNO)vUoPCL`? z;zxBc)A)^Sf!+2Ya8QO5>RS%8ylF(pRokuw~%VN>gIP-EDeyKf1zv4L^?XlfU%{gk65$ z``xho%HL%?pH4d=K&`P6wJ}hPUbbwI#Y>7JAIKZ>EG5N}C^T;b{3zuXS z$i@l4lhu~PnBA^2#&4;s`PKH|CJ~++CjD^f*B$5O2S)K}&Z?&h`z=jch~$(#1~-g~dXrysxa%Hh@5Ue9??uN_{0H52o7d4t}!rLmEG3wD_O z1;amS`RTZB>x*%t+Xa$1e#VR|Rzu(m9Kblu+YM{y8>{&SEwkuT#)a;#_F0asI?8f{ z{d#u6v3^~HV;KP1-slAi>(bAMX;u*Lm#l|dU_!8iIfi_?B$u^AQ zGLE#B1$<8{^Q|Dq7b~EUfoHR&&O~9Hcm5>`gF^A*$Lc92;bd1oA}RdQzVOW0Ef{3W z4j%*^op_|I@vW;*_!0cP`buLT_$f1%k_9~yaRP}Sc)3w`JD z;qC{AkAL##hYL@|&&;Y16W<;~aqpATZ~G=$IkV_)e8T%VXD0v>M;%An65_h^Q%K6@#XerFdsy!s-%gRf`v z7y%7!!iz5}5ang8`WK^TU&M#)3bw$#mz7$4N&FHt@dBI-97zF}4{zU%?q^OASY4G9 z+yq-4Q31EgGcpx~u{w(%^*EDBykwR5>0ZFY&*~*Fe6?Y|VwZ-?M0M;}C=D#Q*Kd!= z9|ni6q6jp>Y=?V4odDF6#{x8H&Wqt}MXL{v-tdu4=?D_uvlHzXp}l=L@XZnEGJW#$ z-AXd6tg7pkSL7alS+LKlqrG)ezJQZSZ|!Jk(r@6*FLy4Mxq-8+LU8ADbV+;dlVp;A zYz7{%6=!qMJvouT{%_SB8RLoIrd4F>*1pC>;h%W}eCdTgOqX7`^=xHvtX_I^a&1r+0c%m;p6>m0dxsO zJ<2`%NPo=x==Nv9f$6iNDh+it7MPdvQ3G>eU&4%-D@XQ{%+gT%fUo-5vd3Oq6`9+} zF?tgm&gSf*r=u(6C-@^+P8Zn+`c(czpU|RRTYUw_wFNJ_XKWG6IGa8N-vDULV2=S~ zpVQ}4-rOUz)GPF|4DyfGFSPMith~Db28DnSu z`8cbmVC8Ud@tEC@&<78E7ef)>Fv3V@i{Oyk$d=rE7%byuXv7O+gtOE5P1PAeIej^K z*RpzVR*DL6r|$}E2Up`MzsM>v%FlPZlx?Z(!P)5PQ=#AZFo%{~9W`envQcGjaHS`7 z2S4cFzR>Fro}ll{zxucTM_#%JRE%NKX(3)fsYQqsyi7FYS2GhJitv^UXF}a1S6Cv6J>w$q8BflX<@gN#4ypDKV;YG z2uuOFMlQn^ZvnM!5XE~A7GYS$B^q5>Cl9}s(+=7UW>e2n!{p^37z`4eIFmYoH&hPr zgL@F{8>rG5x<%bNQU-#qvPy?HuuwMXc#7WA6P&D+vdz%oM-KSxbEXb`f8!^w9sV?1 z6MpogH#-RVeCqXlxkBWX{A&5<6zxg-+i}Ioj59obqhI9nH+DBpxwi9S_U*Wf~`?;DNF@ZU%|0jHq`A#BMH>UhSPLNjrs$M%viG*AC5} zw(0ZA2Paqgw(#&=o}~v(OtHm^1;g?HP>!fvFK zbAET-4Lb-O8)(`o{vXQ*r`^`zH!$U^L$`Mup8Y+R&%-Xa)5`-7x!~p5zfH&Bw(!bN z%dPUoNm`p37$%&yj7aO&bjT}80_s|o1%7#e zpTQ}ALr&na!%W1 zg(F$chBd!7IQ`tX5#@u>%y$6xDb=s$e(@a64yQih!4zsV0y zCdTOS??G0?kfwkEJ*N|&+_`(W9Xb23jdO;Y7a07;hw=Hz(`pO) z>;P^4u}g46&}YUb6R!!TDrd#Nz(iOdPG^f>;9pD-LOW>TFQRQ;vRlPsk{*9P6X6F5 zbd~2J$jT>&XA4F-^OoaoZUm2y@8p2zsMU?Dv-{z4d}uvhn{?M#;-~>%-h9OBD86WA zn{woD{vbF5CR_v#Kgd_!_`6nr0k(swKD=YDay2V#o5_$V2omeLV7ZSrx|3wdzNZ5D>%r4 zY^(eMBp~3Wy7>+rz;oyL(tmTs?%oM8KCoq_lXIjjW~e?1Qf6LqHEC9}=}%;QH*<*; zD6Us-+{zA$TZgMTzv){330mk=4|3T4-HZbQL>IfgIy7f4a`)p8a$ef?27P_mlFc&j z60Fis&t|fZfAo(8oP~rT^ns6JMUMHmzKmZE)_;%{YJvk-a#%YX@+3Bjo?l6z*t~os zncz!!CEd{{-If^r6!;K?@N(W<5s$5CJa-{9ryXDa)0Td4K7p?8Fv8tDJ6!$Y!>pXj z>Z$TJ<{Cbl(AI!mYWOPL zGuiTH`=NR1*|W+D4l|?Sl^g8_2LTy$RKD#ukxAOXUt>lZ2#o@7Gk+6+k6Ja(&^ST* zba%cem-;{p;(!?-!A5*bkQJ8EwWOKr>Ob@*#T&Q+lPt~0`xU|9$6B+yVMJ-C>jG5U zKKjLPE9EApGJb$IcK{JB8Zl>PKO7}Pukiry=!Xj)TNd?OlHZ_GfM02qx5D3v%x@*vfSa|YrLsA)k2zk4=QUDRy?J%!dfGtdoFF^CYo zAuwpv$fOfFkgTh7(k6T=#4z%4-ZJ#WcZ@|)CesXZ18Bj8a2XKMZ-W{Vt&kFFf0Td; zj#3izn26V5OFeYhX7bQmvnZP&5?Xamf~fHiFgP-F0&oIRoTk35sKcKD6C;B=2W+i403F)T6{bOL-a6p-EO(4Si~-R3wQD(K0Hpl{$D))1Se)B-=;Y7J z9uZwejN*@Bt`-I67_p~gKogb6v)~>!b^xJBI-xYip~@az5Ui12CndaVgfn$Sb4y=z z)BwwvlO<*4OwPcGzj*7-?L>p?$b|-c(-{puHGOK z?~i`?7l%Li{XdCQ@UYwSygj&@L*43R5_GPpxgHi?F-W5I-X`jZ9QDy*5n0AWkj~pH zZz&8=EV(4$i%hlsL;AnTC9*qw(y#N_T>}|U$9emm!H)9f2xgRT5jl~3vF}F^XAQbM+=W*dkc2Ur;O{!m-6OBp1Ylm=aHVxBW)H?T0DjG#);j-oSmoW zhOyh-{j-!aE;0ZBKmbWZK~%cCaVthpA3iAiAG(hCEq)y7XyK{7;R4-2!m*77aq-mC zX?|^)86#L94$iuay^V8%}kGZm=^Ue9>O|Q>Jxx+xdm(y*SjLWE^wQ`0KCD zileOLfcu6S=AU}?iGnkpxi3K}HjbhCVZqD+T%kWWtFy`@#a0}K|Ofq)x()5 zpX50@oi_PgGwJ2G#mCKMvT8*K{j{q=kdH5B^^q-5&LW~KkJhQ34r|E{D7!q@~Ka}fF{*zr_(5}!SjNdYE)tlbU0qK8%@ z2w2VPAo5`z@ihU5_>KBdbhQDL{G$C__({HO zsx4=HUww=0(AW7|<~%+6BXxW=@lN=4BWDuXa`qs8wU@k~)0Vjuf84HzyALMVYt*0Nw4vo;( zfMvE`2?|1j9fe}LOkieC6gu>0I;FpMXG;2Cv*mzi_e`eb#TZFWF6gMKLv#Dhc-Iepl9Y{v)U!|*XT65wAuMX9@KXZR99Uly#Wfk5_YqX z4-**sBD%sxU(6Ofy#M5*k5hlfDRcd?<qNZ}bC`IpS{!Rj+*&8_J;y2vibk9`T!0%#}~H;~tU7r5-T z02Ek)${iL{_I!3IUCbDbR(Lui3m(NOeCKXePZq6tKuzT{ckA96Q5wXA=>!?n0>D-# ztgg_b$et;=fv+oC${md`G>A6A=LpP78w#y#kqtTCScKPBIazh04KQ#)pah`~2XkPYw;*+(81@J-)JG}S=MDqQ7d5n{ zT>x~D4(toAWtRpVO96Y3dtl=eLj%4&}4uPywC*=Gz=-l z?Z6TItUgkQ;ns;7WK3DItlZWhsvU!0Bc{PefDF$pWz`Y4(*{3-wKovDjt+*#$}{i{ z9CbX>#&n?YXVo2Y-L| zFh?$XP^@DRIRy1~Had*o6%P7!LW0T_wj_PZ;Zr9=D(1qgc`l@;6-;p6eaj?7$!Jy6 z+E$*)dn7z4zl4bGY}S-q?>HTagvAUyZ-)FuzC3%M|PeIKpWxN5$>j;s1&;) zJMmB9d>wQZ^u=G2(JF!c&^iVy5Tt>xQq zcd^wrR)!-*qEYg+|)3A>B8df*;`dg?c zbeH~Q;Z<8oaXdUW+FDG`;JWo?CM~NNo)&ysEe!$U?+|^&Yk_L|#%HIseEvJ)?H05O+B)BUB z_wqHr<9iKk{YZNC2V+y7f1pj{C;H@<*8HA^qdnueamKYLbf^2Zy1QLKMFK)zEh;-z{UrG8U9$F z>KEE-vsYFZ1w(95>C4I7^1}pC@M!uk9wsAw+FN!&yS)Q&dXQgb$qLQIAQZa$9EfGv|Z>y0vmlf8z0)_(nQW- z&v$dS4qy1r?K{Pt|9>}=SZ6oA_x^`DGs%~lpGr{bZdQ}b3uSV$I_0B}?&L-2Oj;dX zVIqb8nH-)u+({jC5&GY4qHK8i65UO3w!0xBCxIdyb|w^kd1%7E>co`bm20;^Z zhrUn`U%aR`r!ZNhyA8sH=Ugy0F5XSRwP2%+lfxQp!+)H~;Wrf zv~8Ya{$noCRawd7lV6KIpou-uUuO$&a7@4wfAkF(8m##0`Dvj+UsWFeor`5P7InmD zirUY?x9g;x=+F72hb5Jnal)T~%)g*aLoz%BR+a-xq8X@ib;OJ(egAe|u9m2AoT_Rs$(=^F{I zq|D7*&v!mX_pE+$u9I_h9EQDZxF9IIWe%thG$;}@&Dr2UN4vr$cnA_%5%utHwyj1F z1?brpE1Z0Rj-4*<=8oZ$!?EvY<<)0jn9s~vx(-Kgd#T5Ec3u$Lt(r0a6qM*z)7T%o zb{xQ79Z5g4J=WY;KQaF|99q>c7cQ;pqBHC%8xDr;ZR3lKT@I)*z7-HN?UT`8nyN&dDw#cFlD~a_R`a*_#s~EWIlZ};~ ze)av?+85k{cMv^Xu&{wHH_s~6EM`cbpeyuRzwgeO$PMoW$GQ+A^^F(!CBQ{TtWuiQ zQ0&XR)OeCzTNkVnjBVFn^kXa8QXtUDGxk2b>n@t$gBF3czTALg%83VvU68k~(aw^( zVjhBy#u5R~;DR86xW7avIPqSmW?OqG-p`cHlAs_(7Qjrwk(K zV{EN#@>YhyD*Y58^To zmQBXKn0F=0&8Yq0M?X6J*8lxGhj)MaZt#36tEFzXQ`1X)Od}n5!ny`X@z>i8olfU= z0AdHN@EG58WGmmaTW22a`9oi*RFO=Xm= zyjyp82zK#QAq844Y5vgPT_?H6ynWwHI2`dgX>ZCH!hj7FfKJ`dyDuTx-pTRHS@$`y8Sah1;e?)Lolo=z-$8vwzBq?H`y;m`0i zX|-Q?Cw+Lg(>6|uv@SSJheq36`~f$Az(3Ys&tFeJ=AY*4ZU@|4n}*%qhP!Rklsfr; z%UJdHhXq^P^Ox-%yITBLRk#pCn_X?oYQ4GnEA$xGIi!84ZUrx(2d*LZ4tvGVDI z58lrK<8L+K^!n>>9RBPFKRCSe=Gz&2vi&3DaO*64ZXD|5EC8)cs$;k40k=+OekZtN zoXz;2aaW#e_tQ#y@pb6*#@Gt-Q^A|qS@;Y1`1S9k{>TALx>P1Dc*>3M6+a;3GWhsX zdC|9A%5+SPefL$J!cKd}Ua)4eu>&%*5=5C!WI86;UKGD4@V$-pvW`yzR})!VOxhCz z%kc&3^$o5z@FM@l|J!(_bkelp}AH)v0M{el}9b|1wfe8`REL5{8cNuG6~H#y9)wK z31VHnb~7*8Zsbgy1f3Fqx_0eyzIOLgCKp$`O@mBAMqb{9zU2N$B ze_mSs=@9D0F8|w0RlY1;5=g0Uoo9N)&&8LA(HDw}KLOrA7<%qyPU9neENqp z<$cZ1%8rMTHyNG_KLs}glla`ur($merP^N#IIC?E47w9~`TurRz}HU$m7-hnyUjH|HzJIt0y%xjoo6_iZwPR7Q9x)E zWCO&xRo89fi9RK{tJbiA+~}bl1zz}eJ{NrXvkk7LuGL?7YgBQddAB@9j`)r-c!^m*?PiLER#ea@q^v9zbsHrcc2K9r#8TU1X7_8stk`_%L>k%}759 z-ugb-OE;f@&y570uHCSW?%d(#3ojnN_1Atr{UiZ~@bXb)ZhkYPr7>fTyQzN$j+s}W zp4Ss()5qC5dT#~j)vSWteaHA` zTj%`*$nbK`6v})ze8XS;wSl$tE2|wRaFqkJLucpcu~B#-z@z`sM=Qo+V5(a)ZqADb z{5%)i<7OTT1EO;XhSzXAH-+z)@z8*^W}6dW&v2et+~U+TR3q~oQ2A^?Y%&Wmy; zmVlb^^Rw^~Psl!mL@wDi6gfpWc{HDi-bR<%FYxH~r)(6O(x$DGf~9s~8E^c7H@iIZ zq3|a(8*}7`4ZVz=R;qOj4F&@FX|nCr2MEE&Z~EV(Fy-9Ub|7ASg_#>sDhrVN`@osR@Zu zDq1G?DIjjB5{2O0P(pYbc))-s#$mMdI%Byvcl?w~2Nu~)#4`phFc}Vf#AEoRYqV2|0M=c;}yb0G0=N<}^}z6CHS=-=#xx zkQ#(c1^A#5E|#Fyp{D#14x>SFwHt)O*V${1Z;Z#saXuI^v^{j-WBBeZ+&lT4_3!`g zA0GbnPkxZJe04AfW_oKUNYz6NQ>R8Hc#?_1j9!ps|J8Vmtm(t>j{}O<=~#4{Y{|W{ zr4xZ;Q22$v{?`w``m4X3-~X(*rI|_u{pdVi$(VUyI#upFF%4XfXC){<1@d^jPVOgt z`E{?Y)^%SWp|o-(_~=f9uA=H{M@!3ZEpIMaZS0YznWZ$sl5Od*Nx_?2zEtK`T}S-T9{-w z1vh==llGxuhXy#lxT|QsrFZ!XuzY2ei5zhBfq~2 zdcpBCu=*Q@DAww^-|bJrWGLs_ba`~ouI#kdn_@?rOCOl4J{V0)t@(R`AX~S2)wUKc zEr0A!0IYw^)3gq#Dks+hdu%H?n`VV7w~jsfDo24n#-^mrajH+zsxEzi@{vDm&@`eA z*Zy^1I%Fs7*zT$?t?i|Ld6@dev)~rY6l&i3ZM!P2Ys#nWNz#IGBERCGyfS#Tbvlp7 zJk2c_ZR0c_2bJcxNb<(Uq>gIJrp%_{EBDFA*JHWf<-Y~9byeRy3=-fp{}eu|(Tn4C z3MXaBKpz8dufPJbW3=%raE;48mwYd8cHe*hgKV>VBZrK?dicQ)ewZ^1U+LGp&gTvL zrM!7H2G^g-c;uRw3W1kNSA$Iw1E2o@ZYS^=d-x}CFb=WRbsXC^A7uxb23L8b>!CUK z#%gu;iWp-B_^0VEeSz1>V{oj_X3P!%7&V=2Mo*0w83*_d@e!n*<}*4vc~Xx|17rW1 zaDvE3th1l{u5wB`{P>jR6Mr%VO&-}AzM2VBc@jJY;uP4cr~n0zZ{X`%d>gRF|BH;0 z7iKTKQa9yIqBy%8e{!iWlX85P9e6e_o1Dzi5+gfe=SO;bUw<%@jdbtvmjb6>TZ_MG zHH?P9{vvIKyBU>yUCj!DOs4Y^l}^HeuY@n;&EN3ilA7|ZMlU=m5jm!8$HzSKS?Eyv zg6!}LzvylCVDVpi|0R9o?!~5qhqFz`>YMmx&z!%KVAHL<=*xMVc}xGzm%deh>iOqi z%-6wgX4Ots2*kI9Z-X#+r^&_l+@=ZqnzKRO^Q)Xqlet%Q@XG`ZKEM6m;i9tR*htJQfhR=3~DwxmZn8cVjGVakpgBIc{@R?u(7&KX66B8DhMS& z_b|sX2n?B5e4N!Fd_runoo$a8-o#s>WI`^uK^~pYShbYC#=o(hE#0NjLMs{QpXMxQgY3oVk9!A<+rnoqVFDa&X}P$A4a{MsKwr;@ zrAGnmOMRVNg$7&W8VpEX6Mg-{3t{%2#_F?tZ*=4FxyaIeSD*#=(wJw{FJC0H1&Dt7 zCs->8*K?nONAXX;O6l^idYp89L10hN2cPJzUpp-JR|RLKSuhHnw(sG4(CaVzW7W*X z=o{V9r;#lzhn$rhoP8DWa)JixS*hFkXm~I?lgy7J z+v-;qfkaQ)7D25BRw8>eu-jl)r=xG49Ud=GVvN$)@P?l1KkV;?>_TEM_Z&;RY^^P} zk#ul_&%ksq_yKo1Z4PTkmAWqW{poC(w(?ATVf2q3p7Y|!j!x0jo{N;gu3%LVDR1=v zZJ$k`oh>Hk&Nri94cvv6ju~ki{bw7n3XJH5m8q`JA{#*{2gVB&S}nyu%o$aJG&5GS zd*rN-v6*=5jHjqy`&3s-(bEXAdJz87dGZmM+gl6aBW40`V?pJYHY}vUBW*;1n%=QE z>7Bm@o*K1NrAqbt>z@!rplrmPeIA~N`*lu8PAsRk#!BmEr z(ZnjWm+{HRv@yoxJP^Fj*ui9RP5~t--$E~1+h(MO*YiefguR^=gNpLSIe-{A%87moBfuqC zQ|Cy&j!_O_;W(gZU?A`WU6ys?89L|#ypq*7KZPCK$b1f7pEt(v1Bc_3oHt*8_=kUd`0d~P{qQJ;J{``N^R8qtU|itNu;nNJRtKkd zkv~0f-OHhPjf#hM_*Vy_Ya-P%P!+xM1aEaBx{W_Cm%JTrLUpWqPSZA-h#GQAR} z4*qJx{&95%muXWey0!5uF6tHsZ6~*Mp1^7Dr$O9~{R- z(Sr@6_kryXc-lsHp$DzDG$4UH;znl+qj{)mW`EkpTCtC-&fLStH8c)>Qed{5Db9Il z3;l)10IZ|(wfY;DGHB?PANO>!X_8CZ$|j>lcT)nsc;}%-rO+D>6*fYe_(>;CLO(x$yI7mN*m>XAPv1E+ip++(}D z@XGgCEm6jUhB2XkLtlQImgK^qON;LPt72_UbXt22G!)Fh0TviK;0vW7tW$qIjj=5#AUcSxwt8ny~(BorP3km*n9Qn&?ZL-aH6B%6TjcPEbCAJ>rhm zuj73hKlpBjC<<==uz$S|{+pgUf(ssyL1X$=>a+Q>T!KjsPrj3FLx1_sJBK%a^5)_7 zH{Lk>=+%7XE`g}`|MKmON7*W#i3+>s#f23vCWnZkQ+$cOBp)lW$| z?HR*6X4c-%i>|(GW51XD`-U|7iDwN~pncuf-sb_FX~VcNW1fjV*xL^EUVltoxQ@>^ zzE61+9^jdAPrq%jBxTjxyvEz|xEw=s>f^OxC#8(h&Xv5_tr77BlG@`6LN9!ZcwqX_ zjJNE$?K1y5-sm95w2hC(ZmSox*~wJXy{*RY=u)2H+Li18bvuZSv4|x1T=Dp~G+f_z(&YHxk^s^Zt9Ca9z&<&YftcoMSZ*$j@`*yisxz#1Xig z)lF$Dys!=LZpvG|;%ugma&S4H-)a!6gPiHYALT z774Bi6yc@77F)|F_cEG}m|s+nQjg|Xb!b(FUTi0apxgu)oL`lHdB&Tlaprni?GT#S z67cXxP}j2{p!UpNtRV9OJ6aN1#D5Q;`2V)+!A0N*E&>Mh8*SR8-R6gmItl15Zh(Vx z!OTOgLK*u=2gxD5D0JjDa*4ht-#KOIIwo>oKZ+@e}B}anTYG=MRFJ{eA*#IkCqASs{C;8&{m8>>oN6E?g zQRv(AwZ~bZ7X#Hij|iW8 zpX4iR!NajBQL(^G5G!!myK~X6t69M!*eD=+KHI4tWIm*=+Mop31%4d*T|9%gRZRMT z`QyFJzcAM}JT~%Tw$sfqCg^`EeL1?Gw%9G(F6~mW&_gh-&`Z>G=7wbXQ2_2ULbHXgu@3{MxU739*^9GpraJg<1iSemx-q!!QUc3tA^J zVa^QxjDL>(r%OJ0qrtF0c$ZI?HAp zI?zO^IUB%;96Gel#Tba%%G1U(S(5KS@iB6iG{->+O*%{sXLu_T956NT(hOSDakES= zQDAS`@ZZ3Vf8%)SGzs3pHNpk}FVX4-9P&w5E$`9DXd7hUU*%2Fo<{`nTpUugj$#V> zS>=U)1DCT0F1p%QVZ$SQiVX4aWJOkJPkZ!-P5^>8yQ8V`-k88t$$ygV5GfOyOPgHT7DXHkpNPbf2Pym6&>(a!*Au5 zHt=%~;+Um_F;LpYGqR;$TPMhlJPcZoGT8p=_r81hrC<8*WAMDSh|x_uuCS?m36TDV zbA<(NGnEVfWNN3P%DsBzMt>{6W=t8m(}x6IUF11sc^GXoj`HM5?a z^9Po8{F^?i!f4G56ve4flo?%WnGHO}Mu#^3DL3Lyv4v-T7pB3Td_m}cZUQ$grjpZTO4!g zL(5d;yr6GrIf2@?@>n>leYszup}G;o;21c)$-O~XInr3{sa`4;rG;dx^b30XzC=o& zx-F36ZBM-bs!rs;;#6QVWDQI@_w~Ffaq@rZ(k6KM(_b((2+W3`D%1Ax3Vo;S>M15YUx1IdZ!I) ztpBx<7Ag^&jyACf>yM0uSBY(bT^cNZPk4Cx`7|HWpudGRa*n)~G8UHw68K%tFPiiR zvZ}o3toDYG($T!=*8Vydd{6Ue+6%A}l%LW-Z3k}K05|#W)m5~7GAr5_5KD(8!NcEP zt*~G>dGSQ%vE5Z%9XO=@-mU`ZEo#kMMG8FsEtr0b|7s7ebt3aD-HHI`S=|2ka;G3!_-J*H(-T#eM9e#%Nn@ZVf~1o<4$(w9u*5XZZ)gM*82 zH{)&EOkO7u`K{xcGP@swk-r_&EB_^^zMv^gG+^q&DNh_|V=I1|h*~XjIg>dnCm`Dc zVnd_tRvddVzl%rk zr04ZFGo}j?;zyvDNBl5{3cF02jO|v^!)2cj)qau+^j6(3a{fvWDo+{yEP0wJncTpe zU(;1Gp~-~0fz71X|61}OiTYXLZ~fTdsD8IaMW^sjTl)9NFg+#hjf{sEM13>c@2=a5mu)tkP{x-^GYt~pe(hgw zzzo90rvbmTg}->JDHfr)On zAf-*)oCFuG_UJjTe8Y$F0Utb$KR90_(|RnC-CMYLh)x~s{|rGgOzt zV|6;8Nt#Kt`9t+GynY;g6L7R3pkLHW*%XPdtp6q`nzjUf1mO56f{bt#go955QQ?L0 zxLf_g1AeYxtA1%^5?wA%X-^rnT}gXv0bW)=qZ2|vT^*M4RzKOoV8M~v&lU<0 z!8v*(P#glH2kBSQKeq01?C!I-o;$qw!VCGmmHu)qedAhQa9=A7ebAq)*@_1taM(Bf z)jY>mGHp6{s6mC~ds%PAO~-`rNS^uR4mN-(&zVuqj`F28Fdin@YKvZjohfg16n(ZO z%G|drRf0p<(!eLd--B`aEl7`{%%$z-npH_ z{liPTa5F(-D_I(33?1g>{eV}>voqu<=phir_HF*-H-2=E9$U;FMTAo)vLR#r%VLtQ z#tYqocC&&pE00pv!U8K6^(`xy*j>W6c%X5FG^S7BlYp}}Y%4aH2#}CByx4AH77Vwz zq_PfND*-#dPX9WWU`c~I;fd{pY=doObiF)Xvh>BkInpQG3s5!~E_s;MPPudTRvtT+ zITMOq>|&ehU}y->%KX$bmvlvaMo*LGi-Wc8;Yag|=X_01Fb5q?PgycRKiZ8Gc+6l(+>RRZppI(arBO-W}kyA&=4X$Bt$YGLd|Z2m!PQ9Rx6ww1HT4?|N~@1! z09`$JJ3>rS6%EclaY>pwnB~GEtvZ+Bj{(g;js{_cDdPkXdI;eV_@^C8$gnc9W4y8? zJ;uSnfLM-*uXFSO^U$2zrftWA;t-HGJ-SI1DbJ&Tw!me%ZtxAXD($TL8fSqMhW8Xj z`v!1w(q=oi_M=ewDX$>Qn816l9;;&-n%YT&93|8d7&G!k6F!p}Wkc(BhB=-(A6)5+ zW$XqF0|LVVk2)2MN(K=)=~M=OhcbE#ZHuNo+3^00zxcu74}R~D4nOACG7Ez$B zPqkIJZLM+}HXa}A7QQOwKz>(3+e1@sT!lS1!FneRUhq*Zm%MOm9`Zk^#eKnPpfmYL zxT|EJ;k>H$XEm+J)+GZAzPpYztb1vr6Yg@UuiaDSIWKHmZOo~3^|oUgdi=f8~y{?C=)5F{P^!F^zB zqv`A*q9v#Jv5ob-P+9O4o3gu&-6rO-ou{we-U+Bx7o*p;>w~*(qy9%HH{OcMZ`puA zyY`j$uRcb`c;`L6_x}5bci#ES!y9k>z}rgTHCrwIO0^Ev&$LFGq$R4>|&=m)ZiG~lpmNgwzqF2t$k+o zNvJenkUIOm96)>8k%zb7@eMqK!{;m7p^$GgFI@ORGvR7}@HbZDg9|VJTZ)Z7g?9AQ%i_NRnh2&R>g@5F+)Uc|&fegA z$$2*Z(=(Zvoy%A6tZce`@yg-Wt(WqmF6TZy_wwPTo8QQR)0gw_Tt7wcAYruC7YrW^ zrhGw2)mP->Ws*HQ0LzgReWZWWt>qmM$*^jF(i1TZSQtSq_n$tU6Ur|o0<=xoy&+VyY#q{(z& z)`nT#1yCFXgXYMJ{W4fkihuYxe8WS*D)K=$eRVMT*o^3V+OqYi+uzbZI*BaZcs4@e zPdVR82b&4s%whPMRwqSiD^vbb{q5-7mB`6CN4AMIw*PxzUT+cMXHYAUwBRBz|39e#IpEKp61jnnukh#+9-z;F%vDxZVVtMh5Y z*C6lb#lPU7FXH*a9{WI0l~3T1zca+(kgBzHm$TYNIvsBxLQFb>xdA@Ig-ygu_T8CQ zY^J%C^Qy>cUwW$Thx86ybp@~PCurwOe&!LBhP?50_X{g09qxT4FaLc#(MxD{#n%g; zPC0WdlXqWwyq=)!w|?%gHSpv^1!feA~*%U{zeuL?>)$& z{jqJa8z%2wjBlF&KY?>R=+_3felC6Qd@OlvjH|j8iJMnBwA|{Ov|b+YGt5B*RUTxk zDtfggFy*W#b5{Y}&vJHB=eTSBraub6vB}dv1vE4N3-0DMcu993WS)iRRvHSbG`N^H z^+R$Oh+-qm&&=y5zA*txYW1> zmO))~y~|_68_OUCk-X{9ap#R6=O)XUYeZ%h7AM#Mg9j9*1}6wHNYykL>2zt>F9Sg4 zl)Q)+v7y`TY){O9#NdbbExY7zz&8k>OXn@0!zZ1p4o%v(;)ro1b9f8>Xjl5|*%w^& zmNL8wTz|BwLvsW;9W%&BU(z`r$AR-k`bzd&U&~V0x8Hp8@VmeLdxt;&;cL~s%h&AD zzMMAzSIa+oVgRF?PVeV5I@I39c+q9c;b-DJ(PTj>1_C{3!FP1dsym1M<&&Jz32&_b z#^3nQ55Mxg?;ifspZ~eOk?G{L&`Z#+IK2OI7@8n)du;<@Nzb|8A#PM`2eSrp> z)Q3y{%muH(k<8%{&1#vQKk4J7Pe7{F4IPXG1kZX)z+q^ zd4-a4p-1{$c{XeeDueIJ8hCl|oP4;!3mzx+Cl8KCkbM~F1vp5pdPB$HukFA}c`q8K zae!9c{Oq=Xl;3*Mr92$%%P}u7%A@3N{950$Iw{EhH7~Fr?9Z+PPSq_pTfa7(WVL>O zdwaqIe1h}ovV%AM;(SbhYhAbaf9wwf@rcJM+T|3tqN)K2`PbXwo#%~fb*Gi4%q}bG zc&YCSjIv|=n$Gwf9%byrZ(C2`?!ve6ui}%ead~8% zNo(5R4|q1Fslz#J&>-z?nuk|-kbh|(J+AUIIH;!`K7z}*U*9YDCJzEAgGca6eg0Pc ziL_NY25E9KHqRt$97|*NjQMl)0J^*o<1-n59Z!&&8QYzI6JIe1db90KvB{oo9Nvao zje}N>c*kcrzGtOSXocd1@4szgk;dE)E}yU(lqNX|%pR8l~gK_%`#hPd`M1$)d^p zIl-6r-#R>b_szr8NxS)tZ)PHt6;V0Jn14n#`-_0>!~BELf_5tp`Tkx!nsCXtisx>= zo_rQBBcG20hkph$Ww(z>Uh?l|E1zG!IN8#3umvT&pfvfSTeiq~5sIuHfFD_3=6`~d zG{H2hZP3gA4A+x4t1ajr-ssU!Y5g^ct1A$ zLW15wt^o?|gJs@m$A~S^bZ7ixi&U&WdmLMz`EBR~i>?R`x~HSvJ{F$OIdK_h!y7vE zOag=WAy8_|EoUnsFB_<3@Lug%@7jSYb-H*l&R`tGkSaRxFJV z5XR)9r|RM zT`xjOKH(XJz(*p*qL>bUW0Wa1!*VxY*+2(jPUJ5}obrVajGInqHJJ7|Koh~u3Y!f2 z6p=DrPn12arcG}GBZTmyXD6lM!DW`jaTM@~5c&qLhAHsVHkU)xnc}FAU+U^SF2XVZ zQyQ>+t%72slhMGh8vYoRfbV61lwT*Q@E9*j#CXI2Q@AQ{WP=A_q`Zq$+GUIRg%25W zK+(q#;+1n1hU_wYb#jY(kN&)Wud;P$}> zALeT=SMzr7*}SQK@9^8d^LvLs`h!0$4=tB%y3^D46KXOSGeIly=t3tH}|PG z_$a+#pEMyc;`ZQC4*)-WNEx5||-Gf9vJf3o7(p|6G+ zo%6RcabG%9qDbYr1>mcV{!WqTPwUScJ-~U5t;T58jt88RMFY@Quc9TzFNN><;mBBBzc*+lrZ6X9|pDmM@ z+u=oshl%E!w(fU(!!Ma&&TsJn4fEtA!!1Z1v?Mp76$bv?g3>yzSzOxev28cSPr2sj zx3_Ajn>MsHw|$=Ug6)5;52wiBDDQ$%X|7{>9`Q__;ZQLfeA3Vk2q@ow@GBmv7;yBm zxcF~XZFcTGw#EEc8AUg~QU)rk(1xjv!p-kaQ*6WR{r}H@1*g6IVK>Rjcr}+N7<~=) z&RuP*y`98`UQ4L$Z+TUs^LVV|Ua{emHg{_n)U5F8^ff$B%F3_)1jzK9B=6$rIn7_K zq+HX6oZeSHgG8HYe#@qhSI-AG$ly)KpujZ_?O=Z`BAwenhJ z;cJY8S9#ff&4C{$vy+jwGxF88ah{(6jm_WMB%n-QdFLPtXznzihY(9TjfLi zzH{fpb1yP8fw+3<+Tq5vd_MlljeOzmn}?g3G`@H<=RMuJnTbKRO2n@+QF$hH1UmRg z573>K1XMcF&V5iVAM|B-o2Zyzqn8f_Z@TB%h3CfamJcOQg%1zjdHrza-uv~{e0A&E z&FAA+`O39P%&eBMWsBeFe4EQzF=aJ_$x`zp>-(8Jo9qd)2t@fp)&woH0wTWWy_~Hh zkR-5Uo-i-Jrr^}C_&oGc?o~n@g$+|_6Hwyd));A zs_^-44viOh)Q0(4&yWgC0VVvz<7=raNU%Q`5E6<5+gE~=3t{ACb&S4bK4`0(-6n#w zgz`xi3V`eUAh_rgR?v|Fnc-1)Mdity&iP{X&+^>hM{I~TAKbkkJcDm!$j<0*`l%0B z&?h=NW5TkRbhWlR0o~}B@xf}Sy9sFNBLZIZj-96W^6?&EaC9iPt9>M8EJi_)Kj$(Q zNZ<2bW${v8$4$R!!&XFcQxBi4OwwP}Q_gBUtGH(Om>7x|RQgE*KX%{bUSOuwcZ{RjgPSsLs!aJF@;z9 zyRli@I}qnZ4f)XT*=gudd0_Vt2u$BG?f%2D* zwI5TX;9@a|e&m|;ouA+T^Q+dohgdI z@V7&SXif&h*jLfFiGr4z9Kvydk70Oq#4hO5+MJCg7k$q*F)Y8OAxZA$MD+Z@Qyx@}VKCqQb-kc|qbBY+m2$53s&1CSWT#XuswsxYlS3HBm-U5f$ zOMW4IXouh946y0k9&95sAy za4bL#a2x{{<>o{R+Tcke>6AQqoEL)_xw_yk_~c+nZO?!%T08so=@5hI`Ch(;qH~D| zlaE2{b|UfL|C2vE{K4=1VPu}=!!hPM!L^(dMe+9=-8%Ncg`@0~n)qos>-{XBMB}9x z@sLy9#gbV)GzMln?HS&y(;QAlLs0W-f?oggKmFd}@BO|1x(@glxztA+fC1*W&x;3! zvM@LQTxp|a+~UT*T4O!9pQ|u)3rD4oIZ@=PJ^$B1%x$`HN{!K-6-jW>$qhW?Oaivy z6j#8br)0HTDZHf9*@}*n!r5uX)Nh@kwM`~{CDjnkL%{9K+{p*eufDXeI&Q%T%>7Ru z**ADl7+Y7>4S*1Y(z(~l(5&9@KV{sXO3&@_c{ngI@J3Ey^|p|k<}t05hkjk)j~z+> z^6XF2pw+Ueej@EA6*lvg_bf6I0#(R8gV0&{(Zj#cq=JEb>8zry=f&d=~^$SCGP zI6ZLioF?*XS$o6a0$(g4drkyyb{~us7cB2j7&$z~VWTPxETyvwzhw z77g6-UmSM)VVwA%{_JOmpJdD3kAM8*!(Y7e>fw#oU(Z|UyM=u{&aJVVBW|qgq$suu zT=vs=Juf`QHr5G@PlIA(lrkJ?evnK1#tuFKz2WGkXapBp0@K)Ok~nyekAQaVW43gY z2ma9MGCL^1H!_YGvjMIx4SdhqhL3v1qxoZlclwO$td+XPLoXYLZ>2;1{Im4FZ(ehM zIR{`HKdtme4}NIlZdP&Q2d%Wy1YUfi`YdQp-{GWcTOH|Nmd?}&f9R55u<#xpa6o(C zqy~m_cg{SONlx&ouMt0zvo7$&2g0j8wwQF**@q+kgddL+^x$U>?&u0$xda1Kv3|nX zt?Q zIr!`?B>g0OWFc5#MG+tKb^-z9s;@pn?vWwBfosC3ZNXXa@P_}3QIF|Vbe!+$tfh}L zi6`ghZ6`{3K^yaxC&5`T%0c2*_plYV2x@a_g02(3j(s7=nHM;Nb`G-^*kV#5()1C* z2eJ)a@m(7zO?!0edbXeGe~%L23xh@{f;T_hLH}W0`%zZ~1rNTel_&c}?A6vE8%D?I zj!O^+{rZm8MkdDmWx-_ENBQDmnhmVkiBkOVGwu4y8v5|mh35|gPoDP2ZcaeO9MXzM zcB(cpa;GpHJ*>?5qtbBUzrRNVn{|mp6z}VHEf#&e-^rZ5H?~iwMgMYxj;1OLG zG&hkJC}qE`ydiV?3XjgA%GWe1J+k{O0mhzl7M#h;obFKqj`UeOUNE{Y=0g^~6v<}U z=2yFsK2f&kzgaz%)g#dSH$UEw~d9rz9xC+qYu*$1QVl!(SKjEv# zw0xeM2Ew8<4VI+cjt8kvf3;6$DtNYnP^`&CresMTUdod_T$0!Tot0L;Y^SgKVkMjF zEAi)}C&ob^l|nVRbPQhRqv;{xCp}AEY_^3h_-bzJ#el4~O&-a!<*XVJ94DYW=f3IR z#v)&>q-Xj)zLFK5v+WJ~rG4_;aRvCWxqHrLC8IonC@|&IU-x*We+P-$8+IlPs4W*C zc$k2=6+o90_!paS*=A|w8J_A-#%THq_r6dGf#ghY%t@{G`v3U4vu53r<2=mk^l*lK z=BWn^BxOrMIV3wQg(P3d!-YhNV#pRlf+#BVLu_AYvK*4ays&?gBPdP)L2v*8bT_)u z0D1y?I`hz{yN}-I%~jvt4bonF_|{jeDl0Q9D=RB2s}?a!L?7{=%{9_|GMosuY3Ape;r$BQJ$MDv`tn+gQ5x9#9ea3rv zg}bBQ_X>K9wRDN#8=Av>hmUCogRio1<^did49x^3^y$pnjuNV{5T7s#9+iPS*G5mW zy5hS7;3!av%iv+KaZ#+4xUF)|607rRuMhtl9&5!z%>wT*TO`0#SVXLW8eQ9~iL=!9gHVmcdd zF61fS8YAJ!I1KjBq{Ht~jNM=P6iXa&#i)gsSLefhy3}T8+ee}*v*wIe3n<9 z{`Wjzw2cG&$pDAgTt0(*zlN9c_CfN*VCw|2z(x*N`z-k_4``FZoqD99N!{x0zg68{ zcd|5j;20L*x9ZM)`pg*mo+zBZ@XcL~h5)WnlkZA?@tQKNyXsIGbSn*~^xM)V-wX)w zfJ8qRFxhj_18CZdPonfb?Egs{@L#y^)1(h=@EE@=V+7ebQIsDH(%?>7r=IO7hb8XeW{O9w)rD}tM2B@zo{?j?P~)>RmE??-9NEv zm6HLq%5Tdq9MCzFlLcqdF2DNxjVyifdmzkJ*eB{bk?wY=m_)FPt;$@Gl$PJ}%5CLq zuPaa67xw&kPVN*~aEB*gGzbA#UxAh`(O7G=LY=P~0;YiZvDqZR;&O5E`$MD$^3H;UXq%FLQmvW>!vW;J= z`!o0fu2h~?mgG@=5|+&NYyLIo&!l^{E_J&AZ9tO0f>HhtE_+f7uXb&w6aVC#accD5 z;%T$sUn=h8Jf90jX@zvIwp;m-dXtCo$5?jW)7x*qz5VcqdCT3auWfI<{)6p%uY9*< zj1k7_E(&D~Gp^DJU4hKF(8*C?nIIbXjLVC6V`xra!Fw{qsO$=9_-ss+rj8}2%@=&j zBl`J(cUfKjYpbT`pSqN7pGA6k?;WAw)Z{5#VCWka1e`T2yp#8W^`3>}~h(%wz#9hvTxl@UljC>gc38b^?BO zlFyDy8T9tb2P!QNnppWu<$JrA`eYl~w35qE9+|*BV~X)QV|m7RM@)d~JNkMqOLU4f z?IYdTZDn2}xnZl-Rt$dHy=@Lg(p~IOGQ)l%rxqu}`sB0lh_AsT_7{M)D?@9*v@UIg zG3*Hw30ub0@A4fjwh1|Z)RwpBGhsc7Q|DqL!f#x?wp~pW)b%)`UbNN7VdI&Q+4`hS zL_tyKYfH>Jx5%5~*pB*7bzt!7PrkDg+vZ6bS(s<-YoTqOMbb%J@C^9&FB6$h@88*O zz452pbB_|K6dQ~k&&G4kk?nvF?&T~n3s@x7e54MqJ#<4uw0J z1i_+_|BM!?u{>}U9gnYC55i}sR%Y&rYovj`UYO?LH3ywbjpf{O{c zK5!us_4=mBrCzz`{4@xE97hye_(J5lj?koAOw~?!V{$DTPklk8c{!5Otb$2=>a>5?#4kTk9o6p%Wb|7J$x4;D<8zUXxsSA ze?^gHz8R;uvxFOg6yAB$pj}et*FiRYX5>XXn3Ixc^gPY8nQN0X`Qo?=3oVR136ACw zoR8!SGWe8-c?06@^0?zlWQ-qRbTQ{=UgG7fvgm#3=BN7QY^y6lk(F_lauo3kcuU=> zycX5lQSq*08tDpu$T#`q#N`J;MJ>71KM_Z1pf4N>CRiO9|iPB0>T-0PIuP}JSu_?v%y z`^UffkG8LV*spj(49M?Ui1PioEIx*|_0x3j2E!BY%> zT!EH!_Y9ITOa{&jO4`SBykFPO`obMNryrLYV8V4TF|bowpgE5KCHwYdZJyM%1 zH=GA^1yah?&<;}IR#Apu_*}y{>FOzecF-mhct?x}FVIqV5>7fMMjkygDZw{5qa%4; z<*%mzP0}QXPe~YVY8~aLOyykpoz_0fch3)S`Z)gzHmN&o5VVueont|H>Q;USSvYW& z=P>b?PuXS~oDUHnj`BwxM)zsGiyT z9r7Vm^%nl3Uy_>z^B_x0PVq{aX59G;{?1o;&85a%{kNyclgAdL@QjYJvU@vQ72ZqK zQ=LyaQ}Fw*y|#V#JKx#fiZjYZPh85`f((5iYDZ+epu-tuBU9u!5B=toJya)8%9~7; zZhbEJ!LiShx8K1r*5E1oYCL!0l72Y$(7aL3grR*iW$3m7ks0p&7#gaV1IM{0aO<|Noc++_0+R1} z<7R03B#T1qFnmL=iG(^P8fnYq6!i_-S_yl=jyy=nMVR$EIK4 zyS5CtJPaP{4h(W}`h2$BCF<$o`Kx(@*TuZaDsQ;Ecq5-T68-ezc0LXuZ)Co7{c`1! zEVkWqW0Lo2-rEi@lj^avGttJ6{J~w@xo3NJk{i03H=iPP-~h2?>1E=LE=~w`6(<{q z#?!kWZBK7!GMrBi6UQegd+XM%ly!^+J6H6=neEQ)+o3b;7;d=AsR70_nUtZ|Vk`$TM+sS-K9@cl z+?W0CU}Ze&>bFQr^p~TKji(!)n5dFImNvVvUsXZG$h&UV-_%tHwzxwa@l{*6=Sd-}?mMDaZ26pz46WbKUgB4>>U&xMXg zh6ac3)Jaf7VFu?1(Lwk}CcOB8(@ylA{=(Ua&dOW(;QS{JBl_%7&PueMt-H2Dr+Z`k zQO@<_a8lmeMd>qdIdrBHXQqCGe*DUpoNIZn&N9w0ym>ZboATOLf9ftWEHD2f>&k@_ z6O5BFIq(~t5!#H`baG`Su)Ba082D&Rd^Y0^9m_81?2642-6Rmi0QSstUIK8f;~06; zw@&rkHGGaf3M{m1^Ayds+fGo*egB6B_2sR3|Ibq%Ka57$G*%os5jw(PKrw*jw$BNg z4l)r*(9Bl~G>qtg9)=n~lDPtboa^OI#u`8d5rP{E(fE9r zi>4YL!N+F}#4w)nqu>cUfnr$cwBd93#Pb{eF?!Oda6KP~3FQVSf}kGHF`fsKas#8Z zrB2E~XGK4_9e{!rei@u77SBD?QNVVgZ8~~FTayls0a1ql+aH+z+I+#MhIMF1^w4cJ zM_o~d(%RX^&?~;Qyo|ZPGmxv_AfkSGoVi4qoX=C~3owKga=*9;Q%;iZA7EuWquO@0P$4V82x{o!_$|1bXKzqI|@*Z#@&mw)jW0|kGE z8LcO`jiM=kP2}fV4xA(>ZFrBb{RXwbn06WCR=#z$tuTD&`IPYmwv?>Q?$w8nd&VZu zJ$lHZIz{;{U{z|$ri`3}TkdrD7VW?CL!V5>Jd+ETgMYp12 zEZ!aR0eIq4qLaLy82zxPS^e&N`D@{;Eb+F{ymSj#sk-)r)_zHw!^c?M$b)JIHa61 zewSQ(G|>KRU4I78y;ddAMojUgj?aSazXCkaTQNPBmBpvxQK}2{P^NVTw$H-YA0KFf z?T+vMa3-@55x#PDOKX zE3m&nkt!H^V5B~Eouql;dJ=zmr6+5VSkG2oj4A4cm2b_Ttj25Dw44tFfU)NRFpuS* zN0YyG$QIXGaR^Z9VjYwkS5R~aV8KG)i*478TkY_U)NsiJt zZ8Lf-<6!bz)mOIl1>%8Hw0RKNg)yqC-&flJDT{I4Bv1R5C#knTc?hnt4Q?F|i!Z2U zZQE|?utkeT>k4y>NDhQ^8GjkxVB=R;`!!MOdy?pLwv(%PgfGUvMF|6%9bj_Y30D}w z;p6-hW`=%3L$M3kQ}7lAQO8cw@Sr>mT(%6n;Q|kikUBxqE+(cZGKmt7X=Yc2$CZ_~K`9EX zu^G?+Z!n0qCNNo&4u7~Xi@|^0~`( z^qfru3R&am=@At036AX8%Bsrp>rGhNM*W8<@$i%F>0;C1fs39Hh2zo}v`OjCcQmvw zgnsbIDm(l0IG`TC_k%bV^Cq(_5IVPo9c+^4zD~UqzH|F-Z9rS#*t;e;`VsD!Yk+Ml z9;E3oc%wzcl$ZKc{$huEVU5G?O@5_Wu@{+upSFZ@q~$g+GrW@-*_@ zk%u7G=lUofpH3caUELYj+O5Zma4ZClHmH1t|Js<$=wt8`X~j8*F1nCw**pf%MShX9 zMzDoW!2r&By8hyqwijNwxqbP|FZXOQ4xVvj%%Sw1>!fXF;XCjWF=I|L=aX@AIm0IB z!X=R4Q5-59K%;L&o0xk==EJ1>IlIVK+UiGgVr~~PGGQm5`pW&h0gv;^8BNt?7J_pb zQ?vuUhku+gGk1#)^F8ukot1k|A`X{xao##xhn(KM{bBGliH`$0x&=HsO7xStaNqD| zlApO}cLGIrwcV``-;WdFPH86BpJt)Jb55fkR}$wFd9WD&;K9A%ocUew^k^y3F@U-!+;sK)^-o4eax5 zj9peZ<;;UqAiPM#V`vFu%XfZ|I%SeV4(mh>e?`P;bK5UFcH_JLn0A4m=Z95B zjs?L(aLVb7+YYDaz$B;qDe3YV&yT7P=ja-XF0&|89g(uyNZ(H-bs+IE(0#^Ux}yB! z7YbiQn@y0AgZLAT6+NZT^|10pn)OWO^uzMcivl9^`m;V^OaUu5;f1jk4bm$9l?z`^ z{mcLJKR%@>I+zEMIyu5rg?Z1Waje=IfTyz&=BZ%bVAlo-3`&Ob%5Q7YiM+`GQWSwQ z21uRT+xQ3_uOZ|f#~WB9TD^he@H8jzYex|>l*T#(Nyl@wV+AkH2#lRFVPaYWQ|p-z zJow0~bLgzXBH^Y7a3E0_It<$DAx%1uqmDSyUt{DLEGbR`wdf@H9T3y_g|*|gyypbb z!JY;`11etB&`SCYiX1j^nx($AN`ZOfteb`$=TL?e?NnUHS?4<%@WvoTPzi{TW~;L3 zSptVf0~DoC7`3-&V|30y05?jAmp-KTo`Vwae#8j9W%I7vO&E{#9J%A|Gih!i9=725N3EK`|Bx{Z+-Jy+wXkiTMco( z5@mjL@p3x>INHh8RmceZxrBL!ja4$}qD;szywGRB0^3Rh`5T$lK^fRH2#4Z^bhdpG zef4W!`_=7l{jI;*&RFM2Ys`R!xA+s-C8W9$%+Q<^ax~lTh6k++a-PbN+jdsB_)C-I z68f5d2e{fqJ)Tc~_x=F!Up=ti%l3OgBtIOdz1=G}uvS@xj$wJW>Hrb!1tU4W~vz+s8VDqjrVE08ZKzt@h=~Gzr!Bz3c=jJUW;#s^huuodp0-} z&z2i%WY|%fyz5KKESS|t@&$nVUPWgBuYCKHz;oyS@NVivzlrNquz1PT+HJR)F1hI7w6P_ew^FO7;Q& z!D>%iUk33*Iqkh*$g+63c)p5#;j_fZ+#ayl)hwmIkA^o3{y~nDyy`pPoct%-0}g$* zw?hH%{|@-+_9`(*5q=fuXZLs=wlF^%-;&2u)|Yt(|iveeip2ir~Ey^m&FfY7Hq~qdceGNur$hyNyh^cDSMTrf`IqigVlbiU*dTunI9 zG$NidZsw7*E@~^~VIw4D3Z3{|Ck$P@*UpP_5JA3^mGU{|8O9=^ zOIPa9?!DaSXPh?~pF)E?V4utDmeI(TIhP47+t2vfg~t$u7OUax55o`}q4&|*E;Zm` z$JCVNSimDvi%o0}TQf{FFC=V#N{kK^@vxi$^9JIf!I%rjPEcbXzyUCaZO6V&{kABX zh)0&oa}EN|ld*5GS9^4Po0}xSGhE1)6ntlhH%cSCbdfC*N!B<^*e=FzbV={4v@6eH zLU@gEW#BSplhlf#$^k*%r{A=K)X9#}4k?{O#uN1sgZ?NEoM-SpcH|4$a`(cEUrDsb z%^W^{vs>_PUb~S=(b?ES?AX{Uu~`GCw6#C$SH8niJ7=sVOCke0kx1K_{BnMJrhdP* zEn|m4SsMjRZBmXlG_xU_7}&-cWwd=)wb@M{|0Hk6dpplECm@Ttz|fDJ4P|lmZYFk5 zGa=URE@ms5?KFrNJ?2FLCOGWHhnW=d~hfkl4qtUr;-6j(I|6$If(T5&p ze$a@U@YI}w4b6_Tu!(*MTZC-i2tJ%8aG!I=@;r2bxyE6%nK;|(MfSTunTZ`9indS| zZDi^wcDu+X#F$*0jIDOH<%|Q&A^zkSuKvj8Jul$9|KAV$c;4uFTZ|Em@ z_sEgRi2i8K!A=*+D77Ob9%EJrOhX4~LkyqLEusH=faRjW`Sr z`gLVGaP;qa85bu`#+8&I0GxYh3z6+tcT&HD%PXe|0Du?y>3K_JK7EBAtnLdf`ugZQ zj@6k{i@M^7GEd`l5-oHkTWr193;mf?jRToJ2rTrYwNXsy3P0OMY1eU{MIR)D{oQ4R$1kgF{cDe|D*#`ZFxesJs*DD3%<65;`iM|^*F~@ zrU}@fi_L%cNUHP^jxNrq%1PQ>G%TDQo~}IJ0LpE>(*^mnkPGif3Y}LGPg^{j8Sh0|!^C2*1Lc zC<}0Sa@9Rfu_&;>sKU`{QU*P6f%_Q0F?Mv~ly$)`SyCqaZ9ck7=e8PRMJy$QxBSw; z((%C{@K&X2SOkt|+6zC%%Ny$QJ7;N$ewu+)qP%cs6ykxl)lutI$oJf4FhytDKMEr# z^%@h5-$?d>;z_Z!>$QNEYs_3o=!;~=Vmlfe#OF{B5GG8WQisXTS+yu8E{J!S8@ z!B89O9HQ|k*tT=4_@+4mG-F)ujEJD)USLeR}@Ig;wL!M&h77kF-Av~QgC(Kpl$KTe`GaQ2jZ zS@{?4p0ppUXTd%JU>WUjTqHs+B5SR^MDBUqyYirT=KD-il6K;mES{&ACPVliIVPJR%3sJkjFHdDU)m5FScm(9 zUciTqV1D6w=}Ea#7wG%*R-b>1&p;QpeEG8StybIp?l&7+gPh)|r`QVzL>fa=nhe-p=U)wkNRnt=bwM;=A{tbTm!;CfT z3agf!Pw%|_PMuD#fB*Gt&;HT&$}8W`*p!KGF2=j_9$eGjGl6i=@e?Fs7ewz=zc8fJ z-uX*HZ5>$I@`7KYAlNA;_SjfD-7I_&kxQG^xJn(fcoF%@eIsy$|0Wy5uEwph(Pe8q zke?p(9M5X(rwU!%f=c<8`?gDUW^ln@IypG@Q#mk|2|V;HSjI#3Cre<2-i(FwVil1I zF|ISV8>^LZ9)-n0wvzr({DW`L8%lZOKBE=B>;pKd7mw-;stuTlbL<3sWJ{sdb`Wo; zeI~51&3zUrlOyG4EE=Ocg*p)l@>$`|p{t?K1OyN81)q(zwRMtrw!4wTu{{tfI)sdA z857AoO}_9kFxh5LvnbMSN}3U$!x(VVfT1s(&A3-y;#W#{bvgKtjN|Ya=Zx{na=x=I z$ZIEj$)WtnF92iHJ(Ee!vkno@gzId!++FCK?k;Tq<;%aYU5`V`mW~^Fv)7d?7qh+O zV(c}GqTzY*<`ByyHTG<6uRvEvCl#r}#r|cVu~lXQG|}CoAJZOWG=DI4FVE>XG4P*_ z*zq{Hj?4~UOhRf$MmDNV(tdZ}{NDE2$M1HMl*&3sFrld&nQ&!d!#Q>9&;w+SNYQR@&DbpL)L!Ggh2Wa4(th9ZL^LPSg5x3eSp&ZoW$J?{(ck%RP8 z{YBr=r@ZOUq2y_>_A~8&E)GDokaKbe9>)^fTODXla&7+7mM`Sp);e+}kI0fb&?4WQ zY2e~NzAB7A5y{NC$aUz9b3mRtE`leA2HxQ1SrgZk@oe-3IMbGuyYSgoqNkBTPVpDA z?e5FJ@N?UhtJmX||8zDT=rD1SOWr_M$7y!(n1_n~8N7o_kIYCX* z-Mh?%!3Z*KE0H9e0j~3L>U2&Q9OyQ(ZqiOaax!qzKDv9S$BmrM_A~v799Q?HO++7! z?lCX1jXF9mZDPK3_x8uztsG)bcIgW?c@K|HKDtS?566=Ty-z1nSA)mkxci>YwIf=a!fJ_;g|S2^^x}BHP9gc{q*vI=peSX@L!=;ronv=F6g(%<(y#=%DJ6;KiX< zCr_xV6EgEteOJUAT`cN}qtdRf&LKnF(C)0SM4F|&)Ww%T*K-=luf6ptbkivudi1LM z(M$5j;g|ZRZH(Dz>(C2MbqU@CzB23_k*f9Sq^x$OHEuG&MaQ!!@}o$QeD4yu8r!w_Z{BtMBT5=u(0 zgKatr_NpKZw&xP7-Ee*aFx*!D7Ado>CrKUTZA}+3qkb^((*T7 z;P7q-p>`Dc(O7SFIzORUj-)YQDUiV5l?5fmD@~Dd`Vo-w!Vx(j47gVQ ztb9#0koME&+LcjNBbosC3x@L5U=EJxBQRE?z{Wd<-K+qFAL;N0asn^xU0F^lZ?+?l z-U1_B(wjI`dgknf3O1NW_?7w{L})@`0R8csuWrAeZFu9HFuWuN>~;k~}QFMtuKmeF3GE35dL@HB6psbdEVTJuSBPg$+9#cPK%^~qv* z2+-g-W>vU`9#`@XE$Rkm^g~x^l`B3FHE`rv^6cOGO#PiS?DFY*>q;tl1QXuF|G{I` zxbpc9N?{G~9nU5n{!RWV?Y?(GzOY+v;GoBI^$u;v^#gV&o4e-FPUy_fvEeuOE5FZm zO@CEpQWo!hJKX1S>DuASTfHUIj@SYJ@Tti%xz#37{>|5vrP|j8Gb33Ht(5eF;TJ3QiEwuivXUSI(>Ua5Q(W&Rp;J4~OWZ!w4GL>D0T{{e) zcI4ig6?NaQ`HnC02Ht|d zzV|`?$x?Pq)|PFa0Ktzx4@T?WpS3LuY;aE1h0*lDJca>>e6M_r0aMt}-RWKRlI7kP zvE1#r)!^EnNmG9MYHKZQ^(}Zl{ne=6KYc%3V5ALu?L%7V6r;ffx;v08+=XN@xQ-lX*!yNSDtgApo0Ny62)1-pu+?51Wz)StW8s1 z*{}e}@N;x2-gYr14~( z5#WnnG{Ft7Y$rT4aWHvuKieY4_QOxcX%Ak8OJJjo18CYjwm`;ogyBEF8X=A4^m->5 zL0wdX15;gWFRQcNHWWrwt}?cE3m>OZ_ybo5VZ)V-vZoxFp5)jbCTMI>hrLeUhBKPj zo;~1K`XnW%jjxVB5NDeK^?Qc2r| z&uNBSBi}Q*ime^{42^B~A{5>brr=e22-kio(}`000sc)Ha=|fbY!AI{_uvy}+~fCt zxINCB@t%r=%EbBN)i?=K?t?@n!c}y;H;pOVbDHol40->94_Z0+I>79Yl4I+g%yX}TFI)F=50cN;wQH9z zWiGGbPe)cc15Sre zhMFJ~JcCEt;B?M#ffM_c3@D4=>~ek0oJh;-+lta!+8kc!E-%@~`d{!d0Yx_l^Vs~O z&yqEH#z_E%v)nlLd+>T9{qiVnAN?5_Kp)M;4a#O?xO>L`jdBCe|1#kh|Vx4w1w212R>v{S34W0 z8s`(*ZBO%=f7{iYFZ3Bl3O+mVeCCefXJpEoNzGR|pU&qc1foUE1;KrsIr5{2_v$<# z>*hKlW$*ybcW-@Ee979KoY7`p&N(#>8(Sj7hu~nWBZGHuf3zRkZEIQRiA2~+2G>j3 z8rr+h6hB z8EWh)f9E4BY#~muv+2`k^30+1=K36|r-D1Y>sJa69BZG4=9CWq&;YYs?&l+0^Zwm` z$k-zqW;(t|A_kO|00s>5dETlR!u$?i`Q+_nbZAn8wt)j9D9$>cD9$|NI8t2=usr8c zrYP!JPKVQ>DkN#tG1SIGjVT1O^{3O=D{ZiY3xaeojFm^;dJ99Cvkr7@g9!!g8HKov z?|uefP9Os0PX~1Ry}aPoA+qDI!FU+)4n+ou3S{7)i}x`tnFi4)%M(3=xs^5yr<@7Z z@NEok3Rb7kY1&AE(M}c~a28p)f~UGE=1@^(kSdcu91kwaQJ4m+PZF&YSq@%Si_$0Z zPn|W!JxG3oQ@2_s4}qQ)!F2l2vy5V$aP6H&r@`On@rs#t93E(^4g&e)$)zyhb3RTx zA^)dN#b7v_!vxdOtxTNGfaUeelpMoeSu4uw_dV=tUFiPFPu||X{+s`A4iroXVQA6e zb(VMEdu#i>Z~Vdbo$viHgJC@QNxPJ2DII_e!;@!RN3L;QUiq%R88q|Jkp7ZTm}q@h?`ML3%PDR{ZuudA?Fe8nO4sNTcETKNY4JduWOb&PV6-8J}yrpT>2@Lk;$xw3`5^Q3wB z;`2z}fj4bYSRUlUx0CovgEPMP^xG@h%ftO^inXk-V3baup{wPjs$z)E$NqgUU!3wx z-<^!}04%?&uJze;S$3FUr>cUVK9*W{o|YcZWLTGSuHvW4NdVUX*iSIaQ)$VY@A66W zsb4Dg=fMYUZ-$opLfz_Z4ZZ2}-WC7BvF(_8T&*i|RTTZ(aq;XV+(mE8po3f#=2S7z zJk7OWb{{sz5VXmt>MSY_OBvt1n;zf(! z002M$NklBKGu%GTc~9@W`%ce$dj0h`w(oO3{osc=fc$MmdRaI!9<6c1isjOQ zV=Lgx=s5+DNw2d9JcnP$%Z&5J3Qm**&mzkvGYnGWev#J8dqF zF4B(FdB>mDF=x0G`LdJYEaGG)zz2AX$4O9Eux_5Q$xKZ09UiHV9mZJ$R|dFC8T37q z@12at2D*^R3Y)~(#o&c2+wQZRxmo8}7QIdd55{Ct0z3FeIj}DnuJYIUmHux0H1PzF zO!Y5ijNS4V<&^EXmA+`=;9z1r!EdYaZL9DHO|@ZyHyYsAiC6eOTd(jk{W;H-4_3Jw zc_+MR)yC`_XM|3>OM=enmR`psK@GmvekB*h$psM+9Qb^2KrGK1M?}81%CjB8wVm- zY~ZH1+>{L$Q#V^@oTRe?o_doP1e5V6aZ*11;N9)BTR*8|&qURBMNR>>vkAY;#Hw$% zi_K)RC7L9)#F&e-Cvyacl9N}_ZX%d$;j)`SG~jcg*Q6c|+RY-YReJn(Ah%rro|#mc z>^{hW_~b|=1Dl>4aa`FF)w&W^oS2aBysjhxAIv_+gEpJ|842wCGmU0apZ zX`UxKiu@a6IEN-WGrWjAgGa{oThB$W&)bul2$ef`EE=3d;@u^=*n zm!qSfk8J0Rq14BrpdCfVNIQQNXLxAL7fGlNTRc^cR^yv_zP$P{nEESuEnR_y2aObr z+|gJ9I2y^5cGHHOo@g<5;|OX56FJrP;X%)_N?n{lXE;u>$WH$6#qllrs1Dh*p@_2L zm1o`26`aT)`6s&I-3wLT;zaE&^7mS zrWb+hE~1nH!_F#w6I?QFjIx;IXc=!Y#J7%X;jjK+EXLcXfjc$|I2jM))6quscIiu+ z@0?S%5^~^v_)*>%nV+7i7I>Uvwz&39t>Gz$Ylv!4#~Eit<(V;%Zgg&x7jV=OMOUT| z6cK$Ug94n|7xi=ZNiZg#`nTDd$Fb5?uW(AI@8mp;wNH8mt6?Z5SEUdpls^GPpp2pN z1$G@w9i+p6IyHhYqCKD2N5)B%It)%2r%^fqm0!aJh(WFnkEB7IB9^y`pw1TJHwxEl z3OQ_Qa3+sVMqtsvX_buq?vq*LnZXJ^XdwI;PJs}ndH|DN2UYSe#h_#8xCEf^_fH5i zXq9)5$p#V*D2^uOC<>1ND<{B_#(BT~gVkMzG zY>ssF2xS#|O5%$_A8nMC{Mw1(RbHfx@i!ULDaJ5Y|4i~{KsA_gB%O&63a@*{Dg)0u z4`^h^%4Z!;-s%w;^~#4o1`^-Lz$AnQ{B)w-N!P&-JQ}jR%d>pHclU$s)j$6I?FX;_ zX!|IyAf@!KWINxjY{~oPAAD>3#y9`8^cVoV9@PrUgtc?ZSy3C|*A5g$i0R;B;03=c zKy8!ATsprMkFF>N2W82g3+`lIM-}e*Qr_6{>%aa_x4-t+|J%^cfEHDyZ7J`P&~}*8 z0fsEJ^Iw^)afGYEqEaL)+wY@2~WL(eDGQ{};27x?v z`aJNxiN|${3KC1I+qdu;fEh?@4WMFqMhE@UVZho?af3#{rJak zZ6EH@6vm@YSdFcrl_O;t>D4!ZUf!h=_?5>h&b9EO}n0M#B!yZBP7YzngwxoMeL->nsF*<_&IHP3>Y|=vQXh zXT}wJty}jPt-=(M$da-9e-MsnIcI{G}Pl;kUn>XT#zJTX5ja(o4v;w~1rODT$-La-_(E=m4 zqKSqM-~FMf_*623duZm=K%=uyOq5L)IqLAyd8Koo$wlnqu9gRmwrHOTA96dW?}w%BIaI*^Yz;G zYu$c!A=}b!+`L)&hm$sn@Kg`s9|!JHcGa-SJ^yrfG>U3u_s;Pyc@lg~@Eym|c1&A1 zG+AHalre{+-z+AZ52&N(*5=tb6zJ>prNFiOLK{7b^G9#8JBQOpC-B{vAq{N&aekBo zq1|&TaSFK1oAf7$kFF4<=1iSW({FBqwB7#bqs~RWjG$2@X$N$3KyW^&QRIlW551qJO||vyL?Js93XeHSZ1sGS00)s+)uYCi(BHSxo7;BVVcIc$gQLe;PvqTL ziYKYI@@32M*s>yu63vx1gP(rK@qvE$aaiN8L&`az$X37wzidCvyi;Jog#3!Rl7QC^KhYqlLK%b`MU=`S$I6`9dzq;W{IBMvT$l<-+Q6<`_TN1+~4tEYSZ_zVW zZFwYs2vLhS*U|4@F)?A z{h25xv>%GG)UD8x|+ zIh6LTH?}{@!Q}6}|8Z$NABPji&v(B4C);oT?l-p&Zr#g4jow(0L(3BiUt=^pXd4B# z%Y>tYUGOHaWUh|EfpRgez+ zfxSz9+pK+{)f0+PRU*-weE9>rmppkkX{lvURwQXHnSagHXSVp!fOuJuxyQqZ%`v#% z8A#RR%fRnl>qSFS_v&N;qqQx(qUhR*r4}}LlW)#-0!S{ah^~wW}8N?

4Q#{v0HNVvsd$;NGvV~rq2U;w8#1e*-Goq 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

M^YXU=xjN6^NG)}JEDvDYJW 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�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

`; } diff --git a/web/src/admin/applications/wizard/methods/ak-application-wizard-authentication-method.ts b/web/src/admin/applications/wizard/methods/ak-application-wizard-authentication-method.ts index 9b7e813bfc..9c940c9424 100644 --- a/web/src/admin/applications/wizard/methods/ak-application-wizard-authentication-method.ts +++ b/web/src/admin/applications/wizard/methods/ak-application-wizard-authentication-method.ts @@ -7,6 +7,7 @@ import "./oauth/ak-application-wizard-authentication-by-oauth"; import "./proxy/ak-application-wizard-authentication-for-forward-domain-proxy"; import "./proxy/ak-application-wizard-authentication-for-reverse-proxy"; import "./proxy/ak-application-wizard-authentication-for-single-forward-proxy"; +import "./rac/ak-application-wizard-authentication-for-rac"; import "./radius/ak-application-wizard-authentication-by-radius"; import "./saml/ak-application-wizard-authentication-by-saml-configuration"; import "./scim/ak-application-wizard-authentication-by-scim"; diff --git a/web/src/admin/applications/wizard/methods/rac/ak-application-wizard-authentication-for-rac.ts b/web/src/admin/applications/wizard/methods/rac/ak-application-wizard-authentication-for-rac.ts new file mode 100644 index 0000000000..53ce353f47 --- /dev/null +++ b/web/src/admin/applications/wizard/methods/rac/ak-application-wizard-authentication-for-rac.ts @@ -0,0 +1,110 @@ +import "@goauthentik/admin/applications/wizard/ak-wizard-title"; +import "@goauthentik/admin/common/ak-flow-search/ak-flow-search"; +import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import "@goauthentik/components/ak-text-input"; +import "@goauthentik/elements/CodeMirror"; +import "@goauthentik/elements/forms/FormGroup"; +import "@goauthentik/elements/forms/HorizontalFormElement"; + +import { msg } from "@lit/localize"; +import { html } from "lit"; +import { customElement, state } from "lit/decorators.js"; +import { ifDefined } from "lit/directives/if-defined.js"; + +import { + FlowsInstancesListDesignationEnum, + PaginatedRACPropertyMappingList, + PropertymappingsApi, + RACProvider, +} from "@goauthentik/api"; + +import BaseProviderPanel from "../BaseProviderPanel"; + +@customElement("ak-application-wizard-authentication-for-rac") +export class ApplicationWizardAuthenticationByRAC extends BaseProviderPanel { + @state() + propertyMappings?: PaginatedRACPropertyMappingList; + + constructor() { + super(); + new PropertymappingsApi(DEFAULT_CONFIG) + .propertymappingsRacList({ + ordering: "name", + }) + .then((propertyMappings) => { + this.propertyMappings = propertyMappings; + }); + } + + render() { + const provider = this.wizard.provider as RACProvider | undefined; + const selected = new Set(Array.from(provider?.propertyMappings ?? [])); + const errors = this.wizard.errors.provider; + + return html`${msg("Configure Remote Access Provider Provider")} +
+ + + + +

+ ${msg("Flow used when authorizing this provider.")} +

+
+ + + + + ${msg("Protocol settings")} +
+ + +

+ ${msg("Hold control/command to select multiple items.")} +

+
+
+
+
`; + } +} + +export default ApplicationWizardAuthenticationByRAC; diff --git a/web/src/admin/applications/wizard/types.ts b/web/src/admin/applications/wizard/types.ts index a6e86cac13..d36340c87c 100644 --- a/web/src/admin/applications/wizard/types.ts +++ b/web/src/admin/applications/wizard/types.ts @@ -6,6 +6,7 @@ import { type OAuth2ProviderRequest, type ProvidersSamlImportMetadataCreateRequest, type ProxyProviderRequest, + type RACProviderRequest, type RadiusProviderRequest, type SAMLProviderRequest, type SCIMProviderRequest, @@ -16,6 +17,7 @@ export type OneOfProvider = | Partial | Partial | Partial + | Partial | Partial | Partial | Partial diff --git a/web/src/admin/providers/rac/RACProviderForm.ts b/web/src/admin/providers/rac/RACProviderForm.ts index e4f6b789f3..b4b122cba4 100644 --- a/web/src/admin/providers/rac/RACProviderForm.ts +++ b/web/src/admin/providers/rac/RACProviderForm.ts @@ -18,23 +18,18 @@ import { ifDefined } from "lit/directives/if-defined.js"; import { FlowsInstancesListDesignationEnum, - PaginatedEndpointList, PaginatedRACPropertyMappingList, PropertymappingsApi, ProvidersApi, RACProvider, - RacApi, } from "@goauthentik/api"; @customElement("ak-provider-rac-form") export class RACProviderFormPage extends ModelForm { @state() - endpoints?: PaginatedEndpointList; - propertyMappings?: PaginatedRACPropertyMappingList; async load(): Promise { - this.endpoints = await new RacApi(DEFAULT_CONFIG).racEndpointsList({}); this.propertyMappings = await new PropertymappingsApi( DEFAULT_CONFIG, ).propertymappingsRacList({ From 08c850938b828083cecdcd2978160a403c90a1ac Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 12 Feb 2024 00:17:56 +0100 Subject: [PATCH 059/105] blueprints: file file observer on macos (#8472) Signed-off-by: Jens Langhammer --- authentik/blueprints/v1/tasks.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/authentik/blueprints/v1/tasks.py b/authentik/blueprints/v1/tasks.py index 701bbb0fdf..6d12c28d1d 100644 --- a/authentik/blueprints/v1/tasks.py +++ b/authentik/blueprints/v1/tasks.py @@ -3,6 +3,7 @@ from dataclasses import asdict, dataclass, field from hashlib import sha512 from pathlib import Path +from sys import platform from typing import Optional from dacite.core import from_dict @@ -60,11 +61,11 @@ def start_blueprint_watcher(): if _file_watcher_started: return observer = Observer() + kwargs = {} + if platform.startswith("linux"): + kwargs["event_filter"] = (FileCreatedEvent, FileModifiedEvent) observer.schedule( - BlueprintEventHandler(), - CONFIG.get("blueprints_dir"), - recursive=True, - event_filter=(FileCreatedEvent, FileModifiedEvent), + BlueprintEventHandler(), CONFIG.get("blueprints_dir"), recursive=True, **kwargs ) observer.start() _file_watcher_started = True From 77a8b2d751b8a9fb833d158f34138fcff69e7be5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:55:05 +0100 Subject: [PATCH 060/105] web: bump rollup from 4.9.6 to 4.10.0 in /web (#8482) Bumps [rollup](https://github.com/rollup/rollup) from 4.9.6 to 4.10.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.9.6...v4.10.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 112 +++++++++++++++++++++--------------------- web/package.json | 2 +- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 6e59c6deb9..24d5c48d83 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -93,7 +93,7 @@ "pyright": "=1.1.338", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.9.6", + "rollup": "^4.10.0", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", @@ -4571,9 +4571,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", "cpu": [ "arm" ], @@ -4584,9 +4584,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", "cpu": [ "arm64" ], @@ -4597,9 +4597,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", "cpu": [ "arm64" ], @@ -4610,9 +4610,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", "cpu": [ "x64" ], @@ -4623,9 +4623,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", "cpu": [ "arm" ], @@ -4636,9 +4636,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", "cpu": [ "arm64" ], @@ -4649,9 +4649,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", "cpu": [ "arm64" ], @@ -4662,9 +4662,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", "cpu": [ "riscv64" ], @@ -4675,9 +4675,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", "cpu": [ "x64" ], @@ -4688,9 +4688,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", "cpu": [ "x64" ], @@ -4701,9 +4701,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", "cpu": [ "arm64" ], @@ -4714,9 +4714,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", "cpu": [ "ia32" ], @@ -4727,9 +4727,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", "cpu": [ "x64" ], @@ -16420,9 +16420,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -16435,19 +16435,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", "fsevents": "~2.3.2" } }, diff --git a/web/package.json b/web/package.json index 26f71c9e76..26adfcfb21 100644 --- a/web/package.json +++ b/web/package.json @@ -118,7 +118,7 @@ "pyright": "=1.1.338", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.9.6", + "rollup": "^4.10.0", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", From adbd97323c7da648b8a69afeae9fb2321ecc887d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:55:13 +0100 Subject: [PATCH 061/105] web: bump the storybook group in /web with 8 updates (#8481) Bumps the storybook group in /web with 8 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.6.13` | `7.6.14` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.6.13` | `7.6.14` | | [@storybook/api](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/manager-api-shim) | `7.6.13` | `7.6.14` | | [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `7.6.13` | `7.6.14` | | [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `7.6.13` | `7.6.14` | | [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `7.6.13` | `7.6.14` | | [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `7.6.13` | `7.6.14` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.6.13` | `7.6.14` | Updates `@storybook/addon-essentials` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/addons/essentials) Updates `@storybook/addon-links` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/addons/links) Updates `@storybook/api` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v7.6.14/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/deprecated/manager-api-shim) Updates `@storybook/blocks` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/ui/blocks) Updates `@storybook/manager-api` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/lib/manager-api) Updates `@storybook/web-components` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/renderers/web-components) Updates `@storybook/web-components-vite` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/frameworks/web-components-vite) Updates `storybook` from 7.6.13 to 7.6.14 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.14/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/blocks" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/manager-api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components-vite" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 598 +++++++++++++++++++++--------------------- web/package.json | 14 +- 2 files changed, 306 insertions(+), 306 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 24d5c48d83..15de86f896 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -62,13 +62,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.11", - "@storybook/addon-essentials": "^7.6.13", - "@storybook/addon-links": "^7.6.13", - "@storybook/api": "^7.6.13", + "@storybook/addon-essentials": "^7.6.14", + "@storybook/addon-links": "^7.6.14", + "@storybook/api": "^7.6.14", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.13", - "@storybook/web-components": "^7.6.13", - "@storybook/web-components-vite": "^7.6.13", + "@storybook/manager-api": "^7.6.14", + "@storybook/web-components": "^7.6.14", + "@storybook/web-components-vite": "^7.6.14", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -98,7 +98,7 @@ "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.13", + "storybook": "^7.6.14", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", @@ -4876,12 +4876,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.13.tgz", - "integrity": "sha512-uxjBLzJNJfj8oS0orgLt7/Gs5tLoP2xhBESi5vjk+7BZjAgfoA6w5IwMwmh9sRB3+aUx3ks7fGjE/hRT/YcaxA==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.14.tgz", + "integrity": "sha512-hFVB/ejxBdE6J3wOEPSx6aFB51PqDfQ/YR4ik5GCGJb3cmUX7d/FY8zH0TKJLXcG/Hw3XoxNiEo5AaMVxtGVGA==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.13", + "@storybook/core-events": "7.6.14", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -4894,9 +4894,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.13.tgz", - "integrity": "sha512-d6nK6x8S0al2WwQFvq9nx1+EeRzZqJiFChqy/mwjwxGtLNCJZ09afRA1xJSyNqzOQorebKiPPyZlrenUv7htcA==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.14.tgz", + "integrity": "sha512-R6OblK71iKIwpxTZQhuOpbktIT5pNrfMNe4/lkIP2F6Dv9HgHwvg95Bpt0ebHKlRvD7KNwj1whKjJh1fO3yLgQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4909,12 +4909,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.13.tgz", - "integrity": "sha512-NdCEvr9xg3ANOSoEXKnB9jQR74n7G8XFWngnjJqviqXjRxiL7jwv2TCkyJyDTMmIAtPkHKU3NoD2Q1eQk16iYg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.14.tgz", + "integrity": "sha512-KJRPdzbXjitqCixMzMjkcRYJGIts9wrx2Qk7NCSXCbE0LDdT+U7//25luLp5DrRiPdqIVEQjNcLF10frljaA9g==", "dev": true, "dependencies": { - "@storybook/blocks": "7.6.13", + "@storybook/blocks": "7.6.14", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4924,26 +4924,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.13.tgz", - "integrity": "sha512-rRaHPVYuOrpLzk/KGemN/ePengYLL0Vly/Shb+nxcbDnKiraMELWsAkQEvEa/WbPa5sdpRD2+cJTqPcif4Du4g==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.14.tgz", + "integrity": "sha512-fH3voEcHuJmMXNIT6Lxs5ve+dM6P74gwhdyMj21WIp8DnYM99RrmjvT1k/3+tGknL/7oGM+4Y2DLyy2KYFc6HQ==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/components": "7.6.13", - "@storybook/csf-plugin": "7.6.13", - "@storybook/csf-tools": "7.6.13", + "@storybook/blocks": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/components": "7.6.14", + "@storybook/csf-plugin": "7.6.14", + "@storybook/csf-tools": "7.6.14", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.6.13", - "@storybook/postinstall": "7.6.13", - "@storybook/preview-api": "7.6.13", - "@storybook/react-dom-shim": "7.6.13", - "@storybook/theming": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/node-logger": "7.6.14", + "@storybook/postinstall": "7.6.14", + "@storybook/preview-api": "7.6.14", + "@storybook/react-dom-shim": "7.6.14", + "@storybook/theming": "7.6.14", + "@storybook/types": "7.6.14", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4959,17 +4959,17 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4999,24 +4999,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.13.tgz", - "integrity": "sha512-EuuDLkp3kYuqBJRP5vGge58u0O6NqyrW0+6eg/zxsCi26qncYa/mlSBcniswUJq+cROF+eBAl7K7GNNEmAV3pw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.14.tgz", + "integrity": "sha512-1CcpLvzmvXyRhxbc2FgVbchpu7EMEeAjNY2lQ8ejn4cwLuIeWvYI61Cq4swiEmcEOEzi9Uvrq9q1bua9N1fPqw==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.6.13", - "@storybook/addon-backgrounds": "7.6.13", - "@storybook/addon-controls": "7.6.13", - "@storybook/addon-docs": "7.6.13", - "@storybook/addon-highlight": "7.6.13", - "@storybook/addon-measure": "7.6.13", - "@storybook/addon-outline": "7.6.13", - "@storybook/addon-toolbars": "7.6.13", - "@storybook/addon-viewport": "7.6.13", - "@storybook/core-common": "7.6.13", - "@storybook/manager-api": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/preview-api": "7.6.13", + "@storybook/addon-actions": "7.6.14", + "@storybook/addon-backgrounds": "7.6.14", + "@storybook/addon-controls": "7.6.14", + "@storybook/addon-docs": "7.6.14", + "@storybook/addon-highlight": "7.6.14", + "@storybook/addon-measure": "7.6.14", + "@storybook/addon-outline": "7.6.14", + "@storybook/addon-toolbars": "7.6.14", + "@storybook/addon-viewport": "7.6.14", + "@storybook/core-common": "7.6.14", + "@storybook/manager-api": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/preview-api": "7.6.14", "ts-dedent": "^2.0.0" }, "funding": { @@ -5029,17 +5029,17 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5055,9 +5055,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.13.tgz", - "integrity": "sha512-hoU0MgrTwYSLusCYpVZLwrT3cpkOOyypkve1BZEXCjWzYYMlAhAmED4VilC6nT/jnRtqLaW1gsCy1Gj5IS+I7w==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.14.tgz", + "integrity": "sha512-VQTgLm6jPKN7DOhrx0mY5yrhQxOiidQt4yoazJTgzn+aV7zBFKn+GtF1W38QrnFtq5Mr8VJsEByEdtVCqMcmyw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5068,9 +5068,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.13.tgz", - "integrity": "sha512-hQVaJcp9i53Y+ukuRz5Y32Do+eR1nC6vpfoRnuUgPgVYYv+7D8XHydR/wml5GEQKy6MsGHLzFVLy1SmmQHeASg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.14.tgz", + "integrity": "sha512-xzDWQEzntia9ArFQC95TEw/Tqp/cNFq0SSuQQ6d9/ryQczuSdRGFHRmEd99/92ufNgCGPaRZOB7sweiKG0bkzA==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.2", @@ -5091,9 +5091,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.13.tgz", - "integrity": "sha512-WdxEicIy3x79kgP93HMf9hgbbW3h7xo3eNzrTaMsTeoXaolXWN9qdpusm8Cc8vDIP5JMd+gkwi2u563KjggXVQ==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.14.tgz", + "integrity": "sha512-bRy3SEv4uf1csDe5H8Lg3wUDg1uMZo6/j2FwNjvUmW+vcasj3VsqPKQjT6KO+LjCXsQ1pIAHu1HcUh2v/Qoitw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5105,9 +5105,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.13.tgz", - "integrity": "sha512-e7t8poUYA7RutU3vdWc955cIKuCFElmwt36umuwBta9Yt4ou1GElpraAo0SwzT69ZXgx/J0S6lIbJ8uN98Ze0g==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.14.tgz", + "integrity": "sha512-RH3arZYMBBxoqif4pnKN8m8Vt8setpeh0kz6oA+Ilhf/Z8Wz5jWiYDvTL5WW3+E+XGLrIFwH87wmJLN0egKqtA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5119,9 +5119,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.13.tgz", - "integrity": "sha512-wt5pfbWMzljbZAFcQPxIztREDVaH8rMogesjddCe9JGMx0SY0tykmmyBG6ppAf+2NlAK4pGzhY0fDFPBcDvYPg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.14.tgz", + "integrity": "sha512-/Zea9XgmxJp/5pQ+PKw+FGj2s2POIur/9uCUmLBWPDAMIW+kugOYZ/i8krrcHDPJ7nG2rtUJbeSliod9h2tpfw==", "dev": true, "funding": { "type": "opencollective", @@ -5129,9 +5129,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.13.tgz", - "integrity": "sha512-yqUCWzp3IY/tlS488k9iAXMgOWW/rTswbVgGEh8alUg38QjbUnh4lKFLtd9Va8Fd1zNeVd9nkpCMTSsGy85uMg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.14.tgz", + "integrity": "sha512-7GbJyXFP3QCZezUQ+75VdjBpyXWutdFY0YMM/3JTjU+Khutbph3RurMTi4dRiBndAIPXlReNm1AnnYX5w+jd9w==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -5324,13 +5324,13 @@ "dev": true }, "node_modules/@storybook/api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.13.tgz", - "integrity": "sha512-Q3l1XLAppg991VqIIuH0OUL/YHfwBPr1MrUJWtOsRuuPOr1gYdANaTpDA09OHerC/rmzlUvSEKNCAgW0bVrcZg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.14.tgz", + "integrity": "sha512-E+B+LAtxu5a+9e0ZW3eBUAr1Kn/+gLjE+H+Wevq8VV6+NHLo9eL3JAM4ucv6wcP5qiWirBnB9PUbSYWMpLzwjA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.13", - "@storybook/manager-api": "7.6.13" + "@storybook/client-logger": "7.6.14", + "@storybook/manager-api": "7.6.14" }, "funding": { "type": "opencollective", @@ -5338,22 +5338,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.13.tgz", - "integrity": "sha512-wjiwGHLIDfzgonxQaEOlQBR8H7U4hjOEkvkT6leaA3SXJaBgoZBD8zTqWqMX1Gl6vUmmRqMzq/nTSVai8Y1vVQ==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.14.tgz", + "integrity": "sha512-DZOSEWSNptAhaeNiOG0BqidJxqi/KaAZ2ZnlygpswDDT9vOCGoc7edZEgrq/i83M55KZFD4IXVLYFdfpjRcirQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/components": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/components": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "7.6.13", + "@storybook/docs-tools": "7.6.14", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.13", - "@storybook/preview-api": "7.6.13", - "@storybook/theming": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/manager-api": "7.6.14", + "@storybook/preview-api": "7.6.14", + "@storybook/theming": "7.6.14", + "@storybook/types": "7.6.14", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -5377,17 +5377,17 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5403,15 +5403,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.13.tgz", - "integrity": "sha512-RsZO7W33fYD5QKr//6DQ2+H0tdOt6BJ9I7U+3k5C8qCCoIW1CwYz/qbX+IB403k1yKKyw+Xau3F3tCVxR3j9Bw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.14.tgz", + "integrity": "sha512-pID/g2Bnr3tjmkh8c+O6TZei3f1TWHW/UWi/skNQ3wGJ+9dqJIK2vQY5SwnXBWkmJdUqGVXaW5BvzR8jjfpTxQ==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.6.13", - "@storybook/manager": "7.6.13", - "@storybook/node-logger": "7.6.13", + "@storybook/core-common": "7.6.14", + "@storybook/manager": "7.6.14", + "@storybook/node-logger": "7.6.14", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -5445,19 +5445,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.13.tgz", - "integrity": "sha512-BpOUP1QPS7NeTTTs5i2gUmORtjigo2S6B57Pb08vDyy1/1bd+NpkLvHvdc/TxBBc57FI4TS/7m8NtwIYHtwkcQ==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.14.tgz", + "integrity": "sha512-GhIuK0Xu+HZK4K3NW0PlPpY3wQQ6Ay8WQp9Ea8UZn+ixop4wAV+dLFEJ0B8fXrpSNqsmjUim7rIfMePzXkfucQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-common": "7.6.13", - "@storybook/csf-plugin": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/preview": "7.6.13", - "@storybook/preview-api": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-common": "7.6.14", + "@storybook/csf-plugin": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/preview": "7.6.14", + "@storybook/preview-api": "7.6.14", + "@storybook/types": "7.6.14", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -5490,17 +5490,17 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5546,13 +5546,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.13.tgz", - "integrity": "sha512-AiplFJXPjgHA62xqZFq7SwCS+o8bFrYLPM9I8yNY+8jhAi9N3Yig+h2P0jOXxLKicwrCXa5ZJ7PZK05M1r6YqA==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.14.tgz", + "integrity": "sha512-tyrnnXTh7Ca6HbtzYtZGZmbUkC+eYPdot41+YDERMxXCnejd18BnsH/pyGW66GwgY079Q7uhdDFyM63ynZrt/A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5564,23 +5564,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.13.tgz", - "integrity": "sha512-9JBFckdWeJKU1xV3G3+L/kjuwNZm2RAUxac4GgVBxXACF0QU0nXml8Ss5ZA5nss+qCnn/gdRYRDNdfJ28L0/mw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.14.tgz", + "integrity": "sha512-2xqcGRPtj/OE+9ro92C5MFCT8VHdMCDDuZZRnmgPi83iqSZtYbO8xHZwz78j4TvmouHstOV1SedeWv0IsFIxLw==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.6.13", - "@storybook/core-common": "7.6.13", - "@storybook/core-events": "7.6.13", - "@storybook/core-server": "7.6.13", - "@storybook/csf-tools": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/telemetry": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/codemod": "7.6.14", + "@storybook/core-common": "7.6.14", + "@storybook/core-events": "7.6.14", + "@storybook/core-server": "7.6.14", + "@storybook/csf-tools": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/telemetry": "7.6.14", + "@storybook/types": "7.6.14", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5743,9 +5743,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.13.tgz", - "integrity": "sha512-uo51MsUG1Fbi1IA+me9tewF1mFiaYuyR0IMeBmaU3Z3CtjEUdOekmvRQ9ckoFn+BbKtxSipTodiR4HmIZDta3g==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.14.tgz", + "integrity": "sha512-rHa2hLU+80BN5E58Shf1g09YS6QEEOk5hwMuJ4WJfAypMDYPjnIsOYUboHClkCA9TDCH/iVhyRSPy83NWN2MZg==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5756,18 +5756,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.13.tgz", - "integrity": "sha512-QjjVAxT/NnCN4hJ5TLf2wQtddfwn9r0yaFMxLb3gGsjW/ZVzmp4xOS5KeqUUXXbb1wjYWv56Egamkrs/qoUTyA==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.14.tgz", + "integrity": "sha512-Sq/Q12KmvzaSUtmbtD26cEEGVmZLUA+iiNHbl0n65MMka6QBGG/VgSPvSgu+GEpKowbVoqfMpH4Ic16A6XsNFg==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/csf-tools": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/types": "7.6.14", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -5797,18 +5797,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.13.tgz", - "integrity": "sha512-IkUermvJFOCooJwlR1mamnByjSGukKjkmFGue6HWc64cZ+/DTwgHzh9O/XV82fnfTTMJ2CjOFYlYVr3brDqTVg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.14.tgz", + "integrity": "sha512-kukLj6B2xaIbKAq8E2WUcU0KZ+keuvIo0VcfrtSNHFbNvrNzHshajPC1dTO4NbgI3ey2SmD0rp71eh06TUQ9ng==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.6.13", + "@storybook/client-logger": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/theming": "7.6.14", + "@storybook/types": "7.6.14", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5823,13 +5823,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.13.tgz", - "integrity": "sha512-6tzWZ5u/8YXSthVuBqDHGABqALsiv/h+IiYaeg+UPWgz7sYwyj/IoFlHN1/du/h1wV5bc8GZyPcAIrOHxF60rQ==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.14.tgz", + "integrity": "sha512-2q+R6olHLS5GJBTZNdKscTKJ8YwKOatKx6QjktFTfxfLRfBfOGSepignYy8JnEGuU4iTOwBekmUDm5dWAUjnQg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.13", - "@storybook/preview-api": "7.6.13" + "@storybook/client-logger": "7.6.14", + "@storybook/preview-api": "7.6.14" }, "funding": { "type": "opencollective", @@ -5837,17 +5837,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5863,14 +5863,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.13.tgz", - "integrity": "sha512-kCCVDga/66wIWFSluT3acD3/JT3vwV7A9rxG8FZF5K38quU/b37sRXvCw8Yk5HJ4rQhrB76cxVhIOy/ZucaZVw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.14.tgz", + "integrity": "sha512-0CIfwdjY5+OO6B+WxeCx3fZou1wk50RU9hFOMGwJ2yj/5ilV06xVHt0HNrA2x37zaK7r370PjOuny0Xudba03g==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/core-events": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/types": "7.6.14", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -5898,9 +5898,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", + "version": "18.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6019,9 +6019,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.13.tgz", - "integrity": "sha512-hsL6JT273b1RcJBGHpNNLJ1ilzFMT4UCJwwtOpNNQVPBJt0Hn22vxC69/hpqSINrhHRLj3ak8CTtA0ynVjngaQ==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.14.tgz", + "integrity": "sha512-zuSMjOgju7WLFL+okTXVvOKKNzwqVGRVp5UhXeSikT4aXuVdpfepCfikkjntn12G1ybL7mfFCsBU2DV1lwwp6Q==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6032,26 +6032,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.13.tgz", - "integrity": "sha512-kcHhCL8XDv4k5QJqBVWOYJ2lwX6orQHnx0N7fvLhJ7IHtUp1YQYn1+ufnGFZBlpNGGvPwz3oX4hmOT1G+PQdlw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.14.tgz", + "integrity": "sha512-OSUunvjXyUiyfGet8ZBz7/Lka6dSgbbVMH7lU6wELIYCd2ZUxU5HQMl9JPesl61wWB4L3JaWFAoMRaCVI7q0xQ==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.6.13", - "@storybook/channels": "7.6.13", - "@storybook/core-common": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/builder-manager": "7.6.14", + "@storybook/channels": "7.6.14", + "@storybook/core-common": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.13", + "@storybook/csf-tools": "7.6.14", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/preview-api": "7.6.13", - "@storybook/telemetry": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/manager": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/preview-api": "7.6.14", + "@storybook/telemetry": "7.6.14", + "@storybook/types": "7.6.14", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6085,17 +6085,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6111,9 +6111,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", - "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", + "version": "18.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6228,12 +6228,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.13.tgz", - "integrity": "sha512-ZTyAao/W8Aob6wT1nC4cTfBjWAT9FN0Y9nzairbvNOiqRkAvk3w/02K4BauESHYMm06QC8Pg0tzS1s+tWJtRRQ==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.14.tgz", + "integrity": "sha512-TYmtuLCzdWGy4/T6KYUBGdzRy/4cJzDQrDzWRWD7a+xcy1Z7wlKkXw+zWfxbNheEnxb146q5lIkRpvhevKgpGA==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.6.13", + "@storybook/csf-tools": "7.6.14", "unplugin": "^1.3.1" }, "funding": { @@ -6242,9 +6242,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.13.tgz", - "integrity": "sha512-N0erD3fhbZIDkQpcHlNTLvkpWVVtpiOjY3JO8B5SdBT2uQ8T7aXx7IEM3Q8g1f/BpfjkM15rZl9r4HFtm5E43Q==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.14.tgz", + "integrity": "sha512-s7XFIi823HhcKxTqHY/uU1QZCujLBjFt6OJa5y3XvwIMoLJWZtuT1PF/QPR0K7iYb9gQnGHwO9lZBfMraUywrQ==", "dev": true, "dependencies": { "@babel/generator": "^7.23.0", @@ -6252,7 +6252,7 @@ "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -6283,14 +6283,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.13.tgz", - "integrity": "sha512-m3YAyNRQ97vm/rLj48Lgg8jjhbjr+668aADU49S50zjwtvC7H9C0h8PJI3LyE1Owxg2Ld2B6bG5wBv30nPnxZg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.14.tgz", + "integrity": "sha512-8FCuVnty2d74cgF+qjhI/LTbGlf3mvu1OkKpLMp9xqouPy3X+yo9N8mpe2tIhgpRMTDzDScIeIBUpLrIpjHaXA==", "dev": true, "dependencies": { - "@storybook/core-common": "7.6.13", - "@storybook/preview-api": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/core-common": "7.6.14", + "@storybook/preview-api": "7.6.14", + "@storybook/types": "7.6.14", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -6302,17 +6302,17 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6334,9 +6334,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.13.tgz", - "integrity": "sha512-f/Qecur8pXSncdmll7dYyP8EZ+IzzReIN8eZF/NHKULfnBkIkRxf+w4LlXBgOwgU36DdsW+VH0OuGMWeeqTUwA==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.14.tgz", + "integrity": "sha512-lgowunC/pm2y6d+3j7UJ/CkHpWC0o+nZ9b7mDbkJ6PmezW5Hpy83kbeCxbwRGosYoPQ0izBzVB5ZqGgKrNNDjA==", "dev": true, "funding": { "type": "opencollective", @@ -6344,19 +6344,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.13.tgz", - "integrity": "sha512-D23lbJSmJnVGHwXzKEw3TeUbPZMDP03R5Pp4S73fWHHhSBqjadcGCGRxiFWOyCyGXi4kUg1q4TYSIMw0pHvnlg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.14.tgz", + "integrity": "sha512-kZbcudrpQaYgUCrnBumDBPOvaEcvFBrZjM5v3AvMenVMXTjwlAHF8mZswE/ptpDsico2iSN96nMhd97OyaAuqA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.6.13", - "@storybook/theming": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/router": "7.6.14", + "@storybook/theming": "7.6.14", + "@storybook/types": "7.6.14", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6376,9 +6376,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.13.tgz", - "integrity": "sha512-Ci/2Gd0+Qd3fX6GWGS1UAa/bTl0uALsEuMuzOO0meKEPEEYZvBFCoeK6lP1ysMnxWxKaDjxNr01JlTpmjfT6ag==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.14.tgz", + "integrity": "sha512-prKUMGxGzeX3epdlin1UU6M1//CoAJM1GrffrFeNntnPr3h6GMTgxNzl85flUhWd4ky/wjC/36dGOI8QRYVtoA==", "dev": true, "funding": { "type": "opencollective", @@ -6386,9 +6386,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.13.tgz", - "integrity": "sha512-6NohciDuEPWSjMrUfhFjawfFUCvR70IDtAjjYhfXlSesyt06fXqbht1VrKhSsRjvwzbhYeiza5Uh/ujvSgxeGg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.14.tgz", + "integrity": "sha512-ya3e5jvW1eSw4l3lhiGH2g+Gk8py2Tr3PW5ecnH/x1rD8Tt43OHXRQqiFfl7QzOudHxQGKQsO3lhWe8FJXvdbA==", "dev": true, "funding": { "type": "opencollective", @@ -6396,9 +6396,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.13.tgz", - "integrity": "sha512-XW8+6PRVC/AfdY4Vf67XFNu9bNi5AwyLnLz7v+H4VEv+AnalRDXuszQcT6rUEumDDsDx2uwAhVs19xaQyAJu/w==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.14.tgz", + "integrity": "sha512-6Y873pNsJBQuCeR3YDMlRgRW+4Tf+Rj4VdujjvRw/H7ES1+pO8qgcI3VJCcoxqDY9ZNPT/riLh8YOddpLNCgNg==", "dev": true, "funding": { "type": "opencollective", @@ -6492,9 +6492,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.13.tgz", - "integrity": "sha512-8nrys2WAFymVjywM4GrqVL1fxTfgjWkONJuH7eBbVE2SmgG87NN4lchG/V+TpkFOTkYnGwJRqUcWSqRBUoHLrg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.14.tgz", + "integrity": "sha512-Ldmc2tKj1N3vNYZpI791xgTbk0XdqJDm1a09fSRM4CeBu4BI7M9IjnNS4cHNdTeqtK9MbCSzCr1nxfxNCtrtiA==", "dev": true, "funding": { "type": "opencollective", @@ -6506,12 +6506,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.13.tgz", - "integrity": "sha512-PE912SaViaq3SlheKMz0IW+/MIUmQpxf77YUOb3ZlMvu2KVhdZFsi9xC/3ym67nuVuF1yLELpz4Q/G1Jxlh/sg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.14.tgz", + "integrity": "sha512-eVD7jVZeM8mppEtHsvkKIEN92stsdbiXDHG49iNVnw+ojOSjJ1HR8+Pm8wy5Cc2pcyoZEHeU356kaP9gXOhuOQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.13", + "@storybook/client-logger": "7.6.14", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6521,14 +6521,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.13.tgz", - "integrity": "sha512-G23QTpCd3W83NISTFSFjq5SyePRaQUin7F9KnafJM54cMDya7xi7aPUrlVRc5zi2Gfr8PJ8tTna1C4k3cIrHFw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.14.tgz", + "integrity": "sha512-F+a9Q4dHCpuBLQmB05DOLosU8p1Otj3Vd+/5EF9QUFSn4C64z1gmMc3jzF3iUgktY53HdoUqR871w3GoOJ7g9A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.13", - "@storybook/core-common": "7.6.13", - "@storybook/csf-tools": "7.6.13", + "@storybook/client-logger": "7.6.14", + "@storybook/core-common": "7.6.14", + "@storybook/csf-tools": "7.6.14", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6607,13 +6607,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.13.tgz", - "integrity": "sha512-Dj+zVF2CVdTrynjSW3Iydajc8EKCQCYNYA3bpkid0LltAIe8mLTkuTBYiI5CgviWmQc55iBrNpF2MA5AzW5Q3Q==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.14.tgz", + "integrity": "sha512-jpryYjBAGLkFauSyNEoflSfYqO3srn98llNxhgxpc1P1ocmOzeDwdg7PUWDI9DCuJC+OWaXa1zzLO6uRLyEJAQ==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.6.13", + "@storybook/client-logger": "7.6.14", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6627,12 +6627,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.13.tgz", - "integrity": "sha512-N8HfqhL5uaI69BZx+xLkKi1YIgDp34XeL3uhxii4NfThcY1KJA643Gqk3oLKefiBqBpIRGKN0nA41Fhdvhr7Hw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.14.tgz", + "integrity": "sha512-sJ3qn45M2XLXlOi+wkhXK5xsXbSVzi8YGrusux//DttI3s8wCP3BQSnEgZkBiEktloxPferINHT1er8/9UK7Xw==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", + "@storybook/channels": "7.6.14", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6643,18 +6643,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.13.tgz", - "integrity": "sha512-Z5TOcWYVOT/EkWarAB7c4C/UWviKNXtDCebgh/ro/onBEBHD4afP+buJTzbIJcr7V5wSgyRHS2L41Pyd1uomtw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.14.tgz", + "integrity": "sha512-PO+QQgrP/09oh67yXkcQn4xl+MJLfPxJdTN+RJcBHgtntsiPAVxKDDLG9wJiQJYy6lIvb+qyLI4riAc1v5l5IQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.13", - "@storybook/core-client": "7.6.13", - "@storybook/docs-tools": "7.6.13", + "@storybook/client-logger": "7.6.14", + "@storybook/core-client": "7.6.14", + "@storybook/docs-tools": "7.6.14", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.13", - "@storybook/preview-api": "7.6.13", - "@storybook/types": "7.6.13", + "@storybook/manager-api": "7.6.14", + "@storybook/preview-api": "7.6.14", + "@storybook/types": "7.6.14", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -6670,15 +6670,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.13.tgz", - "integrity": "sha512-rE1R84/uqvMkYwIju57C+6X81FDu4k9yU9jot9DEScfg3XgTnwAzpKg2YeK+DrSVJCL7z3P/p1/IVaBQBmqLyw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.14.tgz", + "integrity": "sha512-IfmGm+I1mhCR8ma7z2k9epZq1+xqPaW3AElD51EiK8s3l4gR7Ntyz1aS90Saqjql9AkNsuD6vtilKqk3upbhsw==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.6.13", - "@storybook/core-server": "7.6.13", - "@storybook/node-logger": "7.6.13", - "@storybook/web-components": "7.6.13", + "@storybook/builder-vite": "7.6.14", + "@storybook/core-server": "7.6.14", + "@storybook/node-logger": "7.6.14", + "@storybook/web-components": "7.6.14", "magic-string": "^0.30.0" }, "engines": { @@ -6690,17 +6690,17 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.13.tgz", - "integrity": "sha512-BbRlVpxgOXSe4/hpf9cRtbvvCJoRrFbjMCnmaDh+krd8O4wLbVknKhqgSR46qLyW/VGud9Rb3upakz7tNP+mtg==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", + "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.13", - "@storybook/client-logger": "7.6.13", - "@storybook/core-events": "7.6.13", + "@storybook/channels": "7.6.14", + "@storybook/client-logger": "7.6.14", + "@storybook/core-events": "7.6.14", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.13", + "@storybook/types": "7.6.14", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -14579,9 +14579,9 @@ } }, "node_modules/node-fetch-native": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.1.tgz", - "integrity": "sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.2.tgz", + "integrity": "sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==", "dev": true }, "node_modules/node-int64": { @@ -17058,12 +17058,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.6.13", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.13.tgz", - "integrity": "sha512-c06c27f1m9OeXUtyA0/pwVLWJo+OD9SDIaTcPtojtwt5QEtSKfhQN+b9fnq/+GXRAHdkPF13AqR0uCXJZ/9Xtw==", + "version": "7.6.14", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.14.tgz", + "integrity": "sha512-4WMb/Dyzl4QzAd1X1b13cJXwynI7fGbT3qGy+X169hsXn6u73tlRcuPXrTsEO9a+rNBxZiBEBJf5poYxCH2j5Q==", "dev": true, "dependencies": { - "@storybook/cli": "7.6.13" + "@storybook/cli": "7.6.14" }, "bin": { "sb": "index.js", diff --git a/web/package.json b/web/package.json index 26adfcfb21..d96d21b91d 100644 --- a/web/package.json +++ b/web/package.json @@ -87,13 +87,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.11", - "@storybook/addon-essentials": "^7.6.13", - "@storybook/addon-links": "^7.6.13", - "@storybook/api": "^7.6.13", + "@storybook/addon-essentials": "^7.6.14", + "@storybook/addon-links": "^7.6.14", + "@storybook/api": "^7.6.14", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.13", - "@storybook/web-components": "^7.6.13", - "@storybook/web-components-vite": "^7.6.13", + "@storybook/manager-api": "^7.6.14", + "@storybook/web-components": "^7.6.14", + "@storybook/web-components-vite": "^7.6.14", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -123,7 +123,7 @@ "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.13", + "storybook": "^7.6.14", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", From 8b2d1a9b216eb6a23559c4cc0e62e148cfd9f330 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:55:23 +0100 Subject: [PATCH 062/105] ci: bump golangci/golangci-lint-action from 3 to 4 (#8479) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3 to 4. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v3...v4) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-outpost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index 54f697e78a..7c15007a4d 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -32,7 +32,7 @@ jobs: - name: Generate API run: make gen-client-go - name: golangci-lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v4 with: version: v1.54.2 args: --timeout 5000s --verbose From 97564328769f5f19e533125885567d947a4886b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:55:41 +0100 Subject: [PATCH 063/105] core: bump sentry-sdk from 1.40.2 to 1.40.3 (#8475) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.40.2 to 1.40.3. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.40.2...1.40.3) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8dd7b3bdfa..f12d763ce3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3675,13 +3675,13 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "sentry-sdk" -version = "1.40.2" +version = "1.40.3" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = "*" files = [ - {file = "sentry-sdk-1.40.2.tar.gz", hash = "sha256:c98c8e9bb4dc8ff1e67473caf6467acfccf915dadcc26d0efb0d6791a8652610"}, - {file = "sentry_sdk-1.40.2-py2.py3-none-any.whl", hash = "sha256:696ef61a323a207e6a20b018ddc6591adb81c671434c88d1a4f2e95ffa75556c"}, + {file = "sentry-sdk-1.40.3.tar.gz", hash = "sha256:3c2b027979bb400cd65a47970e64f8cef8acda86b288a27f42a98692505086cd"}, + {file = "sentry_sdk-1.40.3-py2.py3-none-any.whl", hash = "sha256:73383f28311ae55602bb6cc3b013830811135ba5521e41333a6e68f269413502"}, ] [package.dependencies] @@ -3707,7 +3707,7 @@ huey = ["huey (>=2)"] loguru = ["loguru (>=0.5)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] -pure-eval = ["asttokens", "executing", "pure_eval"] +pure-eval = ["asttokens", "executing", "pure-eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] From bd29392825880bef0625f367acbb4783df3a36e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:55:47 +0100 Subject: [PATCH 064/105] website: bump react-tooltip from 5.26.0 to 5.26.1 in /website (#8480) Bumps [react-tooltip](https://github.com/ReactTooltip/react-tooltip) from 5.26.0 to 5.26.1. - [Release notes](https://github.com/ReactTooltip/react-tooltip/releases) - [Changelog](https://github.com/ReactTooltip/react-tooltip/blob/master/CHANGELOG.md) - [Commits](https://github.com/ReactTooltip/react-tooltip/compare/v5.26.0...v5.26.1) --- updated-dependencies: - dependency-name: react-tooltip dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 34 +++++++++++++++++----------------- website/package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index c59778a703..e107d03561 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -26,7 +26,7 @@ "react-dom": "^18.2.0", "react-feather": "^2.0.10", "react-toggle": "^4.1.3", - "react-tooltip": "^5.26.0", + "react-tooltip": "^5.26.1", "remark-github": "^12.0.0" }, "devDependencies": { @@ -3119,26 +3119,26 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", "dependencies": { - "@floating-ui/utils": "^0.1.3" + "@floating-ui/utils": "^0.2.1" } }, "node_modules/@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.2.tgz", + "integrity": "sha512-xymkSSowKdGqo0SRr2Mp4czH5A8o2Pum35PAD0ftb3gCcPacWzwhvtUeUqmVXm9EVtm2hThD/lRrFNcahMOaSQ==", "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" }, "node_modules/@hapi/hoek": { "version": "9.3.0", @@ -14389,11 +14389,11 @@ } }, "node_modules/react-tooltip": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.26.0.tgz", - "integrity": "sha512-UBbwy3fo1KYDwRCOWwM6AEfQsk9shgVfNkXFqgwS33QHplzg7xao/7mX/6wd+lE6KSZzhUNTkB5TNk9SMaBV/A==", + "version": "5.26.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.26.1.tgz", + "integrity": "sha512-z8QYiVIfMpIzu3d2ggvgfI5objNCRYfKnRLGWIOBShqRKrXpIrQw4NLYHTL2fj1hH8dtzj25OUnmB346XG1cHg==", "dependencies": { - "@floating-ui/dom": "^1.0.0", + "@floating-ui/dom": "^1.6.1", "classnames": "^2.3.0" }, "peerDependencies": { diff --git a/website/package.json b/website/package.json index 506c3bc834..e560706c98 100644 --- a/website/package.json +++ b/website/package.json @@ -32,7 +32,7 @@ "react-dom": "^18.2.0", "react-feather": "^2.0.10", "react-toggle": "^4.1.3", - "react-tooltip": "^5.26.0", + "react-tooltip": "^5.26.1", "react": "^18.2.0", "remark-github": "^12.0.0" }, From 32c980e29eb6085e0a9479ed0c4bd57a6a30d3af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:56:01 +0100 Subject: [PATCH 065/105] ci: bump helm/kind-action from 1.8.0 to 1.9.0 (#8478) Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/helm/kind-action/releases) - [Commits](https://github.com/helm/kind-action/compare/v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: helm/kind-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 7bc5268f71..8fa4db3852 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -136,7 +136,7 @@ jobs: - name: Setup authentik env uses: ./.github/actions/setup - name: Create k8s Kind Cluster - uses: helm/kind-action@v1.8.0 + uses: helm/kind-action@v1.9.0 - name: run integration run: | poetry run coverage run manage.py test tests/integration From 4f5e2a438e38398e1a347d54e994e3c2830e9e98 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 09:56:35 +0100 Subject: [PATCH 066/105] core, web: update translations (#8474) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> --- web/xliff/de.xlf | 9 +++++++++ web/xliff/en.xlf | 9 +++++++++ web/xliff/es.xlf | 9 +++++++++ web/xliff/fr.xlf | 9 +++++++++ web/xliff/ko.xlf | 9 +++++++++ web/xliff/nl.xlf | 9 +++++++++ web/xliff/pl.xlf | 9 +++++++++ web/xliff/pseudo-LOCALE.xlf | 9 +++++++++ web/xliff/tr.xlf | 9 +++++++++ web/xliff/zh-CN.xlf | 9 +++++++++ web/xliff/zh-Hans.xlf | 9 +++++++++ web/xliff/zh-Hant.xlf | 9 +++++++++ web/xliff/zh_TW.xlf | 9 +++++++++ 13 files changed, 117 insertions(+) diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index 56421b64f8..21b8fd3cd7 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -6393,6 +6393,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index 3167198715..e6bd48e183 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6663,6 +6663,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index a281f42c45..a5b2ea4f3b 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -6309,6 +6309,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 1634c6861d..72b53ba120 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -8409,6 +8409,15 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/ko.xlf b/web/xliff/ko.xlf index f7ae504faf..a485c38b52 100644 --- a/web/xliff/ko.xlf +++ b/web/xliff/ko.xlf @@ -8257,6 +8257,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/nl.xlf b/web/xliff/nl.xlf index 535d2acb5b..837eed2f36 100644 --- a/web/xliff/nl.xlf +++ b/web/xliff/nl.xlf @@ -8100,6 +8100,15 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 08058446f3..807a2f41a5 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -6515,6 +6515,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index ff9313c852..cbcc89dd69 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -8234,4 +8234,13 @@ Bindings to groups/users are checked against the user of the event. Brand name + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index 46a8b159fc..ca373d1735 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -6302,6 +6302,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/zh-CN.xlf b/web/xliff/zh-CN.xlf index 4d32acfb9c..d0fee283ba 100644 --- a/web/xliff/zh-CN.xlf +++ b/web/xliff/zh-CN.xlf @@ -5212,6 +5212,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider + diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 8bc6e75f4f..d2ff2e0d47 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -8412,6 +8412,15 @@ Bindings to groups/users are checked against the user of the event. Brand name 品牌名称 + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 65cc16d738..81f6200cb5 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -6350,6 +6350,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 03024ed01e..f6a9e389ea 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -8218,6 +8218,15 @@ Bindings to groups/users are checked against the user of the event. Brand name + + + Remote Access Provider + + + Remotely access computers/servers via RDP/SSH/VNC + + + Configure Remote Access Provider Provider From f3b4e03243017b82156e5da7ad131c0bb7f67787 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 10:27:08 +0100 Subject: [PATCH 067/105] core: bump uvicorn from 0.27.0.post1 to 0.27.1 (#8477) Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.27.0.post1 to 0.27.1. - [Release notes](https://github.com/encode/uvicorn/releases) - [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md) - [Commits](https://github.com/encode/uvicorn/compare/0.27.0.post1...0.27.1) --- updated-dependencies: - dependency-name: uvicorn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index f12d763ce3..f35c0b9c5a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -4113,13 +4113,13 @@ files = [ [[package]] name = "uvicorn" -version = "0.27.0.post1" +version = "0.27.1" description = "The lightning-fast ASGI server." optional = false python-versions = ">=3.8" files = [ - {file = "uvicorn-0.27.0.post1-py3-none-any.whl", hash = "sha256:4b85ba02b8a20429b9b205d015cbeb788a12da527f731811b643fd739ef90d5f"}, - {file = "uvicorn-0.27.0.post1.tar.gz", hash = "sha256:54898fcd80c13ff1cd28bf77b04ec9dbd8ff60c5259b499b4b12bb0917f22907"}, + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, ] [package.dependencies] From 844b4e96cd80d6808e664887a7fd4544c2551b4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 10:27:28 +0100 Subject: [PATCH 068/105] core: bump django-model-utils from 4.3.1 to 4.4.0 (#8476) Bumps [django-model-utils](https://github.com/jazzband/django-model-utils) from 4.3.1 to 4.4.0. - [Release notes](https://github.com/jazzband/django-model-utils/releases) - [Changelog](https://github.com/jazzband/django-model-utils/blob/master/CHANGES.rst) - [Commits](https://github.com/jazzband/django-model-utils/compare/4.3.1...4.4.0) --- updated-dependencies: - dependency-name: django-model-utils dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index f35c0b9c5a..72bdf98e05 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1194,13 +1194,13 @@ Django = ">=2.2" [[package]] name = "django-model-utils" -version = "4.3.1" +version = "4.4.0" description = "Django model mixins and utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "django-model-utils-4.3.1.tar.gz", hash = "sha256:2e2e4f13e4f14613134a9777db7ad4265f59a1d8f1384107bcaa3028fe3c87c1"}, - {file = "django_model_utils-4.3.1-py3-none-any.whl", hash = "sha256:8c0b0177bab909a8635b602d960daa67e80607aa5469217857271a60726d7a4b"}, + {file = "django-model-utils-4.4.0.tar.gz", hash = "sha256:7b73179480e4d4a737d0188e7c49da03776bbadedad569a534c4e9f1afc004d4"}, + {file = "django_model_utils-4.4.0-py3-none-any.whl", hash = "sha256:d57143e8b7345fd4719c5a95d07d7a50f7d11134da6a729aa6b73fb9674bec9d"}, ] [package.dependencies] From e4f4482d2a40e60d6b9591180cfac42a91ef8c5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:09:26 +0100 Subject: [PATCH 069/105] web: bump the sentry group in /web with 2 updates (#8445) * web: bump the sentry group in /web with 2 updates Bumps the sentry group in /web with 2 updates: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and @spotlightjs/spotlight. Updates `@sentry/browser` from 7.99.0 to 7.100.1 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/7.100.1/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.99.0...7.100.1) Updates `@spotlightjs/spotlight` from 1.2.11 to 1.2.12 --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry - dependency-name: "@spotlightjs/spotlight" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: sentry ... Signed-off-by: dependabot[bot] * have eslint check for deprecated function usage Signed-off-by: Jens Langhammer * code cleanup Signed-off-by: Jens Langhammer * fix eslint server error Signed-off-by: Jens Langhammer * Revert "have eslint check for deprecated function usage" This reverts commit 6d5e42e31214ffc44a8ab0720c36030ada424d4e. Signed-off-by: Jens Langhammer # Conflicts: # web/.eslintrc.json --------- Signed-off-by: dependabot[bot] Signed-off-by: Jens Langhammer Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Langhammer --- web/.eslintrc.json | 3 +- web/package-lock.json | 122 +++++++++--------- web/package.json | 4 +- .../components/ak-backchannel-input.ts | 2 +- .../oauth2/OAuth2ProviderViewPage.ts | 16 ++- web/src/common/helpers/webauthn.ts | 2 +- web/src/common/sentry.ts | 5 +- web/src/common/utils.ts | 14 -- 8 files changed, 82 insertions(+), 86 deletions(-) diff --git a/web/.eslintrc.json b/web/.eslintrc.json index fdae375c68..86137ef245 100644 --- a/web/.eslintrc.json +++ b/web/.eslintrc.json @@ -13,7 +13,8 @@ "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 12, - "sourceType": "module" + "sourceType": "module", + "project": true }, "plugins": ["@typescript-eslint", "lit", "custom-elements"], "ignorePatterns": ["authentik-live-tests/**"], diff --git a/web/package-lock.json b/web/package-lock.json index 15de86f896..d8bde76df3 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -24,7 +24,7 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.99.0", + "@sentry/browser": "^7.100.1", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.1", @@ -61,7 +61,7 @@ "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", - "@spotlightjs/spotlight": "^1.2.11", + "@spotlightjs/spotlight": "^1.2.12", "@storybook/addon-essentials": "^7.6.14", "@storybook/addon-links": "^7.6.14", "@storybook/api": "^7.6.14", @@ -4740,102 +4740,102 @@ ] }, "node_modules/@sentry-internal/feedback": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.99.0.tgz", - "integrity": "sha512-exIO1o+bE0MW4z30FxC0cYzJ4ZHSMlDPMHCBDPzU+MWGQc/fb8s58QUrx5Dnm6HTh9G3H+YlroCxIo9u0GSwGQ==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.100.1.tgz", + "integrity": "sha512-yqcRVnjf+qS+tC4NxOKLJOaSJ+csHmh/dHUzvCTkf5rLsplwXYRnny2r0tqGTQ4tuXMxwgSMKPYwicg81P+xuw==", "dependencies": { - "@sentry/core": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" + "@sentry/core": "7.100.1", + "@sentry/types": "7.100.1", + "@sentry/utils": "7.100.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.99.0.tgz", - "integrity": "sha512-PoIkfusToDq0snfl2M6HJx/1KJYtXxYhQplrn11kYadO04SdG0XGXf4h7wBTMEQ7LDEAtQyvsOu4nEQtTO3YjQ==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.100.1.tgz", + "integrity": "sha512-TnqxqJGhbFhhYRhTG2WLFer+lVieV7mNGeIxFBiw1L4kuj8KGl+C0sknssKyZSRVJFSahhHIosHJGRMkkD//7g==", "dependencies": { - "@sentry/core": "7.99.0", - "@sentry/replay": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" + "@sentry/core": "7.100.1", + "@sentry/replay": "7.100.1", + "@sentry/types": "7.100.1", + "@sentry/utils": "7.100.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/tracing": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.99.0.tgz", - "integrity": "sha512-z3JQhHjoM1KdM20qrHwRClKJrNLr2CcKtCluq7xevLtXHJWNAQQbafnWD+Aoj85EWXBzKt9yJMv2ltcXJ+at+w==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.100.1.tgz", + "integrity": "sha512-+u9RRf5eL3StiyiRyAHZmdkAR7GTSGx4Mt4Lmi5NEtCcWlTGZ1QgW2r8ZbhouVmTiJkjhQgYCyej3cojtazeJg==", "dependencies": { - "@sentry/core": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" + "@sentry/core": "7.100.1", + "@sentry/types": "7.100.1", + "@sentry/utils": "7.100.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/browser": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.99.0.tgz", - "integrity": "sha512-bgfoUv3wkwwLgN5YUOe0ibB3y268ZCnamZh6nLFqnY/UBKC1+FXWFdvzVON/XKUm62LF8wlpCybOf08ebNj2yg==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.100.1.tgz", + "integrity": "sha512-IxHQ08ixf0bmaWpe4yt1J4UUsOpg02fxax9z3tOQYXw5MSzz5pDXn8M8DFUVJB3wWuyXhHXTub9yD3VIP9fnoA==", "dependencies": { - "@sentry-internal/feedback": "7.99.0", - "@sentry-internal/replay-canvas": "7.99.0", - "@sentry-internal/tracing": "7.99.0", - "@sentry/core": "7.99.0", - "@sentry/replay": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" + "@sentry-internal/feedback": "7.100.1", + "@sentry-internal/replay-canvas": "7.100.1", + "@sentry-internal/tracing": "7.100.1", + "@sentry/core": "7.100.1", + "@sentry/replay": "7.100.1", + "@sentry/types": "7.100.1", + "@sentry/utils": "7.100.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.99.0.tgz", - "integrity": "sha512-vOAtzcAXEUtS/oW7wi3wMkZ3hsb5Ch96gKyrrj/mXdOp2zrcwdNV6N9/pawq2E9P/7Pw8AXw4CeDZztZrjQLuA==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.100.1.tgz", + "integrity": "sha512-f+ItUge/o9AjlveQq0ZUbQauKlPH1FIJbC1TRaYLJ4KNfOdrsh8yZ29RmWv0cFJ/e+FGTr603gWpRPObF5rM8Q==", "dependencies": { - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" + "@sentry/types": "7.100.1", + "@sentry/utils": "7.100.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/replay": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.99.0.tgz", - "integrity": "sha512-gyN/I2WpQrLAZDT+rScB/0jnFL2knEVBo8U8/OVt8gNP20Pq8T/rDZKO/TG0cBfvULDUbJj2P4CJryn2p/O2rA==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.100.1.tgz", + "integrity": "sha512-B1NFjzGEFaqejxBRdUyEzH8ChXc2kfiqlA/W/Lg0aoWIl2/7nuMk+l4ld9gW5F5bIAXDTVd5vYltb1lWEbpr7w==", "dependencies": { - "@sentry-internal/tracing": "7.99.0", - "@sentry/core": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" + "@sentry-internal/tracing": "7.100.1", + "@sentry/core": "7.100.1", + "@sentry/types": "7.100.1", + "@sentry/utils": "7.100.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/types": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.99.0.tgz", - "integrity": "sha512-94qwOw4w40sAs5mCmzcGyj8ZUu/KhnWnuMZARRq96k+SjRW/tHFAOlIdnFSrt3BLPvSOK7R3bVAskZQ0N4FTmA==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.100.1.tgz", + "integrity": "sha512-fLM+LedHuKzOd8IhXBqaQuym+AA519MGjeczBa5kGakes/BbAsUMwsNfjsKQedp7Kh44RgYF99jwoRPK2oDrXw==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.99.0.tgz", - "integrity": "sha512-cYZy5WNTkWs5GgggGnjfGqC44CWir0pAv4GVVSx0fsup4D4pMKBJPrtub15f9uC+QkUf3vVkqwpBqeFxtmJQTQ==", + "version": "7.100.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.100.1.tgz", + "integrity": "sha512-Ve6dXr1o6xiBe3VCoJgiutmBKrugryI65EZAbYto5XI+t+PjiLLf9wXtEMF24ZrwImo4Lv3E9Uqza+fWkEbw6A==", "dependencies": { - "@sentry/types": "7.99.0" + "@sentry/types": "7.100.1" }, "engines": { "node": ">=8" @@ -4848,28 +4848,28 @@ "dev": true }, "node_modules/@spotlightjs/overlay": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@spotlightjs/overlay/-/overlay-1.5.0.tgz", - "integrity": "sha512-HMzxwHxD4VLZLHL+Ec7akR3NzUxfsGrWJSdFTAjQGeH/bBtZ3wHYIiD1nrpt0ONHYHW2K+bFFX6Razi+OKdlLA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@spotlightjs/overlay/-/overlay-1.6.0.tgz", + "integrity": "sha512-8QfE8LnpWtsQHGXutuJev8kpfw7tovtkEiLWurT9sMK6t78G00erAc+h3XfI9VIV1tMJxx+FaiG+n5jQs7wVHw==", "dev": true }, "node_modules/@spotlightjs/sidecar": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@spotlightjs/sidecar/-/sidecar-1.3.5.tgz", - "integrity": "sha512-mtpNWE07DnrUhkvZ1EN8rIH5xVgsfqrw+LSJZTb1FjJ8jODTafiXCJjf40f9tswtGQKhNvaJ+Z24N/o92CYyGw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@spotlightjs/sidecar/-/sidecar-1.4.0.tgz", + "integrity": "sha512-onj/phrNtDI8a79zc8jfxJ5BITQk5klO4xSoQXxiYeQWTZcegVeO8VftOVfWPBnMY/axnh+ltxJm/cHaV5SP6Q==", "dev": true, "bin": { "spotlight-sidecar": "server.js" } }, "node_modules/@spotlightjs/spotlight": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@spotlightjs/spotlight/-/spotlight-1.2.11.tgz", - "integrity": "sha512-UE2AQLpGO6bPd7JzEEGfdEzYm1VwpbRMn1BJltpP5j99pKF7DKLWovfaqD7JDCwVQPfDqWzBhb26JTHZJFK+0w==", + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@spotlightjs/spotlight/-/spotlight-1.2.12.tgz", + "integrity": "sha512-FHXsKLOatoyG7fKwsxMYPspkS9h/wEIli02GiA98Hg0UqHWZ5UV7xFzlUqaBmr6hbPLnQoc7fcFIN0ATgVJ9ng==", "dev": true, "dependencies": { - "@spotlightjs/overlay": "1.5.0", - "@spotlightjs/sidecar": "1.3.5" + "@spotlightjs/overlay": "1.6.0", + "@spotlightjs/sidecar": "1.4.0" }, "bin": { "spotlight-sidecar": "bin/run.js" diff --git a/web/package.json b/web/package.json index d96d21b91d..e5637f7de0 100644 --- a/web/package.json +++ b/web/package.json @@ -49,7 +49,7 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.99.0", + "@sentry/browser": "^7.100.1", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.1", @@ -86,7 +86,7 @@ "@rollup/plugin-replace": "^5.0.5", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", - "@spotlightjs/spotlight": "^1.2.11", + "@spotlightjs/spotlight": "^1.2.12", "@storybook/addon-essentials": "^7.6.14", "@storybook/addon-links": "^7.6.14", "@storybook/api": "^7.6.14", diff --git a/web/src/admin/applications/components/ak-backchannel-input.ts b/web/src/admin/applications/components/ak-backchannel-input.ts index 06fccc32b1..f8f3f28ddf 100644 --- a/web/src/admin/applications/components/ak-backchannel-input.ts +++ b/web/src/admin/applications/components/ak-backchannel-input.ts @@ -61,7 +61,7 @@ export class AkBackchannelProvidersInput extends AKElement { >`; return html` - +
diff --git a/web/src/common/helpers/webauthn.ts b/web/src/common/helpers/webauthn.ts index c10edff170..13a9894503 100644 --- a/web/src/common/helpers/webauthn.ts +++ b/web/src/common/helpers/webauthn.ts @@ -38,7 +38,7 @@ export function transformCredentialCreateOptions( // Because json can't contain raw bytes, the server base64-encodes the User ID // So to get the base64 encoded byte array, we first need to convert it to a regular // string, then a byte array, re-encode it and wrap that in an array. - const stringId = decodeURIComponent(escape(window.atob(userId))); + const stringId = decodeURIComponent(window.atob(userId)); user.id = u8arr(b64enc(u8arr(stringId))); const challenge = u8arr(credentialCreateOptions.challenge.toString()); diff --git a/web/src/common/sentry.ts b/web/src/common/sentry.ts index 290b4715f1..4b6ed4f5c1 100644 --- a/web/src/common/sentry.ts +++ b/web/src/common/sentry.ts @@ -27,7 +27,7 @@ export async function configureSentry(canDoPpi = false): Promise { ], release: `authentik@${VERSION}`, integrations: [ - new Sentry.BrowserTracing({ + Sentry.browserTracingIntegration({ shouldCreateSpanForRequest: (url: string) => { return url.startsWith(window.location.host); }, @@ -57,9 +57,6 @@ export async function configureSentry(canDoPpi = false): Promise { Sentry.setTag(TAG_SENTRY_CAPABILITIES, cfg.capabilities.join(",")); if (window.location.pathname.includes("if/")) { Sentry.setTag(TAG_SENTRY_COMPONENT, `web/${currentInterface()}`); - Sentry.configureScope((scope) => - scope.setTransactionName(`authentik.web.if.${currentInterface()}`), - ); } if (cfg.capabilities.includes(CapabilitiesEnum.CanDebug)) { const Spotlight = await import("@spotlightjs/spotlight"); diff --git a/web/src/common/utils.ts b/web/src/common/utils.ts index 3333830ae7..cbaef55f8c 100644 --- a/web/src/common/utils.ts +++ b/web/src/common/utils.ts @@ -25,12 +25,6 @@ export function convertToSlug(text: string): string { .replace(/[^\w-]+/g, ""); } -export function convertToTitle(text: string): string { - return text.replace(/\w\S*/g, function (txt) { - return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); - }); -} - /** * Truncate a string based on maximum word count */ @@ -84,14 +78,6 @@ export function first(...args: Array): T { throw new SentryIgnoredError(`No compatible arg given: ${args}`); } -export function hexEncode(buf: Uint8Array): string { - return Array.from(buf) - .map(function (x) { - return ("0" + x.toString(16)).substr(-2); - }) - .join(""); -} - // Taken from python's string module export const ascii_lowercase = "abcdefghijklmnopqrstuvwxyz"; export const ascii_uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; From a84f403e79e1f5b957aba2bbe65310256d6f53cd Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:42:49 +0100 Subject: [PATCH 070/105] translate: Updates for file web/xliff/en.xlf in zh-Hans (#8485) Translate web/xliff/en.xlf in zh-Hans 100% translated source file: 'web/xliff/en.xlf' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh-Hans.xlf | 47 +++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index d2ff2e0d47..37fc1357c0 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1782,8 +1782,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2961,8 +2961,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3739,8 +3739,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3916,10 +3916,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5000,7 +5000,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5335,10 +5335,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5387,7 +5387,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7880,7 +7880,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8415,13 +8415,16 @@ Bindings to groups/users are checked against the user of the event. Remote Access Provider + 远程访问提供程序 Remotely access computers/servers via RDP/SSH/VNC + 通过 RDP/SSH/VNC 远程访问计算机/服务器 Configure Remote Access Provider Provider + 配置远程访问提供程序 - + \ No newline at end of file From 8bc746d5774557c5cf1edfa399d4e1df0536c4a5 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 13:43:06 +0100 Subject: [PATCH 071/105] translate: Updates for file web/xliff/en.xlf in zh_CN (#8484) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh_CN.xlf | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/web/xliff/zh_CN.xlf b/web/xliff/zh_CN.xlf index 10a3beabac..e465da6048 100644 --- a/web/xliff/zh_CN.xlf +++ b/web/xliff/zh_CN.xlf @@ -8412,6 +8412,18 @@ Bindings to groups/users are checked against the user of the event. Brand name 品牌名称 + + + Remote Access Provider + 远程访问提供程序 + + + Remotely access computers/servers via RDP/SSH/VNC + 通过 RDP/SSH/VNC 远程访问计算机/服务器 + + + Configure Remote Access Provider Provider + 配置远程访问提供程序 From e0e7cc24da61b1efdf84dc49e861a6287f779a74 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Mon, 12 Feb 2024 19:35:43 +0100 Subject: [PATCH 072/105] ci: adapt for release candidates (#8453) --- .bumpversion.cfg | 12 ++- .../comment-pr-instructions/action.yml | 3 - .../actions/docker-push-variables/action.yml | 89 ++++++++++++------- .github/workflows/ci-main.yml | 78 ++++------------ .github/workflows/ci-outpost.yml | 14 ++- .github/workflows/release-publish.yml | 38 +++----- .github/workflows/release-tag.yml | 15 ++-- 7 files changed, 110 insertions(+), 139 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 62e54e02fe..aaf81fe9f3 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -2,11 +2,19 @@ current_version = 2023.10.7 tag = True commit = True -parse = (?P\d+)\.(?P\d+)\.(?P\d+) -serialize = {major}.{minor}.{patch} +parse = (?P\d+)\.(?P\d+)\.(?P\d+)(?:-(?P[a-zA-Z-]+)(?P[1-9]\\d*))? +serialize = + {major}.{minor}.{patch}-{rc_t}{rc_n} + {major}.{minor}.{patch} message = release: {new_version} tag_name = version/{new_version} +[bumpversion:part:rc_t] +values = + rc + final +optional_value = final + [bumpversion:file:pyproject.toml] [bumpversion:file:docker-compose.yml] diff --git a/.github/actions/comment-pr-instructions/action.yml b/.github/actions/comment-pr-instructions/action.yml index b8fb31eaaa..f74a99fafb 100644 --- a/.github/actions/comment-pr-instructions/action.yml +++ b/.github/actions/comment-pr-instructions/action.yml @@ -9,9 +9,6 @@ inputs: runs: using: "composite" steps: - - name: Generate config - id: ev - uses: ./.github/actions/docker-push-variables - name: Find Comment uses: peter-evans/find-comment@v2 id: fc diff --git a/.github/actions/docker-push-variables/action.yml b/.github/actions/docker-push-variables/action.yml index 7ae3d1adf9..b0671bd966 100644 --- a/.github/actions/docker-push-variables/action.yml +++ b/.github/actions/docker-push-variables/action.yml @@ -1,31 +1,33 @@ +--- name: "Prepare docker environment variables" description: "Prepare docker environment variables" +inputs: + image-name: + required: true + description: "Docker image prefix" + image-arch: + required: false + description: "Docker image arch" + outputs: - shouldBuild: - description: "Whether to build image or not" - value: ${{ steps.ev.outputs.shouldBuild }} - branchName: - description: "Branch name" - value: ${{ steps.ev.outputs.branchName }} - branchNameContainer: - description: "Branch name (for containers)" - value: ${{ steps.ev.outputs.branchNameContainer }} - timestamp: - description: "Timestamp" - value: ${{ steps.ev.outputs.timestamp }} sha: description: "sha" value: ${{ steps.ev.outputs.sha }} - shortHash: - description: "shortHash" - value: ${{ steps.ev.outputs.shortHash }} + version: - description: "version" + description: "Version" value: ${{ steps.ev.outputs.version }} - versionFamily: - description: "versionFamily" - value: ${{ steps.ev.outputs.versionFamily }} + prerelease: + description: "Prerelease" + value: ${{ steps.ev.outputs.prerelease }} + + imageTags: + description: "Docker image tags" + value: ${{ steps.ev.outputs.imageTags }} + imageMainTag: + description: "Docker image main tag" + value: ${{ steps.ev.outputs.imageMainTag }} runs: using: "composite" @@ -45,20 +47,47 @@ runs: branch_name = os.environ["GITHUB_REF"] if os.environ.get("GITHUB_HEAD_REF", "") != "": branch_name = os.environ["GITHUB_HEAD_REF"] - - should_build = str(os.environ.get("DOCKER_USERNAME", "") != "").lower() - version = parser.get("bumpversion", "current_version") - version_family = ".".join(version.split(".")[:-1]) safe_branch_name = branch_name.replace("refs/heads/", "").replace("/", "-") - sha = os.environ["GITHUB_SHA"] if not "${{ github.event.pull_request.head.sha }}" else "${{ github.event.pull_request.head.sha }}" + image_names = "${{ inputs.image-name }}".split(",") + image_arch = "${{ inputs.image-arch }}" or None + + is_pull_request = bool("${{ github.event.pull_request.head.sha }}") + is_release = "dev" not in image_names[0] + + sha = os.environ["GITHUB_SHA"] if not is_pull_request else "${{ github.event.pull_request.head.sha }}" + + # 2042.1.0 or 2042.1.0-rc1 + version = parser.get("bumpversion", "current_version") + # 2042.1 + version_family = ".".join(version.split("-", 1)[0].split(".")[:-1]) + prerelease = "-" in version + + image_tags = [] + if is_release: + for name in image_names: + image_tags += [ + f"{name}:{version}", + f"{name}:{version_family}", + ] + if not prerelease: + image_tags += [f"{name}:latest"] + else: + suffix = "" + if image_arch and image_arch != "amd64": + suffix = f"-{image_arch}" + for name in image_names: + image_tags += [ + f"{name}:gh-{sha}{suffix}", + f"{name}:gh-{safe_branch_name}{suffix}", + ] + + image_main_tag = image_tags[0] + image_tags_rendered = ",".join(image_tags) with open(os.environ["GITHUB_OUTPUT"], "a+", encoding="utf-8") as _output: - print("branchName=%s" % branch_name, file=_output) - print("branchNameContainer=%s" % safe_branch_name, file=_output) - print("timestamp=%s" % int(time()), file=_output) print("sha=%s" % sha, file=_output) - print("shortHash=%s" % sha[:7], file=_output) - print("shouldBuild=%s" % should_build, file=_output) print("version=%s" % version, file=_output) - print("versionFamily=%s" % version_family, file=_output) + print("prerelease=%s" % prerelease, file=_output) + print("imageTags=%s" % image_tags_rendered, file=_output) + print("imageMainTag=%s" % image_main_tag, file=_output) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 8fa4db3852..dca5acb010 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -1,3 +1,4 @@ +--- name: authentik-ci-main on: @@ -208,12 +209,19 @@ jobs: steps: - run: echo mark build: + strategy: + fail-fast: false + matrix: + arch: + - amd64 + - arm64 needs: ci-core-mark runs-on: ubuntu-latest permissions: # Needed to upload contianer images to ghcr.io packages: write timeout-minutes: 120 + if: "github.repository == 'goauthentik/authentik'" steps: - uses: actions/checkout@v4 with: @@ -225,11 +233,11 @@ jobs: - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + with: + image-name: ghcr.io/goauthentik/dev-server + image-arch: ${{ matrix.arch }} - name: Login to Container Registry uses: docker/login-action@v3 - if: ${{ steps.ev.outputs.shouldBuild == 'true' }} with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -243,69 +251,15 @@ jobs: secrets: | GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }} GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }} - push: ${{ steps.ev.outputs.shouldBuild == 'true' }} - tags: | - ghcr.io/goauthentik/dev-server:gh-${{ steps.ev.outputs.branchNameContainer }} - ghcr.io/goauthentik/dev-server:gh-${{ steps.ev.outputs.sha }} - ghcr.io/goauthentik/dev-server:gh-${{ steps.ev.outputs.branchNameContainer }}-${{ steps.ev.outputs.timestamp }}-${{ steps.ev.outputs.shortHash }} + tags: ${{ steps.ev.outputs.imageTags }} build-args: | GIT_BUILD_HASH=${{ steps.ev.outputs.sha }} - VERSION=${{ steps.ev.outputs.version }} - VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }} - cache-from: type=gha - cache-to: type=gha,mode=max - build-arm64: - needs: ci-core-mark - runs-on: ubuntu-latest - permissions: - # Needed to upload contianer images to ghcr.io - packages: write - timeout-minutes: 120 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - - name: Set up QEMU - uses: docker/setup-qemu-action@v3.0.0 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: prepare variables - uses: ./.github/actions/docker-push-variables - id: ev - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - - name: Login to Container Registry - uses: docker/login-action@v3 - if: ${{ steps.ev.outputs.shouldBuild == 'true' }} - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: generate ts client - run: make gen-client-ts - - name: Build Docker Image - uses: docker/build-push-action@v5 - with: - context: . - secrets: | - GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }} - GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }} - push: ${{ steps.ev.outputs.shouldBuild == 'true' }} - tags: | - ghcr.io/goauthentik/dev-server:gh-${{ steps.ev.outputs.branchNameContainer }}-arm64 - ghcr.io/goauthentik/dev-server:gh-${{ steps.ev.outputs.sha }}-arm64 - ghcr.io/goauthentik/dev-server:gh-${{ steps.ev.outputs.branchNameContainer }}-${{ steps.ev.outputs.timestamp }}-${{ steps.ev.outputs.shortHash }}-arm64 - build-args: | - GIT_BUILD_HASH=${{ steps.ev.outputs.sha }} - VERSION=${{ steps.ev.outputs.version }} - VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }} - platforms: linux/arm64 cache-from: type=gha cache-to: type=gha,mode=max + platforms: linux/${{ matrix.arch }} pr-comment: needs: - build - - build-arm64 runs-on: ubuntu-latest if: ${{ github.event_name == 'pull_request' }} permissions: @@ -319,9 +273,9 @@ jobs: - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + with: + image-name: ghcr.io/goauthentik/dev-server - name: Comment on PR uses: ./.github/actions/comment-pr-instructions with: - tag: gh-${{ steps.ev.outputs.branchNameContainer }}-${{ steps.ev.outputs.timestamp }}-${{ steps.ev.outputs.shortHash }} + tag: gh-${{ steps.ev.outputs.imageMainTag }} diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index 7c15007a4d..60fa71fc48 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -1,3 +1,4 @@ +--- name: authentik-ci-outpost on: @@ -74,6 +75,7 @@ jobs: permissions: # Needed to upload contianer images to ghcr.io packages: write + if: "github.repository == 'goauthentik/authentik'" steps: - uses: actions/checkout@v4 with: @@ -85,11 +87,10 @@ jobs: - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + with: + image-name: ghcr.io/goauthentik/dev-${{ matrix.type }} - name: Login to Container Registry uses: docker/login-action@v3 - if: ${{ steps.ev.outputs.shouldBuild == 'true' }} with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -99,15 +100,10 @@ jobs: - name: Build Docker Image uses: docker/build-push-action@v5 with: - push: ${{ steps.ev.outputs.shouldBuild == 'true' }} - tags: | - ghcr.io/goauthentik/dev-${{ matrix.type }}:gh-${{ steps.ev.outputs.branchNameContainer }} - ghcr.io/goauthentik/dev-${{ matrix.type }}:gh-${{ steps.ev.outputs.sha }} + tags: ${{ steps.ev.outputs.imageTags }} file: ${{ matrix.type }}.Dockerfile build-args: | GIT_BUILD_HASH=${{ steps.ev.outputs.sha }} - VERSION=${{ steps.ev.outputs.version }} - VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }} platforms: linux/amd64,linux/arm64 context: . cache-from: type=gha diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index c002ab8a54..c6d0ec87bf 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -1,3 +1,4 @@ +--- name: authentik-on-release on: @@ -19,6 +20,8 @@ jobs: - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev + with: + image-name: ghcr.io/goauthentik/server,beryju/authentik - name: Docker Login Registry uses: docker/login-action@v3 with: @@ -38,21 +41,12 @@ jobs: uses: docker/build-push-action@v5 with: context: . - push: ${{ github.event_name == 'release' }} + push: true secrets: | GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }} GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }} - tags: | - beryju/authentik:${{ steps.ev.outputs.version }}, - beryju/authentik:${{ steps.ev.outputs.versionFamily }}, - beryju/authentik:latest, - ghcr.io/goauthentik/server:${{ steps.ev.outputs.version }}, - ghcr.io/goauthentik/server:${{ steps.ev.outputs.versionFamily }}, - ghcr.io/goauthentik/server:latest + tags: ${{ steps.ev.outputs.imageTags }} platforms: linux/amd64,linux/arm64 - build-args: | - VERSION=${{ steps.ev.outputs.version }} - VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }} build-outpost: runs-on: ubuntu-latest permissions: @@ -78,6 +72,8 @@ jobs: - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev + with: + image-name: ghcr.io/goauthentik/${{ matrix.type }},beryju/authentik-${{ matrix.type }} - name: make empty clients run: | mkdir -p ./gen-ts-api @@ -96,20 +92,11 @@ jobs: - name: Build Docker Image uses: docker/build-push-action@v5 with: - push: ${{ github.event_name == 'release' }} - tags: | - beryju/authentik-${{ matrix.type }}:${{ steps.ev.outputs.version }}, - beryju/authentik-${{ matrix.type }}:${{ steps.ev.outputs.versionFamily }}, - beryju/authentik-${{ matrix.type }}:latest, - ghcr.io/goauthentik/${{ matrix.type }}:${{ steps.ev.outputs.version }}, - ghcr.io/goauthentik/${{ matrix.type }}:${{ steps.ev.outputs.versionFamily }}, - ghcr.io/goauthentik/${{ matrix.type }}:latest + push: true + tags: ${{ steps.ev.outputs.imageTags }} file: ${{ matrix.type }}.Dockerfile platforms: linux/amd64,linux/arm64 context: . - build-args: | - VERSION=${{ steps.ev.outputs.version }} - VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }} build-outpost-binary: timeout-minutes: 120 runs-on: ubuntu-latest @@ -181,15 +168,16 @@ jobs: - name: prepare variables uses: ./.github/actions/docker-push-variables id: ev + with: + image-name: ghcr.io/goauthentik/server - name: Get static files from docker image run: | - docker pull ghcr.io/goauthentik/server:latest - container=$(docker container create ghcr.io/goauthentik/server:latest) + docker pull ghcr.io/goauthentik/server:${{ steps.ev.outputs.imageMainTag }} + container=$(docker container create ghcr.io/goauthentik/server:${{ steps.ev.outputs.imageMainTag }}) docker cp ${container}:web/ . - name: Create a Sentry.io release uses: getsentry/action-release@v1 continue-on-error: true - if: ${{ github.event_name == 'release' }} env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_ORG: authentik-security-inc diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index a0b896a92b..9f3a280851 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -1,3 +1,4 @@ +--- name: authentik-on-tag on: @@ -28,13 +29,11 @@ jobs: with: app_id: ${{ secrets.GH_APP_ID }} private_key: ${{ secrets.GH_APP_PRIVATE_KEY }} - - name: Extract version number - id: get_version - uses: actions/github-script@v7 + - name: prepare variables + uses: ./.github/actions/docker-push-variables + id: ev with: - github-token: ${{ steps.generate_token.outputs.token }} - script: | - return context.payload.ref.replace(/\/refs\/tags\/version\//, ''); + image-name: ghcr.io/goauthentik/server - name: Create Release id: create_release uses: actions/create-release@v1.1.4 @@ -42,6 +41,6 @@ jobs: GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} with: tag_name: ${{ github.ref }} - release_name: Release ${{ steps.get_version.outputs.result }} + release_name: Release ${{ steps.ev.outputs.version }} draft: true - prerelease: false + prerelease: ${{ steps.ev.outputs.prerelease == 'true' }} From 83e143032dbba0210d1ad048b0e908b4bcadb66e Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 06:59:21 +0100 Subject: [PATCH 073/105] core, web: update translations (#8491) Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> --- web/xliff/zh-Hans.xlf | 44 +++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 37fc1357c0..335ded3757 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1782,8 +1782,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2961,8 +2961,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3739,8 +3739,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3916,10 +3916,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5000,7 +5000,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5335,10 +5335,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5387,7 +5387,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7880,7 +7880,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8427,4 +8427,4 @@ Bindings to groups/users are checked against the user of the event. - \ No newline at end of file + From 5cae3192b1bdb127b60e3ee283364d09f905aaf1 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 06:16:11 +0000 Subject: [PATCH 074/105] translate: Updates for file locale/en/LC_MESSAGES/django.po in fr (#8496) Translate locale/en/LC_MESSAGES/django.po in fr 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/fr/LC_MESSAGES/django.po | 1291 +++++++++++++++---------------- 1 file changed, 643 insertions(+), 648 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 668fa97fc3..1e2b383642 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-26 17:26+0000\n" +"POT-Creation-Date: 2024-02-07 12:04+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: Marc Schmitt, 2024\n" "Language-Team: French (https://app.transifex.com/authentik/teams/119923/fr/)\n" @@ -29,32 +29,32 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" -#: authentik/api/schema.py:25 +#: authentik/api/schema.py msgid "Generic API Error" msgstr "Erreur d'API Générique" -#: authentik/api/schema.py:33 +#: authentik/api/schema.py msgid "Validation Error" msgstr "Erreur de Validation" -#: authentik/blueprints/api.py:43 +#: authentik/blueprints/api.py msgid "Blueprint file does not exist" msgstr "Le fichier de plan n'existe pas" -#: authentik/blueprints/api.py:54 +#: authentik/blueprints/api.py #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "Échec de validation du plan: %(logs)s" -#: authentik/blueprints/api.py:59 +#: authentik/blueprints/api.py msgid "Either path or content must be set." msgstr "Le chemin ou le contenu doit être défini." -#: authentik/blueprints/models.py:30 +#: authentik/blueprints/models.py msgid "Managed by authentik" msgstr "Géré par authentik" -#: authentik/blueprints/models.py:32 +#: authentik/blueprints/models.py msgid "" "Objects that are managed by authentik. These objects are created and updated" " automatically. This flag only indicates that an object can be overwritten " @@ -67,25 +67,25 @@ msgstr "" " attendez-vous à ce que ces changements soient écrasés par une mise-à-jour " "ultérieure." -#: authentik/blueprints/models.py:112 +#: authentik/blueprints/models.py msgid "Blueprint Instance" msgstr "Instance du plan" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py msgid "Blueprint Instances" msgstr "Instances du plan" -#: authentik/blueprints/v1/exporter.py:62 +#: authentik/blueprints/v1/exporter.py #, python-format msgid "authentik Export - %(date)s" msgstr "Export authentik - %(date)s" -#: authentik/blueprints/v1/tasks.py:145 authentik/crypto/tasks.py:87 +#: authentik/blueprints/v1/tasks.py authentik/crypto/tasks.py #, python-format msgid "Successfully imported %(count)d files." msgstr " %(count)d fichiers importés avec succès." -#: authentik/brands/models.py:22 +#: authentik/brands/models.py msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" @@ -93,81 +93,90 @@ msgstr "" "Domain qui active cette marque. Peut être un super-ensemble, c'est-à-dire " "`a.b` pour `aa.b` et `ba.b`" -#: authentik/brands/models.py:58 +#: authentik/brands/models.py msgid "Web Certificate used by the authentik Core webserver." msgstr "Certificate Web utilisé par le serveur web d'authentik core." -#: authentik/brands/models.py:84 +#: authentik/brands/models.py msgid "Brand" msgstr "Marque" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py msgid "Brands" msgstr "Marques" -#: authentik/core/api/providers.py:122 +#: authentik/core/api/providers.py msgid "SAML Provider from Metadata" msgstr "Fournisseur SAML depuis métadonnées" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py msgid "Create a SAML Provider by importing its Metadata." msgstr "Créer un fournisseur SAML en important ses métadonnées." -#: authentik/core/api/users.py:149 +#: authentik/core/api/users.py msgid "No leading or trailing slashes allowed." msgstr "" "Les barres obliques, ou slashes, de tête ou de queue ne sont pas autorisées." -#: authentik/core/api/users.py:152 +#: authentik/core/api/users.py msgid "No empty segments in user path allowed." msgstr "Les segments vides dans le chemin utilisateur ne sont pas autorisés." -#: authentik/core/models.py:92 +#: authentik/core/models.py msgid "name" msgstr "nom" -#: authentik/core/models.py:94 +#: authentik/core/models.py msgid "Users added to this group will be superusers." msgstr "Les utilisateurs ajoutés à ce groupe seront des super-utilisateurs." -#: authentik/core/models.py:168 +#: authentik/core/models.py msgid "Group" msgstr "Group" -#: authentik/core/models.py:169 +#: authentik/core/models.py msgid "Groups" msgstr "Groupes" -#: authentik/core/models.py:184 +#: authentik/core/models.py msgid "User's display name." msgstr "Nom d'affichage de l'utilisateur" -#: authentik/core/models.py:280 authentik/providers/oauth2/models.py:295 +#: authentik/core/models.py authentik/providers/oauth2/models.py msgid "User" msgstr "Utilisateur" -#: authentik/core/models.py:281 +#: authentik/core/models.py msgid "Users" msgstr "Utilisateurs" -#: authentik/core/models.py:283 -#: authentik/stages/email/templates/email/password_reset.html:28 +#: authentik/core/models.py +#: authentik/stages/email/templates/email/password_reset.html msgid "Reset Password" msgstr "Réinitialiser le mot de passe" -#: authentik/core/models.py:284 +#: authentik/core/models.py msgid "Can impersonate other users" msgstr "Peut se faire passer pour d'autres utilisateurs" -#: authentik/core/models.py:285 authentik/rbac/models.py:54 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can assign permissions to users" msgstr "Peut assigner des permissions aux utilisateurs" -#: authentik/core/models.py:286 authentik/rbac/models.py:55 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can unassign permissions from users" msgstr "Peut enlever des permissions aux utilisateurs" -#: authentik/core/models.py:308 +#: authentik/core/models.py +msgid "Can preview user data sent to providers" +msgstr "" +"Peut prévisualiser les données utilisateurs transmises aux fournisseurs" + +#: authentik/core/models.py +msgid "View applications the user has access to" +msgstr "Voir les applications auquel l'utilisateur a accès" + +#: authentik/core/models.py msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." @@ -175,11 +184,11 @@ msgstr "" "Flux utilisé lors d'authentification quand l'application associée est " "accédée par un utilisateur non-authentifié." -#: authentik/core/models.py:318 +#: authentik/core/models.py msgid "Flow used when authorizing this provider." msgstr "Flux utilisé lors de l'autorisation de ce fournisseur." -#: authentik/core/models.py:330 +#: authentik/core/models.py msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." @@ -187,32 +196,32 @@ msgstr "" "Accès à partir d'applications ; fournisseurs optionnels de canaux de retour " "pour des protocoles tels que LDAP et SCIM." -#: authentik/core/models.py:385 +#: authentik/core/models.py msgid "Application's display Name." msgstr "Nom d'affichage de l'application" -#: authentik/core/models.py:386 +#: authentik/core/models.py msgid "Internal application name, used in URLs." msgstr "Nom de l'application interne, utilisé dans les URLs." -#: authentik/core/models.py:398 +#: authentik/core/models.py msgid "Open launch URL in a new browser tab or window." msgstr "" "Ouvrir l'URL de lancement dans une nouvelle fenêtre ou un nouvel onglet." -#: authentik/core/models.py:462 +#: authentik/core/models.py msgid "Application" msgstr "Application" -#: authentik/core/models.py:463 +#: authentik/core/models.py msgid "Applications" msgstr "Applications" -#: authentik/core/models.py:469 +#: authentik/core/models.py msgid "Use the source-specific identifier" msgstr "Utiliser l'identifiant spécifique à la source" -#: authentik/core/models.py:471 +#: authentik/core/models.py msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." @@ -220,7 +229,7 @@ msgstr "" "Lier à un utilisateur avec une adresse email identique. Peut avoir des " "implications de sécurité lorsqu'une source ne valide pas les adresses email." -#: authentik/core/models.py:475 +#: authentik/core/models.py msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." @@ -228,7 +237,7 @@ msgstr "" "Utiliser l'adresse courriel de l'utilisateur, mais refuser l'inscription " "lorsque celle-ci existe déjà." -#: authentik/core/models.py:478 +#: authentik/core/models.py msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." @@ -237,7 +246,7 @@ msgstr "" "problèmes de sécurité si ce nom d'utilisateur est partagé avec une autre " "source." -#: authentik/core/models.py:482 +#: authentik/core/models.py msgid "" "Use the user's username, but deny enrollment when the username already " "exists." @@ -245,23 +254,23 @@ msgstr "" "Utiliser le nom d'utilisateur, mais refuser l'inscription si celui-ci existe" " déjà." -#: authentik/core/models.py:489 +#: authentik/core/models.py msgid "Source's display Name." msgstr "Nom d'affichage de la source." -#: authentik/core/models.py:490 +#: authentik/core/models.py msgid "Internal source name, used in URLs." msgstr "Nom interne de la source, utilisé dans les URLs." -#: authentik/core/models.py:509 +#: authentik/core/models.py msgid "Flow to use when authenticating existing users." msgstr "Flux à utiliser pour authentifier les utilisateurs existants." -#: authentik/core/models.py:518 +#: authentik/core/models.py msgid "Flow to use when enrolling new users." msgstr "Flux à utiliser pour inscrire les nouveaux utilisateurs." -#: authentik/core/models.py:526 +#: authentik/core/models.py msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." @@ -269,35 +278,35 @@ msgstr "" "Comment la source détermine si un utilisateur existant doit être authentifié" " ou un nouvelle utilisateur doit être inscrit." -#: authentik/core/models.py:698 +#: authentik/core/models.py msgid "Token" msgstr "Jeton" -#: authentik/core/models.py:699 +#: authentik/core/models.py msgid "Tokens" msgstr "Jetons" -#: authentik/core/models.py:704 +#: authentik/core/models.py msgid "View token's key" msgstr "Voir la clé du jeton" -#: authentik/core/models.py:740 +#: authentik/core/models.py msgid "Property Mapping" msgstr "Mappage de propriété" -#: authentik/core/models.py:741 +#: authentik/core/models.py msgid "Property Mappings" msgstr "Mappages de propriété" -#: authentik/core/models.py:778 +#: authentik/core/models.py msgid "Authenticated Session" msgstr "Session Authentifiée" -#: authentik/core/models.py:779 +#: authentik/core/models.py msgid "Authenticated Sessions" msgstr "Sessions Authentifiées" -#: authentik/core/sources/flow_manager.py:190 +#: authentik/core/sources/flow_manager.py #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate" @@ -306,30 +315,29 @@ msgstr "" "La requête d'authentification avec %(source)s a été refusée. Merci de vous " "authentifier avec la source utilisée précédemment." -#: authentik/core/sources/flow_manager.py:242 +#: authentik/core/sources/flow_manager.py msgid "Configured flow does not exist." msgstr "Le flux configuré n'existe pas." -#: authentik/core/sources/flow_manager.py:272 -#: authentik/core/sources/flow_manager.py:324 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "Authentifié avec succès avec %(source)s!" -#: authentik/core/sources/flow_manager.py:296 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully linked %(source)s!" msgstr "%(source)s lié avec succès!" -#: authentik/core/sources/flow_manager.py:315 +#: authentik/core/sources/flow_manager.py msgid "Source is not configured for enrollment." msgstr "La source n'est pas configurée pour l'inscription." -#: authentik/core/templates/if/end_session.html:7 +#: authentik/core/templates/if/end_session.html msgid "End session" msgstr "Terminer la Session" -#: authentik/core/templates/if/end_session.html:11 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -338,7 +346,7 @@ msgstr "" "\n" "Vous vous êtes déconnecté de %(application)s.\n" -#: authentik/core/templates/if/end_session.html:19 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -349,11 +357,11 @@ msgstr "" " Vous vous êtes déconnecté de %(application)s. Vous pouvez retourner à la vue d'ensemble pour lancer une autre application, ou vous déconnecter de votre compte %(branding_title)s .\n" " " -#: authentik/core/templates/if/end_session.html:25 +#: authentik/core/templates/if/end_session.html msgid "Go back to overview" msgstr "Retourner à la vue d'ensemble" -#: authentik/core/templates/if/end_session.html:29 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -364,7 +372,7 @@ msgstr "" " Déconnexion de %(branding_title)s\n" " " -#: authentik/core/templates/if/end_session.html:36 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -375,31 +383,30 @@ msgstr "" " Reconnexion à %(application)s\n" " " -#: authentik/core/templates/if/error.html:18 +#: authentik/core/templates/if/error.html msgid "Go home" msgstr "Retourner à l'accueil" -#: authentik/core/templates/login/base_full.html:75 +#: authentik/core/templates/login/base_full.html msgid "Powered by authentik" msgstr "Propulsé par authentik" -#: authentik/core/views/apps.py:53 -#: authentik/providers/oauth2/views/authorize.py:434 -#: authentik/providers/oauth2/views/device_init.py:70 -#: authentik/providers/saml/views/sso.py:70 +#: authentik/core/views/apps.py authentik/providers/oauth2/views/authorize.py +#: authentik/providers/oauth2/views/device_init.py +#: authentik/providers/saml/views/sso.py #, python-format msgid "You're about to sign into %(application)s." msgstr "Vous êtes sur le point de vous connecter à %(application)s." -#: authentik/crypto/api.py:179 +#: authentik/crypto/api.py msgid "Subject-alt name" msgstr "Nom alternatif subject" -#: authentik/crypto/models.py:30 +#: authentik/crypto/models.py msgid "PEM-encoded Certificate data" msgstr "Données du certificat au format PEM" -#: authentik/crypto/models.py:33 +#: authentik/crypto/models.py msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." @@ -407,44 +414,44 @@ msgstr "" "Clé privée optionnelle. Si définie, vous pouvez utiliser pour le " "chiffrement." -#: authentik/crypto/models.py:101 +#: authentik/crypto/models.py msgid "Certificate-Key Pair" msgstr "Paire de clé/certificat" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py msgid "Certificate-Key Pairs" msgstr "Paires de clé/certificat" -#: authentik/enterprise/api.py:33 +#: authentik/enterprise/api.py msgid "Enterprise is required to create/update this object." msgstr "Entreprise est requis pour créer/mettre à jour cet objet." -#: authentik/enterprise/models.py:183 +#: authentik/enterprise/models.py msgid "License" msgstr "Licence" -#: authentik/enterprise/models.py:184 +#: authentik/enterprise/models.py msgid "Licenses" msgstr "Licences" -#: authentik/enterprise/models.py:206 +#: authentik/enterprise/models.py msgid "License Usage" msgstr "Utilisation de la licence" -#: authentik/enterprise/models.py:207 +#: authentik/enterprise/models.py msgid "License Usage Records" msgstr "Registre d'utilisation de la licence" -#: authentik/enterprise/policy.py:18 +#: authentik/enterprise/policy.py msgid "Enterprise required to access this feature." msgstr "Entreprise est requis pour accéder à cette fonctionnalité." -#: authentik/enterprise/policy.py:20 +#: authentik/enterprise/policy.py msgid "Feature only accessible for internal users." msgstr "Fonctionnalité accessible aux utilisateurs internes uniquement." -#: authentik/enterprise/providers/rac/models.py:48 -#: authentik/stages/user_login/models.py:39 +#: authentik/enterprise/providers/rac/models.py +#: authentik/stages/user_login/models.py msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" @@ -453,68 +460,68 @@ msgstr "" "session dure jusqu'à la fermeture du navigateur. (Format : " "hours=-1;minutes=-2;seconds=-3)" -#: authentik/enterprise/providers/rac/models.py:71 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Provider" msgstr "Fournisseur RAC" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Providers" msgstr "Fournisseurs RAC" -#: authentik/enterprise/providers/rac/models.py:100 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoint" msgstr "Point de terminaison RAC" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoints" msgstr "Points de terminaison RAC" -#: authentik/enterprise/providers/rac/models.py:122 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mapping" msgstr "Mappage de propriété RAC" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mappings" msgstr "Mappages de propriété RAC" -#: authentik/enterprise/providers/rac/views.py:108 +#: authentik/enterprise/providers/rac/views.py msgid "Maximum connection limit reached." msgstr "Limite maximum de connection atteinte." -#: authentik/enterprise/providers/rac/views.py:112 +#: authentik/enterprise/providers/rac/views.py msgid "(You are already connected in another tab/window)" msgstr "(Vous êtes déjà connecté dans un autre onglet/une autre fenêtre)" -#: authentik/events/api/tasks.py:100 +#: authentik/events/api/tasks.py #, python-format msgid "Successfully started task %(name)s." msgstr "La tâche %(name)s a été démarrée avec succès." -#: authentik/events/models.py:304 +#: authentik/events/models.py msgid "Event" msgstr "Évènement" -#: authentik/events/models.py:305 +#: authentik/events/models.py msgid "Events" msgstr "Évènements" -#: authentik/events/models.py:311 +#: authentik/events/models.py msgid "authentik inbuilt notifications" msgstr "notifications intégrées à authentik" -#: authentik/events/models.py:312 +#: authentik/events/models.py msgid "Generic Webhook" msgstr "Webhook Générique" -#: authentik/events/models.py:313 +#: authentik/events/models.py msgid "Slack Webhook (Slack/Discord)" msgstr "Webhook Slack (ou Discord)" -#: authentik/events/models.py:314 +#: authentik/events/models.py msgid "Email" msgstr "Courriel" -#: authentik/events/models.py:332 +#: authentik/events/models.py msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." @@ -522,47 +529,47 @@ msgstr "" "Envoyer une seule fois la notification, par exemple lors de l'envoi d'un " "webhook dans un canal de discussion." -#: authentik/events/models.py:397 +#: authentik/events/models.py msgid "Severity" msgstr "Sévérité" -#: authentik/events/models.py:402 +#: authentik/events/models.py msgid "Dispatched for user" msgstr "Distribué pour l'utilisateur" -#: authentik/events/models.py:411 +#: authentik/events/models.py msgid "Event user" msgstr "Évènement utilisateur" -#: authentik/events/models.py:505 +#: authentik/events/models.py msgid "Notification Transport" msgstr "Transport de Notification" -#: authentik/events/models.py:506 +#: authentik/events/models.py msgid "Notification Transports" msgstr "Transports de notification" -#: authentik/events/models.py:512 +#: authentik/events/models.py msgid "Notice" msgstr "Note" -#: authentik/events/models.py:513 +#: authentik/events/models.py msgid "Warning" msgstr "Avertissement" -#: authentik/events/models.py:514 +#: authentik/events/models.py msgid "Alert" msgstr "Alerte" -#: authentik/events/models.py:539 +#: authentik/events/models.py msgid "Notification" msgstr "Notification" -#: authentik/events/models.py:540 +#: authentik/events/models.py msgid "Notifications" msgstr "Notifications" -#: authentik/events/models.py:550 +#: authentik/events/models.py msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." @@ -571,11 +578,11 @@ msgstr "" "défaut, la notification sera simplement affichée dans l'interface " "utilisateur authentik." -#: authentik/events/models.py:558 +#: authentik/events/models.py msgid "Controls which severity level the created notifications will have." msgstr "Contrôle quel niveau de sévérité les notifications créées auront." -#: authentik/events/models.py:563 +#: authentik/events/models.py msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." @@ -583,115 +590,110 @@ msgstr "" "Définir à quel groupe d'utilisateur cette notification doit être envoyée et " "affichée. Si laissé vide, les notifications ne seront pas envoyées." -#: authentik/events/models.py:581 +#: authentik/events/models.py msgid "Notification Rule" msgstr "Règle de Notification" -#: authentik/events/models.py:582 +#: authentik/events/models.py msgid "Notification Rules" msgstr "Règles de notification" -#: authentik/events/models.py:602 +#: authentik/events/models.py msgid "Webhook Mapping" msgstr "Mappage de Webhook" -#: authentik/events/models.py:603 +#: authentik/events/models.py msgid "Webhook Mappings" msgstr "Mappages de Webhook" -#: authentik/events/models.py:668 +#: authentik/events/models.py msgid "Run task" msgstr "Lancer la tâche" -#: authentik/events/models.py:669 +#: authentik/events/models.py msgid "System Task" msgstr "Tâches du système" -#: authentik/events/models.py:670 +#: authentik/events/models.py msgid "System Tasks" msgstr "Tâches du système" -#: authentik/events/system_tasks.py:126 +#: authentik/events/system_tasks.py msgid "Task has not been run yet." msgstr "Tâche pas encore exécutée." -#: authentik/flows/api/flows.py:295 +#: authentik/flows/api/flows.py #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "" "Ce flux n'est pas applicable à l'utilisateur ou à la requête courrante : " "%(messages)s" -#: authentik/flows/api/flows_diagram.py:68 -#: authentik/flows/api/flows_diagram.py:94 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Policy (%(type)s)" msgstr "Politique (%(type)s)" -#: authentik/flows/api/flows_diagram.py:71 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Binding %(order)d" msgstr "Liaison %(order)d" -#: authentik/flows/api/flows_diagram.py:118 +#: authentik/flows/api/flows_diagram.py msgid "Policy passed" msgstr "Politique acceptée" -#: authentik/flows/api/flows_diagram.py:122 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Stage (%(type)s)" msgstr "Étape (%(type)s)" -#: authentik/flows/api/flows_diagram.py:146 -#: authentik/flows/api/flows_diagram.py:206 +#: authentik/flows/api/flows_diagram.py msgid "Policy denied" msgstr "Politique refusée" -#: authentik/flows/api/flows_diagram.py:156 -#: authentik/flows/api/flows_diagram.py:168 -#: authentik/flows/api/flows_diagram.py:205 -#: authentik/flows/api/flows_diagram.py:227 +#: authentik/flows/api/flows_diagram.py msgid "End of the flow" msgstr "Fin du flux" -#: authentik/flows/api/flows_diagram.py:169 +#: authentik/flows/api/flows_diagram.py msgid "Requirement not fulfilled" msgstr "Exigence non satisfaite" -#: authentik/flows/api/flows_diagram.py:177 +#: authentik/flows/api/flows_diagram.py msgid "Flow authentication requirement" msgstr "Exigence d'authentification du flux" -#: authentik/flows/api/flows_diagram.py:183 +#: authentik/flows/api/flows_diagram.py msgid "Requirement fulfilled" msgstr "Exigence satisfaite" -#: authentik/flows/api/flows_diagram.py:196 +#: authentik/flows/api/flows_diagram.py msgid "Pre-flow policies" msgstr "Politiques pré-flux" -#: authentik/flows/api/flows_diagram.py:214 authentik/flows/models.py:194 +#: authentik/flows/api/flows_diagram.py authentik/flows/models.py msgid "Flow" msgstr "Flux" -#: authentik/flows/exceptions.py:19 +#: authentik/flows/exceptions.py msgid "Flow does not apply to current user." msgstr "Le flux ne s'applique pas à l'utilisateur actuel" -#: authentik/flows/models.py:115 +#: authentik/flows/models.py #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "Étape dynamique en mémoire : %(doc)s" -#: authentik/flows/models.py:130 +#: authentik/flows/models.py msgid "Visible in the URL." msgstr "Visible dans l'URL" -#: authentik/flows/models.py:132 +#: authentik/flows/models.py msgid "Shown as the Title in Flow pages." msgstr "Afficher comme Titre dans les pages de Flux." -#: authentik/flows/models.py:139 +#: authentik/flows/models.py msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." @@ -699,11 +701,11 @@ msgstr "" "Détermine l'usage de ce flux. Par exemple, un flux d'authentification est la" " destination d'un visiteur d'authentik non authentifié." -#: authentik/flows/models.py:148 +#: authentik/flows/models.py msgid "Background shown during execution" msgstr "Fond d'écran affiché durant l'exécution" -#: authentik/flows/models.py:155 +#: authentik/flows/models.py msgid "" "Enable compatibility mode, increases compatibility with password managers on" " mobile devices." @@ -711,47 +713,47 @@ msgstr "" "Activer le mode de compatibilité, améliore la compatibilité avec les " "gestionnaires de mot de passe sur les équipements mobiles." -#: authentik/flows/models.py:163 +#: authentik/flows/models.py msgid "Configure what should happen when a flow denies access to a user." msgstr "" "Configuration de ce qu'il se passe lorsqu'un flux refuse l'accès à un " "utilisateur." -#: authentik/flows/models.py:169 +#: authentik/flows/models.py msgid "Required level of authentication and authorization to access a flow." msgstr "" "Niveau d'authentification et d'authorisation requis pour accéder à un flux." -#: authentik/flows/models.py:195 +#: authentik/flows/models.py msgid "Flows" msgstr "Flux" -#: authentik/flows/models.py:198 +#: authentik/flows/models.py msgid "Can export a Flow" msgstr "Peut exporter un flux" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py msgid "Can inspect a Flow's execution" msgstr "Peut inspecter l'exécution d'un flux" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py msgid "View Flow's cache metrics" msgstr "Voir les métriques de cache du flux" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py msgid "Clear Flow's cache metrics" msgstr "Nettoyer les métriques de cache du flux" -#: authentik/flows/models.py:217 +#: authentik/flows/models.py msgid "Evaluate policies during the Flow planning process." msgstr "Évaluer les politiques durant la planification du flux." -#: authentik/flows/models.py:221 +#: authentik/flows/models.py msgid "Evaluate policies when the Stage is present to the user." msgstr "" "Évaluer les politiques lorsque l'étape est présentée est l'utilisateur." -#: authentik/flows/models.py:228 +#: authentik/flows/models.py msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -763,15 +765,15 @@ msgstr "" "l'éxecuteur. RESTART redémarre le flux au début. RESTART_WITH_CONTEXT " "redémarre le flux au début tout en conservant le contexte actuel." -#: authentik/flows/models.py:251 +#: authentik/flows/models.py msgid "Flow Stage Binding" msgstr "Liaison de l'étape de flux" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py msgid "Flow Stage Bindings" msgstr "Liaisons d'étape de flux" -#: authentik/flows/models.py:267 +#: authentik/flows/models.py msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." @@ -779,36 +781,36 @@ msgstr "" "Flux utilisé par un utilisateur authentifié pour configurer cette étape. " "S'il est vide, l'utilisateur ne sera pas en mesure de le configurer." -#: authentik/flows/models.py:307 +#: authentik/flows/models.py msgid "Flow Token" msgstr "Jeton du flux" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py msgid "Flow Tokens" msgstr "Jetons du flux" -#: authentik/lib/utils/time.py:27 +#: authentik/lib/utils/time.py #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "%(value)sn'est pas dans le bon format de 'hours=3;minutes=1'." -#: authentik/lib/validators.py:16 +#: authentik/lib/validators.py #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "Les champs {field_names} doivent être utilisés ensemble." -#: authentik/outposts/api/service_connections.py:127 +#: authentik/outposts/api/service_connections.py msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "" "Vous pouvez seulement utiliser un kubeconfig vide quand vous vous connectez " "à un cluster local." -#: authentik/outposts/api/service_connections.py:135 +#: authentik/outposts/api/service_connections.py msgid "Invalid kubeconfig" msgstr "kubeconfig invalide" -#: authentik/outposts/models.py:123 +#: authentik/outposts/models.py msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" @@ -816,15 +818,15 @@ msgstr "" "Si activé, utilise la connexion locale. L'intégration Docker " "socket/Kubernetes est requise" -#: authentik/outposts/models.py:153 +#: authentik/outposts/models.py msgid "Outpost Service-Connection" msgstr "Connexion de service de l'avant-poste" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py msgid "Outpost Service-Connections" msgstr "Connexions de service de l'avant-poste" -#: authentik/outposts/models.py:162 +#: authentik/outposts/models.py msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." @@ -833,7 +835,7 @@ msgstr "" " local, ou \"https://:2376\" pour une connexion à un système " "distant." -#: authentik/outposts/models.py:174 +#: authentik/outposts/models.py msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." @@ -841,7 +843,7 @@ msgstr "" "AC auprès de laquelle le certificat du terminal est vérifié. Peut être " "laissé vide en l'absence de validation." -#: authentik/outposts/models.py:186 +#: authentik/outposts/models.py msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." @@ -849,15 +851,15 @@ msgstr "" "Certificat et clé utilisés pour l'authentification. Peut être laissé vide si" " pas d'authentification." -#: authentik/outposts/models.py:204 +#: authentik/outposts/models.py msgid "Docker Service-Connection" msgstr "Connexion de service Docker" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py msgid "Docker Service-Connections" msgstr "Connexions de service Docker" -#: authentik/outposts/models.py:213 +#: authentik/outposts/models.py msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." @@ -865,19 +867,19 @@ msgstr "" "Coller votre kubeconfig ici. authentik va automatiquement utiliseur le " "contexte actuellement sélectionné." -#: authentik/outposts/models.py:219 +#: authentik/outposts/models.py msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "Vérifier les certificats SSL de l'API Kubernetes" -#: authentik/outposts/models.py:236 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connection" msgstr "Connexion de service Kubernetes" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connections" msgstr "Connexions de service Kubernetes" -#: authentik/outposts/models.py:253 +#: authentik/outposts/models.py msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave" " empty if authentik should not handle the deployment." @@ -885,28 +887,28 @@ msgstr "" "Sélectionner la connexion de service qu'authentik doit utiliser pour gérer " "cet avant-poste. Laisser vide si authentik ne doit pas gérer le déploiement." -#: authentik/outposts/models.py:420 +#: authentik/outposts/models.py msgid "Outpost" msgstr "Avant-poste" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py msgid "Outposts" msgstr "Avant-postes" -#: authentik/policies/denied.py:24 +#: authentik/policies/denied.py msgid "Access denied" msgstr "Accès refusé" -#: authentik/policies/dummy/models.py:44 +#: authentik/policies/dummy/models.py msgid "Dummy Policy" msgstr "Politique Factice" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py msgid "Dummy Policies" msgstr "Politiques Factices" -#: authentik/policies/event_matcher/api.py:20 -#: authentik/policies/event_matcher/models.py:56 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected application. When left empty, all " "applications are matched." @@ -914,8 +916,8 @@ msgstr "" "Inclure les évènements créés par cette application. S'il est laissé vide, " "toutes les applications seront incluses." -#: authentik/policies/event_matcher/api.py:29 -#: authentik/policies/event_matcher/models.py:64 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." @@ -924,11 +926,11 @@ msgstr "" "laissé vide, tous les modèles sont pris en compte. Lorsqu'une application " "est sélectionnée, tous les modèles de l'application sont pris en compte." -#: authentik/policies/event_matcher/api.py:42 +#: authentik/policies/event_matcher/api.py msgid "At least one criteria must be set." msgstr "Au moins un critère doit être défini." -#: authentik/policies/event_matcher/models.py:48 +#: authentik/policies/event_matcher/models.py msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." @@ -936,7 +938,7 @@ msgstr "" "Inclure les événements créés avec ce type d'action. S'il est laissé vide, " "tous les types d'action seront inclus." -#: authentik/policies/event_matcher/models.py:73 +#: authentik/policies/event_matcher/models.py msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" @@ -944,78 +946,78 @@ msgstr "" "Inclure l'adresse IP du client de l'évènement (correspondante stricte, pour " "un correspondance sur le réseau utiliser une politique d'expression)" -#: authentik/policies/event_matcher/models.py:143 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policy" msgstr "Politique d'association d'évènements" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policies" msgstr "Politiques d'association d'évènements" -#: authentik/policies/expiry/models.py:45 +#: authentik/policies/expiry/models.py #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "" "Mot de passe expiré il y a %(days)d jours. Merci de mettre à jour votre mot " "de passe." -#: authentik/policies/expiry/models.py:49 +#: authentik/policies/expiry/models.py msgid "Password has expired." msgstr "Le Mot de Passe a expiré." -#: authentik/policies/expiry/models.py:53 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policy" msgstr "Politique d'expiration de Mot de Passe" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policies" msgstr "Politiques d'expiration de mot de passe" -#: authentik/policies/expression/models.py:40 +#: authentik/policies/expression/models.py msgid "Expression Policy" msgstr "Politique d'Expression" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py msgid "Expression Policies" msgstr "Politiques d'expression" -#: authentik/policies/models.py:22 +#: authentik/policies/models.py msgid "all, all policies must pass" msgstr "toutes, toutes les politiques doivent réussir" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py msgid "any, any policy must pass" msgstr "n'importe, n'importe quelle politique doit réussir" -#: authentik/policies/models.py:46 +#: authentik/policies/models.py msgid "Policy Binding Model" msgstr "Liaison de modèle de politique" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py msgid "Policy Binding Models" msgstr "Liaison de modèles de politique" -#: authentik/policies/models.py:86 +#: authentik/policies/models.py msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "Inverse la sortie de la politique. Les messages ne sont pas affectés." -#: authentik/policies/models.py:89 +#: authentik/policies/models.py msgid "Timeout after which Policy execution is terminated." msgstr "Expiration après que l'exécution de la politique soit terminée." -#: authentik/policies/models.py:92 +#: authentik/policies/models.py msgid "Result if the Policy execution fails." msgstr "Résultat si l'éxecution de la Politique échoue." -#: authentik/policies/models.py:145 +#: authentik/policies/models.py msgid "Policy Binding" msgstr "Liaison de politique" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py msgid "Policy Bindings" msgstr "Liaisons des politiques" -#: authentik/policies/models.py:167 +#: authentik/policies/models.py msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." @@ -1023,108 +1025,107 @@ msgstr "" "Si activée, toutes les exécutions de cette politique seront enregistrées. " "Par défaut, seules les erreurs d'exécution sont consignées." -#: authentik/policies/models.py:189 +#: authentik/policies/models.py msgid "Policy" msgstr "Politique" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py msgid "Policies" msgstr "Politiques" -#: authentik/policies/models.py:193 +#: authentik/policies/models.py msgid "View Policy's cache metrics" msgstr "Voir les métriques de cache de la politique" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py msgid "Clear Policy's cache metrics" msgstr "Nettoyer les métriques de cache de la politique" -#: authentik/policies/password/models.py:27 +#: authentik/policies/password/models.py msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "" "Clé de champ à vérifier ; les clés de champ définies dans les étapes de " "d'invite sont disponibles." -#: authentik/policies/password/models.py:44 +#: authentik/policies/password/models.py msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "" "Combien de fois le hachage du mot de passe est-il autorisé sur " "haveibeenpwned" -#: authentik/policies/password/models.py:49 +#: authentik/policies/password/models.py msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "" "Si le score zxcvbn est égal ou inférieur à cette valeur, la politique " "échouera." -#: authentik/policies/password/models.py:72 +#: authentik/policies/password/models.py msgid "Password not set in context" msgstr "Mot de passe non défini dans le contexte" -#: authentik/policies/password/models.py:134 +#: authentik/policies/password/models.py #, python-format msgid "Password exists on %(count)d online lists." msgstr "Le mot de passe existe sur %(count)d liste en ligne." -#: authentik/policies/password/models.py:154 +#: authentik/policies/password/models.py msgid "Password is too weak." msgstr "Le mot de passe est trop faible." -#: authentik/policies/password/models.py:162 +#: authentik/policies/password/models.py msgid "Password Policy" msgstr "Politique de Mots de Passe" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py msgid "Password Policies" msgstr "Politiques de Mot de Passe" -#: authentik/policies/reputation/api.py:18 +#: authentik/policies/reputation/api.py msgid "Either IP or Username must be checked" msgstr "L'IP ou le nom d'utilisateur doit être vérifé" -#: authentik/policies/reputation/models.py:67 +#: authentik/policies/reputation/models.py msgid "Reputation Policy" msgstr "Politique de Réputation" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py msgid "Reputation Policies" msgstr "Politiques de Réputation" -#: authentik/policies/reputation/models.py:96 +#: authentik/policies/reputation/models.py msgid "Reputation Score" msgstr "Score de Réputation" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py msgid "Reputation Scores" msgstr "Scores de Réputation" -#: authentik/policies/templates/policies/denied.html:7 -#: authentik/policies/templates/policies/denied.html:11 +#: authentik/policies/templates/policies/denied.html msgid "Permission denied" msgstr "Permission refusée" -#: authentik/policies/templates/policies/denied.html:21 +#: authentik/policies/templates/policies/denied.html msgid "User's avatar" msgstr "Avatar de l'utilisateu" -#: authentik/policies/templates/policies/denied.html:25 +#: authentik/policies/templates/policies/denied.html msgid "Not you?" msgstr "Pas vous ?" -#: authentik/policies/templates/policies/denied.html:33 +#: authentik/policies/templates/policies/denied.html msgid "Request has been denied." msgstr "La requête a été refusée." -#: authentik/policies/templates/policies/denied.html:44 +#: authentik/policies/templates/policies/denied.html msgid "Messages:" msgstr "Messages:" -#: authentik/policies/templates/policies/denied.html:54 +#: authentik/policies/templates/policies/denied.html msgid "Explanation:" msgstr "Explication :" -#: authentik/policies/templates/policies/denied.html:58 +#: authentik/policies/templates/policies/denied.html #, python-format msgid "" "\n" @@ -1135,15 +1136,15 @@ msgstr "" " L'association de politique '%(name)s' a renvoyé le résultat '%(result)s'\n" " " -#: authentik/policies/views.py:68 +#: authentik/policies/views.py msgid "Failed to resolve application" msgstr "Impossible de résoudre l'application" -#: authentik/providers/ldap/models.py:25 +#: authentik/providers/ldap/models.py msgid "DN under which objects are accessible." msgstr "DN sous lequel les objets sont accessibles." -#: authentik/providers/ldap/models.py:34 +#: authentik/providers/ldap/models.py msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." @@ -1151,7 +1152,7 @@ msgstr "" "Les utilisateurs dans ce groupe peuvent faire des requêtes de recherche. Si " "laissé vide, tous les utilisateurs peuvent faire des requêtes de recherche." -#: authentik/providers/ldap/models.py:53 +#: authentik/providers/ldap/models.py msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " @@ -1162,7 +1163,7 @@ msgstr "" "défaut est 2000 pour s'assurer que nous n'entrons pas en collision avec les " "uidNumber des utilisateurs locaux" -#: authentik/providers/ldap/models.py:62 +#: authentik/providers/ldap/models.py msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1175,8 +1176,7 @@ msgstr "" "n'entrons pas en collision avec les groupes locaux ou les gidNumber des " "groupes primaires des utilisateurs" -#: authentik/providers/ldap/models.py:76 -#: authentik/providers/radius/models.py:34 +#: authentik/providers/ldap/models.py authentik/providers/radius/models.py msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be" @@ -1190,37 +1190,37 @@ msgstr "" " se lieront à ce fournisseur ont un dispositif TOTP configuré, faute de quoi" " un mot de passe peut être rejeté à tort s'il contient un point-virgule." -#: authentik/providers/ldap/models.py:108 +#: authentik/providers/ldap/models.py msgid "LDAP Provider" msgstr "Fournisseur LDAP" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py msgid "LDAP Providers" msgstr "Fournisseurs LDAP" -#: authentik/providers/oauth2/id_token.py:27 +#: authentik/providers/oauth2/id_token.py msgid "Based on the Hashed User ID" msgstr "Basé sur le hash de l'ID utilisateur" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py msgid "Based on user ID" msgstr "Basé sur l'ID de l'utilisateur" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py msgid "Based on user UUID" msgstr "Basé sur le UUID de l'utilisateur" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py msgid "Based on the username" msgstr "Basé sur le nom d'utilisateur" -#: authentik/providers/oauth2/id_token.py:33 +#: authentik/providers/oauth2/id_token.py msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "" "Basé sur le courriel utilisateur. Ceci est recommandé par rapport à la " "méthode UPN." -#: authentik/providers/oauth2/id_token.py:38 +#: authentik/providers/oauth2/id_token.py msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." @@ -1229,65 +1229,65 @@ msgstr "" "attribut \"upn\" renseigné. Utiliser cette méthode seulement si les domaines" " UPN et courriel sont différents." -#: authentik/providers/oauth2/models.py:43 +#: authentik/providers/oauth2/models.py msgid "Confidential" msgstr "Confidentiel" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py msgid "Public" msgstr "Public" -#: authentik/providers/oauth2/models.py:66 +#: authentik/providers/oauth2/models.py msgid "Same identifier is used for all providers" msgstr "Le même identifiant est utilisé pour tous les fournisseurs" -#: authentik/providers/oauth2/models.py:68 +#: authentik/providers/oauth2/models.py msgid "Each provider has a different issuer, based on the application slug." msgstr "" "Chaque fournisseur a un émetteur différent, basé sur le slug de " "l'application." -#: authentik/providers/oauth2/models.py:75 +#: authentik/providers/oauth2/models.py msgid "code (Authorization Code Flow)" msgstr "code (Authorization Code Flow)" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py msgid "id_token (Implicit Flow)" msgstr "id_token (Implicit Flow)" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py msgid "id_token token (Implicit Flow)" msgstr "id_token token (Implicit Flow)" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py msgid "code token (Hybrid Flow)" msgstr "code token (Hybrid Flow)" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py msgid "code id_token (Hybrid Flow)" msgstr "code id_token (Hybrid Flow)" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py msgid "code id_token token (Hybrid Flow)" msgstr "code id_token token (Hybrid Flow)" -#: authentik/providers/oauth2/models.py:86 +#: authentik/providers/oauth2/models.py msgid "HS256 (Symmetric Encryption)" msgstr "HS256 (chiffrement symétrique)" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py msgid "RS256 (Asymmetric Encryption)" msgstr "RS256 (chiffrement asymétrique)" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py msgid "ES256 (Asymmetric Encryption)" msgstr "ES256 (Chiffrement Asymétrique)" -#: authentik/providers/oauth2/models.py:94 +#: authentik/providers/oauth2/models.py msgid "Scope used by the client" msgstr "Portées utilisées par le client" -#: authentik/providers/oauth2/models.py:98 +#: authentik/providers/oauth2/models.py msgid "" "Description shown to the user when consenting. If left empty, the user won't" " be informed." @@ -1295,19 +1295,19 @@ msgstr "" "Description montrée à l'utilisateur lors de l'approbation. Aucune " "information présentée à l'utilisateur si laissé vide." -#: authentik/providers/oauth2/models.py:117 +#: authentik/providers/oauth2/models.py msgid "Scope Mapping" msgstr "Mappage de Portée" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py msgid "Scope Mappings" msgstr "Mappage de Portée" -#: authentik/providers/oauth2/models.py:128 +#: authentik/providers/oauth2/models.py msgid "Client Type" msgstr "Type de Client" -#: authentik/providers/oauth2/models.py:130 +#: authentik/providers/oauth2/models.py msgid "" "Confidential clients are capable of maintaining the confidentiality of their" " credentials. Public clients are incapable" @@ -1315,27 +1315,27 @@ msgstr "" "Les clients confidentiels sont capable de maintenir la confidentialité de " "leurs identifiants. Les clients publics n'en sont pas capables." -#: authentik/providers/oauth2/models.py:137 +#: authentik/providers/oauth2/models.py msgid "Client ID" msgstr "ID client" -#: authentik/providers/oauth2/models.py:143 +#: authentik/providers/oauth2/models.py msgid "Client Secret" msgstr "Secret du client" -#: authentik/providers/oauth2/models.py:149 +#: authentik/providers/oauth2/models.py msgid "Redirect URIs" msgstr "URIs de redirection" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py msgid "Enter each URI on a new line." msgstr "Entrez chaque URI sur une nouvelle ligne." -#: authentik/providers/oauth2/models.py:155 +#: authentik/providers/oauth2/models.py msgid "Include claims in id_token" msgstr "Include les demandes utilisateurs dans id_token" -#: authentik/providers/oauth2/models.py:157 +#: authentik/providers/oauth2/models.py msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." @@ -1343,7 +1343,7 @@ msgstr "" "Inclure depuis la portée les demandes utilisateurs dans id_token, pour les " "applications qui n'accèdent pas au point de terminaison userinfo." -#: authentik/providers/oauth2/models.py:166 +#: authentik/providers/oauth2/models.py msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." @@ -1351,8 +1351,7 @@ msgstr "" "Les codes d'accès ne seront plus valide à partir de l'heure actuelle + cette" " valeur (Format : hours=1;minutes=2;seconds=3)." -#: authentik/providers/oauth2/models.py:174 -#: authentik/providers/oauth2/models.py:182 +#: authentik/providers/oauth2/models.py msgid "" "Tokens not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." @@ -1360,7 +1359,7 @@ msgstr "" "Les jetons ne seront plus valides à partir de l'heure actuelle + cette " "valeur (Format: hours=1;minutes=2;seconds=3)." -#: authentik/providers/oauth2/models.py:191 +#: authentik/providers/oauth2/models.py msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." @@ -1368,15 +1367,15 @@ msgstr "" "Configure quelle donnée utiliser pour l'identifiant unique utilisateur. La " "valeur par défaut devrait être correcte dans la plupart des cas." -#: authentik/providers/oauth2/models.py:198 +#: authentik/providers/oauth2/models.py msgid "Configure how the issuer field of the ID Token should be filled." msgstr "Configure comment le champ émetteur du jeton ID sera rempli." -#: authentik/providers/oauth2/models.py:203 +#: authentik/providers/oauth2/models.py msgid "Signing Key" msgstr "Clé de signature" -#: authentik/providers/oauth2/models.py:207 +#: authentik/providers/oauth2/models.py msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." @@ -1384,7 +1383,7 @@ msgstr "" "Clé utilisée pour signer les jetons. Nécessaire uniquement lorsque " "l'algorithme JWT est réglé sur RS256." -#: authentik/providers/oauth2/models.py:214 +#: authentik/providers/oauth2/models.py msgid "" "Any JWT signed by the JWK of the selected source can be used to " "authenticate." @@ -1392,119 +1391,117 @@ msgstr "" "Tout JWT signé par le JWK de la source sélectionnée peut être utilisé pour " "s'authentifier." -#: authentik/providers/oauth2/models.py:287 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Provider" msgstr "Fournisseur OAuth2/OpenID" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Providers" msgstr "Fournisseurs OAuth2/OpenID" -#: authentik/providers/oauth2/models.py:297 -#: authentik/providers/oauth2/models.py:430 +#: authentik/providers/oauth2/models.py msgid "Scopes" msgstr "Portées" -#: authentik/providers/oauth2/models.py:317 +#: authentik/providers/oauth2/models.py msgid "Code" msgstr "Code" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py msgid "Nonce" msgstr "Nonce" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py msgid "Code Challenge" msgstr "Challenge à code" -#: authentik/providers/oauth2/models.py:321 +#: authentik/providers/oauth2/models.py msgid "Code Challenge Method" msgstr "Méthode de challenge à code" -#: authentik/providers/oauth2/models.py:341 +#: authentik/providers/oauth2/models.py msgid "Authorization Code" msgstr "Code d'autorisation" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py msgid "Authorization Codes" msgstr "Codes d'autorisation" -#: authentik/providers/oauth2/models.py:384 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Token" msgstr "Jeton d'accès OAuth2" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Tokens" msgstr "Jetons d'accès OAuth2" -#: authentik/providers/oauth2/models.py:395 +#: authentik/providers/oauth2/models.py msgid "ID Token" msgstr "ID du jeton" -#: authentik/providers/oauth2/models.py:414 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Token" msgstr "Jeton de rafraîchissement OAuth2" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Tokens" msgstr "Jetons de rafraîchissement OAuth2" -#: authentik/providers/oauth2/models.py:442 +#: authentik/providers/oauth2/models.py msgid "Device Token" msgstr "Jeton d'équipement" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py msgid "Device Tokens" msgstr "Jetons d'équipement" -#: authentik/providers/oauth2/views/authorize.py:489 -#: authentik/providers/saml/views/flows.py:87 +#: authentik/providers/oauth2/views/authorize.py +#: authentik/providers/saml/views/flows.py #, python-format msgid "Redirecting to %(app)s..." msgstr "Redirection vers %(app)s..." -#: authentik/providers/oauth2/views/device_init.py:151 +#: authentik/providers/oauth2/views/device_init.py msgid "Invalid code" msgstr "Code invalide" -#: authentik/providers/oauth2/views/userinfo.py:55 -#: authentik/providers/oauth2/views/userinfo.py:56 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your User Information" msgstr "Compatibilité GitHub : accès aux informations utilisateur" -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access you Email addresses" msgstr "Compatibilité GitHub : accès aux adresses email" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your Groups" msgstr "Compatibilité GitHub : accès aux groupes" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py msgid "authentik API Access on behalf of your user" msgstr "Accès à l'API authentik au nom des utilisateurs" -#: authentik/providers/proxy/api.py:52 +#: authentik/providers/proxy/api.py msgid "User and password attributes must be set when basic auth is enabled." msgstr "" "Les attributs utilisateur et mot de passe doivent être définis lorsque " "l'authentification basique est activée." -#: authentik/providers/proxy/api.py:63 +#: authentik/providers/proxy/api.py msgid "Internal host cannot be empty when forward auth is disabled." msgstr "" "L'hôte interne ne peut pas être vide lorsque le transfert d'authentification" " est désactivée." -#: authentik/providers/proxy/models.py:54 +#: authentik/providers/proxy/models.py msgid "Validate SSL Certificates of upstream servers" msgstr "Valider les certificats SSL des serveurs en amont" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py msgid "Internal host SSL Validation" msgstr "Validation SSL de l'hôte interne" -#: authentik/providers/proxy/models.py:61 +#: authentik/providers/proxy/models.py msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." @@ -1512,7 +1509,7 @@ msgstr "" "Activer le support du transfert d'authentification dans traefik et nginx " "auth_request. Exclusif avec internal_host." -#: authentik/providers/proxy/models.py:70 +#: authentik/providers/proxy/models.py msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." @@ -1521,7 +1518,7 @@ msgstr "" "Chaque nouvelle ligne est interprétée comme une nouvelle expression " "régulière." -#: authentik/providers/proxy/models.py:78 +#: authentik/providers/proxy/models.py msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." @@ -1529,11 +1526,11 @@ msgstr "" "Quand activé, ce fournisseur va intercepter l'en-tête d'authorisation et " "authentifier les requêtes en fonction de sa valeur." -#: authentik/providers/proxy/models.py:84 +#: authentik/providers/proxy/models.py msgid "Set HTTP-Basic Authentication" msgstr "Définir l'authentification HTTP-Basic" -#: authentik/providers/proxy/models.py:86 +#: authentik/providers/proxy/models.py msgid "" "Set a custom HTTP-Basic Authentication header based on values from " "authentik." @@ -1541,11 +1538,11 @@ msgstr "" "Définir un en-tête d'authentification HTTP-Basic personnalisé basé sur les " "valeurs de authentik." -#: authentik/providers/proxy/models.py:91 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Username Key" msgstr "Clé de l'utilisateur HTTP-Basic" -#: authentik/providers/proxy/models.py:93 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not" " set, the user's Email address is used." @@ -1554,31 +1551,31 @@ msgstr "" " HTTP-Basic. S'il n'est pas défini, le courriel de l'utilisateur est " "utilisée." -#: authentik/providers/proxy/models.py:99 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Password Key" msgstr "Clé du mot de passe HTTP-Basic" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "" "Attribut d'utilisateur/groupe utilisé pour la champ mot de passe de l'en-" "tête HTTP-Basic." -#: authentik/providers/proxy/models.py:154 +#: authentik/providers/proxy/models.py msgid "Proxy Provider" msgstr "Fournisseur Proxy" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py msgid "Proxy Providers" msgstr "Fournisseur de Proxy" -#: authentik/providers/radius/models.py:18 +#: authentik/providers/radius/models.py msgid "Shared secret between clients and server to hash packets." msgstr "" "Secret partagé entre les clients et le serveur pour hacher les paquets." -#: authentik/providers/radius/models.py:24 +#: authentik/providers/radius/models.py msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" @@ -1589,28 +1586,28 @@ msgstr "" "moins spécifique. Les clients se connectant depuis un CIDR non spécifié " "seront rejetés." -#: authentik/providers/radius/models.py:60 +#: authentik/providers/radius/models.py msgid "Radius Provider" msgstr "Fournisseur Radius" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py msgid "Radius Providers" msgstr "Fournisseurs Radius" -#: authentik/providers/saml/api/providers.py:258 +#: authentik/providers/saml/api/providers.py msgid "Invalid XML Syntax" msgstr "Syntaxe XML Invalide" -#: authentik/providers/saml/api/providers.py:268 +#: authentik/providers/saml/api/providers.py #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "Échec d'import des metadata : %(message)s" -#: authentik/providers/saml/models.py:38 +#: authentik/providers/saml/models.py msgid "ACS URL" msgstr "ACS URL" -#: authentik/providers/saml/models.py:43 +#: authentik/providers/saml/models.py msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." @@ -1618,15 +1615,15 @@ msgstr "" "Valeur du champ de restriction d'audience de l'assertion. Si vide, aucune " "restriction d'audience ne sera ajoutée." -#: authentik/providers/saml/models.py:47 +#: authentik/providers/saml/models.py msgid "Also known as EntityID" msgstr "Aussi appelé EntityID" -#: authentik/providers/saml/models.py:51 +#: authentik/providers/saml/models.py msgid "Service Provider Binding" msgstr "Liaison du fournisseur de services" -#: authentik/providers/saml/models.py:53 +#: authentik/providers/saml/models.py msgid "" "This determines how authentik sends the response back to the Service " "Provider." @@ -1634,11 +1631,11 @@ msgstr "" "Cela détermine la manière dont authentik renvoie la réponse au fournisseur " "de services." -#: authentik/providers/saml/models.py:63 +#: authentik/providers/saml/models.py msgid "NameID Property Mapping" msgstr "Mappage de la propriété NameID" -#: authentik/providers/saml/models.py:65 +#: authentik/providers/saml/models.py msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" @@ -1646,7 +1643,7 @@ msgstr "" "Configure la manière dont la valeur NameID sera créée. Si laissé vide, la " "NameIDPolicy de la requête entrante sera prise en compte" -#: authentik/providers/saml/models.py:74 +#: authentik/providers/saml/models.py msgid "" "Assertion valid not before current time + this value (Format: " "hours=-1;minutes=-2;seconds=-3)." @@ -1654,7 +1651,7 @@ msgstr "" "L'assertion ne sera plus valide à partir de l'heure actuelle + cette valeur " "(Format: hours=-1;minutes=-2;seconds=-3)." -#: authentik/providers/saml/models.py:82 +#: authentik/providers/saml/models.py msgid "" "Assertion not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." @@ -1662,7 +1659,7 @@ msgstr "" "Assertion non valide après écoulement de ce délai (format : " "hours=1;minutes=2;seconds=3)" -#: authentik/providers/saml/models.py:91 +#: authentik/providers/saml/models.py msgid "" "Session not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." @@ -1670,43 +1667,43 @@ msgstr "" "La session n'est plus valide à partir de l'heure actuelle + cette valeur " "(Format: hours=1;minutes=2;seconds=3)." -#: authentik/providers/saml/models.py:99 authentik/sources/saml/models.py:150 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA1" msgstr "SHA1" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA256" msgstr "SHA256" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA384" msgstr "SHA384" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA512" msgstr "SHA512" -#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:160 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA1" msgstr "RSA-SHA1" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA256" msgstr "RSA-SHA256" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA384" msgstr "RSA-SHA384" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA512" msgstr "RSA-SHA512" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "DSA-SHA1" msgstr "DSA-SHA1" -#: authentik/providers/saml/models.py:124 authentik/sources/saml/models.py:130 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." @@ -1715,161 +1712,161 @@ msgstr "" "rapport à ce certificat. Pour autoriser les requêtes non signées, laissez la" " valeur par défaut." -#: authentik/providers/saml/models.py:128 authentik/sources/saml/models.py:134 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Verification Certificate" msgstr "Certificat de validation" -#: authentik/providers/saml/models.py:136 +#: authentik/providers/saml/models.py msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "" "Paire de clés utilisées pour signer les réponses sortantes allant vers le " "fournisseur de services." -#: authentik/providers/saml/models.py:138 authentik/sources/saml/models.py:144 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Signing Keypair" msgstr "Paire de clés de Signature" -#: authentik/providers/saml/models.py:142 +#: authentik/providers/saml/models.py msgid "Default relay_state value for IDP-initiated logins" msgstr "Valeur par défaut de relay_state des connexions initiées par l'IdP" -#: authentik/providers/saml/models.py:171 +#: authentik/providers/saml/models.py msgid "SAML Provider" msgstr "Fournisseur SAML" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py msgid "SAML Providers" msgstr "Fournisseurs SAML" -#: authentik/providers/saml/models.py:196 +#: authentik/providers/saml/models.py msgid "SAML Property Mapping" msgstr "Mappages de propriétés SAML" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py msgid "SAML Property Mappings" msgstr "Mappages de propriétés SAML" -#: authentik/providers/scim/models.py:23 +#: authentik/providers/scim/models.py msgid "Base URL to SCIM requests, usually ends in /v2" msgstr "URL de base pour les requêtes SCIM, se terminant généralement par /v2" -#: authentik/providers/scim/models.py:24 +#: authentik/providers/scim/models.py msgid "Authentication token" msgstr "Jeton d'authentification" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:98 +#: authentik/providers/scim/models.py authentik/sources/ldap/models.py msgid "Property mappings used for group creation/updating." msgstr "" "Mappages de propriétés utilisés lors de la création et de la mise à jour des" " groupes." -#: authentik/providers/scim/models.py:72 +#: authentik/providers/scim/models.py msgid "SCIM Provider" msgstr "Fournisseur SCIM" -#: authentik/providers/scim/models.py:73 +#: authentik/providers/scim/models.py msgid "SCIM Providers" msgstr "Fournisseurs SCIM" -#: authentik/providers/scim/models.py:93 +#: authentik/providers/scim/models.py msgid "SCIM Mapping" msgstr "Mappage SCIM" -#: authentik/providers/scim/models.py:94 +#: authentik/providers/scim/models.py msgid "SCIM Mappings" msgstr "Mappages SCIM" -#: authentik/providers/scim/tasks.py:57 +#: authentik/providers/scim/tasks.py msgid "Starting full SCIM sync" msgstr "Démarrage d'une synchronisation SCIM complète" -#: authentik/providers/scim/tasks.py:67 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of users" msgstr "Synchronisation de la page %(page)d d'utilisateurs" -#: authentik/providers/scim/tasks.py:71 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of groups" msgstr "Synchronisation de la page %(page)d de groupes" -#: authentik/providers/scim/tasks.py:103 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "" "Échec de synchronisation de l'utilisateur %(user_name)s dû à une erreur " "distante : %(error)s" -#: authentik/providers/scim/tasks.py:114 authentik/providers/scim/tasks.py:155 +#: authentik/providers/scim/tasks.py #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "Arrêt de la synchronisation due à l'erreur : %(error)s" -#: authentik/providers/scim/tasks.py:144 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "" "Échec de synchronisation du group %(group_name)s dû à une erreur distante : " "%(error)s" -#: authentik/rbac/models.py:51 +#: authentik/rbac/models.py msgid "Role" msgstr "Rôle" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py msgid "Roles" msgstr "Rôles" -#: authentik/rbac/models.py:66 +#: authentik/rbac/models.py msgid "System permission" msgstr "Permission système" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py msgid "System permissions" msgstr "Permissions système" -#: authentik/rbac/models.py:69 +#: authentik/rbac/models.py msgid "Can view system info" msgstr "Peut voir les informations du système" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py msgid "Can view system tasks" msgstr "Peut voir les tâches du système" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py msgid "Can run system tasks" msgstr "Peut lancer des tâches système" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py msgid "Can access admin interface" msgstr "Peut accéder à l'interface d'administration" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py msgid "Can view system settings" msgstr "Peut voir les réglages système" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py msgid "Can edit system settings" msgstr "Peut modifier les réglages système" -#: authentik/recovery/management/commands/create_admin_group.py:12 +#: authentik/recovery/management/commands/create_admin_group.py msgid "Create admin group if the default group gets deleted." msgstr "Crée le groupe adminstrateur si le groupe par défaut est supprimé." -#: authentik/recovery/management/commands/create_recovery_key.py:16 +#: authentik/recovery/management/commands/create_recovery_key.py msgid "Create a Key which can be used to restore access to authentik." msgstr "" "Crée une clé qui peut être utilisée pour restaurer l'accès à authentik." -#: authentik/recovery/views.py:24 +#: authentik/recovery/views.py msgid "Used recovery-link to authenticate." msgstr "Utiliser un lien de récupération pour se connecter." -#: authentik/sources/ldap/models.py:41 +#: authentik/sources/ldap/models.py msgid "Server URI" msgstr "URI du serveur" -#: authentik/sources/ldap/models.py:50 +#: authentik/sources/ldap/models.py msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this" " keypair." @@ -1877,60 +1874,60 @@ msgstr "" "Éventuellement vérifier le certificat du server LDAP par rapport à la chaine" " d'autorité de certification de cette paire de clés." -#: authentik/sources/ldap/models.py:59 +#: authentik/sources/ldap/models.py msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "Certificat du client pour authentifier le certificat du serveur LDAP." -#: authentik/sources/ldap/models.py:62 +#: authentik/sources/ldap/models.py msgid "Bind CN" msgstr "Bind DN" -#: authentik/sources/ldap/models.py:64 +#: authentik/sources/ldap/models.py msgid "Enable Start TLS" msgstr "Activer Start TLS" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py msgid "Use Server URI for SNI verification" msgstr "Utiliser l'URI du serveur pour la vérification SNI" -#: authentik/sources/ldap/models.py:67 +#: authentik/sources/ldap/models.py msgid "Base DN" msgstr "DN racine" -#: authentik/sources/ldap/models.py:69 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for User-queries." msgstr "Ajouté avant le DN de base pour les requêtes sur des utilisateurs." -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py msgid "Addition User DN" msgstr "Préfixe DN utilisateurs" -#: authentik/sources/ldap/models.py:74 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for Group-queries." msgstr "Ajouté avant le DN de base pour les requêtes sur des groupes." -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py msgid "Addition Group DN" msgstr "Préfixe DN groupes" -#: authentik/sources/ldap/models.py:81 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Users." msgstr "Les objets appliqués à ce filtre seront des utilisateurs." -#: authentik/sources/ldap/models.py:84 +#: authentik/sources/ldap/models.py msgid "Field which contains members of a group." msgstr "Champ qui contient les membres d'un groupe." -#: authentik/sources/ldap/models.py:88 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Groups." msgstr "Les objets appliqués à ce filtre seront des groupes." -#: authentik/sources/ldap/models.py:91 +#: authentik/sources/ldap/models.py msgid "Field which contains a unique Identifier." msgstr "Champ qui contient un identifiant unique." -#: authentik/sources/ldap/models.py:105 +#: authentik/sources/ldap/models.py msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." @@ -1938,35 +1935,35 @@ msgstr "" "Lorsqu'un utilisateur change son mot de passe, le synchroniser à nouveau " "vers LDAP. Ne peut être activé que sur une seule source LDAP." -#: authentik/sources/ldap/models.py:248 +#: authentik/sources/ldap/models.py msgid "LDAP Source" msgstr "Source LDAP" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py msgid "LDAP Sources" msgstr "Sources LDAP" -#: authentik/sources/ldap/models.py:271 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mapping" msgstr "Mappage de propriété LDAP" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mappings" msgstr "Mappages de propriété LDAP" -#: authentik/sources/ldap/signals.py:52 +#: authentik/sources/ldap/signals.py msgid "Password does not match Active Directory Complexity." msgstr "Le mot de passe ne correspond pas à la complexité d'Active Directory." -#: authentik/sources/oauth/clients/oauth2.py:68 +#: authentik/sources/oauth/clients/oauth2.py msgid "No token received." msgstr "Pas de jeton reçu." -#: authentik/sources/oauth/models.py:24 +#: authentik/sources/oauth/models.py msgid "Request Token URL" msgstr "URL du jeton de requête" -#: authentik/sources/oauth/models.py:26 +#: authentik/sources/oauth/models.py msgid "" "URL used to request the initial token. This URL is only required for OAuth " "1." @@ -1974,165 +1971,165 @@ msgstr "" "URL utilisée pour demander le jeton initial. Cette URL est uniquement " "requise pour OAuth 1." -#: authentik/sources/oauth/models.py:32 +#: authentik/sources/oauth/models.py msgid "Authorization URL" msgstr "URL d'autorisation" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py msgid "URL the user is redirect to to conest the flow." msgstr "URL vers laquelle l'utilisateur est redirigé pour consentir au flux." -#: authentik/sources/oauth/models.py:38 +#: authentik/sources/oauth/models.py msgid "Access Token URL" msgstr "URL du jeton d'accès" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to retrieve tokens." msgstr "URL utilisée par authentik pour récupérer les jetons." -#: authentik/sources/oauth/models.py:44 +#: authentik/sources/oauth/models.py msgid "Profile URL" msgstr "URL de profil" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to get user information." msgstr "" "URL utilisée par authentik pour obtenir des informations sur l'utilisateur." -#: authentik/sources/oauth/models.py:48 +#: authentik/sources/oauth/models.py msgid "Additional Scopes" msgstr "Portées additionnelles" -#: authentik/sources/oauth/models.py:107 +#: authentik/sources/oauth/models.py msgid "OAuth Source" msgstr "Source OAuth" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py msgid "OAuth Sources" msgstr "Sources OAuth" -#: authentik/sources/oauth/models.py:116 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Source" msgstr "Source d'OAuth GitHub" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Sources" msgstr "Sources d'OAuth GitHub" -#: authentik/sources/oauth/models.py:125 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Source" msgstr "Source d'OAuth Twitch" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Sources" msgstr "Sources d'OAuth Twitch" -#: authentik/sources/oauth/models.py:134 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Source" msgstr "Source d'OAuth Mailcow" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Sources" msgstr "Sources d'OAuth Mailcow" -#: authentik/sources/oauth/models.py:143 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Source" msgstr "Source d'OAuth Twitter" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Sources" msgstr "Sources d'OAuth Twitter" -#: authentik/sources/oauth/models.py:152 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Source" msgstr "Source d'OAuth Facebook" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Sources" msgstr "Sources d'OAuth Facebook" -#: authentik/sources/oauth/models.py:161 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Source" msgstr "Source d'OAuth Discord" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Sources" msgstr "Sources d'OAuth Discord" -#: authentik/sources/oauth/models.py:170 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Source" msgstr "Source d'OAuth Patreon" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Sources" msgstr "Sources d'OAuth Patreon" -#: authentik/sources/oauth/models.py:179 +#: authentik/sources/oauth/models.py msgid "Google OAuth Source" msgstr "Source d'OAuth Google" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py msgid "Google OAuth Sources" msgstr "Source d'OAuth Google" -#: authentik/sources/oauth/models.py:188 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Source" msgstr "Source d'OAuth Azure AD" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Sources" msgstr "Source d'OAuth Azure AD" -#: authentik/sources/oauth/models.py:197 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Source" msgstr "Source d'OAuth OpenID" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Sources" msgstr "Sources d'OAuth OpenID" -#: authentik/sources/oauth/models.py:206 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Source" msgstr "Source d'OAuth Apple" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Sources" msgstr "Sources d'OAuth Apple" -#: authentik/sources/oauth/models.py:215 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Source" msgstr "Source d'OAuth Okta" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Sources" msgstr "Sources d'OAuth Okta" -#: authentik/sources/oauth/models.py:224 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Source" msgstr "Source d'OAuth Reddit" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Sources" msgstr "Sources d'OAuth Reddit" -#: authentik/sources/oauth/models.py:247 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connection" msgstr "Connexion de l'utilisateur à la source OAuth" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connections" msgstr "Connexion de l'utilisateur aux sources OAuth" -#: authentik/sources/oauth/views/callback.py:100 +#: authentik/sources/oauth/views/callback.py #, python-format msgid "Authentication failed: %(reason)s" msgstr "Échec d'authentification : %(reason)s" -#: authentik/sources/plex/models.py:37 +#: authentik/sources/plex/models.py msgid "Client identifier used to talk to Plex." msgstr "Identificateur client utilisé pour communiquer avec Plex." -#: authentik/sources/plex/models.py:44 +#: authentik/sources/plex/models.py msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." @@ -2140,72 +2137,72 @@ msgstr "" "De quels serveurs un utilisateur doit être membre afin d'être autorisé. Une " "liste vide autorise tous les serveurs." -#: authentik/sources/plex/models.py:50 +#: authentik/sources/plex/models.py msgid "Allow friends to authenticate, even if you don't share a server." msgstr "" "Autoriser les amis à se connecter, même si vous ne partagez pas de serveur." -#: authentik/sources/plex/models.py:52 +#: authentik/sources/plex/models.py msgid "Plex token used to check friends" msgstr "Jeton plex utilisé pour vérifier les amis" -#: authentik/sources/plex/models.py:95 +#: authentik/sources/plex/models.py msgid "Plex Source" msgstr "Source Plex" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py msgid "Plex Sources" msgstr "Sources Plex" -#: authentik/sources/plex/models.py:112 +#: authentik/sources/plex/models.py msgid "User Plex Source Connection" msgstr "Connexion de l'utilisateur à la source Plex" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py msgid "User Plex Source Connections" msgstr "Connexion de l'utilisateur aux sources Plex" -#: authentik/sources/saml/models.py:40 +#: authentik/sources/saml/models.py msgid "Redirect Binding" msgstr "Liaison de Redirection" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py msgid "POST Binding" msgstr "Liaison POST" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py msgid "POST Binding with auto-confirmation" msgstr "Liaison POST avec auto confirmation" -#: authentik/sources/saml/models.py:70 +#: authentik/sources/saml/models.py msgid "Flow used before authentication." msgstr "Flux à utiliser avant authentification." -#: authentik/sources/saml/models.py:77 +#: authentik/sources/saml/models.py msgid "Issuer" msgstr "Émetteur" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "Aussi appelé Entity ID. URL de métadonnée par défaut." -#: authentik/sources/saml/models.py:82 +#: authentik/sources/saml/models.py msgid "SSO URL" msgstr "URL SSO" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py msgid "URL that the initial Login request is sent to." msgstr "URL de destination de la requête initiale de login." -#: authentik/sources/saml/models.py:89 +#: authentik/sources/saml/models.py msgid "SLO URL" msgstr "URL SLO" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py msgid "Optional URL if your IDP supports Single-Logout." msgstr "URL optionnel si votre IDP supporte la déconnection unique." -#: authentik/sources/saml/models.py:96 +#: authentik/sources/saml/models.py msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." @@ -2214,7 +2211,7 @@ msgstr "" " un risque de sécurité, aucune validation de l'ID de la requête n'est " "effectuée." -#: authentik/sources/saml/models.py:104 +#: authentik/sources/saml/models.py msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is " "sent." @@ -2222,11 +2219,11 @@ msgstr "" "Politique NameID envoyée au fournisseur d'identité. Peut être vide, auquel " "cas aucune politique n'est envoyée." -#: authentik/sources/saml/models.py:115 +#: authentik/sources/saml/models.py msgid "Delete temporary users after" msgstr "Supprimer les utilisateurs temporaires après" -#: authentik/sources/saml/models.py:118 +#: authentik/sources/saml/models.py msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " @@ -2237,46 +2234,46 @@ msgstr "" "transitoire ('transient') et que l'utilisateur ne se déconnecte pas " "manuellement. (Format : heures=1;minutes=2;secondes=3)." -#: authentik/sources/saml/models.py:142 +#: authentik/sources/saml/models.py msgid "" "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "" "Paire de clés utilisées pour signer les réponses sortantes allant vers le " "fournisseur d'identité." -#: authentik/sources/saml/models.py:226 +#: authentik/sources/saml/models.py msgid "SAML Source" msgstr "Source SAML" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py msgid "SAML Sources" msgstr "Sources SAML" -#: authentik/sources/saml/models.py:242 +#: authentik/sources/saml/models.py msgid "User SAML Source Connection" msgstr "Connexion de l'utilisateur à la source SAML" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py msgid "User SAML Source Connections" msgstr "Connexion de l'utilisateur aux sources SAML" -#: authentik/stages/authenticator_duo/models.py:79 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stage" msgstr "Étape de configuration du Duo Authenticator" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stages" msgstr "Étapes de configuration du Duo Authenticator" -#: authentik/stages/authenticator_duo/models.py:103 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Device" msgstr "Appareil Duo" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Devices" msgstr "Appareils Duo" -#: authentik/stages/authenticator_sms/models.py:57 +#: authentik/stages/authenticator_sms/models.py msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" @@ -2287,117 +2284,116 @@ msgstr "" "téléphone est enregistré pour assurer qu'il ne sera pas réutilisé dans le " "futur." -#: authentik/stages/authenticator_sms/models.py:68 +#: authentik/stages/authenticator_sms/models.py msgid "Optionally modify the payload being sent to custom providers." msgstr "" "Éventuellement modifier le contenu envoyé aux fournisseurs personnalisés." -#: authentik/stages/authenticator_sms/models.py:81 +#: authentik/stages/authenticator_sms/models.py #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "Utilisez ce code pour s'authentifier à authentik : %(token)s" -#: authentik/stages/authenticator_sms/models.py:180 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stage" msgstr "Étape de configuration de l'authentificateur SMS" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stages" msgstr "Étapes de configuration de l'authentificateur SMS" -#: authentik/stages/authenticator_sms/models.py:226 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Device" msgstr "Appareil SMS" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Devices" msgstr "Appareils SMS" -#: authentik/stages/authenticator_sms/stage.py:57 -#: authentik/stages/authenticator_totp/stage.py:41 -#: authentik/stages/authenticator_totp/stage.py:44 +#: authentik/stages/authenticator_sms/stage.py +#: authentik/stages/authenticator_totp/stage.py msgid "Code does not match" msgstr "Le Code ne correspond pas" -#: authentik/stages/authenticator_sms/stage.py:73 +#: authentik/stages/authenticator_sms/stage.py msgid "Invalid phone number" msgstr "Numéro de téléphone invalide" -#: authentik/stages/authenticator_static/models.py:52 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stage" msgstr "Étape de configuration de l'authentificateur statique" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stages" msgstr "Étapes de configuration de l'authentificateur statique" -#: authentik/stages/authenticator_static/models.py:98 +#: authentik/stages/authenticator_static/models.py msgid "Static Device" msgstr "Équipement statique" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py msgid "Static Devices" msgstr "Équipements statiques" -#: authentik/stages/authenticator_static/models.py:129 +#: authentik/stages/authenticator_static/models.py msgid "Static Token" msgstr "Jeton statique" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py msgid "Static Tokens" msgstr "Jetons statiques" -#: authentik/stages/authenticator_totp/models.py:25 +#: authentik/stages/authenticator_totp/models.py msgid "6 digits, widely compatible" msgstr "6 chiffres, compatibilité large" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "" "8 chiffres, incompatible avec certaines applications telles que Google " "Authenticator" -#: authentik/stages/authenticator_totp/models.py:62 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stage" msgstr "Étape de configuration de l'authentificateur TOTP" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stages" msgstr "Étapes de configuration de l'authentificateur TOTP" -#: authentik/stages/authenticator_totp/models.py:244 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Device" msgstr "Équipement TOTP" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Devices" msgstr "Équipements TOTP" -#: authentik/stages/authenticator_validate/challenge.py:123 +#: authentik/stages/authenticator_validate/challenge.py msgid "Invalid Token" msgstr "Jeton Invalide" -#: authentik/stages/authenticator_validate/models.py:18 +#: authentik/stages/authenticator_validate/models.py msgid "Static" msgstr "Statique" -#: authentik/stages/authenticator_validate/models.py:19 +#: authentik/stages/authenticator_validate/models.py msgid "TOTP" msgstr "TOTP" -#: authentik/stages/authenticator_validate/models.py:20 +#: authentik/stages/authenticator_validate/models.py msgid "WebAuthn" msgstr "WebAuthn" -#: authentik/stages/authenticator_validate/models.py:21 +#: authentik/stages/authenticator_validate/models.py msgid "Duo" msgstr "Duo" -#: authentik/stages/authenticator_validate/models.py:22 +#: authentik/stages/authenticator_validate/models.py msgid "SMS" msgstr "SMS" -#: authentik/stages/authenticator_validate/models.py:49 +#: authentik/stages/authenticator_validate/models.py msgid "" "Stages used to configure Authenticator when user doesn't have any compatible" " devices. After this configuration Stage passes, the user is not prompted " @@ -2407,11 +2403,11 @@ msgstr "" "n'a pas d'appareil compatible. Une fois cette étape franchie, l'utilisateur " "ne sera plus sollicité." -#: authentik/stages/authenticator_validate/models.py:56 +#: authentik/stages/authenticator_validate/models.py msgid "Device classes which can be used to authenticate" msgstr "Classes d'appareils pouvant être utilisées pour se connecter" -#: authentik/stages/authenticator_validate/models.py:64 +#: authentik/stages/authenticator_validate/models.py msgid "" "If any of the user's device has been used within this threshold, this stage " "will be skipped" @@ -2419,97 +2415,97 @@ msgstr "" "Si l'un des appareils de l'utilisateur a été utilisé au sein de ce seuil, " "cette étape sera sautée" -#: authentik/stages/authenticator_validate/models.py:70 +#: authentik/stages/authenticator_validate/models.py msgid "Enforce user verification for WebAuthn devices." msgstr "Imposer la vérification de l'utilisateur pour les appareils WebAuthn." -#: authentik/stages/authenticator_validate/models.py:92 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stage" msgstr "Étape de validation de l'authentificateur" -#: authentik/stages/authenticator_validate/models.py:93 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stages" msgstr "Étapes de validation de l'authentificateur" -#: authentik/stages/authenticator_webauthn/models.py:112 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stage" msgstr "Étape de validation de l'authentificateur WebAuthn" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stages" msgstr "Étapes de validation de l'authentificateur WebAuthn" -#: authentik/stages/authenticator_webauthn/models.py:151 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Device" msgstr "Appareil WebAuthn" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Devices" msgstr "Équipements WebAuthn" -#: authentik/stages/captcha/models.py:14 +#: authentik/stages/captcha/models.py msgid "Public key, acquired your captcha Provider." msgstr "Clé publique, acquise auprès de votre fournisseur captcha." -#: authentik/stages/captcha/models.py:15 +#: authentik/stages/captcha/models.py msgid "Private key, acquired your captcha Provider." msgstr "Clé privée, acquise auprès de votre fournisseur captcha." -#: authentik/stages/captcha/models.py:37 +#: authentik/stages/captcha/models.py msgid "Captcha Stage" msgstr "Étape de Captcha" -#: authentik/stages/captcha/models.py:38 +#: authentik/stages/captcha/models.py msgid "Captcha Stages" msgstr "Étapes de Captcha" -#: authentik/stages/consent/models.py:30 +#: authentik/stages/consent/models.py msgid "" "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)." msgstr "" "Durée d'expiration du consentement (Format : hours=1;minutes=2;seconds=3)." -#: authentik/stages/consent/models.py:50 +#: authentik/stages/consent/models.py msgid "Consent Stage" msgstr "Étape de Consentement" -#: authentik/stages/consent/models.py:51 +#: authentik/stages/consent/models.py msgid "Consent Stages" msgstr "Étapes de Consentement" -#: authentik/stages/consent/models.py:72 +#: authentik/stages/consent/models.py msgid "User Consent" msgstr "Consentement Utilisateur" -#: authentik/stages/consent/models.py:73 +#: authentik/stages/consent/models.py msgid "User Consents" msgstr "Consentements Utilisateur" -#: authentik/stages/deny/models.py:32 +#: authentik/stages/deny/models.py msgid "Deny Stage" msgstr "Étape de Refus" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py msgid "Deny Stages" msgstr "Étapes de Refus" -#: authentik/stages/dummy/models.py:34 +#: authentik/stages/dummy/models.py msgid "Dummy Stage" msgstr "Étape factice" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py msgid "Dummy Stages" msgstr "Étapes factices" -#: authentik/stages/email/models.py:26 +#: authentik/stages/email/models.py msgid "Password Reset" msgstr "Réinitialiser le Mot de Passe" -#: authentik/stages/email/models.py:30 +#: authentik/stages/email/models.py msgid "Account Confirmation" msgstr "Confirmation du Compte" -#: authentik/stages/email/models.py:59 +#: authentik/stages/email/models.py msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." @@ -2517,48 +2513,48 @@ msgstr "" "Si activé, les paramètres globaux de connexion courriel seront utilisés et " "les paramètres de connexion ci-dessous seront ignorés." -#: authentik/stages/email/models.py:74 +#: authentik/stages/email/models.py msgid "Activate users upon completion of stage." msgstr "Activer les utilisateurs à la complétion de l'étape." -#: authentik/stages/email/models.py:78 +#: authentik/stages/email/models.py msgid "Time in minutes the token sent is valid." msgstr "Temps en minutes durant lequel le jeton envoyé est valide." -#: authentik/stages/email/models.py:132 +#: authentik/stages/email/models.py msgid "Email Stage" msgstr "Étape Email" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py msgid "Email Stages" msgstr "Étape Email" -#: authentik/stages/email/stage.py:126 +#: authentik/stages/email/stage.py msgid "Exception occurred while rendering E-mail template" msgstr "Une erreur s'est produite lors de la modélisation du couriel" -#: authentik/stages/email/stage.py:140 +#: authentik/stages/email/stage.py msgid "Successfully verified Email." msgstr "Email vérifié avec succès." -#: authentik/stages/email/stage.py:147 authentik/stages/email/stage.py:173 +#: authentik/stages/email/stage.py msgid "No pending user." msgstr "Pas d'utilisateurs en attente." -#: authentik/stages/email/stage.py:163 +#: authentik/stages/email/stage.py msgid "Email sent." msgstr "Email envoyé." -#: authentik/stages/email/stage.py:176 +#: authentik/stages/email/stage.py msgid "Email Successfully sent." msgstr "Couriel envoyé avec succès." -#: authentik/stages/email/templates/email/account_confirmation.html:10 -#: authentik/stages/email/templates/email/account_confirmation.txt:1 +#: authentik/stages/email/templates/email/account_confirmation.html +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "Welcome!" msgstr "Bienvenue !" -#: authentik/stages/email/templates/email/account_confirmation.html:19 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just press the button below." @@ -2566,11 +2562,11 @@ msgstr "" "Nous sommes ravis que vous puissiez commencer. Tout d'abord, vous devez " "confirmer votre compte. Il vous suffit d'appuyer sur le bouton ci-dessous." -#: authentik/stages/email/templates/email/account_confirmation.html:24 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "Confirm Account" msgstr "Confirmer le Compte" -#: authentik/stages/email/templates/email/account_confirmation.html:36 +#: authentik/stages/email/templates/email/account_confirmation.html #, python-format msgid "" "\n" @@ -2581,7 +2577,7 @@ msgstr "" " Si cela ne fonctionne pas, copier et coller ce lien dans votre navigateur : %(url)s\n" " " -#: authentik/stages/email/templates/email/account_confirmation.txt:3 +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just open the link below." @@ -2589,7 +2585,7 @@ msgstr "" "Nous sommes ravis que vous puissiez commencer. Tout d'abord, vous devez " "confirmer votre compte. Il vous suffit d'ouvrir le lien ci-dessous." -#: authentik/stages/email/templates/email/event_notification.html:46 +#: authentik/stages/email/templates/email/event_notification.html #, python-format msgid "" "\n" @@ -2600,19 +2596,19 @@ msgstr "" " Cet email a été envoyé depuis le transport de notification %(name)s.\n" " " -#: authentik/stages/email/templates/email/event_notification.txt:1 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Dear authentik user," msgstr "Cher utilisateur d'authentik." -#: authentik/stages/email/templates/email/event_notification.txt:3 +#: authentik/stages/email/templates/email/event_notification.txt msgid "The following notification was created:" msgstr "La notification suivante a été créée :" -#: authentik/stages/email/templates/email/event_notification.txt:8 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Additional attributes:" msgstr "Attributs additionnels" -#: authentik/stages/email/templates/email/event_notification.txt:13 +#: authentik/stages/email/templates/email/event_notification.txt #, python-format msgid "" "\n" @@ -2621,7 +2617,7 @@ msgstr "" "\n" "Cet email a été envoyé depuis le transport de notification %(name)s.\n" -#: authentik/stages/email/templates/email/password_reset.html:10 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2632,7 +2628,7 @@ msgstr "" " Salut %(username)s,\n" " " -#: authentik/stages/email/templates/email/password_reset.html:21 +#: authentik/stages/email/templates/email/password_reset.html msgid "" "\n" " You recently requested to change your password for your authentik account. Use the button below to set a new password.\n" @@ -2642,7 +2638,7 @@ msgstr "" " Vous avez récemment demandé à changer le mot de passe de votre compte authentik. Utilisez le bouton ci-dessous pour définir un nouveau mot de passe.\n" " " -#: authentik/stages/email/templates/email/password_reset.html:39 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2653,12 +2649,12 @@ msgstr "" " Si vous n'avez pas requis de changement de mot de passe, veuillez ignorer cet e-mail. Le lien ci-dessus est valide pendant %(expires)s.\n" " " -#: authentik/stages/email/templates/email/password_reset.txt:1 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "Hi %(username)s," msgstr "Bonjour %(username)s," -#: authentik/stages/email/templates/email/password_reset.txt:3 +#: authentik/stages/email/templates/email/password_reset.txt msgid "" "\n" "You recently requested to change your password for your authentik account. Use the link below to set a new password.\n" @@ -2666,7 +2662,7 @@ msgstr "" "\n" "Vous avez récemment demandé à changer le mot de passe de votre compte authentik. Utilisez le lien ci-dessous pour définir un nouveau mot de passe.\n" -#: authentik/stages/email/templates/email/password_reset.txt:7 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "" "\n" @@ -2675,11 +2671,11 @@ msgstr "" "\n" "Si vous n'avez pas requis de changement de mot de passe, veuillez ignorer cet e-mail. Le lien ci-dessus est valide pendant %(expires)s.\n" -#: authentik/stages/email/templates/email/setup.html:9 +#: authentik/stages/email/templates/email/setup.html msgid "authentik Test-Email" msgstr "Email de Test d'authentik" -#: authentik/stages/email/templates/email/setup.html:17 +#: authentik/stages/email/templates/email/setup.html msgid "" "\n" " This is a test email to inform you, that you've successfully configured authentik emails.\n" @@ -2688,7 +2684,7 @@ msgstr "" "\n" "Ceci est un email de test pour vous informer que vous avez configuré les emails d'authentik avec succès." -#: authentik/stages/email/templates/email/setup.txt:2 +#: authentik/stages/email/templates/email/setup.txt msgid "" "\n" "This is a test email to inform you, that you've successfully configured authentik emails.\n" @@ -2696,13 +2692,13 @@ msgstr "" "\n" "Ceci est un email de test pour vous informer que vous avez configuré les emails d'authentik avec succès.\n" -#: authentik/stages/identification/api.py:20 +#: authentik/stages/identification/api.py msgid "When no user fields are selected, at least one source must be selected" msgstr "" "Quand aucun champ utilisateur n'est sélectionné, au moins une source doit " "être sélectionnée." -#: authentik/stages/identification/models.py:29 +#: authentik/stages/identification/models.py msgid "" "Fields of the user object to match against. (Hold shift to select multiple " "options)" @@ -2710,13 +2706,13 @@ msgstr "" "Champs de l'objet utilisateur contre lesquels faire correspondre. (Maintenir" " Majuscule pour sélectionner plusieurs options)" -#: authentik/stages/identification/models.py:47 +#: authentik/stages/identification/models.py msgid "When enabled, user fields are matched regardless of their casing." msgstr "" "Si activé, les champs de l'utilisateur sont mis en correspondance en " "ignorant leur casse." -#: authentik/stages/identification/models.py:52 +#: authentik/stages/identification/models.py msgid "" "When a valid username/email has been entered, and this option is enabled, " "the user's username and avatar will be shown. Otherwise, the text that the " @@ -2726,7 +2722,7 @@ msgstr "" "est active, le nom d'utilisateur et l'avatar de l'utilisateur seront " "affichés. Sinon, le texte que l'utilisateur a saisi sera affiché." -#: authentik/stages/identification/models.py:60 +#: authentik/stages/identification/models.py msgid "" "When enabled, the stage will succeed and continue even when incorrect user " "info is entered." @@ -2734,40 +2730,40 @@ msgstr "" "Lorsqu'activé, l'étape réussira et continuera même lorsque les informations " "utilisateurs entrées sont invalides." -#: authentik/stages/identification/models.py:72 +#: authentik/stages/identification/models.py msgid "Optional enrollment flow, which is linked at the bottom of the page." msgstr "Flux d'inscription facultatif, qui sera accessible en bas de page." -#: authentik/stages/identification/models.py:81 +#: authentik/stages/identification/models.py msgid "Optional recovery flow, which is linked at the bottom of the page." msgstr "Flux de récupération facultatif, qui sera accessible en bas de page." -#: authentik/stages/identification/models.py:90 +#: authentik/stages/identification/models.py msgid "Optional passwordless flow, which is linked at the bottom of the page." msgstr "" "Flux sans mot de passe facultatif, qui sera accessible en bas de page." -#: authentik/stages/identification/models.py:94 +#: authentik/stages/identification/models.py msgid "Specify which sources should be shown." msgstr "Spécifie quelles sources doivent être affichées." -#: authentik/stages/identification/models.py:115 +#: authentik/stages/identification/models.py msgid "Identification Stage" msgstr "Étape d'identification" -#: authentik/stages/identification/models.py:116 +#: authentik/stages/identification/models.py msgid "Identification Stages" msgstr "Étapes d'identification" -#: authentik/stages/identification/stage.py:188 +#: authentik/stages/identification/stage.py msgid "Log in" msgstr "Se connecter" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py msgid "Continue" msgstr "Continuer" -#: authentik/stages/invitation/models.py:21 +#: authentik/stages/invitation/models.py msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " @@ -2776,57 +2772,57 @@ msgstr "" "Si activé, cette étape passera à l'étape suivante si aucune invitation n'est" " donnée. Par défaut, cette étape annule le flux en l'absence d'invitation." -#: authentik/stages/invitation/models.py:44 +#: authentik/stages/invitation/models.py msgid "Invitation Stage" msgstr "Étape d'invitation" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py msgid "Invitation Stages" msgstr "Étapes d'invitation" -#: authentik/stages/invitation/models.py:60 +#: authentik/stages/invitation/models.py msgid "When set, only the configured flow can use this invitation." msgstr "Si activé, seul le flux configuré peut utilisé cette invitation." -#: authentik/stages/invitation/models.py:64 +#: authentik/stages/invitation/models.py msgid "When enabled, the invitation will be deleted after usage." msgstr "Si activée, l'invitation sera supprimée après utilisation." -#: authentik/stages/invitation/models.py:71 +#: authentik/stages/invitation/models.py msgid "Optional fixed data to enforce on user enrollment." msgstr "" "Données statiques optionnelles à forcer lors de l'inscription des " "utilisateurs." -#: authentik/stages/invitation/models.py:84 +#: authentik/stages/invitation/models.py msgid "Invitation" msgstr "Invitation" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py msgid "Invitations" msgstr "Invitations" -#: authentik/stages/invitation/stage.py:62 +#: authentik/stages/invitation/stage.py msgid "Invalid invite/invite not found" msgstr "Invitation invalide/invitation introuvable" -#: authentik/stages/password/models.py:20 +#: authentik/stages/password/models.py msgid "User database + standard password" msgstr "Base de données utilisateurs + mots de passe standards" -#: authentik/stages/password/models.py:24 +#: authentik/stages/password/models.py msgid "User database + app passwords" msgstr "Base de données utilisateurs + mots de passes applicatifs" -#: authentik/stages/password/models.py:28 +#: authentik/stages/password/models.py msgid "User database + LDAP password" msgstr "Base de données utilisateurs + mot de passe LDAP" -#: authentik/stages/password/models.py:38 +#: authentik/stages/password/models.py msgid "Selection of backends to test the password against." msgstr "Sélection de backends pour tester le mot de passe." -#: authentik/stages/password/models.py:43 +#: authentik/stages/password/models.py msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." @@ -2835,37 +2831,37 @@ msgstr "" "annulé. Pour verrouiller l'utilisateur, utilisez une politique de réputation" " et une étape user_write." -#: authentik/stages/password/models.py:75 +#: authentik/stages/password/models.py msgid "Password Stage" msgstr "Étape de mot de passe" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py msgid "Password Stages" msgstr "Étapes de mot de passe" -#: authentik/stages/password/stage.py:124 +#: authentik/stages/password/stage.py msgid "Invalid password" msgstr "Mot de passe invalide" -#: authentik/stages/prompt/models.py:43 +#: authentik/stages/prompt/models.py msgid "Text: Simple Text input" msgstr "Texte : simple champ texte" -#: authentik/stages/prompt/models.py:45 +#: authentik/stages/prompt/models.py msgid "Text area: Multiline Text Input." msgstr "Champ texte : saisie de texte multiligne" -#: authentik/stages/prompt/models.py:48 +#: authentik/stages/prompt/models.py msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "Texte (lecture seule): Texte Simple, mais ne peut être édité." -#: authentik/stages/prompt/models.py:52 +#: authentik/stages/prompt/models.py msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "" "Champ texte (lecture seule) : saise de texte multiligne, mais ne peut pas " "être éditée." -#: authentik/stages/prompt/models.py:58 +#: authentik/stages/prompt/models.py msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." @@ -2873,11 +2869,11 @@ msgstr "" "Nom d'utilisateur : Identique à la saisie de texte, mais vérifie et empêche " "les noms d'utilisateur en double." -#: authentik/stages/prompt/models.py:60 +#: authentik/stages/prompt/models.py msgid "Email: Text field with Email type." msgstr "Courriel : champ texte de type email" -#: authentik/stages/prompt/models.py:64 +#: authentik/stages/prompt/models.py msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need" " to be identical." @@ -2885,15 +2881,15 @@ msgstr "" "Mot de passe : saisie de texte cachée, plusieurs champ de ce type sur la " "même invite doivent être identiques." -#: authentik/stages/prompt/models.py:71 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a group of radio buttons." msgstr "Champ à choix fixes affiché comme un groupe de boutons radio." -#: authentik/stages/prompt/models.py:73 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a dropdown." msgstr "Champ à choix fixes affiché comme une liste déroulante." -#: authentik/stages/prompt/models.py:80 +#: authentik/stages/prompt/models.py msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" @@ -2901,29 +2897,29 @@ msgstr "" "Fichier : Upload de fichier pour de fichiers arbitraires. Le contenu du " "fichier sera disponible dans le contexte du flux comme un data-URI" -#: authentik/stages/prompt/models.py:85 +#: authentik/stages/prompt/models.py msgid "Separator: Static Separator Line" msgstr "Séparateur : Ligne de séparation statique" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "" "Caché : champ caché, peut être utilisé pour insérer des données dans le " "formulaire." -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py msgid "Static: Static value, displayed as-is." msgstr "Statique : valeur statique, affichée comme telle." -#: authentik/stages/prompt/models.py:89 +#: authentik/stages/prompt/models.py msgid "authentik: Selection of locales authentik supports" msgstr "authentik : sélection des locales prises en charges par authentik" -#: authentik/stages/prompt/models.py:116 +#: authentik/stages/prompt/models.py msgid "Name of the form field, also used to store the value" msgstr "Nom du champ de formulaire, aussi utilisé pour enregistrer la valeur" -#: authentik/stages/prompt/models.py:124 +#: authentik/stages/prompt/models.py msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " @@ -2933,7 +2929,7 @@ msgstr "" " Lors de la création d'un champ à choix fixes, activer l'interprétation en " "tant qu'expression et renvoyer une liste des choix." -#: authentik/stages/prompt/models.py:132 +#: authentik/stages/prompt/models.py msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " @@ -2943,53 +2939,53 @@ msgstr "" "création d'un champ à choix fixes, activer l'interprétation en tant " "qu'expression et renvoyer une liste des choix par défaut." -#: authentik/stages/prompt/models.py:321 +#: authentik/stages/prompt/models.py msgid "Prompt" msgstr "Invite" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py msgid "Prompts" msgstr "Invites" -#: authentik/stages/prompt/models.py:349 +#: authentik/stages/prompt/models.py msgid "Prompt Stage" msgstr "Étape invite" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py msgid "Prompt Stages" msgstr "Étapes invite" -#: authentik/stages/prompt/stage.py:108 +#: authentik/stages/prompt/stage.py msgid "Passwords don't match." msgstr "Les mots de passe ne correspondent pas." -#: authentik/stages/user_delete/models.py:31 +#: authentik/stages/user_delete/models.py msgid "User Delete Stage" msgstr "Étape de suppression utilisateur" -#: authentik/stages/user_delete/models.py:32 +#: authentik/stages/user_delete/models.py msgid "User Delete Stages" msgstr "Étapes de suppression utilisateur" -#: authentik/stages/user_delete/stage.py:18 +#: authentik/stages/user_delete/stage.py msgid "No Pending User." msgstr "Aucun utilisateur en attente." -#: authentik/stages/user_login/models.py:47 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured network" msgstr "Sessions liées créées par cette étape au réseau configuré" -#: authentik/stages/user_login/models.py:52 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured GeoIP location" msgstr "" "Sessions liées créées par cette étape à la localisation GeoIP configurée" -#: authentik/stages/user_login/models.py:55 +#: authentik/stages/user_login/models.py msgid "Terminate all other sessions of the user logging in." msgstr "" "Mettre fin à toutes les autres sessions de l'utilisateur qui se connecte." -#: authentik/stages/user_login/models.py:61 +#: authentik/stages/user_login/models.py msgid "" "Offset the session will be extended by when the user picks the remember me " "option. Default of 0 means that the remember me option will not be shown. " @@ -3000,63 +2996,62 @@ msgstr "" "souvenir de moi ne sera pas proposée. (Format: " "hours=-1;minutes=-2;seconds=-3)" -#: authentik/stages/user_login/models.py:84 +#: authentik/stages/user_login/models.py msgid "User Login Stage" msgstr "Étape de connexion utlisateur" -#: authentik/stages/user_login/models.py:85 +#: authentik/stages/user_login/models.py msgid "User Login Stages" msgstr "Étapes de connexion utilisateur" -#: authentik/stages/user_login/stage.py:85 +#: authentik/stages/user_login/stage.py msgid "No Pending user to login." msgstr "Pas d'utilisateurs en attente à connecter." -#: authentik/stages/user_login/stage.py:112 +#: authentik/stages/user_login/stage.py msgid "Successfully logged in!" msgstr "Connexion réussie !" -#: authentik/stages/user_logout/models.py:30 +#: authentik/stages/user_logout/models.py msgid "User Logout Stage" msgstr "Étape de déconnexion utlisateur" -#: authentik/stages/user_logout/models.py:31 +#: authentik/stages/user_logout/models.py msgid "User Logout Stages" msgstr "Étapes de déconnexion d'utilisateur" -#: authentik/stages/user_write/models.py:31 +#: authentik/stages/user_write/models.py msgid "When set, newly created users are inactive and cannot login." msgstr "" "Si défini, les nouveaux utilisateurs seront inactifs et ne pourront pas se " "connecter." -#: authentik/stages/user_write/models.py:39 +#: authentik/stages/user_write/models.py msgid "Optionally add newly created users to this group." msgstr "Optionnel, ajoute les nouveaux utilisateurs créés à ce groupe." -#: authentik/stages/user_write/models.py:68 +#: authentik/stages/user_write/models.py msgid "User Write Stage" msgstr "Étapes d'écriture utilisateur" -#: authentik/stages/user_write/models.py:69 +#: authentik/stages/user_write/models.py msgid "User Write Stages" msgstr "Étapes d'écriture utilisateur" -#: authentik/stages/user_write/stage.py:141 +#: authentik/stages/user_write/stage.py msgid "No Pending data." msgstr "Aucune donnée en attente." -#: authentik/stages/user_write/stage.py:147 +#: authentik/stages/user_write/stage.py msgid "No user found and can't create new user." msgstr "Utilisateur introuvable et impossible de créer un nouvel utilisateur." -#: authentik/stages/user_write/stage.py:164 -#: authentik/stages/user_write/stage.py:178 +#: authentik/stages/user_write/stage.py msgid "Failed to update user. Please try again later." msgstr "" "Échec de mise à jour de l'utilisateur. Merci de réessayer ultérieurement," -#: authentik/tenants/models.py:29 +#: authentik/tenants/models.py msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." @@ -3064,26 +3059,26 @@ msgstr "" "Le nom du schema doit commencer par t_, contenir seulement des lettres " "minuscules et nombre, et être inférieur à 63 caractères." -#: authentik/tenants/models.py:49 +#: authentik/tenants/models.py msgid "Configure how authentik should show avatars for users." msgstr "" "Configurer comment authentik doit afficher les avatars des utilisateurs." -#: authentik/tenants/models.py:53 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their name." msgstr "Activer la possibilité aux utilisateurs de changer leur nom." -#: authentik/tenants/models.py:56 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their email address." msgstr "" "Activer la possibilité aux utilisateurs de changer leur adresse email." -#: authentik/tenants/models.py:59 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their username." msgstr "" "Activer la possibilité aux utilisateurs de changer leur nom d'utilisateur." -#: authentik/tenants/models.py:65 +#: authentik/tenants/models.py msgid "" "Events will be deleted after this duration.(Format: " "weeks=3;days=2;hours=3,seconds=2)." @@ -3091,13 +3086,13 @@ msgstr "" "Les évènements seront supprimés après cet interval. (Format : " "weeks=3;days=2;hours=3,seconds=2)" -#: authentik/tenants/models.py:69 +#: authentik/tenants/models.py msgid "The option configures the footer links on the flow executor pages." msgstr "" "Cette option configure les liens du pied de page sur les pages de " "l'exécuteur de flux." -#: authentik/tenants/models.py:75 +#: authentik/tenants/models.py msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." @@ -3105,22 +3100,22 @@ msgstr "" "Lorsqu'activé, tous les évènements causés par un utilisateur seront " "supprimés lors de la suppression de l'utilisateur." -#: authentik/tenants/models.py:81 +#: authentik/tenants/models.py msgid "Globally enable/disable impersonation." msgstr "Activer/désactiver l'appropriation utilisateur de manière globale." -#: authentik/tenants/models.py:104 +#: authentik/tenants/models.py msgid "Tenant" msgstr "Tenant" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py msgid "Tenants" msgstr "Tenants" -#: authentik/tenants/models.py:125 +#: authentik/tenants/models.py msgid "Domain" msgstr "Domaine" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py msgid "Domains" msgstr "Domaines" From 703eb682b77dbcf53d50e2b30186d0ef21dcd828 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 06:16:50 +0000 Subject: [PATCH 075/105] translate: Updates for file web/xliff/en.xlf in fr (#8497) Translate web/xliff/en.xlf in fr 100% translated source file: 'web/xliff/en.xlf' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/fr.xlf | 66 +++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 72b53ba120..065b8416c6 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1613,7 +1613,7 @@ Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1781,8 +1781,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2870,7 +2870,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -2959,8 +2959,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3255,7 +3255,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3423,7 +3423,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3737,8 +3737,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3914,10 +3914,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - "? + " + "? @@ -4998,8 +4998,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5324,7 +5324,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5333,10 +5333,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5385,8 +5385,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6165,7 +6165,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7472,7 +7472,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7878,7 +7878,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Utilisateur créé et ajouté au groupe avec succès - This user will be added to the group "". + This user will be added to the group "". Cet utilisateur sera ajouté au groupe &quot;&quot;. @@ -8409,16 +8409,20 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Brand name + Nom de la marque Remote Access Provider + Fournisseur d'accès distant Remotely access computers/servers via RDP/SSH/VNC + Accéder à des ordinateurs/serveurs via RDP/SSH/VNC Configure Remote Access Provider Provider + Configurer le fournisseur d'accès distant - + \ No newline at end of file From f5d62b828b8f0608d6eaaa7bc004f90e826db67d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:33:50 +0100 Subject: [PATCH 076/105] web: bump the eslint group in /tests/wdio with 3 updates (#8495) Bumps the eslint group in /tests/wdio with 3 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [eslint-plugin-sonarjs](https://github.com/SonarSource/eslint-plugin-sonarjs). Updates `@typescript-eslint/eslint-plugin` from 6.21.0 to 7.0.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.0.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.21.0 to 7.0.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.0.1/packages/parser) Updates `eslint-plugin-sonarjs` from 0.23.0 to 0.24.0 - [Release notes](https://github.com/SonarSource/eslint-plugin-sonarjs/releases) - [Commits](https://github.com/SonarSource/eslint-plugin-sonarjs/compare/0.23.0...0.24.0) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-major dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-major dependency-group: eslint - dependency-name: eslint-plugin-sonarjs dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 114 +++++++++++++++++------------------ tests/wdio/package.json | 6 +- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 290e7400cc..aba8421534 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -10,15 +10,15 @@ }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "@wdio/cli": "^8.31.1", "@wdio/local-runner": "^8.31.1", "@wdio/mocha-framework": "^8.31.1", "@wdio/spec-reporter": "^8.31.1", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", - "eslint-plugin-sonarjs": "^0.23.0", + "eslint-plugin-sonarjs": "^0.24.0", "npm-run-all": "^4.1.5", "prettier": "^3.2.5", "ts-node": "^10.9.2", @@ -902,9 +902,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", "dev": true }, "node_modules/@types/stack-utils": { @@ -953,16 +953,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz", + "integrity": "sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/type-utils": "7.0.1", + "@typescript-eslint/utils": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -978,8 +978,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -988,15 +988,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.1.tgz", + "integrity": "sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4" }, "engines": { @@ -1007,7 +1007,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1016,13 +1016,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz", + "integrity": "sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1033,13 +1033,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz", + "integrity": "sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/utils": "7.0.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1051,7 +1051,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1060,9 +1060,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.1.tgz", + "integrity": "sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1073,13 +1073,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz", + "integrity": "sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1125,17 +1125,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.1.tgz", + "integrity": "sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.1", "semver": "^7.5.4" }, "engines": { @@ -1146,16 +1146,16 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz", + "integrity": "sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/types": "7.0.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -3014,12 +3014,12 @@ } }, "node_modules/eslint-plugin-sonarjs": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz", - "integrity": "sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.24.0.tgz", + "integrity": "sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg==", "dev": true, "engines": { - "node": ">=14" + "node": ">=16" }, "peerDependencies": { "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index afcc650cb8..ba90344f94 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -4,15 +4,15 @@ "type": "module", "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "@wdio/cli": "^8.31.1", "@wdio/local-runner": "^8.31.1", "@wdio/mocha-framework": "^8.31.1", "@wdio/spec-reporter": "^8.31.1", "eslint": "^8.56.0", "eslint-config-google": "^0.14.0", - "eslint-plugin-sonarjs": "^0.23.0", + "eslint-plugin-sonarjs": "^0.24.0", "npm-run-all": "^4.1.5", "prettier": "^3.2.5", "ts-node": "^10.9.2", From 7dfde9029fa3bab7b478f4807414b0486829b550 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:34:00 +0100 Subject: [PATCH 077/105] website: bump @mdx-js/react from 3.0.0 to 3.0.1 in /website (#8493) Bumps [@mdx-js/react](https://github.com/mdx-js/mdx/tree/HEAD/packages/react) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/mdx-js/mdx/releases) - [Changelog](https://github.com/mdx-js/mdx/blob/main/changelog.md) - [Commits](https://github.com/mdx-js/mdx/commits/3.0.1/packages/react) --- updated-dependencies: - dependency-name: "@mdx-js/react" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index e107d03561..a11e271766 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -15,7 +15,7 @@ "@docusaurus/preset-classic": "^3.1.1", "@docusaurus/theme-common": "^3.1.1", "@docusaurus/theme-mermaid": "^3.1.1", - "@mdx-js/react": "^3.0.0", + "@mdx-js/react": "^3.0.1", "clsx": "^2.1.0", "disqus-react": "^1.1.5", "postcss": "^8.4.35", @@ -3285,9 +3285,9 @@ } }, "node_modules/@mdx-js/react": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.0.tgz", - "integrity": "sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", "dependencies": { "@types/mdx": "^2.0.0" }, diff --git a/website/package.json b/website/package.json index e560706c98..0332523335 100644 --- a/website/package.json +++ b/website/package.json @@ -22,7 +22,7 @@ "@docusaurus/preset-classic": "^3.1.1", "@docusaurus/theme-common": "^3.1.1", "@docusaurus/theme-mermaid": "^3.1.1", - "@mdx-js/react": "^3.0.0", + "@mdx-js/react": "^3.0.1", "clsx": "^2.1.0", "disqus-react": "^1.1.5", "postcss": "^8.4.35", From 1f93e6fd3fbd7d9bff2e068c056a5e7260bbd4e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:34:07 +0100 Subject: [PATCH 078/105] web: bump the eslint group in /web with 3 updates (#8494) Bumps the eslint group in /web with 3 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [eslint-plugin-sonarjs](https://github.com/SonarSource/eslint-plugin-sonarjs). Updates `@typescript-eslint/eslint-plugin` from 6.21.0 to 7.0.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.0.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 6.21.0 to 7.0.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.0.1/packages/parser) Updates `eslint-plugin-sonarjs` from 0.23.0 to 0.24.0 - [Release notes](https://github.com/SonarSource/eslint-plugin-sonarjs/releases) - [Commits](https://github.com/SonarSource/eslint-plugin-sonarjs/compare/0.23.0...0.24.0) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-major dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-major dependency-group: eslint - dependency-name: eslint-plugin-sonarjs dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 108 +++++++++++++++++++++--------------------- web/package.json | 6 +-- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index d8bde76df3..01637e7afc 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -74,8 +74,8 @@ "@types/codemirror": "5.60.15", "@types/grecaptcha": "^3.0.7", "@types/guacamole-common-js": "1.5.2", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", @@ -83,7 +83,7 @@ "eslint-config-google": "^0.14.0", "eslint-plugin-custom-elements": "0.0.8", "eslint-plugin-lit": "^1.11.0", - "eslint-plugin-sonarjs": "^0.23.0", + "eslint-plugin-sonarjs": "^0.24.0", "eslint-plugin-storybook": "^0.6.15", "github-slugger": "^2.0.0", "lit-analyzer": "^2.0.3", @@ -7596,16 +7596,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz", + "integrity": "sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/type-utils": "7.0.1", + "@typescript-eslint/utils": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -7621,8 +7621,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -7664,15 +7664,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.1.tgz", + "integrity": "sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4" }, "engines": { @@ -7683,7 +7683,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -7692,13 +7692,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz", + "integrity": "sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7709,13 +7709,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz", + "integrity": "sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/utils": "7.0.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -7727,7 +7727,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -7736,9 +7736,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.1.tgz", + "integrity": "sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7749,13 +7749,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz", + "integrity": "sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7834,17 +7834,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.1.tgz", + "integrity": "sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.1", "semver": "^7.5.4" }, "engines": { @@ -7855,7 +7855,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { @@ -7892,12 +7892,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz", + "integrity": "sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/types": "7.0.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -10541,12 +10541,12 @@ } }, "node_modules/eslint-plugin-sonarjs": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.23.0.tgz", - "integrity": "sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.24.0.tgz", + "integrity": "sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg==", "dev": true, "engines": { - "node": ">=14" + "node": ">=16" }, "peerDependencies": { "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" diff --git a/web/package.json b/web/package.json index e5637f7de0..c1c2711ec6 100644 --- a/web/package.json +++ b/web/package.json @@ -99,8 +99,8 @@ "@types/codemirror": "5.60.15", "@types/grecaptcha": "^3.0.7", "@types/guacamole-common-js": "1.5.2", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", @@ -108,7 +108,7 @@ "eslint-config-google": "^0.14.0", "eslint-plugin-custom-elements": "0.0.8", "eslint-plugin-lit": "^1.11.0", - "eslint-plugin-sonarjs": "^0.23.0", + "eslint-plugin-sonarjs": "^0.24.0", "eslint-plugin-storybook": "^0.6.15", "github-slugger": "^2.0.0", "lit-analyzer": "^2.0.3", From ce24f974aa4c22acb3ecdc01f282f76f994f496a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:34:14 +0100 Subject: [PATCH 079/105] website: bump react-tooltip from 5.26.1 to 5.26.2 in /website (#8492) Bumps [react-tooltip](https://github.com/ReactTooltip/react-tooltip) from 5.26.1 to 5.26.2. - [Release notes](https://github.com/ReactTooltip/react-tooltip/releases) - [Changelog](https://github.com/ReactTooltip/react-tooltip/blob/master/CHANGELOG.md) - [Commits](https://github.com/ReactTooltip/react-tooltip/compare/v5.26.1...v5.26.2) --- updated-dependencies: - dependency-name: react-tooltip dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index a11e271766..d24c41d646 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -26,7 +26,7 @@ "react-dom": "^18.2.0", "react-feather": "^2.0.10", "react-toggle": "^4.1.3", - "react-tooltip": "^5.26.1", + "react-tooltip": "^5.26.2", "remark-github": "^12.0.0" }, "devDependencies": { @@ -14389,9 +14389,9 @@ } }, "node_modules/react-tooltip": { - "version": "5.26.1", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.26.1.tgz", - "integrity": "sha512-z8QYiVIfMpIzu3d2ggvgfI5objNCRYfKnRLGWIOBShqRKrXpIrQw4NLYHTL2fj1hH8dtzj25OUnmB346XG1cHg==", + "version": "5.26.2", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.26.2.tgz", + "integrity": "sha512-C1qHiqWYn6l5c98kL/NKFyJSw5G11vUVJkgOPcKgn306c5iL5317LxMNn5Qg1GSSM7Qvtsd6KA5MvwfgxFF7Dg==", "dependencies": { "@floating-ui/dom": "^1.6.1", "classnames": "^2.3.0" diff --git a/website/package.json b/website/package.json index 0332523335..b0d5905b61 100644 --- a/website/package.json +++ b/website/package.json @@ -32,7 +32,7 @@ "react-dom": "^18.2.0", "react-feather": "^2.0.10", "react-toggle": "^4.1.3", - "react-tooltip": "^5.26.1", + "react-tooltip": "^5.26.2", "react": "^18.2.0", "remark-github": "^12.0.0" }, From 2841db082cf342378923216fbb300fd5995fcfdd Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Tue, 13 Feb 2024 16:12:39 +0100 Subject: [PATCH 080/105] ci: main, outpost: always push the Docker image (#8499) --- .github/workflows/ci-main.yml | 1 + .github/workflows/ci-outpost.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index dca5acb010..8effcbc4a5 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -252,6 +252,7 @@ jobs: GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }} GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }} tags: ${{ steps.ev.outputs.imageTags }} + push: true build-args: | GIT_BUILD_HASH=${{ steps.ev.outputs.sha }} cache-from: type=gha diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index 60fa71fc48..eefc8a9e30 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -102,6 +102,7 @@ jobs: with: tags: ${{ steps.ev.outputs.imageTags }} file: ${{ matrix.type }}.Dockerfile + push: true build-args: | GIT_BUILD_HASH=${{ steps.ev.outputs.sha }} platforms: linux/amd64,linux/arm64 From f367249bab4e229e6c04af3bacbfa58dce6fa221 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:22:32 +0100 Subject: [PATCH 081/105] web: bump the storybook group in /web with 8 updates (#8506) Bumps the storybook group in /web with 8 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.6.14` | `7.6.15` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.6.14` | `7.6.15` | | [@storybook/api](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/manager-api-shim) | `7.6.14` | `7.6.15` | | [@storybook/blocks](https://github.com/storybookjs/storybook/tree/HEAD/code/ui/blocks) | `7.6.14` | `7.6.15` | | [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `7.6.14` | `7.6.15` | | [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `7.6.14` | `7.6.15` | | [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `7.6.14` | `7.6.15` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.6.14` | `7.6.15` | Updates `@storybook/addon-essentials` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/addons/essentials) Updates `@storybook/addon-links` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/addons/links) Updates `@storybook/api` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v7.6.15/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/deprecated/manager-api-shim) Updates `@storybook/blocks` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/ui/blocks) Updates `@storybook/manager-api` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/lib/manager-api) Updates `@storybook/web-components` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/renderers/web-components) Updates `@storybook/web-components-vite` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/frameworks/web-components-vite) Updates `storybook` from 7.6.14 to 7.6.15 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.15/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/blocks" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/manager-api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components-vite" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 580 +++++++++++++++++++++--------------------- web/package.json | 14 +- 2 files changed, 297 insertions(+), 297 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 01637e7afc..9dfdbd327b 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -62,13 +62,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.12", - "@storybook/addon-essentials": "^7.6.14", - "@storybook/addon-links": "^7.6.14", - "@storybook/api": "^7.6.14", + "@storybook/addon-essentials": "^7.6.15", + "@storybook/addon-links": "^7.6.15", + "@storybook/api": "^7.6.15", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.14", - "@storybook/web-components": "^7.6.14", - "@storybook/web-components-vite": "^7.6.14", + "@storybook/manager-api": "^7.6.15", + "@storybook/web-components": "^7.6.15", + "@storybook/web-components-vite": "^7.6.15", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -98,7 +98,7 @@ "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.14", + "storybook": "^7.6.15", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", @@ -4876,12 +4876,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.14.tgz", - "integrity": "sha512-hFVB/ejxBdE6J3wOEPSx6aFB51PqDfQ/YR4ik5GCGJb3cmUX7d/FY8zH0TKJLXcG/Hw3XoxNiEo5AaMVxtGVGA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.15.tgz", + "integrity": "sha512-2Jfvbahe/tmq1iNnNxmcP0JnX0rqCuijjXXai9yMDV3koIMawn6t88MPVrdcso5ch/fxE45522nZqA3SZJbM4g==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.14", + "@storybook/core-events": "7.6.15", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -4894,9 +4894,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.14.tgz", - "integrity": "sha512-R6OblK71iKIwpxTZQhuOpbktIT5pNrfMNe4/lkIP2F6Dv9HgHwvg95Bpt0ebHKlRvD7KNwj1whKjJh1fO3yLgQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.15.tgz", + "integrity": "sha512-t0wWZiLHUoxP1GqSR44Zt+mI6cq17dAtpX/aC9I1xGl4xKUizmZjjX9GcH2EjcIiuKBER0ouQtQcDNyV939VvA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4909,12 +4909,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.14.tgz", - "integrity": "sha512-KJRPdzbXjitqCixMzMjkcRYJGIts9wrx2Qk7NCSXCbE0LDdT+U7//25luLp5DrRiPdqIVEQjNcLF10frljaA9g==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.15.tgz", + "integrity": "sha512-HXcG/Lr4ri7WUFz14Y5lEBTA1XmKy0E/DepW88XVy6YNsTpERVWEBcvjKoLAU1smKrfhVto96hK2AVFL3A8EBQ==", "dev": true, "dependencies": { - "@storybook/blocks": "7.6.14", + "@storybook/blocks": "7.6.15", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4924,26 +4924,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.14.tgz", - "integrity": "sha512-fH3voEcHuJmMXNIT6Lxs5ve+dM6P74gwhdyMj21WIp8DnYM99RrmjvT1k/3+tGknL/7oGM+4Y2DLyy2KYFc6HQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.15.tgz", + "integrity": "sha512-UPODqO+mrYaKyTSAtfRslxOFgSP/v/5vfDx896pbNTC4Sf8xLytoudw4I14hzkHmRdXiOnd21FqXJfmF/Onsvw==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/components": "7.6.14", - "@storybook/csf-plugin": "7.6.14", - "@storybook/csf-tools": "7.6.14", + "@storybook/blocks": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/components": "7.6.15", + "@storybook/csf-plugin": "7.6.15", + "@storybook/csf-tools": "7.6.15", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.6.14", - "@storybook/postinstall": "7.6.14", - "@storybook/preview-api": "7.6.14", - "@storybook/react-dom-shim": "7.6.14", - "@storybook/theming": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/node-logger": "7.6.15", + "@storybook/postinstall": "7.6.15", + "@storybook/preview-api": "7.6.15", + "@storybook/react-dom-shim": "7.6.15", + "@storybook/theming": "7.6.15", + "@storybook/types": "7.6.15", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4959,17 +4959,17 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4999,24 +4999,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.14.tgz", - "integrity": "sha512-1CcpLvzmvXyRhxbc2FgVbchpu7EMEeAjNY2lQ8ejn4cwLuIeWvYI61Cq4swiEmcEOEzi9Uvrq9q1bua9N1fPqw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.15.tgz", + "integrity": "sha512-m8OJtRG1/DEbFCQ1S6y/yKN3uWl9bsEn2ZsX5WcYmEt501BUbTPwpGOPyP57Q7nYYXKmWT2375Uq1qauwcD6NA==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.6.14", - "@storybook/addon-backgrounds": "7.6.14", - "@storybook/addon-controls": "7.6.14", - "@storybook/addon-docs": "7.6.14", - "@storybook/addon-highlight": "7.6.14", - "@storybook/addon-measure": "7.6.14", - "@storybook/addon-outline": "7.6.14", - "@storybook/addon-toolbars": "7.6.14", - "@storybook/addon-viewport": "7.6.14", - "@storybook/core-common": "7.6.14", - "@storybook/manager-api": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/preview-api": "7.6.14", + "@storybook/addon-actions": "7.6.15", + "@storybook/addon-backgrounds": "7.6.15", + "@storybook/addon-controls": "7.6.15", + "@storybook/addon-docs": "7.6.15", + "@storybook/addon-highlight": "7.6.15", + "@storybook/addon-measure": "7.6.15", + "@storybook/addon-outline": "7.6.15", + "@storybook/addon-toolbars": "7.6.15", + "@storybook/addon-viewport": "7.6.15", + "@storybook/core-common": "7.6.15", + "@storybook/manager-api": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/preview-api": "7.6.15", "ts-dedent": "^2.0.0" }, "funding": { @@ -5029,17 +5029,17 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5055,9 +5055,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.14.tgz", - "integrity": "sha512-VQTgLm6jPKN7DOhrx0mY5yrhQxOiidQt4yoazJTgzn+aV7zBFKn+GtF1W38QrnFtq5Mr8VJsEByEdtVCqMcmyw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.15.tgz", + "integrity": "sha512-ptidWZJJcEM83YsxCjf+m1q8Rr9sN8piJ4PJlM2vyc4MLZY4q6htb1JJFeq3ov1Iz6SY9KjKc/zOkWo4L54nxw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5068,9 +5068,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.14.tgz", - "integrity": "sha512-xzDWQEzntia9ArFQC95TEw/Tqp/cNFq0SSuQQ6d9/ryQczuSdRGFHRmEd99/92ufNgCGPaRZOB7sweiKG0bkzA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.15.tgz", + "integrity": "sha512-DEBlut3ofpggbm8N7n3f/Xdi6KkjKps2hnL5blz5aQ7iSJJPT683GDP2CKjhtrlrL6+uJyEHWDLoECVq2kveaQ==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.2", @@ -5091,9 +5091,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.14.tgz", - "integrity": "sha512-bRy3SEv4uf1csDe5H8Lg3wUDg1uMZo6/j2FwNjvUmW+vcasj3VsqPKQjT6KO+LjCXsQ1pIAHu1HcUh2v/Qoitw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.15.tgz", + "integrity": "sha512-3csc8Vu/wDkgpuHprl9fbKKym/+nR8HBvcALPLlH2MWnlU3DEURrj/ykRKWlp7G3F5eqDIcaIEjq6xiBZyWg7Q==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5105,9 +5105,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.14.tgz", - "integrity": "sha512-RH3arZYMBBxoqif4pnKN8m8Vt8setpeh0kz6oA+Ilhf/Z8Wz5jWiYDvTL5WW3+E+XGLrIFwH87wmJLN0egKqtA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.15.tgz", + "integrity": "sha512-5zYDWO0OIlFchYqSjRDmQv2mPMwAwIDTocc00FMiQAaNqPZ+3ZP9L6kOng8YgwYWpPBecoHdLvSW6rTmcufHtw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5119,9 +5119,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.14.tgz", - "integrity": "sha512-/Zea9XgmxJp/5pQ+PKw+FGj2s2POIur/9uCUmLBWPDAMIW+kugOYZ/i8krrcHDPJ7nG2rtUJbeSliod9h2tpfw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.15.tgz", + "integrity": "sha512-QougKS2eABB5Jd332i9tBpKgh2lN4aaqXkvmVC5egT5dOuJ9IeuZbGwiALef/uf1f3IuyUP41So9l2dI4u19aw==", "dev": true, "funding": { "type": "opencollective", @@ -5129,9 +5129,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.14.tgz", - "integrity": "sha512-7GbJyXFP3QCZezUQ+75VdjBpyXWutdFY0YMM/3JTjU+Khutbph3RurMTi4dRiBndAIPXlReNm1AnnYX5w+jd9w==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.15.tgz", + "integrity": "sha512-0esg0+onJftU2prD3n/sbxBTrTOIGQnZhbrKPP+/S26dVHuYaR/65XdwpRgXNY5PHK2yjU78HxiJP+Kyu75ntw==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -5324,13 +5324,13 @@ "dev": true }, "node_modules/@storybook/api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.14.tgz", - "integrity": "sha512-E+B+LAtxu5a+9e0ZW3eBUAr1Kn/+gLjE+H+Wevq8VV6+NHLo9eL3JAM4ucv6wcP5qiWirBnB9PUbSYWMpLzwjA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.15.tgz", + "integrity": "sha512-5JuJI75h7QCKn6Sm1rhVCatKtKcuZCR4hb5b3Ef11xQ3I9bYOtEP403K9xSKe4OcJWBYhIYGqVNSBgeNOa5jCg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.14", - "@storybook/manager-api": "7.6.14" + "@storybook/client-logger": "7.6.15", + "@storybook/manager-api": "7.6.15" }, "funding": { "type": "opencollective", @@ -5338,22 +5338,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.14.tgz", - "integrity": "sha512-DZOSEWSNptAhaeNiOG0BqidJxqi/KaAZ2ZnlygpswDDT9vOCGoc7edZEgrq/i83M55KZFD4IXVLYFdfpjRcirQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.15.tgz", + "integrity": "sha512-ODP7AVh2iIGblI5WKGokWSHbp9YQHc+Uce7JCGcnDbNavoy64Z6R6G+wXzF5jfl7xQlbhQ8yQCuSSL4GNdYTeA==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/components": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/components": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "7.6.14", + "@storybook/docs-tools": "7.6.15", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.14", - "@storybook/preview-api": "7.6.14", - "@storybook/theming": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/manager-api": "7.6.15", + "@storybook/preview-api": "7.6.15", + "@storybook/theming": "7.6.15", + "@storybook/types": "7.6.15", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -5377,17 +5377,17 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5403,15 +5403,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.14.tgz", - "integrity": "sha512-pID/g2Bnr3tjmkh8c+O6TZei3f1TWHW/UWi/skNQ3wGJ+9dqJIK2vQY5SwnXBWkmJdUqGVXaW5BvzR8jjfpTxQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.15.tgz", + "integrity": "sha512-vfpfCywiasyP7vtbgLJhjssBEwUjZhBsRsubDAzumgOochPiKKPNwsSc5NU/4ZIGaC5zRO26kUaUqFIbJdTEUQ==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.6.14", - "@storybook/manager": "7.6.14", - "@storybook/node-logger": "7.6.14", + "@storybook/core-common": "7.6.15", + "@storybook/manager": "7.6.15", + "@storybook/node-logger": "7.6.15", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -5445,19 +5445,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.14.tgz", - "integrity": "sha512-GhIuK0Xu+HZK4K3NW0PlPpY3wQQ6Ay8WQp9Ea8UZn+ixop4wAV+dLFEJ0B8fXrpSNqsmjUim7rIfMePzXkfucQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.15.tgz", + "integrity": "sha512-ZqmWoty+AsxArvwGCg1F/1dpZUWDYfiZe0Ag1S9hdqNj6geM1IqO0wLB6Y5c4gl3BKEFmOLA36yRVlP5KIkx8w==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-common": "7.6.14", - "@storybook/csf-plugin": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/preview": "7.6.14", - "@storybook/preview-api": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-common": "7.6.15", + "@storybook/csf-plugin": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/preview": "7.6.15", + "@storybook/preview-api": "7.6.15", + "@storybook/types": "7.6.15", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -5490,17 +5490,17 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5546,13 +5546,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.14.tgz", - "integrity": "sha512-tyrnnXTh7Ca6HbtzYtZGZmbUkC+eYPdot41+YDERMxXCnejd18BnsH/pyGW66GwgY079Q7uhdDFyM63ynZrt/A==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.15.tgz", + "integrity": "sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5564,23 +5564,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.14.tgz", - "integrity": "sha512-2xqcGRPtj/OE+9ro92C5MFCT8VHdMCDDuZZRnmgPi83iqSZtYbO8xHZwz78j4TvmouHstOV1SedeWv0IsFIxLw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.15.tgz", + "integrity": "sha512-2QRqCyVGDSkraHxX2JPYkkFccbu5Uo+JYFaFJo4vmMXzDurjWON+Ga2B8FCTd4A8P4C02Ca/79jgQoyBB3xoew==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.6.14", - "@storybook/core-common": "7.6.14", - "@storybook/core-events": "7.6.14", - "@storybook/core-server": "7.6.14", - "@storybook/csf-tools": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/telemetry": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/codemod": "7.6.15", + "@storybook/core-common": "7.6.15", + "@storybook/core-events": "7.6.15", + "@storybook/core-server": "7.6.15", + "@storybook/csf-tools": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/telemetry": "7.6.15", + "@storybook/types": "7.6.15", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5743,9 +5743,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.14.tgz", - "integrity": "sha512-rHa2hLU+80BN5E58Shf1g09YS6QEEOk5hwMuJ4WJfAypMDYPjnIsOYUboHClkCA9TDCH/iVhyRSPy83NWN2MZg==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.15.tgz", + "integrity": "sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5756,18 +5756,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.14.tgz", - "integrity": "sha512-Sq/Q12KmvzaSUtmbtD26cEEGVmZLUA+iiNHbl0n65MMka6QBGG/VgSPvSgu+GEpKowbVoqfMpH4Ic16A6XsNFg==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.15.tgz", + "integrity": "sha512-NiEbTLCdacj6TMxC7G49IImXeMzkG8wpPr8Ayxm9HeG6q5UkiF5/DiZdqbJm2zaosOsOKWwvXg1t6Pq6Nivytg==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/csf-tools": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/types": "7.6.15", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -5797,18 +5797,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.14.tgz", - "integrity": "sha512-kukLj6B2xaIbKAq8E2WUcU0KZ+keuvIo0VcfrtSNHFbNvrNzHshajPC1dTO4NbgI3ey2SmD0rp71eh06TUQ9ng==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.15.tgz", + "integrity": "sha512-xD+maP7+C9HeZXi2vJ+uK9hXN4S4spP4uDj9pyZ9yViKb+ztEO6WpovUMT8WRQ0mMegWyLXkx3zqu43hZvXM1g==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.6.14", + "@storybook/client-logger": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/theming": "7.6.15", + "@storybook/types": "7.6.15", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5823,13 +5823,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.14.tgz", - "integrity": "sha512-2q+R6olHLS5GJBTZNdKscTKJ8YwKOatKx6QjktFTfxfLRfBfOGSepignYy8JnEGuU4iTOwBekmUDm5dWAUjnQg==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.15.tgz", + "integrity": "sha512-jwWol+zo+ItKBzPm9i80bEL6seHMsV0wKSaViVMQ4TqHtEbNeFE8sFEc2NTr18VNBnQOdlQPnEWmdboXBUrGcA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.14", - "@storybook/preview-api": "7.6.14" + "@storybook/client-logger": "7.6.15", + "@storybook/preview-api": "7.6.15" }, "funding": { "type": "opencollective", @@ -5837,17 +5837,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5863,14 +5863,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.14.tgz", - "integrity": "sha512-0CIfwdjY5+OO6B+WxeCx3fZou1wk50RU9hFOMGwJ2yj/5ilV06xVHt0HNrA2x37zaK7r370PjOuny0Xudba03g==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.15.tgz", + "integrity": "sha512-VGmcLJ5U1r1s8/YnLbKcyB4GnNL+/sZIPqwlcSKzDXO76HoVFv1kywf7PbASote7P3gdhLSxBdg95LH2bdIbmw==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/core-events": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/types": "7.6.15", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -6019,9 +6019,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.14.tgz", - "integrity": "sha512-zuSMjOgju7WLFL+okTXVvOKKNzwqVGRVp5UhXeSikT4aXuVdpfepCfikkjntn12G1ybL7mfFCsBU2DV1lwwp6Q==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.15.tgz", + "integrity": "sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6032,26 +6032,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.14.tgz", - "integrity": "sha512-OSUunvjXyUiyfGet8ZBz7/Lka6dSgbbVMH7lU6wELIYCd2ZUxU5HQMl9JPesl61wWB4L3JaWFAoMRaCVI7q0xQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.15.tgz", + "integrity": "sha512-iIlxEAkrmKTSA3iGNqt/4QG7hf5suxBGYIB3DZAOfBo8EdZogMYaEmuCm5dbuaJr0mcVwlqwdhQiWb1VsR/NhA==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.6.14", - "@storybook/channels": "7.6.14", - "@storybook/core-common": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/builder-manager": "7.6.15", + "@storybook/channels": "7.6.15", + "@storybook/core-common": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.14", + "@storybook/csf-tools": "7.6.15", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/preview-api": "7.6.14", - "@storybook/telemetry": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/manager": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/preview-api": "7.6.15", + "@storybook/telemetry": "7.6.15", + "@storybook/types": "7.6.15", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6085,17 +6085,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6228,12 +6228,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.14.tgz", - "integrity": "sha512-TYmtuLCzdWGy4/T6KYUBGdzRy/4cJzDQrDzWRWD7a+xcy1Z7wlKkXw+zWfxbNheEnxb146q5lIkRpvhevKgpGA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.15.tgz", + "integrity": "sha512-5Pm2B8XKNdG3fHyItWKbWnXHSRDFSvetlML+sMWGWYIjwOsnvPqt+gAvLksWhv/uJgDujGxNcPEh+/Y5C8ZAjQ==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.6.14", + "@storybook/csf-tools": "7.6.15", "unplugin": "^1.3.1" }, "funding": { @@ -6242,9 +6242,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.14.tgz", - "integrity": "sha512-s7XFIi823HhcKxTqHY/uU1QZCujLBjFt6OJa5y3XvwIMoLJWZtuT1PF/QPR0K7iYb9gQnGHwO9lZBfMraUywrQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.15.tgz", + "integrity": "sha512-8iKgg2cmbFTpVhRRJOqouhPcEh0c8ywabG4S8ICZvnJooSXUI9mD9p3tYCS7MYuSiHj0epa1Kkn9DtXJRo9o6g==", "dev": true, "dependencies": { "@babel/generator": "^7.23.0", @@ -6252,7 +6252,7 @@ "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -6283,14 +6283,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.14.tgz", - "integrity": "sha512-8FCuVnty2d74cgF+qjhI/LTbGlf3mvu1OkKpLMp9xqouPy3X+yo9N8mpe2tIhgpRMTDzDScIeIBUpLrIpjHaXA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.15.tgz", + "integrity": "sha512-npZEaI9Wpn9uJcRXFElqyiRw8bSxt95mLywPiEEGMT2kE5FfXM8d5Uj5O64kzoXdRI9IhRPEEZZidOtA/UInfQ==", "dev": true, "dependencies": { - "@storybook/core-common": "7.6.14", - "@storybook/preview-api": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/core-common": "7.6.15", + "@storybook/preview-api": "7.6.15", + "@storybook/types": "7.6.15", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -6302,17 +6302,17 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6334,9 +6334,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.14.tgz", - "integrity": "sha512-lgowunC/pm2y6d+3j7UJ/CkHpWC0o+nZ9b7mDbkJ6PmezW5Hpy83kbeCxbwRGosYoPQ0izBzVB5ZqGgKrNNDjA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.15.tgz", + "integrity": "sha512-GGV2ElV5AOIApy/FSDzoSlLUbyd2VhQVD3TdNGRxNauYRjEO8ulXHw2tNbT6ludtpYpDTAILzI6zT/iag8hmPQ==", "dev": true, "funding": { "type": "opencollective", @@ -6344,19 +6344,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.14.tgz", - "integrity": "sha512-kZbcudrpQaYgUCrnBumDBPOvaEcvFBrZjM5v3AvMenVMXTjwlAHF8mZswE/ptpDsico2iSN96nMhd97OyaAuqA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.15.tgz", + "integrity": "sha512-cPBsXcnJiaO3QyaEum2JgdihYea3cI03FeV35JdrBYLIelT4oqbYFnzjznsFg9+Ia9iAbz7aOBNyyRsWnC/UKw==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.6.14", - "@storybook/theming": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/router": "7.6.15", + "@storybook/theming": "7.6.15", + "@storybook/types": "7.6.15", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6376,9 +6376,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.14.tgz", - "integrity": "sha512-prKUMGxGzeX3epdlin1UU6M1//CoAJM1GrffrFeNntnPr3h6GMTgxNzl85flUhWd4ky/wjC/36dGOI8QRYVtoA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.15.tgz", + "integrity": "sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==", "dev": true, "funding": { "type": "opencollective", @@ -6386,9 +6386,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.14.tgz", - "integrity": "sha512-ya3e5jvW1eSw4l3lhiGH2g+Gk8py2Tr3PW5ecnH/x1rD8Tt43OHXRQqiFfl7QzOudHxQGKQsO3lhWe8FJXvdbA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.15.tgz", + "integrity": "sha512-DXQQ4kjAbQ7BSd9M4lDI/12vEEciYMP8uYFDlrPFjwD9LezsxtRiORkazjNRRX4730faO5zZsnWhXxCVkxck0g==", "dev": true, "funding": { "type": "opencollective", @@ -6396,9 +6396,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.14.tgz", - "integrity": "sha512-6Y873pNsJBQuCeR3YDMlRgRW+4Tf+Rj4VdujjvRw/H7ES1+pO8qgcI3VJCcoxqDY9ZNPT/riLh8YOddpLNCgNg==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.15.tgz", + "integrity": "sha512-q8d9v0+Bo/DHLV68OyV3Klep4knf2GAbrlHhLW1X4jlPccuEDUojIfqfK7m48ayeIxJzO48fcO0JdKM1XABx7g==", "dev": true, "funding": { "type": "opencollective", @@ -6492,9 +6492,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.14.tgz", - "integrity": "sha512-Ldmc2tKj1N3vNYZpI791xgTbk0XdqJDm1a09fSRM4CeBu4BI7M9IjnNS4cHNdTeqtK9MbCSzCr1nxfxNCtrtiA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.15.tgz", + "integrity": "sha512-2+X0HIxIyvjfSKVyGGjSJJLEFJ2ox7Rr8FjlMiRo5QfoOJhohZuWH7p4Lw7JMwm5PotnjrwlfsZI3cCilYJeYA==", "dev": true, "funding": { "type": "opencollective", @@ -6506,12 +6506,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.14.tgz", - "integrity": "sha512-eVD7jVZeM8mppEtHsvkKIEN92stsdbiXDHG49iNVnw+ojOSjJ1HR8+Pm8wy5Cc2pcyoZEHeU356kaP9gXOhuOQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.15.tgz", + "integrity": "sha512-5yhXXoVZ1iKUgeZoO8PGqBclrLgoJisxIYVK/Y1iJMXZ2ZvwUiTswLALT6lu97tSrcoBVxmqSghg0+U0YEU4Fg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.14", + "@storybook/client-logger": "7.6.15", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6521,14 +6521,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.14.tgz", - "integrity": "sha512-F+a9Q4dHCpuBLQmB05DOLosU8p1Otj3Vd+/5EF9QUFSn4C64z1gmMc3jzF3iUgktY53HdoUqR871w3GoOJ7g9A==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.15.tgz", + "integrity": "sha512-klhKXLUS3OXozGEtMbbhKZLDfm+m3nNk2jvGwD6kkBenzFUzb0P2m8awxU7h1pBcKZKH/27U9t3KVzNFzWoWPw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.14", - "@storybook/core-common": "7.6.14", - "@storybook/csf-tools": "7.6.14", + "@storybook/client-logger": "7.6.15", + "@storybook/core-common": "7.6.15", + "@storybook/csf-tools": "7.6.15", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6607,13 +6607,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.14.tgz", - "integrity": "sha512-jpryYjBAGLkFauSyNEoflSfYqO3srn98llNxhgxpc1P1ocmOzeDwdg7PUWDI9DCuJC+OWaXa1zzLO6uRLyEJAQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.15.tgz", + "integrity": "sha512-9PpsHAbUf6o0w33/P3mnb7QheTmfGlTYCismj5HMM1O2/zY0kQK9XcG9W+Cyvu56D/lFC19fz9YHQY8W4AbfnQ==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.6.14", + "@storybook/client-logger": "7.6.15", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6627,12 +6627,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.14.tgz", - "integrity": "sha512-sJ3qn45M2XLXlOi+wkhXK5xsXbSVzi8YGrusux//DttI3s8wCP3BQSnEgZkBiEktloxPferINHT1er8/9UK7Xw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.15.tgz", + "integrity": "sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", + "@storybook/channels": "7.6.15", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6643,18 +6643,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.14.tgz", - "integrity": "sha512-PO+QQgrP/09oh67yXkcQn4xl+MJLfPxJdTN+RJcBHgtntsiPAVxKDDLG9wJiQJYy6lIvb+qyLI4riAc1v5l5IQ==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.15.tgz", + "integrity": "sha512-ebCkPZNkeRPfM+q0jQZDWkSojRIi8vpziCpJtDx20itT14izSKlLuBgIv3LO304btC07Yh2gRcfG2gleh8pzMQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.14", - "@storybook/core-client": "7.6.14", - "@storybook/docs-tools": "7.6.14", + "@storybook/client-logger": "7.6.15", + "@storybook/core-client": "7.6.15", + "@storybook/docs-tools": "7.6.15", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.14", - "@storybook/preview-api": "7.6.14", - "@storybook/types": "7.6.14", + "@storybook/manager-api": "7.6.15", + "@storybook/preview-api": "7.6.15", + "@storybook/types": "7.6.15", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -6670,15 +6670,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.14.tgz", - "integrity": "sha512-IfmGm+I1mhCR8ma7z2k9epZq1+xqPaW3AElD51EiK8s3l4gR7Ntyz1aS90Saqjql9AkNsuD6vtilKqk3upbhsw==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.15.tgz", + "integrity": "sha512-+E53U3innNAljuY9aWBr82Cp3HcnVxOPCkEw0EjS1h+Yzrg76QGVtgKu8+qMMa6OKSTXF0E+7pi8Vt9+sHVATQ==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.6.14", - "@storybook/core-server": "7.6.14", - "@storybook/node-logger": "7.6.14", - "@storybook/web-components": "7.6.14", + "@storybook/builder-vite": "7.6.15", + "@storybook/core-server": "7.6.15", + "@storybook/node-logger": "7.6.15", + "@storybook/web-components": "7.6.15", "magic-string": "^0.30.0" }, "engines": { @@ -6690,17 +6690,17 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.14.tgz", - "integrity": "sha512-CnUEkTUK3ei3vw4Ypa9EOxEO9lCKc3HvVHxXu4z6Caoe/hRUc10Q6Nj1A7brqok1QLZ304qc715XdYFMahDhyA==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.15.tgz", + "integrity": "sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.14", - "@storybook/client-logger": "7.6.14", - "@storybook/core-events": "7.6.14", + "@storybook/channels": "7.6.15", + "@storybook/client-logger": "7.6.15", + "@storybook/core-events": "7.6.15", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.14", + "@storybook/types": "7.6.15", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -17058,12 +17058,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.6.14", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.14.tgz", - "integrity": "sha512-4WMb/Dyzl4QzAd1X1b13cJXwynI7fGbT3qGy+X169hsXn6u73tlRcuPXrTsEO9a+rNBxZiBEBJf5poYxCH2j5Q==", + "version": "7.6.15", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.15.tgz", + "integrity": "sha512-Ybezq9JRk5CBhzjgzZ/oT7mnU45UwhyVSGKW+PUKZGGUG9VH2hCrTEES9f/zEF82kj/5COVPyqR/5vlXuuS39A==", "dev": true, "dependencies": { - "@storybook/cli": "7.6.14" + "@storybook/cli": "7.6.15" }, "bin": { "sb": "index.js", diff --git a/web/package.json b/web/package.json index c1c2711ec6..de2c0a4178 100644 --- a/web/package.json +++ b/web/package.json @@ -87,13 +87,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.12", - "@storybook/addon-essentials": "^7.6.14", - "@storybook/addon-links": "^7.6.14", - "@storybook/api": "^7.6.14", + "@storybook/addon-essentials": "^7.6.15", + "@storybook/addon-links": "^7.6.15", + "@storybook/api": "^7.6.15", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.14", - "@storybook/web-components": "^7.6.14", - "@storybook/web-components-vite": "^7.6.14", + "@storybook/manager-api": "^7.6.15", + "@storybook/web-components": "^7.6.15", + "@storybook/web-components-vite": "^7.6.15", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -123,7 +123,7 @@ "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.14", + "storybook": "^7.6.15", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", From 693de081efeb340f0cc416353b540c4a7347d1b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:22:51 +0100 Subject: [PATCH 082/105] web: bump the sentry group in /web with 1 update (#8505) Bumps the sentry group in /web with 1 update: [@sentry/browser](https://github.com/getsentry/sentry-javascript). Updates `@sentry/browser` from 7.100.1 to 7.101.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.100.1...7.101.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 98 +++++++++++++++++++++---------------------- web/package.json | 2 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 9dfdbd327b..099902c5fb 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -24,7 +24,7 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.100.1", + "@sentry/browser": "^7.101.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.1", @@ -4740,102 +4740,102 @@ ] }, "node_modules/@sentry-internal/feedback": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.100.1.tgz", - "integrity": "sha512-yqcRVnjf+qS+tC4NxOKLJOaSJ+csHmh/dHUzvCTkf5rLsplwXYRnny2r0tqGTQ4tuXMxwgSMKPYwicg81P+xuw==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.101.0.tgz", + "integrity": "sha512-uQBMYhZp/qkBEA/GXRMm1OfSkRkZojxBrCrFmzkWhJzXT+YbL57/M1uCcwkKmorKlg393Soh7MLULInwmcwWkA==", "dependencies": { - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/core": "7.101.0", + "@sentry/types": "7.101.0", + "@sentry/utils": "7.101.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.100.1.tgz", - "integrity": "sha512-TnqxqJGhbFhhYRhTG2WLFer+lVieV7mNGeIxFBiw1L4kuj8KGl+C0sknssKyZSRVJFSahhHIosHJGRMkkD//7g==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.101.0.tgz", + "integrity": "sha512-fiz4kPpz/j6ZaD+vOcUXuO1HqD49djs4QwyTsRwCCi77EKZOGAaijpqWckDWyZs0dOOnbGGGC5x3o+CfTJcjKA==", "dependencies": { - "@sentry/core": "7.100.1", - "@sentry/replay": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/core": "7.101.0", + "@sentry/replay": "7.101.0", + "@sentry/types": "7.101.0", + "@sentry/utils": "7.101.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/tracing": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.100.1.tgz", - "integrity": "sha512-+u9RRf5eL3StiyiRyAHZmdkAR7GTSGx4Mt4Lmi5NEtCcWlTGZ1QgW2r8ZbhouVmTiJkjhQgYCyej3cojtazeJg==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.101.0.tgz", + "integrity": "sha512-rp9oOLQs6vMuzvAnAHRRCNu5Z0o/ZVRI3WPYedxpdMWKD1Z3G9o+0joP+ZIUqHsamWWYiIgPqXgL9AK6AWjFRg==", "dependencies": { - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/core": "7.101.0", + "@sentry/types": "7.101.0", + "@sentry/utils": "7.101.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/browser": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.100.1.tgz", - "integrity": "sha512-IxHQ08ixf0bmaWpe4yt1J4UUsOpg02fxax9z3tOQYXw5MSzz5pDXn8M8DFUVJB3wWuyXhHXTub9yD3VIP9fnoA==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.101.0.tgz", + "integrity": "sha512-wj9YLfS/caR20Yq0hdEjsZHuhnYLU7Ht0SlcJx5MNMnArtmW1k2CWZz3PCqcW/rTZe53npVTe6eMqMccB4aPrQ==", "dependencies": { - "@sentry-internal/feedback": "7.100.1", - "@sentry-internal/replay-canvas": "7.100.1", - "@sentry-internal/tracing": "7.100.1", - "@sentry/core": "7.100.1", - "@sentry/replay": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry-internal/feedback": "7.101.0", + "@sentry-internal/replay-canvas": "7.101.0", + "@sentry-internal/tracing": "7.101.0", + "@sentry/core": "7.101.0", + "@sentry/replay": "7.101.0", + "@sentry/types": "7.101.0", + "@sentry/utils": "7.101.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.100.1.tgz", - "integrity": "sha512-f+ItUge/o9AjlveQq0ZUbQauKlPH1FIJbC1TRaYLJ4KNfOdrsh8yZ29RmWv0cFJ/e+FGTr603gWpRPObF5rM8Q==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz", + "integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==", "dependencies": { - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/types": "7.101.0", + "@sentry/utils": "7.101.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/replay": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.100.1.tgz", - "integrity": "sha512-B1NFjzGEFaqejxBRdUyEzH8ChXc2kfiqlA/W/Lg0aoWIl2/7nuMk+l4ld9gW5F5bIAXDTVd5vYltb1lWEbpr7w==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.101.0.tgz", + "integrity": "sha512-DSWkGKI/QhCAY+qm4mBnPob3/YsewisskVTak7KMDotJ75H85WFJhVwOMtvaEWIzVezCOItPv7ql51jTwhR3wA==", "dependencies": { - "@sentry-internal/tracing": "7.100.1", - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry-internal/tracing": "7.101.0", + "@sentry/core": "7.101.0", + "@sentry/types": "7.101.0", + "@sentry/utils": "7.101.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/types": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.100.1.tgz", - "integrity": "sha512-fLM+LedHuKzOd8IhXBqaQuym+AA519MGjeczBa5kGakes/BbAsUMwsNfjsKQedp7Kh44RgYF99jwoRPK2oDrXw==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz", + "integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.100.1.tgz", - "integrity": "sha512-Ve6dXr1o6xiBe3VCoJgiutmBKrugryI65EZAbYto5XI+t+PjiLLf9wXtEMF24ZrwImo4Lv3E9Uqza+fWkEbw6A==", + "version": "7.101.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz", + "integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==", "dependencies": { - "@sentry/types": "7.100.1" + "@sentry/types": "7.101.0" }, "engines": { "node": ">=8" diff --git a/web/package.json b/web/package.json index de2c0a4178..5e7c1d4c8c 100644 --- a/web/package.json +++ b/web/package.json @@ -49,7 +49,7 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.100.1", + "@sentry/browser": "^7.101.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.1", From 703628f354a05fcd31ff8456c2e83ec776dc8e23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:23:04 +0100 Subject: [PATCH 083/105] core: bump goauthentik.io/api/v3 from 3.2023106.5 to 3.2023107.1 (#8504) Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2023106.5 to 3.2023107.1. - [Release notes](https://github.com/goauthentik/client-go/releases) - [Commits](https://github.com/goauthentik/client-go/compare/v3.2023106.5...v3.2023107.1) --- updated-dependencies: - dependency-name: goauthentik.io/api/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 610a61e072..c686dff8c8 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.8.4 github.com/wwt/guac v1.3.2 - goauthentik.io/api/v3 v3.2023106.5 + goauthentik.io/api/v3 v3.2023107.1 golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.17.0 golang.org/x/sync v0.6.0 diff --git a/go.sum b/go.sum index 61d17791f0..e53dd73041 100644 --- a/go.sum +++ b/go.sum @@ -290,8 +290,8 @@ go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYO go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -goauthentik.io/api/v3 v3.2023106.5 h1:ogldINBGXP0J+8DALdqVtHvqhh5ePDMFe22WYczUIks= -goauthentik.io/api/v3 v3.2023106.5/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= +goauthentik.io/api/v3 v3.2023107.1 h1:kBf+1vLk4vsPKc6OgJSOVx+eBdrPRKjMRtvXkFiOvjk= +goauthentik.io/api/v3 v3.2023107.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= From 600d59ff587232eb7457a27aded741c113fba36b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:23:18 +0100 Subject: [PATCH 084/105] core: bump sentry-sdk from 1.40.3 to 1.40.4 (#8503) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.40.3 to 1.40.4. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.40.3...1.40.4) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 72bdf98e05..4098481c08 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3675,13 +3675,13 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "sentry-sdk" -version = "1.40.3" +version = "1.40.4" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = "*" files = [ - {file = "sentry-sdk-1.40.3.tar.gz", hash = "sha256:3c2b027979bb400cd65a47970e64f8cef8acda86b288a27f42a98692505086cd"}, - {file = "sentry_sdk-1.40.3-py2.py3-none-any.whl", hash = "sha256:73383f28311ae55602bb6cc3b013830811135ba5521e41333a6e68f269413502"}, + {file = "sentry-sdk-1.40.4.tar.gz", hash = "sha256:657abae98b0050a0316f0873d7149f951574ae6212f71d2e3a1c4c88f62d6456"}, + {file = "sentry_sdk-1.40.4-py2.py3-none-any.whl", hash = "sha256:ac5cf56bb897ec47135d239ddeedf7c1c12d406fb031a4c0caa07399ed014d7e"}, ] [package.dependencies] @@ -3707,7 +3707,7 @@ huey = ["huey (>=2)"] loguru = ["loguru (>=0.5)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro (>=0.40b0,<1.0)", "opentelemetry-instrumentation-aiohttp-client (>=0.40b0,<1.0)", "opentelemetry-instrumentation-django (>=0.40b0,<1.0)", "opentelemetry-instrumentation-fastapi (>=0.40b0,<1.0)", "opentelemetry-instrumentation-flask (>=0.40b0,<1.0)", "opentelemetry-instrumentation-requests (>=0.40b0,<1.0)", "opentelemetry-instrumentation-sqlite3 (>=0.40b0,<1.0)", "opentelemetry-instrumentation-urllib (>=0.40b0,<1.0)"] -pure-eval = ["asttokens", "executing", "pure-eval"] +pure-eval = ["asttokens", "executing", "pure_eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] From 65e245c003405ab0d49373cf77bec2f00ade09d2 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:23:35 +0100 Subject: [PATCH 085/105] core, web: update translations (#8502) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> --- locale/fr/LC_MESSAGES/django.mo | Bin 71720 -> 72137 bytes web/xliff/fr.xlf | 62 ++++++++++++++++---------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index ac13c057d22532a9ca26f179b8311b52b37560ba..77c682354e43af5b348a0120b72d34a3e8bbf74c 100644 GIT binary patch delta 13935 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 diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 065b8416c6..e848efb0ac 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1613,7 +1613,7 @@ Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1781,8 +1781,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2870,7 +2870,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -2959,8 +2959,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3255,7 +3255,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3423,7 +3423,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3737,8 +3737,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3914,10 +3914,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - "? + " + "? @@ -4998,8 +4998,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5324,7 +5324,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5333,10 +5333,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5385,8 +5385,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6165,7 +6165,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7472,7 +7472,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7878,7 +7878,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Utilisateur créé et ajouté au groupe avec succès - This user will be added to the group "". + This user will be added to the group "". Cet utilisateur sera ajouté au groupe &quot;&quot;. @@ -8425,4 +8425,4 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti - \ No newline at end of file + From c048f4a356e40cc109caf4ba419a464a45047170 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Wed, 14 Feb 2024 18:28:25 +0100 Subject: [PATCH 086/105] ci: temporarly comment pylint (#8508) --- .github/workflows/ci-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 8effcbc4a5..cf4544d948 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -32,7 +32,7 @@ jobs: - codespell - isort - pending-migrations - - pylint + # - pylint - pyright - ruff runs-on: ubuntu-latest From 4733778460df334ef12af892660a153e7019bc9e Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 14 Feb 2024 18:57:11 +0100 Subject: [PATCH 087/105] enterprise/providers/rac: connection token management (#8467) --- .../providers/rac/api/connection_tokens.py | 53 +++ .../enterprise/providers/rac/api/providers.py | 7 +- .../providers/rac/consumer_client.py | 12 +- ..._alter_connectiontoken_options_and_more.py | 181 ++++++++++ ..._alter_connectiontoken_options_and_more.py | 28 ++ authentik/enterprise/providers/rac/models.py | 14 + authentik/enterprise/providers/rac/signals.py | 4 +- .../providers/rac/tests/test_endpoints_api.py | 3 + authentik/enterprise/providers/rac/urls.py | 2 + ...ve_systemtask_finish_timestamp_and_more.py | 3 - authentik/events/models.py | 6 +- blueprints/schema.json | 5 + blueprints/system/providers-rac.yaml | 2 + schema.yml | 315 ++++++++++++++++++ .../admin/enterprise/EnterpriseLicenseForm.ts | 22 +- .../PropertyMappingRACForm.ts | 130 +++----- .../providers/rac/ConnectionTokenList.ts | 98 ++++++ .../admin/providers/rac/RACProviderForm.ts | 22 ++ .../providers/rac/RACProviderViewPage.ts | 10 + web/src/admin/users/UserViewPage.ts | 11 + web/src/common/constants.ts | 1 + web/src/elements/Interface/Interface.ts | 13 +- web/src/elements/forms/Radio.ts | 2 +- 23 files changed, 846 insertions(+), 98 deletions(-) create mode 100644 authentik/enterprise/providers/rac/api/connection_tokens.py create mode 100644 authentik/enterprise/providers/rac/migrations/0001_squashed_0003_alter_connectiontoken_options_and_more.py create mode 100644 authentik/enterprise/providers/rac/migrations/0003_alter_connectiontoken_options_and_more.py create mode 100644 web/src/admin/providers/rac/ConnectionTokenList.ts diff --git a/authentik/enterprise/providers/rac/api/connection_tokens.py b/authentik/enterprise/providers/rac/api/connection_tokens.py new file mode 100644 index 0000000000..9b5ff10743 --- /dev/null +++ b/authentik/enterprise/providers/rac/api/connection_tokens.py @@ -0,0 +1,53 @@ +"""RAC Provider API Views""" + +from django_filters.rest_framework.backends import DjangoFilterBackend +from rest_framework import mixins +from rest_framework.filters import OrderingFilter, SearchFilter +from rest_framework.serializers import ModelSerializer +from rest_framework.viewsets import GenericViewSet + +from authentik.api.authorization import OwnerFilter, OwnerPermissions +from authentik.core.api.groups import GroupMemberSerializer +from authentik.core.api.used_by import UsedByMixin +from authentik.enterprise.api import EnterpriseRequiredMixin +from authentik.enterprise.providers.rac.api.endpoints import EndpointSerializer +from authentik.enterprise.providers.rac.api.providers import RACProviderSerializer +from authentik.enterprise.providers.rac.models import ConnectionToken, Endpoint + + +class ConnectionTokenSerializer(EnterpriseRequiredMixin, ModelSerializer): + """ConnectionToken Serializer""" + + provider_obj = RACProviderSerializer(source="provider", read_only=True) + endpoint_obj = EndpointSerializer(source="endpoint", read_only=True) + user = GroupMemberSerializer(source="session.user", read_only=True) + + class Meta: + model = Endpoint + fields = [ + "pk", + "provider", + "provider_obj", + "endpoint", + "endpoint_obj", + "user", + ] + + +class ConnectionTokenViewSet( + mixins.RetrieveModelMixin, + mixins.UpdateModelMixin, + mixins.DestroyModelMixin, + UsedByMixin, + mixins.ListModelMixin, + GenericViewSet, +): + """ConnectionToken Viewset""" + + queryset = ConnectionToken.objects.all().select_related("session", "endpoint") + serializer_class = ConnectionTokenSerializer + filterset_fields = ["endpoint", "session__user", "provider"] + search_fields = ["endpoint__name", "provider__name"] + ordering = ["endpoint__name", "provider__name"] + permission_classes = [OwnerPermissions] + filter_backends = [OwnerFilter, DjangoFilterBackend, OrderingFilter, SearchFilter] diff --git a/authentik/enterprise/providers/rac/api/providers.py b/authentik/enterprise/providers/rac/api/providers.py index 25df75789c..892e081c96 100644 --- a/authentik/enterprise/providers/rac/api/providers.py +++ b/authentik/enterprise/providers/rac/api/providers.py @@ -16,7 +16,12 @@ class RACProviderSerializer(EnterpriseRequiredMixin, ProviderSerializer): class Meta: model = RACProvider - fields = ProviderSerializer.Meta.fields + ["settings", "outpost_set", "connection_expiry"] + fields = ProviderSerializer.Meta.fields + [ + "settings", + "outpost_set", + "connection_expiry", + "delete_token_on_disconnect", + ] extra_kwargs = ProviderSerializer.Meta.extra_kwargs diff --git a/authentik/enterprise/providers/rac/consumer_client.py b/authentik/enterprise/providers/rac/consumer_client.py index 5bfc176b95..b6331ca563 100644 --- a/authentik/enterprise/providers/rac/consumer_client.py +++ b/authentik/enterprise/providers/rac/consumer_client.py @@ -43,6 +43,7 @@ class RACClientConsumer(AsyncWebsocketConsumer): logger: BoundLogger async def connect(self): + self.logger = get_logger() await self.accept("guacamole") await self.channel_layer.group_add(RAC_CLIENT_GROUP, self.channel_name) await self.channel_layer.group_add( @@ -64,9 +65,11 @@ class RACClientConsumer(AsyncWebsocketConsumer): @database_sync_to_async def init_outpost_connection(self): """Initialize guac connection settings""" - self.token = ConnectionToken.filter_not_expired( - token=self.scope["url_route"]["kwargs"]["token"] - ).first() + self.token = ( + ConnectionToken.filter_not_expired(token=self.scope["url_route"]["kwargs"]["token"]) + .select_related("endpoint", "provider", "session", "session__user") + .first() + ) if not self.token: raise DenyConnection() self.provider = self.token.provider @@ -107,6 +110,9 @@ class RACClientConsumer(AsyncWebsocketConsumer): OUTPOST_GROUP_INSTANCE % {"outpost_pk": str(outpost.pk), "instance": states[0].uid}, msg, ) + if self.provider and self.provider.delete_token_on_disconnect: + self.logger.info("Deleting connection token to prevent reconnect", token=self.token) + self.token.delete() async def receive(self, text_data=None, bytes_data=None): """Mirror data received from client to the dest_channel_id diff --git a/authentik/enterprise/providers/rac/migrations/0001_squashed_0003_alter_connectiontoken_options_and_more.py b/authentik/enterprise/providers/rac/migrations/0001_squashed_0003_alter_connectiontoken_options_and_more.py new file mode 100644 index 0000000000..3c6626f1a7 --- /dev/null +++ b/authentik/enterprise/providers/rac/migrations/0001_squashed_0003_alter_connectiontoken_options_and_more.py @@ -0,0 +1,181 @@ +# Generated by Django 5.0.1 on 2024-02-11 19:04 + +import uuid + +import django.db.models.deletion +from django.db import migrations, models + +import authentik.core.models +import authentik.lib.utils.time + + +class Migration(migrations.Migration): + + replaces = [ + ("authentik_providers_rac", "0001_initial"), + ("authentik_providers_rac", "0002_endpoint_maximum_connections"), + ("authentik_providers_rac", "0003_alter_connectiontoken_options_and_more"), + ] + + initial = True + + dependencies = [ + ("authentik_core", "0032_group_roles"), + ("authentik_policies", "0011_policybinding_failure_result_and_more"), + ] + + operations = [ + migrations.CreateModel( + name="RACPropertyMapping", + fields=[ + ( + "propertymapping_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="authentik_core.propertymapping", + ), + ), + ("static_settings", models.JSONField(default=dict)), + ], + options={ + "verbose_name": "RAC Property Mapping", + "verbose_name_plural": "RAC Property Mappings", + }, + bases=("authentik_core.propertymapping",), + ), + migrations.CreateModel( + name="RACProvider", + fields=[ + ( + "provider_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="authentik_core.provider", + ), + ), + ("settings", models.JSONField(default=dict)), + ( + "auth_mode", + models.TextField( + choices=[("static", "Static"), ("prompt", "Prompt")], default="prompt" + ), + ), + ( + "connection_expiry", + models.TextField( + default="hours=8", + help_text="Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)", + validators=[authentik.lib.utils.time.timedelta_string_validator], + ), + ), + ( + "delete_token_on_disconnect", + models.BooleanField( + default=False, + help_text="When set to true, connection tokens will be deleted upon disconnect.", + ), + ), + ], + options={ + "verbose_name": "RAC Provider", + "verbose_name_plural": "RAC Providers", + }, + bases=("authentik_core.provider",), + ), + migrations.CreateModel( + name="Endpoint", + fields=[ + ( + "policybindingmodel_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="authentik_policies.policybindingmodel", + ), + ), + ("name", models.TextField()), + ("host", models.TextField()), + ( + "protocol", + models.TextField(choices=[("rdp", "Rdp"), ("vnc", "Vnc"), ("ssh", "Ssh")]), + ), + ("settings", models.JSONField(default=dict)), + ( + "auth_mode", + models.TextField(choices=[("static", "Static"), ("prompt", "Prompt")]), + ), + ( + "property_mappings", + models.ManyToManyField( + blank=True, default=None, to="authentik_core.propertymapping" + ), + ), + ( + "provider", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="authentik_providers_rac.racprovider", + ), + ), + ("maximum_connections", models.IntegerField(default=1)), + ], + options={ + "verbose_name": "RAC Endpoint", + "verbose_name_plural": "RAC Endpoints", + }, + bases=("authentik_policies.policybindingmodel", models.Model), + ), + migrations.CreateModel( + name="ConnectionToken", + fields=[ + ( + "expires", + models.DateTimeField(default=authentik.core.models.default_token_duration), + ), + ("expiring", models.BooleanField(default=True)), + ( + "connection_token_uuid", + models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False), + ), + ("token", models.TextField(default=authentik.core.models.default_token_key)), + ("settings", models.JSONField(default=dict)), + ( + "endpoint", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="authentik_providers_rac.endpoint", + ), + ), + ( + "provider", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="authentik_providers_rac.racprovider", + ), + ), + ( + "session", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="authentik_core.authenticatedsession", + ), + ), + ], + options={ + "abstract": False, + "verbose_name": "RAC Connection token", + "verbose_name_plural": "RAC Connection tokens", + }, + ), + ] diff --git a/authentik/enterprise/providers/rac/migrations/0003_alter_connectiontoken_options_and_more.py b/authentik/enterprise/providers/rac/migrations/0003_alter_connectiontoken_options_and_more.py new file mode 100644 index 0000000000..c333fedadd --- /dev/null +++ b/authentik/enterprise/providers/rac/migrations/0003_alter_connectiontoken_options_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.0.1 on 2024-02-11 19:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_providers_rac", "0002_endpoint_maximum_connections"), + ] + + operations = [ + migrations.AlterModelOptions( + name="connectiontoken", + options={ + "verbose_name": "RAC Connection token", + "verbose_name_plural": "RAC Connection tokens", + }, + ), + migrations.AddField( + model_name="racprovider", + name="delete_token_on_disconnect", + field=models.BooleanField( + default=False, + help_text="When set to true, connection tokens will be deleted upon disconnect.", + ), + ), + ] diff --git a/authentik/enterprise/providers/rac/models.py b/authentik/enterprise/providers/rac/models.py index d354617739..c5f866bfd6 100644 --- a/authentik/enterprise/providers/rac/models.py +++ b/authentik/enterprise/providers/rac/models.py @@ -52,6 +52,10 @@ class RACProvider(Provider): "(Format: hours=-1;minutes=-2;seconds=-3)" ), ) + delete_token_on_disconnect = models.BooleanField( + default=False, + help_text=_("When set to true, connection tokens will be deleted upon disconnect."), + ) @property def launch_url(self) -> Optional[str]: @@ -195,3 +199,13 @@ class ConnectionToken(ExpiringModel): continue settings[key] = str(value) return settings + + def __str__(self): + return ( + f"RAC Connection token {self.session.user} to " + f"{self.endpoint.provider.name}/{self.endpoint.name}" + ) + + class Meta: + verbose_name = _("RAC Connection token") + verbose_name_plural = _("RAC Connection tokens") diff --git a/authentik/enterprise/providers/rac/signals.py b/authentik/enterprise/providers/rac/signals.py index 20e967ddb3..28cece00ab 100644 --- a/authentik/enterprise/providers/rac/signals.py +++ b/authentik/enterprise/providers/rac/signals.py @@ -45,8 +45,8 @@ def pre_delete_connection_token_disconnect(sender, instance: ConnectionToken, ** @receiver(post_save, sender=Endpoint) -def post_save_application(sender: type[Model], instance, created: bool, **_): - """Clear user's application cache upon application creation""" +def post_save_endpoint(sender: type[Model], instance, created: bool, **_): + """Clear user's endpoint cache upon endpoint creation""" if not created: # pragma: no cover return diff --git a/authentik/enterprise/providers/rac/tests/test_endpoints_api.py b/authentik/enterprise/providers/rac/tests/test_endpoints_api.py index 3000b345ce..1ad9b70daf 100644 --- a/authentik/enterprise/providers/rac/tests/test_endpoints_api.py +++ b/authentik/enterprise/providers/rac/tests/test_endpoints_api.py @@ -70,6 +70,7 @@ class TestEndpointsAPI(APITestCase): "authorization_flow": None, "property_mappings": [], "connection_expiry": "hours=8", + "delete_token_on_disconnect": False, "component": "ak-provider-rac-form", "assigned_application_slug": self.app.slug, "assigned_application_name": self.app.name, @@ -124,6 +125,7 @@ class TestEndpointsAPI(APITestCase): "assigned_application_slug": self.app.slug, "assigned_application_name": self.app.name, "connection_expiry": "hours=8", + "delete_token_on_disconnect": False, "verbose_name": "RAC Provider", "verbose_name_plural": "RAC Providers", "meta_model_name": "authentik_providers_rac.racprovider", @@ -152,6 +154,7 @@ class TestEndpointsAPI(APITestCase): "assigned_application_slug": self.app.slug, "assigned_application_name": self.app.name, "connection_expiry": "hours=8", + "delete_token_on_disconnect": False, "verbose_name": "RAC Provider", "verbose_name_plural": "RAC Providers", "meta_model_name": "authentik_providers_rac.racprovider", diff --git a/authentik/enterprise/providers/rac/urls.py b/authentik/enterprise/providers/rac/urls.py index b36eb998d5..8ee5e32089 100644 --- a/authentik/enterprise/providers/rac/urls.py +++ b/authentik/enterprise/providers/rac/urls.py @@ -6,6 +6,7 @@ from django.urls import path from django.views.decorators.csrf import ensure_csrf_cookie from authentik.core.channels import TokenOutpostMiddleware +from authentik.enterprise.providers.rac.api.connection_tokens import ConnectionTokenViewSet from authentik.enterprise.providers.rac.api.endpoints import EndpointViewSet from authentik.enterprise.providers.rac.api.property_mappings import RACPropertyMappingViewSet from authentik.enterprise.providers.rac.api.providers import RACProviderViewSet @@ -45,4 +46,5 @@ api_urlpatterns = [ ("providers/rac", RACProviderViewSet), ("propertymappings/rac", RACPropertyMappingViewSet), ("rac/endpoints", EndpointViewSet), + ("rac/connection_tokens", ConnectionTokenViewSet), ] diff --git a/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py b/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py index b42fb252fc..8871965b7f 100644 --- a/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py +++ b/authentik/events/migrations/0005_remove_systemtask_finish_timestamp_and_more.py @@ -23,18 +23,15 @@ class Migration(migrations.Migration): model_name="systemtask", name="duration", field=models.FloatField(default=0), - preserve_default=False, ), migrations.AddField( model_name="systemtask", name="finish_timestamp", field=models.DateTimeField(default=django.utils.timezone.now), - preserve_default=False, ), migrations.AddField( model_name="systemtask", name="start_timestamp", field=models.DateTimeField(default=django.utils.timezone.now), - preserve_default=False, ), ] diff --git a/authentik/events/models.py b/authentik/events/models.py index 179d9edf29..3bb2ff1458 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -620,9 +620,9 @@ class SystemTask(SerializerModel, ExpiringModel): name = models.TextField() uid = models.TextField(null=True) - start_timestamp = models.DateTimeField() - finish_timestamp = models.DateTimeField() - duration = models.FloatField() + start_timestamp = models.DateTimeField(default=now) + finish_timestamp = models.DateTimeField(default=now) + duration = models.FloatField(default=0) status = models.TextField(choices=TaskStatus.choices) diff --git a/blueprints/schema.json b/blueprints/schema.json index 6a745cebb1..bd3c1cd29f 100644 --- a/blueprints/schema.json +++ b/blueprints/schema.json @@ -7924,6 +7924,11 @@ "minLength": 1, "title": "Connection expiry", "description": "Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" + }, + "delete_token_on_disconnect": { + "type": "boolean", + "title": "Delete token on disconnect", + "description": "When set to true, connection tokens will be deleted upon disconnect." } }, "required": [] diff --git a/blueprints/system/providers-rac.yaml b/blueprints/system/providers-rac.yaml index 63a568673f..ef530cea20 100644 --- a/blueprints/system/providers-rac.yaml +++ b/blueprints/system/providers-rac.yaml @@ -23,6 +23,8 @@ entries: enable-full-window-drag: "true" enable-desktop-composition: "true" enable-menu-animations: "true" + enable-wallpaper: "true" + enable-font-smoothing: "true" - identifiers: managed: goauthentik.io/providers/rac/ssh-default model: authentik_providers_rac.racpropertymapping diff --git a/schema.yml b/schema.yml index 97214b0055..4c7a433d00 100644 --- a/schema.yml +++ b/schema.yml @@ -17818,6 +17818,252 @@ paths: schema: $ref: '#/components/schemas/GenericError' description: '' + /rac/connection_tokens/: + get: + operationId: rac_connection_tokens_list + description: ConnectionToken Viewset + parameters: + - in: query + name: endpoint + schema: + type: string + format: uuid + - name: ordering + required: false + in: query + description: Which field to use when ordering the results. + schema: + type: string + - name: page + required: false + in: query + description: A page number within the paginated result set. + schema: + type: integer + - name: page_size + required: false + in: query + description: Number of results to return per page. + schema: + type: integer + - in: query + name: provider + schema: + type: integer + - name: search + required: false + in: query + description: A search term. + schema: + type: string + - in: query + name: session__user + schema: + type: integer + tags: + - rac + security: + - authentik: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedConnectionTokenList' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' + /rac/connection_tokens/{connection_token_uuid}/: + get: + operationId: rac_connection_tokens_retrieve + description: ConnectionToken Viewset + parameters: + - in: path + name: connection_token_uuid + schema: + type: string + format: uuid + description: A UUID string identifying this connection token. + required: true + tags: + - rac + security: + - authentik: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionToken' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' + put: + operationId: rac_connection_tokens_update + description: ConnectionToken Viewset + parameters: + - in: path + name: connection_token_uuid + schema: + type: string + format: uuid + description: A UUID string identifying this connection token. + required: true + tags: + - rac + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionTokenRequest' + required: true + security: + - authentik: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionToken' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' + patch: + operationId: rac_connection_tokens_partial_update + description: ConnectionToken Viewset + parameters: + - in: path + name: connection_token_uuid + schema: + type: string + format: uuid + description: A UUID string identifying this connection token. + required: true + tags: + - rac + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedConnectionTokenRequest' + security: + - authentik: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectionToken' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' + delete: + operationId: rac_connection_tokens_destroy + description: ConnectionToken Viewset + parameters: + - in: path + name: connection_token_uuid + schema: + type: string + format: uuid + description: A UUID string identifying this connection token. + required: true + tags: + - rac + security: + - authentik: [] + responses: + '204': + description: No response body + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' + /rac/connection_tokens/{connection_token_uuid}/used_by/: + get: + operationId: rac_connection_tokens_used_by_list + description: Get a list of all objects that use this object + parameters: + - in: path + name: connection_token_uuid + schema: + type: string + format: uuid + description: A UUID string identifying this connection token. + required: true + tags: + - rac + security: + - authentik: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UsedBy' + description: '' + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationError' + description: '' + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/GenericError' + description: '' /rac/endpoints/: get: operationId: rac_endpoints_list @@ -31248,6 +31494,48 @@ components: - cache_timeout_reputation - capabilities - error_reporting + ConnectionToken: + type: object + description: ConnectionToken Serializer + properties: + pk: + type: string + format: uuid + readOnly: true + title: Pbm uuid + provider: + type: integer + provider_obj: + allOf: + - $ref: '#/components/schemas/RACProvider' + readOnly: true + endpoint: + type: string + format: uuid + readOnly: true + endpoint_obj: + allOf: + - $ref: '#/components/schemas/Endpoint' + readOnly: true + user: + allOf: + - $ref: '#/components/schemas/GroupMember' + readOnly: true + required: + - endpoint + - endpoint_obj + - pk + - provider + - provider_obj + - user + ConnectionTokenRequest: + type: object + description: ConnectionToken Serializer + properties: + provider: + type: integer + required: + - provider ConsentChallenge: type: object description: Challenge info for consent screens @@ -36268,6 +36556,18 @@ components: required: - pagination - results + PaginatedConnectionTokenList: + type: object + properties: + pagination: + $ref: '#/components/schemas/Pagination' + results: + type: array + items: + $ref: '#/components/schemas/ConnectionToken' + required: + - pagination + - results PaginatedConsentStageList: type: object properties: @@ -37980,6 +38280,12 @@ components: writeOnly: true description: Optional Private Key. If this is set, you can use this keypair for encryption. + PatchedConnectionTokenRequest: + type: object + description: ConnectionToken Serializer + properties: + provider: + type: integer PatchedConsentStageRequest: type: object description: ConsentStage Serializer @@ -39542,6 +39848,9 @@ components: minLength: 1 description: 'Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)' + delete_token_on_disconnect: + type: boolean + description: When set to true, connection tokens will be deleted upon disconnect. PatchedRadiusProviderRequest: type: object description: RadiusProvider Serializer @@ -41615,6 +41924,9 @@ components: type: string description: 'Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)' + delete_token_on_disconnect: + type: boolean + description: When set to true, connection tokens will be deleted upon disconnect. required: - assigned_application_name - assigned_application_slug @@ -41656,6 +41968,9 @@ components: minLength: 1 description: 'Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)' + delete_token_on_disconnect: + type: boolean + description: When set to true, connection tokens will be deleted upon disconnect. required: - authorization_flow - name diff --git a/web/src/admin/enterprise/EnterpriseLicenseForm.ts b/web/src/admin/enterprise/EnterpriseLicenseForm.ts index ebce9938db..466a96aa71 100644 --- a/web/src/admin/enterprise/EnterpriseLicenseForm.ts +++ b/web/src/admin/enterprise/EnterpriseLicenseForm.ts @@ -1,3 +1,4 @@ +import { EVENT_REFRESH_ENTERPRISE } from "@goauthentik/app/common/constants"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/forms/HorizontalFormElement"; @@ -34,14 +35,19 @@ export class EnterpriseLicenseForm extends ModelForm { } async send(data: License): Promise { - return this.instance - ? new EnterpriseApi(DEFAULT_CONFIG).enterpriseLicensePartialUpdate({ - licenseUuid: this.instance.licenseUuid || "", - patchedLicenseRequest: data, - }) - : new EnterpriseApi(DEFAULT_CONFIG).enterpriseLicenseCreate({ - licenseRequest: data, - }); + return ( + this.instance + ? new EnterpriseApi(DEFAULT_CONFIG).enterpriseLicensePartialUpdate({ + licenseUuid: this.instance.licenseUuid || "", + patchedLicenseRequest: data, + }) + : new EnterpriseApi(DEFAULT_CONFIG).enterpriseLicenseCreate({ + licenseRequest: data, + }) + ).then((data) => { + window.dispatchEvent(new CustomEvent(EVENT_REFRESH_ENTERPRISE)); + return data; + }); } renderForm(): TemplateResult { diff --git a/web/src/admin/property-mappings/PropertyMappingRACForm.ts b/web/src/admin/property-mappings/PropertyMappingRACForm.ts index 72e2bb0906..145a63556b 100644 --- a/web/src/admin/property-mappings/PropertyMappingRACForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingRACForm.ts @@ -1,4 +1,3 @@ -import { first } from "@goauthentik/app/common/utils"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { docLink } from "@goauthentik/common/global"; import "@goauthentik/elements/CodeMirror"; @@ -6,6 +5,8 @@ import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/forms/FormGroup"; import "@goauthentik/elements/forms/HorizontalFormElement"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; +import "@goauthentik/elements/forms/Radio"; +import type { RadioOption } from "@goauthentik/elements/forms/Radio"; import { msg } from "@lit/localize"; import { TemplateResult, html } from "lit"; @@ -14,6 +15,23 @@ import { ifDefined } from "lit/directives/if-defined.js"; import { PropertymappingsApi, RACPropertyMapping } from "@goauthentik/api"; +export const staticSettingOptions: RadioOption[] = [ + { + label: msg("Unconfigured"), + value: undefined, + default: true, + description: html`${msg("This option will not be changed by this mapping.")}`, + }, + { + label: msg("Enabled"), + value: "true", + }, + { + label: msg("Disabled"), + value: "false", + }, +]; + @customElement("ak-property-mapping-rac-form") export class PropertyMappingLDAPForm extends ModelForm { loadInstance(pk: string): Promise { @@ -58,7 +76,6 @@ export class PropertyMappingLDAPForm extends ModelForm ${msg("RDP settings")}
- - + + + - - + + + - - + + + - - + + +
diff --git a/web/src/admin/providers/rac/ConnectionTokenList.ts b/web/src/admin/providers/rac/ConnectionTokenList.ts new file mode 100644 index 0000000000..93ee5ddf15 --- /dev/null +++ b/web/src/admin/providers/rac/ConnectionTokenList.ts @@ -0,0 +1,98 @@ +import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import { uiConfig } from "@goauthentik/common/ui/config"; +import "@goauthentik/elements/buttons/SpinnerButton"; +import "@goauthentik/elements/forms/DeleteBulkForm"; +import "@goauthentik/elements/forms/ModalForm"; +import { PaginatedResponse, Table } from "@goauthentik/elements/table/Table"; +import { TableColumn } from "@goauthentik/elements/table/Table"; +import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; + +import { msg } from "@lit/localize"; +import { CSSResult, TemplateResult, html } from "lit"; +import { customElement, property } from "lit/decorators.js"; + +import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css"; + +import { ConnectionToken, Endpoint, RACProvider, RacApi } from "@goauthentik/api"; + +@customElement("ak-rac-connection-token-list") +export class ConnectionTokenListPage extends Table { + checkbox = true; + clearOnRefresh = true; + + searchEnabled(): boolean { + return true; + } + + @property() + order = "name"; + + @property({ attribute: false }) + provider?: RACProvider; + + @property({ type: Number }) + userId?: number; + + static get styles(): CSSResult[] { + return super.styles.concat(PFDescriptionList); + } + + async apiEndpoint(page: number): Promise> { + return new RacApi(DEFAULT_CONFIG).racConnectionTokensList({ + ordering: this.order, + page: page, + pageSize: (await uiConfig()).pagination.perPage, + search: this.search || "", + provider: this.provider?.pk, + sessionUser: this.userId, + }); + } + + renderToolbarSelected(): TemplateResult { + const disabled = this.selectedElements.length < 1; + return html` { + return [ + { key: msg("Name"), value: item.name }, + { key: msg("Host"), value: item.host }, + ]; + }} + .usedBy=${(item: Endpoint) => { + return new RacApi(DEFAULT_CONFIG).racConnectionTokensUsedByList({ + connectionTokenUuid: item.pk, + }); + }} + .delete=${(item: Endpoint) => { + return new RacApi(DEFAULT_CONFIG).racConnectionTokensDestroy({ + connectionTokenUuid: item.pk, + }); + }} + > + + `; + } + + columns(): TableColumn[] { + if (this.provider) { + return [ + new TableColumn(msg("Endpoint"), "endpoint__name"), + new TableColumn(msg("User"), "session__user"), + ]; + } + return [ + new TableColumn(msg("Provider"), "provider__name"), + new TableColumn(msg("Endpoint"), "endpoint__name"), + ]; + } + + row(item: ConnectionToken): TemplateResult[] { + if (this.provider) { + return [html`${item.endpointObj.name}`, html`${item.user.username}`]; + } + return [html`${item.providerObj.name}`, html`${item.endpointObj.name}`]; + } +} diff --git a/web/src/admin/providers/rac/RACProviderForm.ts b/web/src/admin/providers/rac/RACProviderForm.ts index b4b122cba4..46eae9cdc9 100644 --- a/web/src/admin/providers/rac/RACProviderForm.ts +++ b/web/src/admin/providers/rac/RACProviderForm.ts @@ -107,6 +107,28 @@ export class RACProviderFormPage extends ModelForm {

+ + +

+ ${msg( + "When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint.", + )} +

+
${msg("Protocol settings")} diff --git a/web/src/admin/providers/rac/RACProviderViewPage.ts b/web/src/admin/providers/rac/RACProviderViewPage.ts index 393fa43755..9b9665d689 100644 --- a/web/src/admin/providers/rac/RACProviderViewPage.ts +++ b/web/src/admin/providers/rac/RACProviderViewPage.ts @@ -1,4 +1,5 @@ import "@goauthentik/admin/providers/RelatedApplicationButton"; +import "@goauthentik/admin/providers/rac/ConnectionTokenList"; import "@goauthentik/admin/providers/rac/EndpointForm"; import "@goauthentik/admin/providers/rac/EndpointList"; import "@goauthentik/admin/providers/rac/RACProviderForm"; @@ -86,6 +87,15 @@ export class RACProviderViewPage extends AKElement {
${this.renderTabOverview()}
+
+
+
+ +
+
+
+
+
+ + +
+
`; } diff --git a/web/src/common/constants.ts b/web/src/common/constants.ts index fe40f5a768..ad77f5a3d8 100644 --- a/web/src/common/constants.ts +++ b/web/src/common/constants.ts @@ -19,6 +19,7 @@ export const EVENT_LOCALE_REQUEST = "ak-locale-request"; export const EVENT_REQUEST_POST = "ak-request-post"; export const EVENT_MESSAGE = "ak-message"; export const EVENT_THEME_CHANGE = "ak-theme-change"; +export const EVENT_REFRESH_ENTERPRISE = "ak-refresh-enterprise"; export const WS_MSG_TYPE_MESSAGE = "message"; export const WS_MSG_TYPE_REFRESH = "refresh"; diff --git a/web/src/elements/Interface/Interface.ts b/web/src/elements/Interface/Interface.ts index b97b87168a..ce47189bc7 100644 --- a/web/src/elements/Interface/Interface.ts +++ b/web/src/elements/Interface/Interface.ts @@ -1,3 +1,4 @@ +import { EVENT_REFRESH_ENTERPRISE } from "@goauthentik/app/common/constants"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { brand, config } from "@goauthentik/common/api/config"; import { UIConfig, uiConfig } from "@goauthentik/common/ui/config"; @@ -109,8 +110,16 @@ export class EnterpriseAwareInterface extends Interface { constructor() { super(); - new EnterpriseApi(DEFAULT_CONFIG).enterpriseLicenseSummaryRetrieve().then((enterprise) => { - this.licenseSummary = enterprise; + const refreshStatus = () => { + new EnterpriseApi(DEFAULT_CONFIG) + .enterpriseLicenseSummaryRetrieve() + .then((enterprise) => { + this.licenseSummary = enterprise; + }); + }; + refreshStatus(); + window.addEventListener(EVENT_REFRESH_ENTERPRISE, () => { + refreshStatus(); }); } } diff --git a/web/src/elements/forms/Radio.ts b/web/src/elements/forms/Radio.ts index 27fbdf0b91..87e09b6f37 100644 --- a/web/src/elements/forms/Radio.ts +++ b/web/src/elements/forms/Radio.ts @@ -14,7 +14,7 @@ import { randomId } from "../utils/randomId"; export interface RadioOption { label: string; description?: TemplateResult; - default: boolean; + default?: boolean; value: T; } From 7d527beea884a4a3770ebd3487148911481a47fb Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 14 Feb 2024 19:00:08 +0100 Subject: [PATCH 088/105] enterprise: rework license summary caching (#8501) Signed-off-by: Jens Langhammer --- authentik/blueprints/v1/importer.py | 3 +- authentik/enterprise/api.py | 48 +--- authentik/enterprise/apps.py | 4 +- authentik/enterprise/audit/middleware.py | 8 +- authentik/enterprise/license.py | 213 ++++++++++++++++++ authentik/enterprise/middleware.py | 64 ++++++ authentik/enterprise/models.py | 153 +------------ authentik/enterprise/policy.py | 2 +- .../providers/rac/tests/test_views.py | 9 +- authentik/enterprise/settings.py | 2 + authentik/enterprise/tasks.py | 2 +- authentik/enterprise/tests/test_license.py | 7 +- 12 files changed, 313 insertions(+), 202 deletions(-) create mode 100644 authentik/enterprise/license.py create mode 100644 authentik/enterprise/middleware.py diff --git a/authentik/blueprints/v1/importer.py b/authentik/blueprints/v1/importer.py index 1e935c4d6b..21127ec00e 100644 --- a/authentik/blueprints/v1/importer.py +++ b/authentik/blueprints/v1/importer.py @@ -39,7 +39,8 @@ from authentik.core.models import ( Source, UserSourceConnection, ) -from authentik.enterprise.models import LicenseKey, LicenseUsage +from authentik.enterprise.license import LicenseKey +from authentik.enterprise.models import LicenseUsage from authentik.enterprise.providers.rac.models import ConnectionToken from authentik.events.models import SystemTask from authentik.events.utils import cleanse_dict diff --git a/authentik/enterprise/api.py b/authentik/enterprise/api.py index b7a91d7649..3835c85610 100644 --- a/authentik/enterprise/api.py +++ b/authentik/enterprise/api.py @@ -1,6 +1,7 @@ """Enterprise API Views""" -from datetime import datetime, timedelta +from dataclasses import asdict +from datetime import timedelta from django.utils.timezone import now from django.utils.translation import gettext as _ @@ -8,7 +9,7 @@ from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import extend_schema, inline_serializer from rest_framework.decorators import action from rest_framework.exceptions import ValidationError -from rest_framework.fields import BooleanField, CharField, DateTimeField, IntegerField +from rest_framework.fields import CharField, IntegerField from rest_framework.permissions import IsAuthenticated from rest_framework.request import Request from rest_framework.response import Response @@ -19,18 +20,18 @@ from authentik.api.decorators import permission_required from authentik.core.api.used_by import UsedByMixin from authentik.core.api.utils import PassiveSerializer from authentik.core.models import User, UserTypes -from authentik.enterprise.models import License, LicenseKey +from authentik.enterprise.license import LicenseKey, LicenseSummarySerializer +from authentik.enterprise.models import License from authentik.root.install_id import get_install_id class EnterpriseRequiredMixin: """Mixin to validate that a valid enterprise license - exists before allowing to safe the object""" + exists before allowing to save the object""" def validate(self, attrs: dict) -> dict: """Check that a valid license exists""" - total = LicenseKey.get_total() - if not total.is_valid(): + if not LicenseKey.cached_summary().valid: raise ValidationError(_("Enterprise is required to create/update this object.")) return super().validate(attrs) @@ -61,19 +62,6 @@ class LicenseSerializer(ModelSerializer): } -class LicenseSummary(PassiveSerializer): - """Serializer for license status""" - - internal_users = IntegerField(required=True) - external_users = IntegerField(required=True) - valid = BooleanField() - show_admin_warning = BooleanField() - show_user_warning = BooleanField() - read_only = BooleanField() - latest_valid = DateTimeField() - has_license = BooleanField() - - class LicenseForecastSerializer(PassiveSerializer): """Serializer for license forecast""" @@ -111,31 +99,13 @@ class LicenseViewSet(UsedByMixin, ModelViewSet): @extend_schema( request=OpenApiTypes.NONE, responses={ - 200: LicenseSummary(), + 200: LicenseSummarySerializer(), }, ) @action(detail=False, methods=["GET"], permission_classes=[IsAuthenticated]) def summary(self, request: Request) -> Response: """Get the total license status""" - total = LicenseKey.get_total() - last_valid = LicenseKey.last_valid_date() - # TODO: move this to a different place? - show_admin_warning = last_valid < now() - timedelta(weeks=2) - show_user_warning = last_valid < now() - timedelta(weeks=4) - read_only = last_valid < now() - timedelta(weeks=6) - latest_valid = datetime.fromtimestamp(total.exp) - response = LicenseSummary( - data={ - "internal_users": total.internal_users, - "external_users": total.external_users, - "valid": total.is_valid(), - "show_admin_warning": show_admin_warning, - "show_user_warning": show_user_warning, - "read_only": read_only, - "latest_valid": latest_valid, - "has_license": License.objects.all().count() > 0, - } - ) + response = LicenseSummarySerializer(data=asdict(LicenseKey.cached_summary())) response.is_valid(raise_exception=True) return Response(response.data) diff --git a/authentik/enterprise/apps.py b/authentik/enterprise/apps.py index 0b1057ac9a..83dbefa06a 100644 --- a/authentik/enterprise/apps.py +++ b/authentik/enterprise/apps.py @@ -23,6 +23,6 @@ class AuthentikEnterpriseConfig(EnterpriseConfig): def check_enabled(self): """Actual enterprise check, cached""" - from authentik.enterprise.models import LicenseKey + from authentik.enterprise.license import LicenseKey - return LicenseKey.get_total().is_valid() + return LicenseKey.cached_summary().valid diff --git a/authentik/enterprise/audit/middleware.py b/authentik/enterprise/audit/middleware.py index cca240b96f..ad649d1a04 100644 --- a/authentik/enterprise/audit/middleware.py +++ b/authentik/enterprise/audit/middleware.py @@ -19,14 +19,10 @@ from authentik.events.utils import cleanse_dict, sanitize_item class EnterpriseAuditMiddleware(AuditMiddleware): """Enterprise audit middleware""" - _enabled = None - @property def enabled(self): - """Lazy check if audit logging is enabled""" - if self._enabled is None: - self._enabled = apps.get_app_config("authentik_enterprise").enabled() - return self._enabled + """Check if audit logging is enabled""" + return apps.get_app_config("authentik_enterprise").enabled() def connect(self, request: HttpRequest): super().connect(request) diff --git a/authentik/enterprise/license.py b/authentik/enterprise/license.py new file mode 100644 index 0000000000..7baa1b378a --- /dev/null +++ b/authentik/enterprise/license.py @@ -0,0 +1,213 @@ +"""Enterprise license""" + +from base64 import b64decode +from binascii import Error +from dataclasses import asdict, dataclass, field +from datetime import datetime, timedelta +from enum import Enum +from functools import lru_cache +from time import mktime + +from cryptography.exceptions import InvalidSignature +from cryptography.x509 import Certificate, load_der_x509_certificate, load_pem_x509_certificate +from dacite import from_dict +from django.core.cache import cache +from django.db.models.query import QuerySet +from django.utils.timezone import now +from jwt import PyJWTError, decode, get_unverified_header +from rest_framework.exceptions import ValidationError +from rest_framework.fields import BooleanField, DateTimeField, IntegerField + +from authentik.core.api.utils import PassiveSerializer +from authentik.core.models import User, UserTypes +from authentik.enterprise.models import License, LicenseUsage +from authentik.root.install_id import get_install_id + +CACHE_KEY_ENTERPRISE_LICENSE = "goauthentik.io/enterprise/license" +CACHE_EXPIRY_ENTERPRISE_LICENSE = 3 * 60 * 60 # 2 Hours + + +@lru_cache() +def get_licensing_key() -> Certificate: + """Get Root CA PEM""" + with open("authentik/enterprise/public.pem", "rb") as _key: + return load_pem_x509_certificate(_key.read()) + + +def get_license_aud() -> str: + """Get the JWT audience field""" + return f"enterprise.goauthentik.io/license/{get_install_id()}" + + +class LicenseFlags(Enum): + """License flags""" + + +@dataclass +class LicenseSummary: + """Internal representation of a license summary""" + + internal_users: int + external_users: int + valid: bool + show_admin_warning: bool + show_user_warning: bool + read_only: bool + latest_valid: datetime + has_license: bool + + +class LicenseSummarySerializer(PassiveSerializer): + """Serializer for license status""" + + internal_users = IntegerField(required=True) + external_users = IntegerField(required=True) + valid = BooleanField() + show_admin_warning = BooleanField() + show_user_warning = BooleanField() + read_only = BooleanField() + latest_valid = DateTimeField() + has_license = BooleanField() + + +@dataclass +class LicenseKey: + """License JWT claims""" + + aud: str + exp: int + + name: str + internal_users: int = 0 + external_users: int = 0 + flags: list[LicenseFlags] = field(default_factory=list) + + @staticmethod + def validate(jwt: str) -> "LicenseKey": + """Validate the license from a given JWT""" + try: + headers = get_unverified_header(jwt) + except PyJWTError: + raise ValidationError("Unable to verify license") + x5c: list[str] = headers.get("x5c", []) + if len(x5c) < 1: + raise ValidationError("Unable to verify license") + try: + our_cert = load_der_x509_certificate(b64decode(x5c[0])) + intermediate = load_der_x509_certificate(b64decode(x5c[1])) + our_cert.verify_directly_issued_by(intermediate) + intermediate.verify_directly_issued_by(get_licensing_key()) + except (InvalidSignature, TypeError, ValueError, Error): + raise ValidationError("Unable to verify license") + try: + body = from_dict( + LicenseKey, + decode( + jwt, + our_cert.public_key(), + algorithms=["ES512"], + audience=get_license_aud(), + ), + ) + except PyJWTError: + raise ValidationError("Unable to verify license") + return body + + @staticmethod + def get_total() -> "LicenseKey": + """Get a summarized version of all (not expired) licenses""" + active_licenses = License.objects.filter(expiry__gte=now()) + total = LicenseKey(get_license_aud(), 0, "Summarized license", 0, 0) + for lic in active_licenses: + total.internal_users += lic.internal_users + total.external_users += lic.external_users + exp_ts = int(mktime(lic.expiry.timetuple())) + if total.exp == 0: + total.exp = exp_ts + if exp_ts <= total.exp: + total.exp = exp_ts + total.flags.extend(lic.status.flags) + return total + + @staticmethod + def base_user_qs() -> QuerySet: + """Base query set for all users""" + return User.objects.all().exclude_anonymous().exclude(is_active=False) + + @staticmethod + def get_default_user_count(): + """Get current default user count""" + return LicenseKey.base_user_qs().filter(type=UserTypes.INTERNAL).count() + + @staticmethod + def get_external_user_count(): + """Get current external user count""" + # Count since start of the month + last_month = now().replace(day=1) + return ( + LicenseKey.base_user_qs() + .filter(type=UserTypes.EXTERNAL, last_login__gte=last_month) + .count() + ) + + def is_valid(self) -> bool: + """Check if the given license body covers all users + + Only checks the current count, no historical data is checked""" + default_users = self.get_default_user_count() + if default_users > self.internal_users: + return False + active_users = self.get_external_user_count() + if active_users > self.external_users: + return False + return True + + def record_usage(self): + """Capture the current validity status and metrics and save them""" + threshold = now() - timedelta(hours=8) + if not LicenseUsage.objects.filter(record_date__gte=threshold).exists(): + LicenseUsage.objects.create( + user_count=self.get_default_user_count(), + external_user_count=self.get_external_user_count(), + within_limits=self.is_valid(), + ) + summary = asdict(self.summary()) + # Also cache the latest summary for the middleware + cache.set(CACHE_KEY_ENTERPRISE_LICENSE, summary, timeout=CACHE_EXPIRY_ENTERPRISE_LICENSE) + return summary + + @staticmethod + def last_valid_date() -> datetime: + """Get the last date the license was valid""" + usage: LicenseUsage = ( + LicenseUsage.filter_not_expired(within_limits=True).order_by("-record_date").first() + ) + if not usage: + return now() + return usage.record_date + + def summary(self) -> LicenseSummary: + """Summary of license status""" + last_valid = LicenseKey.last_valid_date() + show_admin_warning = last_valid < now() - timedelta(weeks=2) + show_user_warning = last_valid < now() - timedelta(weeks=4) + read_only = last_valid < now() - timedelta(weeks=6) + latest_valid = datetime.fromtimestamp(self.exp) + return LicenseSummary( + show_admin_warning=show_admin_warning, + show_user_warning=show_user_warning, + read_only=read_only, + latest_valid=latest_valid, + internal_users=self.internal_users, + external_users=self.external_users, + valid=self.is_valid(), + has_license=License.objects.all().count() > 0, + ) + + @staticmethod + def cached_summary() -> LicenseSummary: + """Helper method which looks up the last summary""" + summary = cache.get(CACHE_KEY_ENTERPRISE_LICENSE) + if not summary: + return LicenseKey.get_total().summary() + return from_dict(LicenseSummary, summary) diff --git a/authentik/enterprise/middleware.py b/authentik/enterprise/middleware.py new file mode 100644 index 0000000000..83ff8af05f --- /dev/null +++ b/authentik/enterprise/middleware.py @@ -0,0 +1,64 @@ +"""Enterprise middleware""" + +from collections.abc import Callable + +from django.http import HttpRequest, HttpResponse, JsonResponse +from django.urls import resolve +from structlog.stdlib import BoundLogger, get_logger + +from authentik.enterprise.api import LicenseViewSet +from authentik.enterprise.license import LicenseKey +from authentik.flows.views.executor import FlowExecutorView +from authentik.lib.utils.reflection import class_to_path + + +class EnterpriseMiddleware: + """Enterprise middleware""" + + get_response: Callable[[HttpRequest], HttpResponse] + logger: BoundLogger + + def __init__(self, get_response: Callable[[HttpRequest], HttpResponse]): + self.get_response = get_response + self.logger = get_logger().bind() + + def __call__(self, request: HttpRequest) -> HttpResponse: + resolver_match = resolve(request.path_info) + request.resolver_match = resolver_match + if not self.is_request_allowed(request): + self.logger.warning("Refusing request due to expired/invalid license") + return JsonResponse( + { + "detail": "Request denied due to expired/invalid license.", + "code": "denied_license", + }, + status=400, + ) + return self.get_response(request) + + def is_request_allowed(self, request: HttpRequest) -> bool: + """Check if a specific request is allowed""" + if self.is_request_always_allowed(request): + return True + cached_status = LicenseKey.cached_summary() + if not cached_status: + return True + if cached_status.read_only: + return False + return True + + def is_request_always_allowed(self, request: HttpRequest): + """Check if a request is always allowed""" + # Always allow "safe" methods + if request.method.lower() in ["get", "head", "options", "trace"]: + return True + # Always allow requests to manage licenses + if class_to_path(request.resolver_match.func) == class_to_path(LicenseViewSet): + return True + # Flow executor is mounted as an API path but explicitly allowed + if class_to_path(request.resolver_match.func) == class_to_path(FlowExecutorView): + return True + # Only apply these restrictions to the API + if "authentik_api" not in request.resolver_match.app_names: + return True + return False diff --git a/authentik/enterprise/models.py b/authentik/enterprise/models.py index 2c20169fbd..6600e5c07a 100644 --- a/authentik/enterprise/models.py +++ b/authentik/enterprise/models.py @@ -1,159 +1,20 @@ """Enterprise models""" -from base64 import b64decode -from binascii import Error -from dataclasses import dataclass, field -from datetime import datetime, timedelta -from enum import Enum -from functools import lru_cache -from time import mktime +from datetime import timedelta +from typing import TYPE_CHECKING from uuid import uuid4 -from cryptography.exceptions import InvalidSignature -from cryptography.x509 import Certificate, load_der_x509_certificate, load_pem_x509_certificate -from dacite import from_dict from django.contrib.postgres.indexes import HashIndex from django.db import models -from django.db.models.query import QuerySet from django.utils.timezone import now from django.utils.translation import gettext as _ -from jwt import PyJWTError, decode, get_unverified_header -from rest_framework.exceptions import ValidationError from rest_framework.serializers import BaseSerializer -from authentik.core.models import ExpiringModel, User, UserTypes +from authentik.core.models import ExpiringModel from authentik.lib.models import SerializerModel -from authentik.root.install_id import get_install_id - -@lru_cache() -def get_licensing_key() -> Certificate: - """Get Root CA PEM""" - with open("authentik/enterprise/public.pem", "rb") as _key: - return load_pem_x509_certificate(_key.read()) - - -def get_license_aud() -> str: - """Get the JWT audience field""" - return f"enterprise.goauthentik.io/license/{get_install_id()}" - - -class LicenseFlags(Enum): - """License flags""" - - -@dataclass -class LicenseKey: - """License JWT claims""" - - aud: str - exp: int - - name: str - internal_users: int = 0 - external_users: int = 0 - flags: list[LicenseFlags] = field(default_factory=list) - - @staticmethod - def validate(jwt: str) -> "LicenseKey": - """Validate the license from a given JWT""" - try: - headers = get_unverified_header(jwt) - except PyJWTError: - raise ValidationError("Unable to verify license") - x5c: list[str] = headers.get("x5c", []) - if len(x5c) < 1: - raise ValidationError("Unable to verify license") - try: - our_cert = load_der_x509_certificate(b64decode(x5c[0])) - intermediate = load_der_x509_certificate(b64decode(x5c[1])) - our_cert.verify_directly_issued_by(intermediate) - intermediate.verify_directly_issued_by(get_licensing_key()) - except (InvalidSignature, TypeError, ValueError, Error): - raise ValidationError("Unable to verify license") - try: - body = from_dict( - LicenseKey, - decode( - jwt, - our_cert.public_key(), - algorithms=["ES512"], - audience=get_license_aud(), - ), - ) - except PyJWTError: - raise ValidationError("Unable to verify license") - return body - - @staticmethod - def get_total() -> "LicenseKey": - """Get a summarized version of all (not expired) licenses""" - active_licenses = License.objects.filter(expiry__gte=now()) - total = LicenseKey(get_license_aud(), 0, "Summarized license", 0, 0) - for lic in active_licenses: - total.internal_users += lic.internal_users - total.external_users += lic.external_users - exp_ts = int(mktime(lic.expiry.timetuple())) - if total.exp == 0: - total.exp = exp_ts - if exp_ts <= total.exp: - total.exp = exp_ts - total.flags.extend(lic.status.flags) - return total - - @staticmethod - def base_user_qs() -> QuerySet: - """Base query set for all users""" - return User.objects.all().exclude_anonymous().exclude(is_active=False) - - @staticmethod - def get_default_user_count(): - """Get current default user count""" - return LicenseKey.base_user_qs().filter(type=UserTypes.INTERNAL).count() - - @staticmethod - def get_external_user_count(): - """Get current external user count""" - # Count since start of the month - last_month = now().replace(day=1) - return ( - LicenseKey.base_user_qs() - .filter(type=UserTypes.EXTERNAL, last_login__gte=last_month) - .count() - ) - - def is_valid(self) -> bool: - """Check if the given license body covers all users - - Only checks the current count, no historical data is checked""" - default_users = self.get_default_user_count() - if default_users > self.internal_users: - return False - active_users = self.get_external_user_count() - if active_users > self.external_users: - return False - return True - - def record_usage(self): - """Capture the current validity status and metrics and save them""" - threshold = now() - timedelta(hours=8) - if LicenseUsage.objects.filter(record_date__gte=threshold).exists(): - return - LicenseUsage.objects.create( - user_count=self.get_default_user_count(), - external_user_count=self.get_external_user_count(), - within_limits=self.is_valid(), - ) - - @staticmethod - def last_valid_date() -> datetime: - """Get the last date the license was valid""" - usage: LicenseUsage = ( - LicenseUsage.filter_not_expired(within_limits=True).order_by("-record_date").first() - ) - if not usage: - return now() - return usage.record_date +if TYPE_CHECKING: + from authentik.enterprise.license import LicenseKey class License(SerializerModel): @@ -174,8 +35,10 @@ class License(SerializerModel): return LicenseSerializer @property - def status(self) -> LicenseKey: + def status(self) -> "LicenseKey": """Get parsed license status""" + from authentik.enterprise.license import LicenseKey + return LicenseKey.validate(self.key) class Meta: diff --git a/authentik/enterprise/policy.py b/authentik/enterprise/policy.py index a448c087c5..2e2535de0c 100644 --- a/authentik/enterprise/policy.py +++ b/authentik/enterprise/policy.py @@ -5,7 +5,7 @@ from typing import Optional from django.utils.translation import gettext_lazy as _ from authentik.core.models import User, UserTypes -from authentik.enterprise.models import LicenseKey +from authentik.enterprise.license import LicenseKey from authentik.policies.types import PolicyRequest, PolicyResult from authentik.policies.views import PolicyAccessView diff --git a/authentik/enterprise/providers/rac/tests/test_views.py b/authentik/enterprise/providers/rac/tests/test_views.py index 380b925a76..a63f27fba0 100644 --- a/authentik/enterprise/providers/rac/tests/test_views.py +++ b/authentik/enterprise/providers/rac/tests/test_views.py @@ -11,7 +11,8 @@ from rest_framework.test import APITestCase from authentik.core.models import Application from authentik.core.tests.utils import create_test_admin_user, create_test_flow -from authentik.enterprise.models import License, LicenseKey +from authentik.enterprise.license import LicenseKey +from authentik.enterprise.models import License from authentik.enterprise.providers.rac.models import Endpoint, Protocols, RACProvider from authentik.lib.generators import generate_id from authentik.policies.denied import AccessDeniedResponse @@ -39,7 +40,7 @@ class TestRACViews(APITestCase): ) @patch( - "authentik.enterprise.models.LicenseKey.validate", + "authentik.enterprise.license.LicenseKey.validate", MagicMock( return_value=LicenseKey( aud="", @@ -70,7 +71,7 @@ class TestRACViews(APITestCase): self.assertEqual(final_response.status_code, 200) @patch( - "authentik.enterprise.models.LicenseKey.validate", + "authentik.enterprise.license.LicenseKey.validate", MagicMock( return_value=LicenseKey( aud="", @@ -99,7 +100,7 @@ class TestRACViews(APITestCase): self.assertIsInstance(response, AccessDeniedResponse) @patch( - "authentik.enterprise.models.LicenseKey.validate", + "authentik.enterprise.license.LicenseKey.validate", MagicMock( return_value=LicenseKey( aud="", diff --git a/authentik/enterprise/settings.py b/authentik/enterprise/settings.py index f026c70c22..7eb238a831 100644 --- a/authentik/enterprise/settings.py +++ b/authentik/enterprise/settings.py @@ -16,3 +16,5 @@ TENANT_APPS = [ "authentik.enterprise.audit", "authentik.enterprise.providers.rac", ] + +MIDDLEWARE = ["authentik.enterprise.middleware.EnterpriseMiddleware"] diff --git a/authentik/enterprise/tasks.py b/authentik/enterprise/tasks.py index 0d5a537a8d..a55ab5e13d 100644 --- a/authentik/enterprise/tasks.py +++ b/authentik/enterprise/tasks.py @@ -1,6 +1,6 @@ """Enterprise tasks""" -from authentik.enterprise.models import LicenseKey +from authentik.enterprise.license import LicenseKey from authentik.events.models import TaskStatus from authentik.events.system_tasks import SystemTask, prefill_task from authentik.root.celery import CELERY_APP diff --git a/authentik/enterprise/tests/test_license.py b/authentik/enterprise/tests/test_license.py index a972d961b7..efa45e0eb6 100644 --- a/authentik/enterprise/tests/test_license.py +++ b/authentik/enterprise/tests/test_license.py @@ -8,7 +8,8 @@ from django.test import TestCase from django.utils.timezone import now from rest_framework.exceptions import ValidationError -from authentik.enterprise.models import License, LicenseKey +from authentik.enterprise.license import LicenseKey +from authentik.enterprise.models import License from authentik.lib.generators import generate_id _exp = int(mktime((now() + timedelta(days=3000)).timetuple())) @@ -18,7 +19,7 @@ class TestEnterpriseLicense(TestCase): """Enterprise license tests""" @patch( - "authentik.enterprise.models.LicenseKey.validate", + "authentik.enterprise.license.LicenseKey.validate", MagicMock( return_value=LicenseKey( aud="", @@ -41,7 +42,7 @@ class TestEnterpriseLicense(TestCase): License.objects.create(key=generate_id()) @patch( - "authentik.enterprise.models.LicenseKey.validate", + "authentik.enterprise.license.LicenseKey.validate", MagicMock( return_value=LicenseKey( aud="", From 0dee706a87e774f0926b08aa9386d6af7721f4b6 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 18:14:25 +0000 Subject: [PATCH 089/105] web: bump API Client version (#8511) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 099902c5fb..05827ac7e8 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -17,7 +17,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.5.5", "@fortawesome/fontawesome-free": "^6.5.1", - "@goauthentik/api": "^2023.10.7-1707429127", + "@goauthentik/api": "^2023.10.7-1707933453", "@lit-labs/context": "^0.4.0", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", @@ -2915,9 +2915,9 @@ } }, "node_modules/@goauthentik/api": { - "version": "2023.10.7-1707429127", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.7-1707429127.tgz", - "integrity": "sha512-EKmm85h5vP+LGGSaQJB7MbInVdP1ZyPwtSYrofuTLTDkRzhsdE1IfkO8ft+JAGCWMF3KVRjdi1+NB+jT6dVCbQ==" + "version": "2023.10.7-1707933453", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.7-1707933453.tgz", + "integrity": "sha512-fY9C8ogpetif7x0UGzp4pCgI05jObhPqs2yWOWFDEZyiLY15umb53P9LfkGZJ5ExtMxoD2GBC7YQ7FIvm7j9GA==" }, "node_modules/@hcaptcha/types": { "version": "1.0.3", diff --git a/web/package.json b/web/package.json index 5e7c1d4c8c..1fe3fc2a24 100644 --- a/web/package.json +++ b/web/package.json @@ -42,7 +42,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.5.5", "@fortawesome/fontawesome-free": "^6.5.1", - "@goauthentik/api": "^2023.10.7-1707429127", + "@goauthentik/api": "^2023.10.7-1707933453", "@lit-labs/context": "^0.4.0", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", From d27caaabc3a6d1b8d102e392e225f4b0972d7a0e Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Wed, 14 Feb 2024 19:15:15 +0100 Subject: [PATCH 090/105] =?UTF-8?q?Revert=20"ci:=20do=20not=20run=20main,?= =?UTF-8?q?=20outpost=20when=20changes=20are=20made=20to=20website?= =?UTF-8?q?=E2=80=A6=20(#8510)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci-main.yml | 2 -- .github/workflows/ci-outpost.yml | 4 ---- .github/workflows/ci-website.yml | 8 -------- 3 files changed, 14 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index cf4544d948..a52a8b9279 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -13,8 +13,6 @@ on: branches: - main - version-* - paths-ignore: - - website/** env: POSTGRES_DB: authentik diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index eefc8a9e30..2ef9277cbb 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -7,14 +7,10 @@ on: - main - next - version-* - paths-ignore: - - website/** pull_request: branches: - main - version-* - paths-ignore: - - website/** jobs: lint-golint: diff --git a/.github/workflows/ci-website.yml b/.github/workflows/ci-website.yml index d65f5e44e3..78a3a8f8a1 100644 --- a/.github/workflows/ci-website.yml +++ b/.github/workflows/ci-website.yml @@ -12,13 +12,6 @@ on: - version-* jobs: - lint-codespell: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup authentik env - uses: ./.github/actions/setup - - run: poetry run make ci-codespell lint-prettier: runs-on: ubuntu-latest steps: @@ -70,7 +63,6 @@ jobs: run: npm run ${{ matrix.job }} ci-website-mark: needs: - - lint-codespell - lint-prettier - test - build From e48f6bbec48ea0dc36cc0078e88b2792be72d61f Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Wed, 14 Feb 2024 12:33:45 -0600 Subject: [PATCH 091/105] website/docs: changes to text and new screenshots for new Permissions tabs (#8490) * update screenshots and docs about perms * tweaks to procedurals * tweak links * typo on akadmin * Optimised images with calibre/image-actions --------- Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- .../access-control/flow-page.png | Bin 118320 -> 73252 bytes .../access-control/manage_permissions.md | 50 +++++++++++------- .../access-control/permissions.md | 10 ++-- .../access-control/user-page.png | Bin 121630 -> 72754 bytes 4 files changed, 37 insertions(+), 23 deletions(-) diff --git a/website/docs/user-group-role/access-control/flow-page.png b/website/docs/user-group-role/access-control/flow-page.png index fcf4e8318b15d45d19e1ba88bcf212cb0a732a19..8b2636353f870ddb5ba4d94f0d1094d19d55334f 100644 GIT binary patch literal 73252 zcmb5W2RK{(|30qmqgsj%sx`Z7ml`pOmQFKv?W$TqXe0J$DZ0>U$EYG`P{fFlqOEFd zAy%ZS1VL0t5R(7V@qC`=`~UpD*Y9_(t92bGIp;lI^S8qIXHIc?Ai(ZCi0|B8}MVd-&GqJ2M5pot$*8ki4hwd97i~=UA$lsG(1OS)LHZs z*=%NV7ehxO>BHEicCiBwPrbez6{UDNw@LD%a?)RKgnR`&kG(e2<(heP?CS0Y#<5FB zj$NfTv}%5=WM-^rmBO!&sD#q-O0drM@wLX1)=71x(13KU9ScHKG>fv>(=zowX9qBn zU&r~T^)q^=0+ul=ABCJ!N*mX=M!$93eX|QK`REva`>#_Dfe56fnOU;~{L$-Oz^r~9 z{t#1vOZy<(exLsP8x~aX<8dyjf83+H@DlKOBkj`Jk!AMJ6+b{o~)qPumOQ!d2 ze?RyxcZ}_*S;0R?T5u2;YRmIry(%cLm$$9IVD~Et0ghkc0oT;E8z9O>s@w)RXYJUV}5}uG6rOg4QXg zjM7pZ>H=%=)nR}U+Hks`7 zNfzYtX^)6w+h{G!C36HDi49(C;)*7af+pgtie(5)4G13j=IH40#B(<_{HLE1ocB6~ zuk?SOw{}D38H-graN3#TBe1)O44 z;XPEYAKvvm##T79Bw&7+uD;n0JaOlqLwoB9CR!^mZ7}|YVhd&jvENpHo>Ld~{Q3Tc zqAg3dG}4s=z5H6;xFXm0&gBa2vD3z}ppA#8Gs|*bMX)*p8(rd#;4%24lS#EpUu0m~ zve^=lhUH!Z)$V5zo9n4=9ci4-38aQsxbd}(l2rH1;QTLR6}NH*m{hF9xoVG|V&zclLjaDs4`LZA

&$m}p`u5VA&F!xx&L4l3~_H3svb_jeq9 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 WzwH?9M5n z;ddIlQNZEGGS7+{S=6)C33bnMiN!H62h4HZM&uldLEnO{+W#-nMad?LVMn2}Ig14m z|3o2VPw5b=GyKm}w_OG6shmL*K;e9lD7a@|4&0W#pOXAXU&vOZ9uB=N-rx=LD+80s zL|Qzwye5qRo~2^plq_Qta%TOYX`(LgES!NB|IL1+Secyos1$Q&Cu4kakc9p9&xY%rrX{MElu*Vbac#7 z30pC4#T0cyULD`p=0|kd5@)8-ChnAOG=m#0;*#mvl=c_nxnR$=WRk!vuUh)yG~+D8 ziJY|$I&AP4la0J#)6^$@h&}hFE{{p6()^1>T$*ZvSj@FeQR?TOKW%t$Z5Lk7YH4j9 zFqxjc5Kx;g7c~8w+=UOn%Ux=H?@{~kghBFnK)#P)C&pTEdo6zTuE~-qF$IF%_jVBc zWy9l5V*T2f+C6hj*OvVe;cd?x`vg~)b27`*EZ?I#U+z=%2YEiT#GCHVN>;a2m8}F> zJ*~-e`WwGV%80{6nL(+g9hr|2=Dxu(ltzblvZKzt+U5D;2f{B2Cu)9NHI1>wO9t8H zd%{mdC&s;3KT$<3na6yaN6aN^ajVc_Sej}fF zB5zNgnx6|uQ#9Q_6|7IRs%Q#V=#HC)L44(vB_+q+L8FBOwBw>AR(&7AT^62JJOowe zj4saRaC`f8jp+2;!qWx3ceh(kvii^u?b8j#(f~$|sn3PL3h@XtzzC28SL3WEk>l{t)#o@>FE}xNDhw>n2aJt)g`Gh zt3iPAb*^~%;`FBuy{U&L$7RfOXvXUH4N2z$hAJ(m+kMrkHc=W7d42MaSCDm;_{`sJ6229MO z#ZnbKk8l`N#Tp zsuiyDc2chx_BWBdTf=r9prt2<8!_3#p}`Z24-Q49eN(%&zm}=Q?#r%)#3YCQeTGD$ zv1gElszvBjS3yC+!&AW=X)uc1NRk|X?_RTHQCI5g6(rzwqQ1CY{1h!L-lUD5f7SYW zF~_P|gg9#XL|b908;?1o{^{=Sdm$A^7Vx}i883_ARjdBdF018EtZ^sZ~OxvgeYGTG8Z<$i7cRWM}cZrU1K@hcAIu)*+c zyTK4!#AcOQ+EI`7TC6X@)2!)=k1HDNmK@f~a>%l$Y+$eWUkvv9BeCc-{TIZc@#?t< zEr-RS?;M^!{kH?`!@-Di-sz~m`HSO;AFQ9%AM3gLKrTv$br& zBoSf)dXOu>?8Fnfg(u1BzQl^&w)K^?+_2@W9^=zGrx3Pl`mx-=EzYLbPna2P49aa_ zqa0Za3QVwGNDHNV3K{dJzo5T_qKDn0qY^ZgGS$A1JH5EF_4h+U8sy>ur(VUC}eAVsblJTfzMp9!=QUWbBCFVrb1ZGe9=_<^W-$rzU%34_6ce36BbAi z5?Hun$exW;a(8sD&Mxq8YhbIqeIliiSI0=xA4~}9Y+TIlvKsLvwcN-r VdpIk9Mnac!YTBpsemVc!{{pY6FdYB@ literal 118320 zcmeFZXH=7EyEg2M4>|*uVWcQ^6zK#+1e7W&p!5)mgr-ypO?n5#2bDfjLMKQGK?q0* zy^KmgY6L=WN{iG;4G;p~b?eNt_TJyO_WFLlKi*`iD-!N=q>-;N#o{Hp$Z1ErdsjhfqiG?asZnRu6977+Z@3>HE3pw*FdmJJZ(F zoWC)_ZyK~dnjl8NjsA!VXOaBl(jPdN&NG|z8kHNZAxOc5g>GzOj+FNL;zN^yDT>qg&M0qvnk!UgI9>Jr`pItYr zKYm997YTMk1SkE888xVd3Zkv)I&`PL;_+x@JuQw+j(#<=)<9LEG5z@VKYo4!sRk>~ zuMTDG&yCo|yCS9W6MGa4CYZ53ymt1-SHExKC1%vA{BUHzJ=ewl0$pBNSl6EyZzuRo zhYTzK{QYbHSW4_uBLi_XnJ;wr%UsU0Go8jFiYsqFB(O*|UJ3a6`bC1Nb%?B4ou~an zwkmM(m%CD=^s|FEI_x@=L_6kFtgY_Lk>pw!tM0;QRd#de|N4IH{}|5kq8#+Fdl-G( z?#ug#j;W>~FRB-%H!EUh)T5o()Q5hO=kd*r2`^He>5ohQ&zjt4MhRzm8&=qLB!p6r z@HJCfamqU*QFMi^Pq!0|i%sgRkN>r^I?jTqQDJNibY%HWrCEeAwmarJ5?LaM{u~wp ze<_}Uj`^RR`Hhp@yw~H-(d_L$C%rP&q?j3EPC2_o-A1`(s>}?jidF^j4cKj-w`KfE7 z&a1eT)-6N2{DRl_{=y+ik=j^VUu_+-ZTxVqrcq^YF43+F4eK~$&`*+OcHW)jzpQ%j z<*b*o?eV%C4w`>&=8X>f6if7}3s>_WH-C6>mc|#ZwjUP+wl=YW+N^j%&gH)6?w1#w zp+|Fx`t{iVeoZi(W$4~~U3Ea)1;;Hj8d%gG!rI1sS0c3hY3*0M7P?F8s-;h(nh-b* zvoBi%`ubSCtn`xm<+;w<&hWPDYqhhU7}`xq9MLi7AXut-*M@rWs|_QdU460PfF{k3 zTZYo+j}QS_*H}2Rb`hHqIKfkCtJDU3NK1t**XB*h%o4CiPg=J6D(`o=zPL$f41H@ zY|4Wf^MDOrxp-VnXrm>}3{w}@UTN~( zYm2#%xH4X&uZF+F)|c%+6KU7_lC??2G@1jpaTqQc)-H;JV#R-qn;FH<6ZrMD@{vlE zL#0EHn2S3&U|NgZplvZ}MU)Hg|y&S}A8gn&KR(*jK zx>KoUZXjO&Ih-Y-tmUvij}!)6qo|#a=JQ8<($L3nWK3#`?`c~$S*q06HNVUsF*;QYnhHmBYvv;}{wC_wG zF{abT1NY`r8me=AffW^MiHjRuwfp#|-S*NTZ_pvNaZ_)}qh+gK``Jb%Hs{1~?Xc

H zA%|`kTN_W30w`H2$e&Y{gLZO6aO@#qPl_U*AL?b*g&iG2o6?aWsLf2H78PcTB^~u+ zEmr>>jx0F>VS`O$GTQM0FxL){05Oe6hx7rl_4dSJt036k*SvUUrfv;>XC6e1$}R{Tf*@Ah z!|G$K&c{lZn&)9tV{OB}L~th5c~OKwV9~$oKGpbMh96Vl7L1W!RyJ7VBks)BtN$b) z)xAztrLV{^$&v&h*A>Bu7K#>uG$(?4cZAl>{S#f2i8eNjmik&8l7^8*j^p5YCydo# zO6#rX(wGR^l6Co5*AQ@F9gyp4;#h7!KXuOyWKuieS+W>s<^E1Bcz;xG-`j^D#5lI1 zW`gk~7N+tMf*I?x?Ze)@1J$ogt`?aXMBC_PZx%0r99p_p7nNYW=X*x=;M;pD zlrP>BNMqIoj<(~~t`QsX0w5{M^J?G zm~Ar-nTl6f!p$vYxa&3VFBNyYsy{7d#mwf`o^={m{POQ}$Q?eMNpsYO5!;uwmZQUN zM(hO{q0KQ15Se`}Gg7QWZ}996YJ5Tb7HUk%v(_NA_deINwQX_R|xoqBXg?T`vxkADA)Zb4T&PS?r$ zLA&n>b2S**oI{LP)M=qRO*UC&>Sk+-SBzY@?KvK)(Y6w@#%_J-*x zEas~$TL!HXWGCYr1rt$Bg!!%%`8h7Vw5tURj!Vt-HSH#f^v?*wGG@D5eYC)EQB+qc zWj%OEX5Ta>$%M2WwdhgfHkn?`gIumWPvOt&E^w97pm&W;aasq%H)UVKEBmY2Y1PKm zrzlMHb@c1oFH9yh*~qz7ncH-fVDU9GdQ9KUhFjhRYV9G27!0N7sc1#lCRE;A;*A2{ zE_F^zqirP{w(gB>y&LmvVSZ59&dD*69kwj_6WCt^%|ZA0VjLTbT)@jyJ2qp4mab5$ z{F2P?^bUF&&jaH1u(`f_hnuQLl{1{v(lfeKu0$iZ9MraB-dj|+;_@KygoKjXLIVPHFu(FNtu{d5u zX2HC`8o!-UM^26Bok1&%5Nveb9U@z~8Ky?7;FFR~erc7>;J<%8XP6T2X9uH6VY|Ay z)WtQ*od<(*#weHK{e5j1wGK`#Wj@T^=Z&SD*_x2m1ENd>2bFj@QinU_?U=NBpOmYr zN2v7A4)};=Bqj{9q4U8^gpNG+KC#`dvO~<}y)J7uh5YK=`!OGrG>=DLk!6=sR}c(P z6@SetSlSZ0;2EM(%CNlM3!^!DK4I5nywa>;BcHkc`H9_dsbyWw_RhHbu#rKuRFADU z;n`W0+LUwpN*)Fr5sSHm+g z5waBhOfq{b(XZ-rUnUj?lV3X4KLS{_sd^gcWEw57PsBMDj9WMOx-Q6MI7W@-o?n!7 zRh0H|6rVmGD}e)8RAQU9o`#-EXUi!?HCFtR2ufb`)m<+w(P6nqTxLwNi~Z!S2{~XX1Bd(c zJtKo>ScUzsd5D%;NsL38q1tN3^npW#BPn}=-kq)?QJgb`Pd76dfBW$E!b@2*0f{Vt zi_?Y=$OwI1w}#c~TQ_E2zu?nqi{s5uNYH~zAnF;4YqbIp?v&Ex^)XtiH?<0|$Jj?} zu}C@PZQSv2B;()_;Z|(?HgnCp!@DFiI*X}=hk83Fc?fSlObN8`88j}UoI`LpSbhMp zqz>$PZ8L!Meh`Ef1nE&kM>L@K289i4E8!-L?J6;Pc|kQa`1ScMkmD}PPX~K>PI$E2 zONMm_rWh$L_-m@)d($u7&WLrgvAu(>9ZJUX#L{a$=R2+FFGeSAv8hzCshI!@CIE#Ye2r~gOi;V-NrUh4RhQ5Ye?7iXKRAuN!2>F4p z#qa2*!%k7o3Egc5HB5C|dw#Iklp=|XC|O+Z*U6C6 zRm1;O(WwmY{AhkNYNG?8ubf=ZNaecXoZckDnxwy)>St8ge+wZCuNC2_vkI6`jv_{! zkEMV_*~9bd%>WC^$tJL|YBSQg@1r9DskZv%1%D}$E3)Fj(0-zju2$AkS-&z1K!TkU z)0sEC#5nLaRYg_XHi2EK8dbqrU~MahJ>kurV~1vrS;iufSXWhSp)$w_o*2Z?)=TN| z2iZX>vJv)~wu;lolbOL{_13EvIFPcl>O+&>Zdhc9v=rd^=Rax$yY18CiVJdv-cY31 z9LGGV&2+b=o#`NI)0@1DXwIoqQgt_@yr%zU+9umP%+AQ-1$g7x7>N(TTV*5`dzUkb#1B?QL|CHP_H^ZvSXZ%y@Z zRyD!;Xn(ka8cJ(;|BEE3Nr{|$PBcko@c?ECIL}C}hwUIk2cx3w!#F=#Jjz6X;JSH@ z8-B6A^`p5HJvKKs9J$Iw&_Zk_bM#bbGz6{^hToL(&%Z5!kN0ah#`G;zFdIlCk%UF* zyekM~jCt+jhnU~Zhjwh6O5W?jdAx?m3F}rO7^L*_SaSRmGz6TBmeKL~!%MWAL)+0a zmdHrCVxAPA?f~q~9<)Hw0k=YYOF>UDMxpKdTF}X z*e-Ho6qNoWl~Zabd6Qg5E9`GtjXQ9XbMGemQqhu@>BVo2n=J%6Egq{a$#oXqaq(8e z^O+$&HiPKTjFRObL*;}sqogm(hU-&f`)>okV_gMSkygH=_Gt+5AuaB^tEy{$^h+7U={X=8l+JAyL~we-s-SJKvDN{)BgACSNbB z+Lo;Un)^J&4QXuPyuEqdW2SZDXfoNjv_#IvGKp;f&6tUnI&g)EoG0N(2RU~mrDFSZ z(!h&H2`|IbKmH+(+g{!TM31h|5ra0&5DbmUH>uYnBp?HBz%oJUb9`q^t|3RxZK9SO zWU65NFy?BKN%%_}8yG$6_lJ0`c zIyP(rwg*k=5}X24dkueYw^o2nH7FXim~#O#7lQseahd?Q1hQ0a*tci=m+3pJT^8xIxL{C#(feQM8)ugf;*>4GWi- ztHO~lH#GJ_^SbkL&@DL}5k-e=KX+-`ciIB{R5Tv7Y+$hfssw#YAq@}bR>H@z&?dxL z{q$?1K0%nU!+^4R2+~dnd}LQI7tt@m^HQHSVxpBgyFQr>zZJns^dMT7K(VWs-Ckm7 z!K1xc4beh@7V`uCFF?$rA>})x0yL1{X;~&he+(n5KP@~RFej(t!jTE7GYGZVpM*5- zcBZ4nms!4n^jkl?m2GB|cKposoF&g~h2783PWq_9oKb|-owC~Q#(+)3lt>@js&r(& zt8mlz*cmNYygf2j>RNR(!heN+#T4|SRuk-2x-KBOBf6c0Xt;nW|B zuLj=v^4h!ZJn@YsEr*qfkSuO01afG=?Kp%Q{st4FMD#rOBH)?cC|(5Co$Snpz90?se!JrZ5)u!;l`WRqi3n<{f}u!Q~7+adl+ZgWTV$Yx41j z)4EdFBz@r#+(uhC6AM>hCNru>6lXt4(TEB$3dFuRb)o;Qv$X42)kI$Ee6p{e^c%B1 zPxt0Mhoy>n(!HUNDbfswvBU9ozDIUyFpI#&f;x@Ez@?%>!xV9TMzQ(#{TRlZo35+0 z)2j~r0MYU0`mHgrbY{Dgl_Zr6`sjCtl1UbN1EyJ`3tDhK%wTleLMiQPsRXmbu< zUk-$7Lu1Wpr>c^x8eyH>?v3jjr6GmvN^Im4Q@^0#CM!d%M^Idp?Cc`q<(VTvjM?F zJ?Qh(lYtCL*Q6={dFzL->Z|P8d45tm$zIJmo_^gUHyn8e#2ay)WVDYmu;n4=y(+j{ zls*2u6OOeaN{u1vo*BBon14yARprvE1?|Ay`v9a_~>*R|H0C_1o;#rkycouy1f;4=gyH=T3gKIT3)#_7?KIK>R1X~x+Q5c-@DBK*nWM}b}3>lXQV z&H{pni}AR7%uJ%m!AEn0;%&auJK@M7X{>U5?4R2@g}P~@A6E;Tj&FVpEVGaON&xVk z3>S=7+W2_uR|)5(aflOK@IoyFGQ0GL%{v*!(}=Asts=HP%~4)WNZQuDz^SCRTh zN_J2wi3FhxmF0FB^X3T81fe};%T93MRf3T4iRxNXKPB1(HN^n49&Zz8uo&(vcgODXMnN)VvWqo*c zxL$fGAskr`njp8*4yLv4MJ%D7MqHyGMkS*|0~S3scN$;!6fFcI4&#faIZ-H z4<^C^6X7wa8}dt!K;V)6a#V6R3~L((z@6*Z&TO4X968xk$2rsYsGqr^z^1CIYCAh* zXLN3*lBCBtpib0P{%8ICPv%>uqz=h24>+|b0=`>ujn}kG7Dd^twQY|h&ktn3J1>n7 zW{4D_rQ|^~CRD!|O4xteZzL6U6qs5}cDv;tK5F z+v7!jvb;*5R40myg#J<+XjQ$pWqq`5ohFF;a7IyL_@!cbw^LyjI@6==LI;GzM;2B_ zD*-DH(2x+c)8R-hQ33px=~8ykT8D)ywnp3B5pZO@W(FBIyc|$J6{15ZFx+I|GQOyN zw~gC7KqDa~(d)rcNZE+P#I0sx9|%`nLt>|~p* z{Hj$_s&rl+Gs+{go!8G|sXUHfRfTqCpFixtqr!W!zg{z(S^9T79({sqYf>t4WA+7q zXewRi+;H>QUTfvKyj!5gp++bPSbuL-Oh3bf?3fL%684opm4uH$VAwjv|M{j8OO_QB zl~QH#s3K|GHaiZN%D4ujg1#fLGRHOookusK=BvIfj`@@tpX{u+W=2ikH|WZE2iOQt z4Yu?{p~`P;>L-cZOawp|z}T0rPJXDX9OnG#RkWK?2KxnE-@!fY6ju z=cYqCPYQPWR~54O68s4y<-J=cF7DuBXg>ahgOJ6tDAsS|PbN z9Q_sbN(v1NQ#9M4$SWA~nCAg3PR#~+aqh|SGq`=?7N}e?-C2q?SXKj@I~l3{%QYTx&mBx3)Xd8R2L*D&dqV)pB{ zt?kQYEzRG8`F+Unw63=8m_={x8h!+u>3(-6VCg$R=fL24p~#3jYuVV>M1lngHO>;C zk?GtXlw-z3xB@Vn1@$9xD*lH%+%JmZrsJ<^O#(wTSwGLE%yk*K!n>X(>+CG3 zvnpF}od?zA+(#3Xj%LDy&$(r$29VmO{k1m^SXh|5#Gup-OOxNGvXRqGN{jB_GyqxJ z`CFa$9XOs}JxfpQ&GvG=d_|`GF&0!^&8RvPL66>DO+Q=Gfxw#Zo~fIhInTH_-5NIY z_36okXJ-^dOj$o49bk?SsR?eNmWt?$p9-a~zQ^5NS7&r4i?axnbZ5v*)d5;M@q2WZ zvz!+3=2vcd7oe#ooiV+y^fc_5jF!F0f{eDgIML|C?ILI zvkGkP1+jod{aPlADaG%H7@i9Jj3i8FxWly9(iN2V7|9>J!Z^=&wJB&%TMV&MzMVY{ zlVP7{RMcewioxLz4s!ba;HB+gC^^a2{xUk0fIQbLxOsrQGH5qB-1sZWUZB@h4Ihcg zP{7a~LQNEX?oR5>p50%Fa$4BXD;&D3$>VXS?A6l>Efi=YaR}JWXI;9Y8zW-m+DTBd zxl@43JGWia$jX$cVb!2T#DiNyfV3p?rXZ=m7u2Lhnh-d7&h}`Akx1D$;$oMG7a2^B z%Qk6dfHJz!dOY4S0JJ=O*bl{Gt+qjQ_gx9f0ha!oJw>a12XsoHmRdu0yCWt<&dWRi zI~&`lQmOU&uoqGca6LTqk}^8rTij5!KnzG+xn^|`mgU9gkDH$UwM`DictKMv&e^HC zik!4ovEDC6C)FQrWMHn<5!a6hr8(6Bwwu~=c(IZ1OH=vF=u7&r8ZDPsy|G@)OE);I z%K6_?OoTP@LZ~6=lTg;YFLncTB#|b1iaR5=iJ%8hyAfBFF!n$cM?X7>M=#!e`|`nAr497BZV-0itFlW=Q_vbfY z>-1c=wui?P6}hfEBV3AyM#U8Ja!h79`-`maaI4`rH4L29Zs3PyUgya9v!L)Ix2oUd z54|VpifgN6`Kr2j5-N56Bb2 zK8a?SHn>4V^h4&x`@*i|A|)cI|9#n+-IBEw%U5gVi8dO@dzUqM#HM$QO)ZW6)L@`G zQK$oL>o-;}0+~hNzD|Jp+SMl#joz6Fh$LGLh&aCjb&h}9SsIngW4XQamnuhMzFL}R`lJxH&pc286FV(F*&)`0seBdHe zJ;}>N2#xu3fWqR$MCcX65z6gA2-#&u9k)*^*V~=Aw#;*KEa;{h{v8Q^GGzc_6BLYN z@~`?Vk>}b~4?R9aIl;d{A|B79b5aF@vb20@z`~oRDqQOnu5=_x#*~27=4Zz`ujF6+ zYq-QLQNp73?Umg7NpH|n)>D7}Zjhc@f2Fho5EqF690~%VfvD0^)|K3cIw2Q^|Ij#! znz2mk&;2;ONR5-9^3OBiOP6uf`*KJOxVDV(HV1;6FJ_U;=SbcbWg}sPBBxDs-c;BT zi5NaYgkE+(YZMf-vvb~%E?X5ncFvKsfF0x>?HDcC;BXdm@B6Jdv)T%VIU z^eYo#vcZq@Ffv&%EHqDmSWcAQ7ieJso--Bn#9OW?PlJwh0_ZmisnSPD3AfKGU)$^T zYfe1)s;R0Kdbo)Z2E~`v7n*beT;Q;XW8m3Or&Qo5y$qy08Q~9+tvTCMA@1s)^WR=I zb!wy>J-kyf!#L~dE}(&KaoDPjV!{T51y_**%i~8(7d<^BJapD{ZG*qPdjaF_zO*w4 zVsVUAeo&N?Y-ptA?j;K~JcEfK33}*IP$Y|>PS>wRI7+noxP5x$BCC3P5@}F8tHe&` z`W8TKublqqSP7WtW5=@Wrkg`Lh@94$NWF$H&$%t2Ui=fuw_82-9rIzeLIfA@`ET%! zcK)(nLRP$Km?5EYtG9u=ZAB>?j|<6%aksOzFYs+oXCVq}N^&^pOO4^k;G*F9(U7Ly z!rg&Sl4&3NE`+8%q27jaM^sHgSZ zc#NwlQaBD4*VnW}I*P9;x1X=d9dUGICmS|@F7*+s>z2Z|TlWXkCUbL!N^^DdG&2kh zmb*7y4Ak&T;wFP3CS{MjqUL`VBS18|6KX z^mtnz($Z#sS6NjfSlgA%aHPg!J{&M}As&-oy=SjQz@)gVY+Elg5lTgIgWhY~ala48 zc_Ia-JhoSAdZ>i--iE0JCBpCjrF*hoocs9^ub|g=eU2sm*S?ONY^3HQy$%GmaEul`Qmvd!iXb< zjcgcoJXTVKV7pYNW^LeXdNIExuUZs$8dN39)Fd|%oNQI*!1Iurz6=U;0xa&#D46op^T|SAy~V{4i*ezZ~j$)Pqj_4YLMcyfc(5KD`EN z!ITMAN4K?vK7NfDJ(I>GwNlqv;gr17aVP5V9opHo194At&KKICkaA z(XZpO&O_g&ol^l6UPJ(d_q-zk3J~<0l7;!zJ$m0$Bb0&KJqlIXe`G)Cx^N*9wsV2r z8IQ4Q(W<{?M(10lE{JLmE^vLLbflZk=z!%-}+I>;nY2L7f*Z)njwuZ$nE zb@EZePgA3is=$l^U48nACsLS=ETo?{R;_wzGs<@Bq$;=uuv&CTOPl83o>kXEN%J1A zvTKjym0g`(7siy<_7s<1NDiv19HHfNb$WZadBm;x)Su>-uU=LBFycqyAn$K7F^=&l zg zo(Tnci2FHq?36=|ZnHSePf=fKTc;u{Y?c1f=|-_DeQ=m#xN-72`Z~6;ou9IlO(Ptv z`i*@*oeVSTg7uXAo5riZY3Kvn(0zAT&GiXL4IZV;C|$;>8rwk4?^*DKA#hj7VWHPe zwN+|vu!-w9+y?wk{4j@<(>N`noEj&J+YVwQlz5IEyP%9O2CE~cBm3DO!btl~q%)Fx z5Q_J)Rl_d|IzXJj_k%t8sgxZN+_sgKTzz36Y$$L7yX%r!w|O{HO=YnK$;6!(I~+@FA8MH5_!uA1uufTQ6Y;0l&2$2;b$^h9vF*;fg(T}~b`ho4V=Klr1T z)$tnPbJSWH8civ2EgcPszK5%Uhh$jz^x&e#gAO_hofW14uDLxm8|xMAd`X|64;){{6lpZXI}L4!B`G|41-XB0nQbvR}HgXGv> z1rlMi>Vs9g4$Sn|yB;p!TE70cmanIP&`@iwpuj}~9>X)`(L6}cYKXJ&sk+WrvO-GEWr-HI!pMD6>KjC+% zN0_-UnukdZ54=Z>hc8DT9Ry-lLGOmscv#oG%tGQE{bP`l$BM_9HT&egfd$p+9Zw`l z1Qn)??iI%|@aGd~(bR6KQV{x~47CXOaW&UJ0rs<6a(M{)LJ!sOs)Ac*#EbTxar`h% zH`?3)X~^hm;QXL^(@+@5e(WhnjAT<`z;PG*pDOP`g4-EwDt23~-|k>HjbBL(NAhU% zASmqQ&M1_6la|zAa|u8$2jR%PPVFpD3A`j6M6H-`WN~y7L?o^PceW+}r6*Rjm-qKM zpMH*DlA4#ipqrtRH(U<^fSHY&35BAiL)(l18h`szwsDQmc(q-(&p8Dw=r#k?H3R@4 zN1OvumC$&spUnCi#oJQ?%9z9KpkhrI;2*sz&Li<)2gja>;I<3%hc4#*vj5?q)6Edn zwG*bTZ#3G}eFa96=(BvJ^7GKzWJ98ODIeS;s}PfB?K558GvYh{YUDX507!4#NZCyt zt%_?awVp^gk2y~sWF3ASAK1vqpe%Osn27=R-GN{+-06*QB+#uMctCj_lovNE{(~ir z{=t%Kgabutvne5FYkf)Ib5*gLmwtC#g9pKr5tO8#^s^!%(?r_?4%x{U`wVQ->7`m) zte7Fe8{;Z64nTzyX0;akeI)^(?Qsu38Fs%-^;Lz--grlXYD?d%nGrxfLA4EdJy}~{ z3ldKde-SSs{xbG1l*%#o6vldAlwiKIM!YsuKL$-h7@KM{@$tQMo%|l;MnFe3bDkZ< zFr?MTM;c$SrC#p0K^_;3MrytU6~h%K!t-f;;Qa(&E0Tg%PnLn9GmRgeSg5nQt12=3 zU(UYK*J<1VK!jxQwAZNdhr}8*OyAONWtUql)YSVZ^Q7~X--`Ioh2?hX*790m!UgGt z`nV%L>A3HAKQH*_b54V$M(SyC!$IV=H-0Sy4lFUq&Lnnun$RU$PT%76{Ox#M`dEKMl!iGyT~MI5IS!? z(BMLPiSH|Y<$hD`=YptdR>ooHmyTiUuvH}CUAA%%3)9dLtFLQ7i&h<% zYvLz;S&Nr3Vyzf$B#ZG9XMPMEW7JVGD$7_!u}9(!6y|&;eo2M4`TOCI8Obh|ITO5rEF= zCRqd>^Y5&wq3E}!BYE^e7924BXo97bof%aH`sJU43`F=3bP>HxujZeJqBj)|n*kNt zts-tkv+1ZbIRJ_F2Is$n*$G-+8sjl{$9_m=$3)MuujR9efMG9mW1~q@AF!8$Hdi>ZJ!?1zMDCj%I4AYf zOoWB7PzCRQebk7}hBjzu6@=8BA4YLyng%I~cOy#Wn{G`);AV>NsRNP~R5MUw(W>`}k2iWvIbyoX<; z0a+J;8X<=!Gt(@7j(fwO;)1tx~h?}PgI z3x8bmDPN51$e#x^ZI;A_!pV%7hPCH&lQffB$>VmH2>>76!%lfwUkzN@4d11$SL$)! zz(p>s*1|gjWfMImrxO=~cXHiQH|7?l{c3u~6OiF<6qq59VMjLf_ z$zU!-CO}B_SEpPh*3d8LxhT z5TO1WB42I431GGTR#i-pk=J?=^0iQPnrX4N6(d-3+)zhce01Ic)6>Gatrs%VOTqDC zNblZ~G^xe9HI}46l?>h8%zc5sXT|^zR)h#SlLU+|Y2Z!r+1xt_q~{~k*VsXd()nKV zbZb7Hpg1LMATm5=@Ge(9IstS;ApK0;@^|M0^_HR*3J6+;%IB|rpGW;#?!P`WmxRzO zT9R+s)4d9mWOmSiQ@zi!g<_61)Z(Axp5E1f2AUdv3?~AyRptpD+UP2i?B55e{~$wB zLWo3?m*N!H?)t7xEOPz)cjy2*1lxOf&_l)UfH76LL7pND3XF!>Eq!$o#squ5zGG-* z7!4l;sX+BXSq~`w64PWHg*Yv};hsS26=ZeuZwSmpc#1GuZVOL`4}2eu{kj%DmVYl% zOtJx*{Tp*GTQxQWG;73?Y)*q8W3gb_Dx*;ygck0{0D1`vV872g zNMC10se>7cMKcO0|G)(8-xIe62FtZ~ii&@47ydqE$%`~#f!e5~z~v!4;=g?B$K36+ zHa0S(M5~+vx*l*n&{W9a8{>%g!(fgMkle20)q>E_&c-2~Dhxtj$+D6yH<&LI*Fh-! z23oYdszAG3U*?ntDyXK%@sJn`uobVT$D#W3OWJ5tkY7vO;)k=UI)Jdub{VTGT3Dtp z7Gi`TaZnGX(s{V_eN!aEZL;3yriwgqwUrSU*5f5LTmSc<%Rl3AK&mDQ$&^WfQY{Cb zOIM|uwhTRo%pBRVKfxrq^%PgD-iH>mKi~_Pdo}k$_26Nd&+P*jXbKZ>gC-u_)?o~v zt6)-U4wo0VRCx#l2w6yzpl|O^(pRK(lTf+-rcOuTQdSAUgj)tY`itZur!Ep`E8Un+ zLhSR9I)pKq-I+HkXQY+EV25%S5GQZ4$IpZDHfo*8e2e&6%YBJ-K$DjR1p{^dLg4dU zm-`kJu&=O8cco_@lJgW_um?u4Vq%??Sw;Rgm$vd`>%8l2(6onyXsKDHP~BXDw&8H> zW+>>LL&&?Jl$);CAnzdorfJ04hO|;zmP;D~(UF%d#^k^N*LbDQkfX!l!5+{dN$0}` zFchKAG~#@8LDdGy9(j)n8imVVQnqu%+7yp6_8+6z{|qVKR)ZO{MQE{zN%tG=y}UPU z>1R2ZV4BowlT^I1s`--$vvNR`O`c}F?g6 zlkR%K*~BEd1&cN|#z2$Ad^nN{odN6PB_~?cc%PKtrgtN#9iKyRg z#-zze18xQHM-Q8{C>--xAY#f#6_uu6FNAt8W??{?UpE9<6rJteS`%%`V!17VgJxOZ z0%oNOvj=WaG6yQVq3OkXog~@luA~$y*ZKrBMXTHe1H`!g7l`f>thSB2ft@+btu>Kg z75kC5|BD$(*|x~0Ke ziDc7OfA+NIPbI;3ic|I8dh?g-BvsnX6+${f{Z~caQSX7ifj!FZ3vdvsnUF@f_+g_6 zi4X`PPEfVSJ0?yei|Q)!x%qPK_a{;8XpF-La)4ezTO4gx!_DefpcxtM$8)!f= zjiCD(5!7HqjCvpP@|KO$#p12HSZ9lUdg^;Q4WZ~;7E1E)o8mBgbR5@tx=0hB^vwN| zP0;J+%ucK|CDP9w)dNe+4&eyn8*VrV27b~9f6l_(Fi9|Bd z@gUjMN;FtnwH~u$5`e&uv{*c0{zY^9kjS4s0yY_Uwvfn;0 z-w5d+nV`3~le>jbs5jdaaUgmcv6(_cPGs9CLxUts8?K&>>EyUpcEQYzpUn>_{kay% z8zO+aKB?SwXAzgZ%pHO0|NRphW^R~b4rCN%hE|JIFkw2j?B|sClE@Iv((^djU5AO{ zl2aB@a4Q2v;Hd}}!}U|duTI4InPx}J<{QSaZQsQb3~2<*?B!fWK5aIb zyVVtll60MZwCvMpRo<;NBH?Z8$x@rZqAmjx_s!qK@c$W`t`0}y`>}%ETudbspp!W2 zywuh|&EDlauSycocrNBf1Hz}$S{I#~`xe#SY&g)cx}{@}oajA%R>@%CDttk-X+iqE z`A}%?zl@R3qhHOX10qNM3P$heNOxGetW*4mGbOu?LuDHIWGj#AewGuwJRZ(wI67$Kyb;yYzX!Jlo}v?=j$gNOr`yzk7h?DmC^l9jyjdmIu}&af>FW00k6qOk z$8r$AqKNYq8fE|xK#=r5WBO_q1{pxpx!@^%2}!6hSrpMBfH}j(uW+crS{n>9W72c= z0?@X;q@~^?fzt((8eVsb&l|&>$u<4ITN82->tpOGsvv8gFj9lDX|jv+-;)Ri^S}|F z#zV?+KH7yoFc^+q`{6o|9iCtCL+X&+s!FR-Msju&7^WdSW(;VUaw`XVlRSZUiylZ| z^_1yI6}S+jCq{+?%+EOibc zghoTdN|_TjNw}(4MY-oqB<>VMvX)jbqX;XiSYa1nW}S!v`&t`#k@pr}L^`?5)VUA0 z#dWGR94MmSf?+zKre!AL`W*$ZOEIEX@{%~ZQdAW|7vVQVkjmliY{buYCT6fuK3Zk) zCe#;%hoacV5mEL+XRSf zt0)@(z{I~Fv+^iV4R+^CVXaHdW#dD7$>KTgi(1OkHb!j4Hv6CY`}Lh}6khLnkYwMl zQT#?-fCcsCV3R~0odVi67S(7Qi-P|96Nxj_X`mi@LmvT}vQkkMZOxKpbodx3uCwZb zmEwuhS-@J0m?}h$TX}W}$|~oTlTxuVYqveNsvj>Fq?lOJz?iR;jx18)7V@R2Wo558 z8rJk;eNRG?GcTV#jBlAu`w@K1c>&r94yLXd&j6L6|94=})+sVmh(hjt)RB%dUi@m@ zqqNp41h%v4gv3vJhEu+1?Qix>`f9yyjc?{ zRrlBfYJ|7L)ZAk!vOSOFfl!&NXJ*51D!>snD!N+dVib9m*^%fop!G1h_2Z-DPFJF* zX^avilFznp0r@4{9(poDHbxb~ZxMCHrS)%$NV-!1$*@wv113!VhY_K~aS@=kQ|Gw1 zI8f+_PPxSvmF_bk{l*w+CK@G8#I#q%0eTh%M9L6&r%6*M8)^!T*wo+j8ycAWRO*fT zbl-8dEjDdDKK#L=h_$$B>B=^}-w8RZVxrJHlaz`V!({<+7JEu;uE}B@n4var3gsu3 zDiO;M<2Fn)9c0LX)aYgQ!mkqSq{r(t;-a$cwZAszqbOz;LP|hft{dXE!9mv2_5icX zMZ2TXtV2;GAcX&3UjCC}L~sRhKXVWhHh$M~`c*7S8jkGXiiO&D$_Ptz)S__Szu4__ zOJ+rQMe)J>1qi1$?;J?WJE_4Iq!Du-E^@Yj0UiLdtvr5XA=Q@4vnlVTiNd69-x$GJ zW;jj32SxJqumn#msZ{BLV7s#f_YZZ{Gpg5sI~kO()CTWusF3a;fAR*2J_Owr*v!2>F$cp%%&;{O;cNp~WbASf zcyh{4V7x!)_vrQyBmp%935<;niIvKLQ>t`9&+=$uz6R%u>LUY0VUn8u?K!vGSJC~} z7Bojx?!Szh-E`u2L9xQYY%9%p=u|fkRTh|VGq&`oaVd@mxh0!m_t~+cSwPiWcBuzy zh6k2P&pRxZ-wB{VIO(qV*?G8vu5I6^*SCw~nvDZ{W+#O7vojmP0}z-z+zJF95JhaD z+N3mm0%!u5)&HtJ36*rl|8fSctLsaaJhp80x&G%7uh3InyELbQ!v00o*;>Akt-kCE z^B6vkaq*_-AQXvcqf5g;a^=9joUE|detqWx$;D!L=IUAHEdva^CyGcI@k<)Yy)GAa zcrdqAT((A-u1YXv8`mPqlz`Dnu#*x6U9H#BdP3b$K>I}1j+d$q>w?u>CaKU}Ho*J@ zM`wU^J#z2r6!E)>{qqDBkoyIqgbE7K8{zj4D53~#ejJ;LBs07K!Q56~AfRgedqhUb zd!2(uZ?0CY@ml&?gA9q_ZCC1PmS=B_u=+U~zW4@zPN0|g(rB<(7`tWx1kMY-xmD~1 zSgrAw;Sbl(n;RQMQ$#wSC&!7eQQG;#GV7YOrJAm7AEFN_{hmfnYO7Ff2?nr}EJ%|d zUkL=Q%13z@%oDU`DibMY(X-uRS;^UmA@bYUVCdE&QbP%2O)=q**37yC( zmXQuMO^(a7Xrvv;Wd962C7o`eJglVgRGjxGN%ub34rg8qQN(t>{r5b7;@A6T1IcLX z6iALl3W*H53M!KKSBd`*d+#09)Y^WF>J}*~s9*yWEcB{W=^`M8E+uqOAd~vH;h7%gX9K;6Z1m;6PsS&e@(!&K1c0xYT?iwZBU^cUVU_@}uOjEHp|_ z6{O*|<3G$}aeZmSSEB$-BIi4P#T^Ftp=r1Y-`mx5mw~B;M`GF7#IMW;l zT4L`Ts`+Uvf?FV_MdoP7JL)kJb-=J)w!3Y$cuv8OfTNrNs>4`Hx6B0bgXC!vn!KgH zDRd(+a!N_d<%)@0UN8%|$q5&8Aun9dP}jwN8UXzcT9}&&tL9%uXM`tgO$5@fkc~^c7Cv-dm)45 zVml&UAeWg_Mx+{8YgqqPl>668|2l-fz5Utu@2j?I0{P|Jh z$(ggoLqpBArAyBc?zUfd0%gbiITr_I#s=r+4qm2rL|%4~;909*)Y99`$D8!`kM{c` zl=`$klT7+e^7PyhHfxGMZy`oFo$4|0kMY+-;jjA&6!$W2&=%AE3YmT{-gh2-{O1qO z|0?(V{@_0?-xtR5|GNH%ze-%c*YkV3e_y`u*N*;uyT8}}j~)HB-G40qwWI%O{r@-- z|Eo{X|JRB8#{vAO1N%?Q|I-HkXP5s^pXvYgJ7lpt)EF9i85A`#Op9%v5BV?s0G>c$ zKvYZ*!hR+Idsz&5?M;R5K5gb@47>JM3iErU?R$`R5e*Td$wuEyzI}M07fbV+k^C`G z*>I9(Sa|0{L*!F+35xa-P_04hQ;hQT4gvur6ScW z&-ll$EcIVosL9Hp`OB$aG^8oL_Ny|hVtAAR-ez#EofI9ig-^fu2HZ`5AJW(SPZ4Ow zK?ha#HoJuL;b)jA7HUo}0_$&%m=S$Yces+!_71`)=PT)WE3vqXjqy zRox5wJGG)KjueX9pH&XN8rxTx4cJ#TNEg6|;Y29I2?Bn{RF9QHx_%PBZ4njs^zU1s9R(xYW_ztT^o2y$Ok=#5b({1!01v{rcfUVv0+?_7 z4>{VPNtM1kR>!{GxVN!qmr0>1m&tJisnp!c71sa@v41|1E}$=<6Adb)WNp)x5kgyC zpmM@@V&oVB9JSV!d!OGTy*>u;;&|jbUz0DQeUC64J;yR;TXprm(=vf8=xgBD<`(yz z75MkfDcgIOZ14h>}_DUBqP=vE%mQQ>vEo z9vDtx+VNs#1xf|qp4NHIeFA4= zT4craF+Y=B46GXuwnTFm2h^$nbmcRE=bOM4H(8U|UCmQ@OxgsBER3V7JIJnkgW33W z1PVLh#|h8i9w;7^PUeA{fu0Ak15*G-FS?qyA3@zR{f1;tLPpLdx%KvOJ^|so4S!BG}<0)N)jNi7xS?|#VNDSY> zjq%V>bDA^f?N2W+sM_1x-@`m@xPSimJZXH_?}x$wsHEb*%w>)5;ylWg{YQOGqesPm zJ}(&IX~zAv{)?Z3#;G=Lmv?D;+HjyCR*ua3UJ}B&`nk-o04n zl!)0&p}S^;-1Q*1yN60rQqsEyC+cIOP5U6H-Pe}r=-o7vzVe(L-udy_DL+KWa!fj1 z48K0hE^s_6cJr$No~`FSsX%TzY+!bYG1LChB+WzeBm_?WCMBxhu3^yL9hF+EMNcoR zioK?Pf&diXjqi@^4W0_+=ojKFS`V2CPg>rj#jy7=ba)vVGdQ;D%@}_#`D(*0@-`sWkHplSt&ZWQ{(>XOLDNG!JVgHDhB1}8?oP?{wAzu7zIF~& zNHO+!&89zPjD#UoB{_*v*y{L55HWa<i$gSw^m*{CmwPF?RLY{ydMXSC!qHgCf}br9PG0Pu;!yU5Q7eTE?Pm{Qxohu;K|I!7ONG-iND5yMCWoujix~_w4!< zywaL&ETD3hJe_F00fDePjdLl9DXx#F%3qQerU3ecobv1=Y=2IK1|$5ViucS2%4cU_ zMWZi3x8;Uu)zdCk!m3x8Qko$5kR%$7 z;6^9-?Kx~{dV5PEenO4M2!U@hDu6}L(1CZ|p}Q-$$La!T#I5Ty+FmbqtkQ=K1ltRj zU$tF^O_@UTvvp(_R)Ft?dT8bKxB<1W6o*Tw&Dd#2NmCOGyJc`iBOjr^yno67kbfp^ zsWdrnKC6mObdJnYS(LeI=MsS09%IwBY~K{-ieqwMcr29!dtx+jRaAR!6F8Hhf=zkD zlI+&!hj}j!;q_I{fqK2<5I~ggE?rmIzDueQRYx?5F47!JSN%0#Q78_YJ3Y56zXF(! zX|g+=8{l9<9d9SqHMNl$lkF}RQCwsFrvf9}9a#x`q{5IxnA(#Qggrphdfih|!2v;L1SA2=Q~wOk(TzB&}VY9?|ZdZ+^7)LNcLT2L6BLcVgI z@&S6n&C#?_!Y%|4$$n*kMiAI5u4o(J1AOsum?nlfS-)D=XD>z2`2_oFos`+5MLsF* z7DNDL(Z-0~M7H295|_g6EmZi}pdIxS>;@iTLfna~Z@#+ueZJcJ?4^TQLE_f$tvR)o zH4Wy5oQehp3hvyHBJCYLt4Nqxd|gH-J$hKn5byo64dFGvc0^T|y&9X_@9}*%;YmpQ zqM&=ub5D+B19M{(b^gd4kD#vj_l@kGpHKZB-hz@W(L-UYX(#>FTsbn~@r>~>QKY!zDyMC;R%5uVQg=U<*LFXu5Ad~2PO zY+)lMYAj|%nJoWFR9WA6RUA&c#&-U#L$Dyi(P7=z~ zd7hx!ZE|&-kQiW#2=z;3U0OaAhO4MVjigBV0gA{68ScxsuK~7O_;^UXIKFzvF7%T@ zs{v=lBj=?1XznGRH@u?h=l|@wln?7YNtU9+6}6+Ue6{!3TO@^^*KB^t*)(0sW*4qA z)ouIv26v4V@_I^P{$84bzw%%(Qij+31-tB(C2u<11fBHj=W6RC_>C2z@Na3VIqTE{t!W{BYT6C>M4hf`$7wJiaoIVdmMJU}PY z68fA|RxGIkWE7>{JlfUWJQs)W@ydq+r^e6{K?q+(y_H6$INX|m%Rg< zsh_T#AC@G6sqUtkO9|dL6Et{dZkUdmh8$Dhh#}OxNqLenAbqQXKlx);4p~cMrBN~f zF17dh&ZT!ce~iqlnQ9F8S%pI5qT8^z;6x$z^XQYp=uJC!i#P>3>FL?9B=K58!HBg! z8^O)odQ@^Cu$X;J#X5f;+$eKgC*?58LlUoq?4vUV0@A7r9g3V7z^{tJl6I_Za>QIT ze~!>=2JIKn5WY5A9s=f%BCAXZC&6$Ns6bX?jPEv#W&n9h*{E7=!yl#MgH4jK8ooz9 zVZzt<5t#9@k#?hA((yRupk#31Fgsw6MYU&~j+Ifbsk}wCUxyZCIDQ4ylGlv69RWxd z6ALLwpTVh;^>C8ws;fm8 zxm~oWN$qL)SMF3s<-I!lc1FR&v2D-ubpvkCp7C2CvaOLHN5-9~7_p#}M!BjWCf)AU zVLS+4dao1%zf64mUL}5!`Z6j}ODp%JD0)~TpzXHlhd}g;t~90775=!X1A|>0v4xcx zd`;x6ikd9npIPZs35Y^#nb$CyesYN^fz`hR)%(V*{}qG4S|?k;6AS>|hf%}DqO zQFOlkY>G*Kc|X^59eKgh_z!GSNP$enhQ8|{#-no0l%52l>84jQ#&^!IaOLHY)2C*W zQ*(DrCQA+P6dDrtMjLt~PoTQS)50u{PxV|ZY7G=L98^J#5JKlRJ7C?9`^!C)iX&#z zcLNHz!je81V+zvj-yo_r+k18%wLLQ35b+fr8JtzvRXTj)5;_8uiTINifpameTZ!ZS zRo_`--MPSAO0_*8xHZvyG(IP<-fo9>+A+BpDlE zYwOIVq)t-Z;|chLa)=Gi>5CNeMybo579vki_OH4m4yU~3W50yZvEAT5_3iN6&p?x9EsBIn!BHRB*KiIJ&g4ns;^w znqo4b?m_wqmtVUyMoWZi~d(tPZ*W}LcG*hQy+)VFlK7aMD$i%=!40Djz^ z1IN`*qX;!MDFgU}(#(!Jf&La(hg{k{*JkmuBCxE7dD)v!qR*a#jo+m14*-))?{bk% zecaW~!eQ?$m({O+Y3`u-?)(6~_xTM&v$9#^6^pKd;*IFt2AB4MXV_cT^?ssBHt)3Z ze=NaD?D~_O(}%DYZMiQF!H(u1bLeaCDqr?l}k6pYj*9uBa=+cou8CHAF!_ zQASd6081ymw;j8ds1Ai_SyWh?rm8K+I{8Vw2h-_C;wTI|TnDqP5+5D+*?}O5Jhy*P z$X(&>Nl+i53%Lb{;T1=-TV?vk!oO7yw#vr^&mbm)n0a@!R%V8VuxslN8j70MSG=yH zyZqPBnnfDi?e1(hEh>Vu3!4_dhT_q~p|xU$o2O>v@@IE`3s|UsCp{gfB@ig6cDY?qGUowwMqOpKV z!~uIyylSOO!5&|5!o}O$d-WVLD{y1MT4EHK1`qiKr|2LWaN{T*>zT@c(8TMZ_%km< zsCvK}gMAzL@(3p`0_HCx%}e_>utSfSQbEM=$D}rFfbz9~c_q!Ow5d3BXYK92q8M1fFDTrv57NYG4_e0g zLw2-77{sS+oyD>tCu$Nm_9m|%Jr0PKH{YmdxEs0{LhkneX_h4GI?TH9>=vBX3&8!0B-Dhb48$CiMz!j2I4r;VMDDJ27+y{|Z?bh@;dCj?W2j2b^IXd3)n;yb z@|XBO~$Z)f*dEm+j55#n!wd=TbGLmGrCl{w~(Z@dH3rHuR7 zZ0iM7YAt0+P!Kn=so?rj!9zjY3vFV6U+WO#k9Z6#3PAFArr(i3Kx-HI1PvsVwtznzzZ z&Y9g!B@{;r9WORq!^K4x=4C)X$dwPcVn@!Kd|2nbj)gX;AO zWuN|xbE%4tXk&uQ>y>q-lh>2GUbB9}516{Yo~kQ^O;bmzug;{@zfIl-I z!%?ccd7&c9wl`|;FWCt^LQ!?^14N`%JRX;1>#S^hXbyY}$d zs)8R<-LVq#Rn$B)E?dm@Q(0q^)9d(B_b1mBxR4)5{m0L_jn+utI?=&OkkZR`7pe?4 zQ557y(=71rd`u`LJCF0%XPCABHJ_bFlR@OFb#?2C>p-EgsyoQxdz}_KO*T9r@`q5B zKA}dALLb}38_!~Fk)N^}XH>P1s=M$Ce0+F-!K<>Bmfo8U>jHZa{YQTwxq6Tdd0?J? zR0rgQf;4>ZBOMkPy z{#KqQgmxcoxU?SLKrdrvqZtLxe4 zIObkmA~;SV!vHM(wmAja=)7t0$#*FSf34v4e%O5NlwZR-|5N-=sc zlv_cMN60DoQ&I~8)w>t%q9*5x`3S7@kVv| zQZAr}S3V+hbiXJ?Nd#|-AG%p2oH;u0A1_=yd>q_3KV!a%7gpnaUgbxW;-?$3J~@f) z=m~ooOwk36r>yE2MPxwdq?E%j9$5c@RumDYTZ^=2E4M)z;?A&+XiL2tj4YT;b_JC7 zJ8>0&;`V6nc4(HD7ZLESdchfnumTlDwVE;BjS=ua{Hg1^|!RmpVeXnATxjtLP>iN9B7Z5zH z+VN$)+~yD_eivZ6iWgdS?FNBuuU&qniHuY+okP2fkYqxmsGft@vQ<5uwD7!d9BX<= z)y|~`;5_(-j&{?cS<@@VwF8CaSHA*3dWA4>&o^`V#e9{1J_j2Jb3EZ^cUU#{D z8^Dl>4k%nZM*@mq&u~EM^Glvc=a)k)0#)-D?)Ee@)89;3o^nqhnMquoI1I6@aF15T ze>QB;xs~1$XRci>()a;Q$GzdtdUk))mY9&^I{ymX3PgQ)7h>xe<^2kr0QZiGMO_&IqAI5bixLM z(~kG+E#yv7wumOj^HSE1FuL9fR#j1P_+DY3JHR3-?L4>Crj7|8D3Y4OWs<7FXM&Nr z^ovqG>C)51I}RH;UBeKBPU1O=pQS2gva{RHP9u&koAsj$tl&6d8O#xtmQA-1#5ixz zI3pXXs*8Ac=!%ePlJRvzB#ur{caFza#oooDLMzpNR0`z~q5IC!&Ue^GSfj;I@qnXW zfIiHnCS)g2Y`#9>q-}~oGL&eJjT~)}r;o`NJ{NDE1DU&k&cQ@CSRw}Q+K(aI%m?)c z^L(O>+-Ld&nc%oIwa6Mi>L0Jy)sA;t1@tN#Mr@T+Q?%%C@ZyM;&H#%yCs z1sS;#DUhjZ`^g`=F`8>BcZ#_oQ=TY1&fIgyyFzp(jgJDJEbHR&{oo8(8W<^Tp%kT{ zckj zSihL;t9#%xuA=&+bliQ3*mEMi=iz#S75;Y4NiufeJ&OeK`6-zL$>NIUcY0C0hAMi(4{;^UBH^PanU85rEJ+&jytWq* zHqzz|v&iAy+g4RyqZG~uDOaRqiR%d}Xc~uMC_l6;pG0X3OG7^7S7zjT-?i8r0RyCP zIkoN6L~fA(?DHC&w+-kkw>V^P!TNGsv zH}Z0$&QZIb8kS_cK+0UZho7lK$$rJ8dsc7(v)(`|0w2F4413WEO+xLj%%a0tbidZH zj-l+nnm5LL0$Fmd6X%+e@Cfu0y5CE;d?GvSr2Ay~z`*K!N84q`7DcQC zdS)X>q*`7y+0x=kS>eq5;V*%u3dI?d*yb6HPAy_6XkSY#~zxSiU|tZn;OO)mo@t)-X1qsihZP2G_+q?_H%}tqF;#YOH9XkltW_4fpM4N z56gB8`8%qT!a6SB>!sL6TS_0ERxrrLYV_Xzn&b;Bi>>NlZ+Hn~D32?)vi1vtn@@R# zyDoMn*=rS~2?|51U2r`2@p6opJ7tF1cH8K4MRSNHtdY0bHsdiJXZ?7+0Q)K>NIPu&YpJ*DD}EAfUuRD4^W*m&IVDI zm&FpV_6XM8C`Mvw3vK0-RA_NjRdnv`Tm}A6BDqM~d{}=J;e|ou*!+xrGK*S40S0yv zvzn+)7Q`2Q31q*%p)cc_+2szo9%Q46A-ZNNJ&BQE+M3_FXWJQOVG;2yJ4m*11k-7V z@fEDpw~8>@Q=qgnx8*|T%53#d5tcLO%|Pc7q1Gp8| zhC$Tl)p%6pi}x#dP7ihbT|f^nq5Q?!G-y9Y*!|I>(yVngHv$@H`9XQa}gwlxnUGGxDz6QI{VyH0ENW)U^^td%XWmd|zP1jxf}!-03&fVBZW`m)|6 z+a=AYBkcx!upge8rXUDT)u-8QCJqzJqo5P4d3vcriFzsmDAH36T%{fG5AB@-?Wy+C zszgu$I6-0zowR$pgIv&aUR?E7e2A5^v-8c^6+%%PV*=D-AeXM2^#^0v`M|J@3Uu?l zfy;rzHEH0)+b2r6J7$VFND7(ts$N8KI^#K)#Jt1k6JzMvP#+7C?q%Vb5ZE8WO^)|h z#Gz0>;oP{aI2 zS+)*i4Zm-AD8Pgs^<6h)=ZWux;B)IonTG|!2PQ>HS`N5uL&ttbcpDcQCV1)j*3bY& zA#5_M<(+r*w`WqGcrM8n?^teKw!C>cz2$4w_T6z4?r*+ZIgl=QuObgp&TqWB)aiSi zpq{k)rfK~mvHGT}uK8;u){}@Z7jv}-Adb_vk6k%^jdWGWmkAB}I^ko4*nlfc=Z>-} z5%k?BI|4_;jfK%O4LsUn?UADPLRZE^aR^5VM(1AXSQCY@e-nH z8VfaM=fM)X99rc)LclxD=8wU}`YEF>r>&jQT``e6qKEknm`DusXQG-lKsGY(qp!4P zd?W5%oU{B3rEfb$!(~n_A+qsTbK?op4W1xKCoF%r$ZcjX!# z&}%8YizjH}F;u>#hl*dd2Req*nb_9OXyA|aA@^2mGicWL=qO|h0K{g!6hP1E8s&pl z;pJyljU!zC-Qog0Sq6*Y$tCAx)Ze zx{sz;c$*aaqKQQYvm~Kxp5Gz9Ck+@UCa{#_LPj*``e&e0W~a;hgZCLv7YP8G7(v&!31|1RJS|?9X3!1&v5LXX~>vN<6ND8HMbpm5zPdHb_KHB zI&}lKenY1F6rsYSm?EFq;ec|q_fEMo_%4tUF0Z`82nUrujFti3JEoH>?h(-m@Gv6G zNegu=U4%^@#@Uaayt1E!(JnggI#mFf%!;c26$TmZ7CKIF6EqP<_t&KU42c=xFgoeS z-#Ba^XkC|GfV@jQjBq69mM=#Ds#dh9>Gc@yKr_SKV#T9Rh|N4p!ou^(GAxbEg&D^B zs-h4>?RQ%G0JS`XN_KN|6M5B*H3$+hD>?5kBhQ^|UO2GscVWK>q+%uBJ`W8ifo|`J0NN4Xw(m&;#l;Zd@bED89hW?NhRD7e7 zS3CJ#qi%{6uSKI41Ka!qOm-Zcbd#(}d27)ZXysPRSK~6juYD<6Pd(IhhC5VQnB@Fc zA6B%SvFSEY1_!CkAT29fTxYZuDMfrh3|y`(Rd+1oMMxb(?7n+UcqoHrLD`nJTm!Yf ztwI#{$M3JQ-Z#P4_Okmj*VqVM&22*_eWtu!1C|CW2mc7QoD)MQc8H|f8YmbgWK2rj zgd{*GQRQBh*WZauJ>5DC*BA*W2%$G~T7)}qu!|>J*K8~12(LJ(_sgjzj>AXe4?j;q z@kXQ6s24E$AUxxReb>3pz9k=%;b>dYqZFJ&ac++rz^e2;s?>UHX$qIhAMwHgc%-=X zoG6+}iImM`zIKWLs)Qu_gSgN?H3r`WX^xuaw!&v+1F*OYpyd!+&^10pvnzbkC?~#1 z1T7bJR*n@a={aG>+Qt#L+JU?G`{Ax&D-pIxr<>a0gnOlRs*P`X|4bc>lIIq2yN(*Ezm*& zSyQL>l;!bwIuGlN2eJs+COLV$g6AhZ@>(o{Pm7YVO|_yV95@d)C8=@Heluh z8#aU(g<1lCjHb)@)Jfk^yhK3+&B9s4d}d1{>17T>53T$Ui_hcMF7JZ0mrB@UD3r*T zKu^WQ1;my^Ua|c;?ES_yQ1%Ugx$50FvV9(2az9UebR6FuEq zn$XZ;4?BO1Fl#Zf;^!jFyh=8Yqo-yrTMQQEuv7^IJ!;$J)h!S)gT~zpFLKE=K6P5m zO2jhha`)R}(QcHq!QJ);TvR8BB8g8knoAfpt;1e#fz1O~(xkSFOh0Hfd4%~;f70u> zYx>Ohh^n`Q4-Y-G#D$;hfXWGSbv_lHSDc2QWK_sFMr++4c3Dll2Alp{&SjnckbT zI8YbY)Tw@VvS7fN#{h=+7WpStAm{uZmFh zvZ5>QqCZC?C|#7Xhq^x*2SEOOq;zV|2dB7n(T~$R~I((a5!lZZ-G*NVS5YBBUN*+Z%u#6LH9(n z2M+ax4*^Qxs9=T3Q6=Ob1+Nx`UiI@BP~k$_hB>>5y|Wn~%i^wU{(w+0(4 zw1Wx|<;)E_d9p>zjPQoS+zNv?>sln$xz`L6^+6j?=8W7Gem<;B_|U_w`m8Tj<6Nto z_?eA!MCSmgqmy4a+?(-CTw_Rt&F=whCC*(szP@j3c-b(Zo6dlw>61P^Eyj)}_iudRw#3s_p~x)upF(pPeFzvY$^ zj(Y$`%SAa*q*Ucc=9ksPvP@OzU>fU%fXgfNBYTOZ`tGq#$G-bfyShYPJ0HXiGlMp2 zU+HIX>DUHwZG*D#wbw^XZd8<+qk=u#*6mRj=X3x7>>EQY7z;~MIz8p$MADSM4sO6_ zZOrnPkQ_sx$@hO=H4?mfW-3me39d0l3*$R&O9Y@#YE$mV@Nv&r%tcA3hEkSNdDr6J zKik%@T`3oZ_8eYJwha6D+U)>=44pQ>$50(gweuGS+{I^3+YiwhG>ptA03OF__` z{MtkCwiA<++>*K2xpzPZdbTs!)PVEqz1vdV5B49Bh*t^O{^3j<-=35`cM%P9|2b#T zbRMfEJ@3)NCIx+|KQHm9r2+NFSA9G7;68dS8IRFZoF!VEZ`~|Pg=DPzGSXF!nTy4k zav7&}iRp(UK^;g>{2)G1`i#srWk`{%rOFGlDjSbSiE6=$3wwM)E1(ZE1SrRIq}8q1 z3@8PlY};kz4rAg?b~ilzN1k{Hj}GVg%0JQ#T1yJ&rC4B)&rKrc$Gqzld~Y~b2(Im~ zE&kXVlc$wiJJN@oyYD+p>5D?h-g7AXz8PjAkd@G(%+aA^5yxZ1T-CxOte?`iZmw!H zh39Ef56@|9uIdxMWqMRqH#|?K?8Qqo9*_VN9`?na*YlVnP1tK5g72zt7jJQ=3daJoO zdu_E_Gpf8Hjsc~DF}c@00caS!8}vfGX)^T^qjGoZQm&dt0G40eT?BjWB$~`^htGfWw(_y{Q!*VXXPf2P9WfHHqrsFUqBkF_t?gd8G&ePg!dytJ> z`No^eavB=%o2v{=$mgq?u`^{+alCjChh|soYpjcfy;HNl@O>}XuzTFgN zw%O}#1DU-DFvQBgq?@WQ&ez#5GNzg<}{%uVaIYxLIgM57Yb0JjNTOfcS$E zK5Ava#_?x)xCqA)8io7nnLKQ=-@Om8&syBmiszD{p~Zbfg~C2`B7sOFBu%b`DIghmTHL*KR!Fl|TikhNGc& zE1^9Y4TA#5)OO}wNM_jq8{!}hPB5Ql0R>U50M;|h4p)$$9S21P%aTQhr(TY{4L3iF z3M~tNa4WIMlkNR}B}%$|i^`$0^69JPUVjc@-GgQyl%?vmAfx0;M^e~)x=IjsfPmUt z%6rB5z*Cty&7_Rn#TA$WES_9Sz}hc>Qrf@mg8{J0;I9T)98))PQDZ9}PUX&jqT zEL1Lh=w;m)o6~-XAmrN;kP{MS@oM9I{~>q?_euGUn^CtK`{Z<{6oQI$+CTGqepG?B z!C>tZ+m8=F7Rft{e80W&U>CDnOy#E>J?Dfp-F9tOdDM_BeHbod1oufzRFVxIzBVYD zs<7?7tI3^uv!1&gKl7L_bq-Vs8(sELL5c59SB_Sz&%JKQUwN?}u~V0%6Hv3~y&`T~ z`bLauDv=oKQMi-q-YaLa@iv46Ps$D|yx8?x!zu9F>{!S61~_s^$y)kx-wyOh)q;|5ou&EJ83hXB^;Tk6H*#RrGPmpG z?4X9jK6Qik^v8IJ5esY?`4R`5%Wf}>R5wM6H=KzXDhg!B*Cu7~mA2h2R<;E8G&BiL z#jc-Bf>My*cOd4!kzNp+D;&B5%8Kft@j5afrY}jgAf@G3x(%})0i{k6|CwADXXj7A zR6#sj)aI9FY=O9i$&LhF~e-gEC>z7Nb7 zt{5pEnh{4{ae+-{h~)#*lJ~SoLPxhBu1n?WB%4cI2B8VGQ+|ql8$Z6|b{~TFaOsht z)Rrp+NURPQ9%5w<5YX=K!8uYGcrU6}BVtXKrSp%PyYWS4+xMt64mC~jfS~muPo)c#Zjf2qPUOg7A{4?k!U{UgSev{LrG2{}+{O)o>F)n$Gt1agxSaFID^ZvgCY`w2>W ziE>SzcV^OF>a6T;`%M=ISeUwj@C^fRWW2a?PA@=xF5^u>P+dL`x>bE6+Q1mg%*nKz zZv=GwsGdYnaD87fDH(h;GQ4no(v$4cY*$dXviMh};l{C10no$Z3~++G1mivy3Iu-i zfIRrR>F4FW=H~a%;-EDD$!Uh2!Wl7}niCBHi$_`K#yLc;0)}bPBL1^`HS6;&RRW6+ zFYM@>gD}1_2_qySvvR$RKC$d2;S|jBjC|dM+Z70V1ffgFJ<-^vSDc*noO8{_$+Ax$ zaS3tkbL8zWnY_H_rB>-iH)0D}V~Q5Zg4}{LZMu1j-(Jr*wjKF4a-`iJ)~d-tM`##$ zpk7UOxh*fq*`h*+t2&?O<_-z}li0{{+jx?5LsmDLw_b=dT^u10`9uQYa&7z&Ge8bw zTx0LFclUgW%iAB!ybi?=Kz3BzuUWP<4yX;=y;1U?Qc`|Q8k17(q)5W9>9l2L`Sv$d zQi3&4c&EgYArjgwMvj7z6MnX{XWw95<@ZR>BO$|_CdvkbI388NJ*(!!hAYSZ^ zi>rHH=PA=gM8OfK8d*L0#r$YjD#0-z&IE9j;#|FW2j4Dt9|`i(cCiqrc*9O~)ZBn! zY?X>4Y8Ga;oVwGuLSdVD?~h|gH#9;`2kNw<@O4xAqo-rp2r2t6$q_=EG&Z>PR_A5! z-E=f}RC=E?>Mtm~GVJZ3r+t066NKn)>qR_*5G;XBU-9_atM|@tR^Oi+aJGP1wQsS& zc68a=Kz`wq>WdegGvyu68Sen1!OhQrWudigjd=TD{~aLN~WIKxiG&+bXW6yf08~8g!b8jT123~)7qhB6!{T^z{Zm`Qz~;eJ{r9Sx z?vYxboUc*(a@tdQ+WSv8<>Q^+c_m;>i~S-SvQ#gjL`lr+dX+Mrjl1OixYqVLf7-nHrQOi~FII0OwdR?2@ zBuFvE-7+<^UDHHC%Lj!}HJwH_L%PD|2H#%Y&2SnCznRu6cO5n(WX_O`(q`4hjgObx znUtSJ4bA_#@<0n1uq0;l;xvL5k22}WpU$^>-S*71_UyT@H8v*L=jBJtYFK8r%sO(R1=Ao;jT+ZPpFEYLuNHZ&Vqo3-A^w%D0_N-LSH3><^}Oy%x1K^-_LW zm^<$X8YvW5B#4Iv-u)SU|GO&tTJ4=O-iv1*mcX)klY01iYz*T&ZyQrKZ-$e^4&=}= zXGgB*ePTtnhObT8v!^?IKOiBooo1TJKk>+YzxCQQWq;2XflE(rMH$Qb;sWk)Dkvfge?{LB_3cn8X1>mm{sn*0p^ae4$)fMy{2;6)iX3U^fbQG zw#1G+TOw7s7vR0p`@Nz295=v_^G1Ii9|$Nx>4}jJ^gTd}XEi^MX5wyKls$h&@~)jg zCM~y~mt=N^_oVyHjip@ml&Ba-Dd{68VqGNPKR4m{QIRfgTb<+=USmg1w*Q7MH4$GN zD*bx15=5Vt#PW+4>!4)n>@j_Oq;At(N15#aJu`ETH%zO{uE=214@J$U{5N|cTU z^rS&r;?}-WXM+{O48Gj_XvW%X|Lwb9skh7rMT|La4P%^To%K~I{e#rO*fqE953Rje zy>vNkPJc-d!>LY3?sMhxU*nMY^YgXeHK%;~wb!#3zEzZm_DMb%7wY?4JK7rqcgEGP+t415E zL=%WCvC(d-NU2-hpO){Vlcs$gJc9mxE#U88>;H%L{y#0J$-@7e?fzc>&*Aj%oA|Ze ze=PsCqyO0Mul4_9NB`6E-v>Y&#{d5MPbcC(E&qK0e?LJP{7mprYWJQvn;#e|*SZh< z%cOwl{`p(A+P)r*&nYw;><1Z7ek%6=!b&i`K)2;i?@Z^Af!eiX*R ztNhCfhxQZj5?G4(f9~jCi@~n^Z7=_|d|nFtNhkgHQ~Ybm-+dvj8L0hqiun82|N7ql zT@B4L?*E5#Gk32mRpImzZe_*$pjCQ!w90Nm*CE<~`fK?7x_IC}+LAq*!ABF#9`p*W zNAJ}=(AYHG12JcLLH6!QMj4o;ehruZ`WbBrQRN44n>fehi26BPe~sCHeTOzgB`{(xmyPZf3BSwdAe|(6q4FoDKX<%+5NBfIJd12|-@tG?KGlYabHNZCGZGUVuAgIl|yWprl&?9Vvmp%?nRo)#HdNsIe zz2E_O4os2~RnIRnu$=vqczfbQ#922GOoFB#{OS=}WvAT7>g1A4kx+d$5t?8RE771f z@#5Q4uoE|;xz15{!7$wTb7vWxdgTq}(v3H){qjbR@$0ui1YGK8!0GdCYbYpSsZU$n z(|smaU?pDMoO}le&rGC89Hun2}WHez+)lH;!Es=YTD zS@$su-+|hqwpWu`rG7692VVhajj;JGoivHm6^Y-s`FS)hJ_8z6{#*d0uOZ)KRwuD2 z>#BPfmRdqlgFY+5?N6z0AO1XkYv8y-H!xS$qGxlLy9hJ?{y*6J&akMi?_CoN#t4|G z^cF)?5Rl%BK~OqMldg1zCSA&ah>fnak&Z~O!ce8DG+}^|E?q%-8R=yxcOBIHlKk$6 z`|aNQJpc3fAsObJIcJ}}*Iw&g?|K(5KuO8vl(D`9gN$#rX0#9(88H5(9if+Z(?V<@ z*77*ld(PXoYx)(lnCpxNByKp<9SE_-#^N(%Gtv(4Q!d@2-O}#^>}`-)aiBX&>IUtr z-8}(N0%CIO=)$qM6XWCKC43TxgE>u`LTC*QyzZuCkSW*-BSqvwFhY8 zNgqfN$2JP3l_W5`Dzbm^oT%H53j7{%gZc4de8;|FzMWpHu!!}{moi(`^?4Mqsl(Iu zhYAlqzVss!Gne-sNU6<~5BUM~PGOSiAMi+i9t$8)0_Lxc6&fh~j6x)guWCR858JiP z#$f79-vc1~oIZBczE1$Ntdey!c7LPKz)_wpS1_OG1F7IoV}dW|_cx$pu>!8^cZOqU zp!yn=YkKeTwkf+JeN;^=T}HfBV)@fQkG781^(bp-3SU%2ae8{fOi~*w;FOyipN;k`y*e-Edd_Y03<#fMp9QtOjf z8!eGGJmD$spRbk;d++Z)c!?iGy9k<%xn5yS7lJCT0gfT<_qFcaXS&M>9~yB%-)GU? zls?D>@<%g5X=!v!Oia*GAqztnk}}W!Pl!6pe#V<~m|jz8FWC8eZe-WS(g^+9(ul+Yf1 zZCtTu<+dv!n*A0fTb7#;B&l4^%_qiBL!tVV59#~Bqe8$3%rw1+&lZp3Ub=8^5YoJ- z)}ZuMpSs1|^E0o7s-`fn$QV?Vsz<*BD$grA;FO6)t#`Dq_C3Cq@U?{$@^BE;Cjlq@ zN^e^-dsd~273Xs;2U>(Pm|24q4Ep(jq)~mH?d$hJmIZm!L6lsnU8+l0c1zw|jhAo7 z-$}jH*6l_!3>QKc$5OLxVGUJeH)qS2G;d0S4NclxptAA^awU$q=g!h3Gd}m?o{e1O zjdSdt$_L4*cxe}R6}8;7Gn4J{$&IbPwRN}o?&)*<)+4>QW|_ypIsGmE{C0V|!@kc# zyF*ANNipuWg;;cG!#)~Hev9fPp0*#ib^m=C#1r0t5(>-g1)G;Qy0aR3{aNlp6Tz=N z0ucVZg(>!`>BLRg!jG2j97lm9%!vms7N?atuf?dNDyU#P<*0C;R8k%C0Z`>8R65_% z>8p;2HRtdqyoBx_L3RCQ7*XfXR~;Z;GgnWNq%FHtvvcn=*&@q`NN+Jiel9=GMo+|X zbYbmYT*Y*fcj`9GzV|$fX};C4!fs1NDmCl?6`mBVGX>%Tl{xjfimL@(a5TX!dqW3_ z+cmu$bJxl==QSJle+6S46cgRs#8{LFUJ#`n6m!KD-f}P-nB^@mIod2E{*)-G6`I1{ z0;G`0H?UMr*u=B6Uondvj}j~BvS1LsbFM6;+p1#>wD0y=}y6 zNQOx_E61KdrH;Km+v$^^uRD~U$YbJgoPtT5f$4;&c{9C;GzFL-rjin)7d=g}-HZoW zSE3-}NGeCo?Rc#(ls_Tlq{f&mA0^9orIy&?o4PR^G;Po9& z^7EHKI^L#IKm#(4b;mQ&P`Ya7*MB6>U}Jfrx!$ekKtxDLzB}t^o&O?aTEX{7i?i7f-PYRjJ3In@zI2&t3SL?}=TrsDnuQ3}r5t;GGF8&azG zM|2vaNX=4tSB9pg{>bS8-;cE>o7$%$I4ebZ_F|26ky4~{KK^e^#?mmP5$|h^Ykm@{ z+EcVJu(jdvGqHYBg=j`hhA>Hq#~JHAwrAEDbK87drm_Huchj+Dkfw`K$@Dg=dH1x; zVc&z&Z8wLZp!nzx`pxA$l)(#FGcABcWwUbs?b(n{NIyeRD9|i-lNR}+Z zVpg=fER8#JaPhK6uA0UWq{jrus<%&^%0yD+Ncplxb#X+Dl1T^Z8NFpuj#yLT*g zw!grDxm6uOgt)K#m=^E*{z^bf{*n_);0?);00}nBgT9hE1NVU) z>Gd~x_G*JmiB%g%>mSw`73XDlkDVxIvlr|A3Z=oMgZbj-4TX|4oq{&2wokgqr&yya zomW8ey*_nv;D^*~&CG{>-M>fCUr2!FH1b0TBg=Y#&V2grp>;3?s8|Z&zw-Q$4e80i z0rjX)ZLOab&kf}iKWEEFAl6@1Gl>sDwz<%JU-DFBU;8iTCevQEwFw`iXy}u&_nRTw zDR#25_FsL=#UVeN#LGPqd3xXWw}u`^pHH0m)vxYnD*Ys6(UlLCFh5vVh52se>JPPy zQ3sHcbH?`ng3`I(Gls3zY)t|aamE4oh} z6=IZ&sB7gmF}2k%6R8@Ri=6D>o5m;e>M3v!LCIfYie)<2ac-yQE5SGS@5x)Ru^#7* z_>e={6IFB7ROxAPWb~i;ce}33m1$TQyWnO)!YSumIswZjANjm}8)h!a)*0L!-JYd?I%D!1X;qkhYKB6Dt)Jyp^m)fJ}-DykM)e>l;e>N;OSNsAE z07YC&K9wo#POdAu+) zI0Nh#d%H$oaTLujT2ZbFxXu!z+*DV(K`tWTtlYyW^Ae?2Ds455?wdK$wyd9KBv`An zjeI`YL798Do>NbTyZ*?8YAion+dfjzaw_&+pjqoeDF|=df5{zw_nhOOR;1VUX=t;b$vz^?t6I~v)iKlA{U`%VJ7ZaEelDQIe-Dy= ze9_cCegD&bzJ=2LF1|Dvp6)JZHmJlRU}?X&=Dj+VJXA&?8;z9|+A$n+ROaO}OD5U@ zGJGpO0i=p9_+?Am^_%Fu2jVXz@3bP$I-z$G@8#T$crHqGC~ZLj|u zgS|mBG>Cd|J#EiWZ)Mk_r}#S@3NTwAbXI%rPb={x6EY)g?@vzB31UfNh0QJxt~7pb zNtd}ZiFEYp{MUN5V(RM0jQo%Ea6!}BPK!(vXarl@yk2ilYv zPN5fE~;3+vd zQchF#7#_dACzaojew06vM60-G@31npOJ`6xr`>g!cvw_Bl<%9UMR()JwDyi^f@WQ) zHr0AlXqRmtpUeJAc<*<5%%M&5x}U-xMVV^Y5)a^vnA>XwTuC=4%cYi+z9giVlMxCh zTXOE_%!9<%@mn}o?TA|l7I%p|87kz|v|W;K5%^fs%vHI>8dR%Ly*X`UD2Sj6aza5; zkb(P(g@~=aOI1f}UsQ>VYheUC>Gr9o&!CqL__2CJc^9Htr$wX0aH?FfIA8Xb)=|yv zq47vBZlgGkn}8r0$0vZRKUf1&alqv}p zX>*~{tycsh5FIp@_hAaM#tjg+^Zf64J9O2qW|mIZT+n+TGoU@ylv;NB(xO*Egs)7@*poQhm21NccIbz93F+vgth zemrIxBUH*J-QAFqCTvja>{eACd-;OF&YHDSpw1N?n;zizgCZftPn^u9SL*!bly+X$ zIR>LRWC8|zZTtDl-)#I~azCtK$bMR!tC1~G|4%)99u3qZxadu|lIeEsb3T}@b#$+< z4noQe**n|N8F@aw=XHXWk_XY#>b4;GrPmuXFj8V+d+RGb65a)Xm5HRfahX3~;$FOB zPkv#bjl4|jN$VfcL<)?JYJmA9X)>s0ULUQHqPL{&{1{coMEASS01pKK)Up~}Ai=AU zS^Z}i9tvrh+6|V(^YauO^jo+Ax8S|4eXspVwANhVb*l zvI&k@aq7mdGoJEJxS!#seEQ*9*ClTI>rgAlJ1D(=(!`WACvly>sglzQjZEHnsMrJ3}x<88?BTTCF$C+HzV&U-}#d2kHM`J zF||Ew%ZsP(%00sDIYjfic5_MGFdk5{I0e67^K6|lLMuUo?Gl?~l{K+gX-_*yN%++y zqs;y_o?GX*1ESkgdPnUoA3XQS?8wSiojaQ~DL=&V29N*QKuZD?45^P}kCr;4Ut1i< zaZ2Q>*b8?Xj}or?Ij=H86yrh6Wy}lVc$$0elD$s-a8O^%#`);cyo^w7-(GGraA_WV zqc6fs_&sa=s^DW6P~Nx+(VfNE`vQ*E%c=e!A*#I}@L&OO!!Cls z_AkQks^pydGfGcM?=c0Fca;^hQ`~#)8-rS4% z{x(BAr)Ht3?>-mxoO&`_)<9Plq6TeA{KX)mC#C^A$s4KU?Ou|SfllYoRzyf7mkNz* z-Y%*~1_z-sohNnRT)T|YyxA!G3;Bc$v@UmZA-Bx@=N6EFykCq_>a&a13j@hXJzHydvUjiCe+86>@%Db zmk5gKQWE+a-L=g-faykGRC#MH~lW;@Fu#DVqS7E>Q!UPW*M~hT0h^fr zBWv5D8OBt9y;vH0BHoxPDCr6SEdj2U59_TFsd;2N=YfBtXxIU9v3O#Nj_vWy)WK}y zdvUB)fH|F>hOHbW=Bv%$-D)nq!xP;h2?A&Gz!jp&T*<2}zP30L|7ububWpn2 zDq-XF5#cx7@TApZju!aEAx4E8)&f-t0Li+EUs` zU>lJB!)4$Ww_c|A66l*;ahnK&J~dKeqd6|vsxR(3^Zv&9Ysnyh3hll*1D{dXwOIpA z>LnWv7wz5lCvD8IGb=`$i$lz?#k~_%jDVY|fJ z*J{-V6709Vz1J!Xt!u+&I+8E>fGCy=#=Fhbzom5&!=JC9;SDm~)}EZXgGu(5m=_^4 zBYGOS>4~pWQ>GBw6q3BQe#IIWQ>Y?(>_GRKwj=1HT_Y`L1rq1=qLi3&$-?h9@m22; z#^o@11%x}nd3$AZCHGc|WPZPFtqU;EOdsor>$BJg(yaZL2p zaaC@Ml^`hRsg%vvO`p_w(4NFz;#>L)N@jmKoQr2!4Aql0gROsblKKykKF*J>3YYS; z+~-<>$lmN2XPwrS0$}(_fs_IMJYlS6(y8Rhvi|4mt~mWyt~N$cT2+1;*~Zypcnp|S zxjb{VQmc)|T^e(QDr-$F~5<#8Ih(WO7KCZ&8=-yKuSJ2Thpd9+k!_tVKvD`=*BfhZ+hmBRZT z>eF#m0Dx`(R0?hXSkK50uU!de3`Z9@M=oK@6+$?PBc}|z_=7E4bgDKNLZu@Gb@3ZT zdOZ=v$&`G4Y;WH;Dr2q>RY(omK@{-MU*2v*RT%x~y7y3(G9kb*IC}h^XVLG<8u23+ z2^-r}GeyN?X4n%uKN{5>{ayuu49vGob6C=j8a=2!wAr%Q-CZ1rD!o zLxSw)yN;+4qc2bGk@*L`<0zlPEnduWDK&6ro|!m|0ul`laOY^YHZHES=7uF z93yt??fv2FTFT1Gc_BHhji^C63#mnCK$GLeYKoU8q2|!DE$r~^E^%h1GuC;&UsEjB zi%BVih;c^1f&YZY&Jtx3qexTImuLh&>JzjgaXo-ph)55#1ei_MGAw z8#_BPwkH=9-&radR61KMU^A0_#dlODkFv?JQM7XFokGgl16MRV0a*rbR^@u6EJl0Z zX>)1hO`^vrZTuB`O*J)VduV7j5Mjf5dTnt?ByI`lbDU49TNSTCSBFsh0A3P#l2PKu zgMrbG%&6Y$Rrr{ll$}q<0$j!x3SynOJb)6rwWaal_u@1pEI78>G7;OuMBX3*Cr_`Un{vm_g zK<+6D5{ZGybx=i7k^nsTzn&#-BT^cNlJg$s95Qr8CrJyOq2M)AqJkFC$0(Sn+Pxuz zY6$+Pg&HEW^A*W44p3{&A(kXL4X61PicB0^M6WawIClLiQg)?TXtaN9zsOYJq zMwyd()`XEKetKn9P7&(TPE%VMXh-naXvUi^0#;*R6RT zvM%c*3Tx>sSu_-l1EX|C{8)ODQqjmJsEHVv7j5`?CN-Exi5I=|n&f0!KrW47FLO82 zGbLtB?DHYcif1p&n zwVvdfrz!O=2ySa+_}Z-(McTXjg?hTG_XCa$g`Q;;e+dd(0im?-W+vyl@#@su8 zP0!r6#|~(z2#@9jxYUxoJlf}Ngf(*g?3YWWh{LP1E)AQkNrgMB%i=_rkYE_)J#jY0 z2v)@i^AvW)2(lj1&;7p!q|RYq2yv1!$zvo#ij+cH^gR=3`p+arb4nXatyr(o@ck@C zLsFVoKI+9K)osXSVz!oiu$}zCN}rQ1OFR7TN)SQY2fxCU8GTKQEZg)$f9rfWR-4ku zOF){5B*8Mgb7p;GZSBk`Z`0F9sK38%?0xNI^1=balO2C~tiS#lOhhP_RM>m>4x{`; z%05NU4$+M+t5ilK_>EHgmUS<&X1`KXhOUL{;UAuIxjIcc*L-*<$aLD1I3!lD`|+^Q z)|8{Py<*?!B=N@Gu5WlNz)eZslXFE@zS-{0Tlq)3&l;P}?sm6sR?MvPm=qO%@$L3o z{d|@_%WYhgyv$!eq+3(S?GmblYh|72ne8BBmVB?(6R$6ycE@I&no4#A>@8lz(s=m*3yRz?)2ck#tG|ZaL^)yL z9KqA{stXQJm~o@++TX)YIkpJkrTcGZQDL@%uU+4Dc@ftcUA)DXbe1R!*C*q+V#?V*Wi>iWVU9ifJ?BN`N+3E#q-TS)K!-XE%{JQ4zJl=65 zWdpQpb7Lf-4w%H)f&p1>Vp0P!BXN3X-b6+vL!~P7Hrd9P7vYrq!%dSQJ-g$%v?(CH zF-)-1?Rcd#a$3OGpmO9`t}eB&D&JNRZn$Z_gZ_Sd`~m7pm=i-lsBL5{O*0Yh=27CA0HpjWoeN*)+JTsnO0|jZtck| zvr-VdUvq1`$j&1~W95kwem93(wq55NlCsqm?s!aaAtTa-j=@^2XuB2SK^J-{sL9Z& zF9+H{vm;x#S9ZVuhD&Gmgy6F|Je~j)j|garluj9{NYs>^LV6FaNp&ZWUE9kaGRYid zc58gX(UG>^IaVh!;+3?e_ZaKUt+%33e^xhBzslXn>wIg)nQ^Yd+L#MQJ8D-BJZS>3 zq7Ll}#%S6sx1DEugo(VX%@WHJIU{2ea1#|h^YMOl2UnQ$X>Sug1?-K|{cJ&~>-UaH zdy%hm4Aa@n?09w5XMVAy^d~Ey#eV$g7_&gfb!tMaoS5X&#krXAKFa+_UbDy3S8?XzUEfT1t zKsF^ToHd&T4Xl8cMGrN_g367iR#9#*u;^ma|8+mpNL(IwOaF{nY2DtUpKywn60D#e46i<|9+VWxPzO>TKN9Ke?9;It7q(tLytM2+4)4|8C3}nRCyGV{P>R- zWuBriwg}}Su|l>w&frS2o4{JOrIYr#-4{MQCEfs*ow81$@nXu4$UFOM$Y`^oN0vsaA^~O8BDDsJpCY6O z5)gsofiio8uI}zg$&C+YEkFo05zwL+ceNH*$lX9Fe2g#U58wXZuQUv78Lk&t2|_jY zlf7=?mM}2kVhF1nLynu`-f{3^ zk;(SgefrZ0sX;GtS1l?lh55o-GEnasOG0|kY=5ag841+RlD!0^eOj^8M3Z#g)SV8H zY2vL(v&r2cj3vXB&+0+2xU=)a>%T8yvYvNN%Z=2!3KokYCHyC-dGZYZC_#Ga=sNfT z2y71G<}DT&qZl$;{N^K{*lKAd`WUn#5X~W~S)%K2k(toW89ZtUDASYd63NCShfe%Gy zkCR|fMY?ARvAkNCpf+;7R^R*>n>^6b9`DU-F*ui0AYDh3Zt?`cW4QD=u!&ya?~|H++{g zfiSX%eWB4{ba>&7qEvN~QkuTT<||%Je8zP@o$?$)yO7`z10VEevm0kHC{O1a+uOeplV~#HWFsc zI^7dD+Z1=$=QGW)I<2IrSYY>y#sWIC^C}mA4uc+nDK*Oa?*)%Wni{qKJ`b-IWt#$x zA&sd|lE%jRa<6FBS0AR+n*_ zQkQd?vL56X*1lS)taO>C@>PY7q%DkDjpw+%_W;52`t-yO)?Cv0!i&D8?Y@nh?as`UD+EKBW|j*U=Uh#Q#rmQb98$() zt;KjCCW>vt)a)W!St$oMn9EK#bPyl$bz)*NM;v54Ks+ z(*_BP`Nj#KxSL!D2D)VX8eo zQe^ZFi(Zwx{SM8)*Ljqz`$H@=>uG*-DO0+U)F>9pp?~fI%C%y*kYS0v#$apCX_&HJcSUdhbG4E6Shs^9 z85c`Qs%bUV3!#5*Z?svRG0-E56?SJwXE3d4R!S1%k69wX1hD}_Mh#le$3RU*{iPrO zb>m-s&%fLOvYsRVxaAgE@_#=nat8ShbgJe2j~l^l0Z!)46w9dpxQy9aX5j9_$@X_c zyUXkbps7t}veI9U$8}{3KPv`nmhayQ=|;M*r60V7>Xj+;?hMsKAFk|HJ?VdbrInjl zWx5;6x8FzO=MqvUMG^HB@n>$P2p?%}vRUR0MKDr0(3E~IZ3+-H964fi@y0RK@-|9JRUIGGL{c-NMjQr?5WVvcm1@7pH*MuJ9DeY-jq!nq%gJW6~ct`R){wonh- zB=YOmi_BoR;>~s!J7IKElu0LK7ojRfRlSr5DVUvqU8ZU5cXAliS2r)7>_Mcv{_%G~ zaN=kFKzwQBNXbKn|CQZKiXQ3xEwjHqHW_yeTQ0u>|9_W<52=Ylj@DM>$8pFR$Z@wA zanWb^|2paGwc6lIhsQat!_x)+=k)*ohc2I$r)I6|^JA8et7c2XwA?YoD=xynawkx-RW}ih&3`3zfZE#h(z$yN^H6rsu`veT*6?ra{qk_=CkTEW<3zK9qa^|n^9jVcA+q)fQdSI z3+&0^5f$yPuUI0WaROuPW#dHzuBTv)z0brbl(Man_sj?*#uMn1y_x-W$mY4XIi_9< z6sosF4Q9^L zftnFTj>IU45V+C9EMcOl&Ih8oL&%0#xrZQNt@EvPe5RMht#OefplI%Z1dfSe?WT`0 zBO+m)kVlJ!KreI3ce!Y8`W+Wfcw8VZeSc23F2{4>Tx|@WSraQTQY$#fJC+JGdW%<8%Xp=m(fcthi#7++4S0nM27U9&#;UF zsuzC^eE@L~YaIZsCuEo>Lwkw~&oW66qplw0zlnbb4 zF1itEnt!;x_0QKiNSn1cPFKnZoA!)6LT^Y8>gL2$)jNBx1n znXtV+61}cXIFTV$kK4WtML&G}V)c(1W*(3wIzIsAiv77XTI~s9*s1HWPNdih6|2%Y zC*5IbJanQns%!^T+r{zpi~I#)h`J2hr;8D{$+S(|5nQckVpHsB@h!trc-=3ZF zlAE@V&90#zmY{kut06xa)YzrCL!L)ycW2x=Bh+`R_!9k*MmFkC-uQc5n zsIY~`^OgA1Ru^$q!xlB7kvBrhiv?1&ail1DEAQZIx*H6qIn>%}+M#bCS9u^VbP7!l zu8UcHKW2nS;r4nQ1U+re1FO^IGe^!*|KnFuVNoUUEkZ%23PO8YbB^|m3$23OfSzad z79n&OwyA=I^V~f6SjgR+;G+v3GK6rlGC5qtZA07`=0REQLzRTHJl-J{4c4WQ1Ovxf zdx_q}BthE&?8fZ;k10O?HY$DAYrR3169pB9R-IY7#)kU>Rrc%Y!UnWiiLPCW3m>v zu+v{7olM>nWITb`0H`ITHl7mX*^8Ch2SZnV=?4lI#1ldeSv^3d8s0EuLCnWZ3nOB2 zcm0D|I2-uvsxnXl_3Cp@Zb6QZ1K8o3B|jMCYtwB%rAPpGvL+4Fh)W)PW|g)&JpO?F2ZM#*|UzJEvD z6t&h(FdFdwDpRln85CBEDR@h47ambC>eD(+y0xCqWCfEw<2Du`reUikc_m@?0v<7) z!$d=vc(c=HQMw0}qGm(CU17MkT9lN;z}h;gemRMChwm|n`}()jo1WJ^QzSX zgq}%QMtX$#>K<+p7gLad+ghHG5Z9<$?=y%W-2eze8Lyxt(@H07cY`00n70CtEC4)s zNl7c_Y+moLFX;i1YRJO)Nr`32b-Cgp$GVy?D+#fpr0XmtTlL!PzAwS?#7Oke3s|bG zzy$O(`!VXi|KRh(n7WzK!%!8dOpdd)5K6;n%=t}WIw9B4iK8A?^k$7IEU&4bjnehX$7dy+QH=`0e-CsWT)AfZ4ldePP-*V7&%hYi)k0l4{^Ut=QWv9fm) z&4sF->E}@%R25qR7KWp%01-IO7mXJu;V``Fcp6>TveI9}t6XQh%pqt;;_m9RN0gdm z7vBf};IsE3E&2`magq8SS{*>g>$RAPu~>HXqyz~iF3yK`?M=7VH)rv(+z*XB3n!39 z-gjkcmkBRKMqD)!?CLY~!7_7q{~i>Pl<$e2l>8!VF!o|@+;id}*8C;;j`$+rO79qr zDULc(O;r;{WX0=&f(nP0fW`|~{Th|?M_hwofUQ#c{2-5^{KyPVD}|n*AG?Zh0^T++ zeU{};xc&Bc4U@oVH^~Sz0w0=pV_xvr*I}qn6=1@=0hnQM{+XfsfCb5TY2(4FvhdBk zecHqEx$EC58`=dv*Tx^$FS5<1S&eb-BniC=LDM!^=wdGDMF89E=IffWExkAyKi^`PX|;nCM5yG* zO<82zz>bT4AnT#1f%Q04<>9yju39?gXTz5_FF{#h^4hjr^XBgz;#4HDMpf=YHE79A zuo2g6Afp?NZ``8>%v*Bpz1*Q|YBx}vp5A{O@?4Z*?c*PMg3qe^RPT^k_9l8x#nvo! zTc=RTVWYWp58+v)4_J)xDmVhRVRE|!ora0#EGUHcoW=j?mj~SsVxjPP1%MY}$v!@w zR^w@iro9=10r)RoEM#*`LHc!+d_s>)J>A?33inuf2AF@{)O_H$*}yb{21tVM)&f#s zPpc31iK>Ltgn6JAi6BXVm7V!Q5lQKxaz}MP_GI+N05Xwh@yZf~*v`cXD{dwi*y38~ z9jiMxh=_=N3zR-}Zz?kcSiZn+y~;H)*i9(;!+~B#885l2vLhKP1ZGW@QT%TuHd&OE*xPXBSk$LeM6JAzP84Stk7TZ{2PV9ubHj$ z6Qqwr%7j}sp#{{izwWL?8#vXR6A50PB$+g=h-+3Oy+3xaH>O&*fmrNH6Z~8pydiy7_#jqIn*gGuZ7^c;ek! z*f6XJ>aR?Qrs<+Y6KbJ#M8-rl^qQ}llJ>+8<<0qPBtf#^ZRK>*(7f;R=KT}E*fAsYF}8hF*xj`JL=Lz zc#2wfp&?A(Nt9>l0A!!d^V0)r=WuzlDWo^RTRy95E8pD-=1jR_ul44+iit3;-P)$C z1=y*SYWLR*r=`_*9fGdid|ExmwY(<|)bL+SJVFG5*S-()7Ob8luCcK2`xn6=*XT1+ zH*T4N@J0;}EsfRrIDku)!+*ncg%H$hs?RE3%O~qGt%wjQ!+9@BI&D-`EBiLFvE`OZ zyl)LsHk~r^;&V))VoCJkd(B06toNkD_=1c4xHmN+Q^#a;v3$&!mUhD;rO)nSf4{%} zDA5YGQbs9D&-%htI`W=4Ny_03p&Mj>+jX}nbKnN|G;u9Cs2v*jb8YvvXzDL4}R&>JLSrwCG zsA~zT`Nmu%rL`dr`@7RJ)4rk0zSf&X;}=Z$?C7roJ1fT1ie~;ZpTrH4(*4?Sa4kDT zCql}SCxAbtM4-1?CAR9;c5UoU@aM?O2zbH?T>2&t(ZIc4+QcjMh0qG1m~v&l-z)Av z_e$Oa5}P6ygOtUZ^tuXacjne2!q=@df(3%Lkt)nj1AXIma`G4s$@x4iiYas832Rl4 z^{y4xe^3A~8A+t^wEDx=9OPsw!&isK_RE~(_rrq6^Nf2D=XWJMG)#RocA^-k+h@Wl zNGgiD2k;;^;x5q-8!3ZHmV8O!6su^rhr(YzSztRYE`{=#w}g zYk$ZflYsDV&FTxnOFQ;>{Y4L`pHS9XjoXGc*G+^;L?9@6KYo{7WLRTW3S8IV{%0N= zZ*{?%ospZXtN|`*B}x9B zYK1}p`YZtGbNi>qH`WnWMH;3uM4y726zLzxH<|{k|x`~ohY+GZB z6%5JjM=t!KC$XFadXi<~9;34Pyi(hrBN=5Z<;}35|3U35<+<4+!7|*JZ{Tt)z%xA2 zqwg)vZ^B+3fW$!42;*c#I0@C{78(LA13enF*J|IvR;lA!R<(5}slv{26o2!@7#G4} zTrvx#70Bp6%nOGxh#WpODKEqqcX<%6a^%52rSUyWkyuBb*uCAZrh&ANdY8


MiaE->EZ)+?H0*qcNS2)8T*{&dgvr4MaG~FCCyCm7uP_x+XPZnFF;F?wY(En7e}c*CpzXjb@%YC5ZFf` z{CuhSk&}K~^=~`%H?X5KR_p|#_JM#dw?Z@$KNb?r$FOia;%zkgC zpXMsJ5!49A-IzkFL!Qmx4#T+0ZO@g5H~C(I9hXEDvg)5}jLO=BS7z@wCNA~;;rTeZ z=uk~FT!d-9QIfL?SSQ+%KbBXS>saOpb*7C$!~Mom8aSe_{Ib_-!=x^K;^fP2a8SNm zK8|mekDkVq?7HjmN+b%ZTyO(KJo#fClkNB7s&4BzXsj6M&=AT{sa#S;(u7 zB~ltKy_~VN69j0n?Yvjp)*S}IPUlUZUC7AJt`88lY2EY7sZH%RW6tadcm)f{_9AelQ&V}Zq{-+&L5JjO zTNyJ)?b!Nwh;2T@gykzfjrkrv2?kP>CuY7`zx^gwhNFblU*LaAiqe)ddL`2_HY2^RV5HA2EFnsT&+gU8t=?Q zTyF1qlnV1MSNep(Odo8(^Px^g5+;rbss+9ubPEe#lp`8{o6GuOAi=*)vr4sH-$w9X zTriDAs?MaUbUJ@NXY80z$^FoM9SLO$D0=u2J)t-XRZ~`Bpf$uW z@e)o2@b%${qYde-W_G>SYkhOF+zViUk(!hf_&n-~B${(gcm*y(HsZ6+4s5K{Iy#k= zLyH1obOOQ@sZF{QF0=}*6FuB!x|7YQ%!=HPp%#ZZq>cTC0CRnrzG)P4WyrH*YveYd zCV~uiL+OM#J;77~8Df{|adLP?nnl9#BI}RT69vG`5kfD@lawwH-MUpp(q$w(fdO(J zh}W4X2xA?DXz&x&{>v(DnJ$!qe1LgJg4pcqKS&wTl=YFK-8T{{XJBtpABDZq9IP(d zE00DS5P`JDcb3q&kz}r75%xkPjkSUVhE{ii4nhtXG1nKPfHc7B2Tg;znnMppgMfsy zP6)V@1nY>6ODAt;b(6aRe=UIz1=3gCQXZX~ejxcY>wVr>or|SXZW-I1Z6^G|?@hOk_1~3WrcmSAS?6DtETwoRg)gmO~@}m zyv@Ty9RDrKOCbVRAdU*d*;ZwKbCm7cSL}U8`kQeMSPH@^O@($919&HT>}#ph$6vqg z!a_3zi4q>d3|UgZm83Xzc;VM)O~0**_eS7@%IwXmGyZ<~m%DQBzW-(wl755^C}WCY z&?cbdw3_HyS^zhIb~*9!@ViGCOuygv*Z+q^<5%bLKe>Ug9@y7EBhdLFjPSQS1kekR z1$ub=&*|WI|GzPGLLW&{0gERqB3QG1N|8wW@IVLB! z&mN)w9a?%kLnulTr;bp_A!`#kkY!hDjnu3_HtmGOVo7%dggU&j2pMeH1%)WJ)q1fd=~6JaA=cz2M`^C!X2LCQ&%CI^6g@0I)zHH=Ww{0=t#)DJ2zf`l+a^|c?7abVsICN@tr zOpsIkW2~|uwY%rf2qc5{tM*{w)4g0^T|OCr0+SWqgB4z(1H;{Ezy0Z$D=4R`3iSHk z#PYb)F_OO)1<;1{q2z_TVc>mJII~IR7}QJ0BcudDM;`bRKjL*QrN16<|-Al>|r! zcFtcwK}n$POVLFeoA_sE8D)A_^)XAP5Lj6af_x5a~@oKx#mG z4Jv|kJV=o)U8IRq$NOr+_gR5bH4X`@9+1{{p+3gow=DgGt8K? zv-etSuk}37r##>1i;ik<9Yz2S+(^`?M>l8Ro5QopLB7Se1e$kF&c8Gi?5j&8n{F`y zKW|@9aKB1+^vohfTI^-d?M(ODLS>I33aG(}@Kns&Zy7>$wghS*pu9`pI=R+Rgc5}3 z9$jbzVOH+!J7eLQYM-XBE&n;9-dSD{b$=C(HuD|{C>wccEd5>%)P{ztD%TtJ4tzoL0h)ime^Wnjv=-ud`U0qE2nt(8(_Mc5KI9cpw{J)GVsKZ>6siJh|T`fic z2H*6067X0478nB(vXO~ZP_!j_rY?0xT8@LloByOO*n1MNX@HA>yjIUPo$3h`z6G^L z0OndwgLz>rVck_QorUuuUHiHis4^kdc;ts^;7^VJ1V04&J9nm*!oI4W1hIr zRm&!;PDec(cZStXg{JiDfi5u_Fd#Z$LY0B3JsSi~im9z+<0NKgf&vfZXluC!sN{n!6>o}~kKH@o-C8r(|dJd{P(RngV5GFy1NC~P7Y#0bM7Xs&Z{hTjy*1L zfGCXyT)W1{X{Xtvh;o}zLy6KfWC3d0Q@(;Dhi@oOR15FFE>{ZD7^JeHSZ2I)@E-^N zq@MfTufg_T(*+J7VRCF|(P;Qf<1LPoNnm|y;hVP7>##Lb-uxUeNdj#l3VO|E9mr3+ z0w+K^;f7yXjs}7n^BvPP9Z`x;01u6aR?a)jl=!0)^bQ>Q_Z}b6mVa? z#FL5g-K}S@O92C{2H#mS`O+A;%*p}?RsOp63GgPH%_>6jmsLlL&re_C&(fGB$~=}g z?Es6SbYl9tQRwAA-dj{@9J58KSc_XH(;rpeE3px{kwk&aT(Vf85kUV%F@p}o7kEf~ z(4Z+q@359qi3R0t|G)#eVzIS)yZ($Io+?1m`Ax}zfL~FCRj_?dzS9T@1<0=csyoKM zAdfGSFJ#4fje8_X`AC+(RaBzcE4hOW*K=Sl5HH+GQumiAM#Gi(k8b)xfBqSsdDBh@ zD$Zr;{_8#f$0bMh8|XLS7pS;)m`wphUD3zBgWTN=*8?c~v5Owg(ssZQYvxB{z8v+H-0ZZ%+ zd9h7d6zYeTfCZ6B1(H{|3V`jKE7n{xF1`DEN7zlZebXQn0W8kXO|2Th83#(FRR#T+ z^*)w^gAIqg0ksr^Vk6{WU(=aJ%)3f?&fKPRT{-s?FFRG<6`|Nxip0;p`Toae#?RvX zbCnlcdCshcP;7!-CHQF%g}8DtJfvqpKjq@Wi;q3!dhIOUL2g{0Mc+qcmg$a|c{cQ~ z-7HYzTV$T|(DU~6)Kk#Y3S9Oz{#f_sL{FH%EI3=R#0|j9(Z5CpuGXW>5s{Wkkrx=e z0hmx-5UFj#m??+xOo;epx@$6fDUpwc{Uj z0j{M_d~W{%lr@FV>a%$?9PBPPlBA>ygE1hWGU-VS@(THu0ZL4eHRw1v?~~F4*1LH4 zYdEZ`7G9rHTv&(}J>XG+D}sb`9O4H+oKPOTCy;vega1QvIU<+0dC2Ea zR#>YGKSVEYWQQT3qFY`jT1%M#mD0A;wpVGyFCTJf)!e?Tb5>QENpRyPBeaY*HIz&9 zE%uiT5G}eAn?C^yVDh*IYgksv3t$RRi??o%VC5;#`}%3Yx1Q5yKzHcT3HYe!Xa2r#<_(Fz{2-yfpOx&E>xexd26&mofnq=d13} zEI5$A!XFp^q#F)R{S}^lIU<d*~8y`I?$T~ZlEH_Y(>8VpFhxe_JW z_YK-WoWM=%AE!YaD;x;=#}6n_AC+6!6q@jKkVYZtqhpmIvwfBlTKG*bV~ z6VcEx{h$1dG;8T(on$J~!@XutEewqJHmk7o7F>wLJ)3N%O~lk7=3{RVvv(1x6xR;^N=8 z|8Vo^H+b`QwA22a8R5mO08wjUR$)6^b$nF;WmYS!IB{(v2TY4@cY|hQrIM1PdH?#G z4fbd7z@fpFu-N8IWW%$eI#K*2>frOH%mi%LG5$p$b^Kg;Z6cMrXHk{*d5j8va4ZZ$ zm_^N-WKDn;6KKUA3Df1Drv(^mDBbXLtL&pH=7vob*1j@M;|d>>$e-$$f z2Y{-ofGN^5;A4-Q@2Ld)`bwP2$*zMgr5zyxl<-C^A)(wEfTb6KAdB*TJDTm9X>zG) z{dFL?jE$~2KYG6;)lj{nESZ}Q06?5)v~$A4xsQi)tv70vIa8OqWrS9)XKoF#`jgwW z5*0!zX)9A{9Gt|1q*2=*#j(Uma!c4Djfi05E(s6ATv`O&Z>6`JcR0JVveJ4tjH_ey z*i5YfEOk@GkL_5Y4M_=_lrvN1AbP(=iKVV7*=FtzgWkfhX5UO!HIBT$xd5UXA-+H= z^^OOqOvm{Srue)TQfrygA6qXl6}F3K zOt!gE@-50-j*PGS9;^?_bU2M?1O)+vb$gx_*$Y48)y-zvv! zK={EpNOpf5p8<90Dprq3^O1G5Ko&cy=dJzYgtWn+tWUwB@&YZ)DsqgQSI9 zAK)ZA_~`RyhL5wzmPwBx%~Jk{J*FN5ss!Q<$I-TC5|Qmu>O+Mu(MdoKc1BYl4)0cP8IFgdt_-zVO*UJs;Br|pch_gjd^kt4`A=khO&qi*{4g)kKE4+t%b zB?^sF4Pi3-L1d2XEtF|<-B!AF>bd;WqnT;aGL$(cjVgh1-{P&*=sAUhau&N+Y4H0&yiy@M;gNMm<**IEne;LUqAZH{E2PqZ}ZUp zJOKmQPK!&<0?pnNKP*tb243H-iFVY@vGwzVSG=z|YD!x1VK=b9?uOWPw;0yjIM#TY z)u8GL=}tRgSSmzQ*dZv2m zkw%kF-EJ)CiK|+yA`W<^< zso5Dc;&Pty6IL#U9h8(kN9pf}Z|KyxEw8?#bO~W!(BYO25(nI^N;ZZ!<#Ei~smf|x z+No>3IO{R|!86rGsR0e!ke31r$z{}it;|%j?LYl_I=d&TCFe(WnFOj+A zF0CW7I*(P#Q~C(RC&Yl6|V2sx{Jy|=z?0dy&PH}Ha#H1Otk0Nd5AnC(JUNK_SO&M!L)&kBF%Z#^7(R2mM{cgEs$MFD zU4c5XsJdh)Rz}z{!BGb>`V58ll%1{4IV+1Y*-h^BeiL#WqA}46KX1Topz9l4d|#OW z13T{U6&wE9C)@%N6u1%bWq-h9p#)!hH)Mv8QsB}=3{GW;$le)m2ty`*Tvb#U>4QQ; z4rJG9?NmU)m(OBreI;E1(&`nE2)V%fn*!z}GrP)A2fNIzupoeAEhd+haD$Wb@Qyi1 z1)NdyAnTT&8f|pNJZ1Q#$qVgPP(0Rlm$9()!7C%`KIT%o3N;XJNkJ@V78H@I7+&Tf z33pGKBq{BglQPAEaz-SL=za{E=UliP-_ND6T}>`fK=F)TpWErtz(0R8ZysQ+BJXpS z8Xfm2J{SYe5xJn(4BNM)DKq-zhW#RA;@L+({Qyyl$>!>)eypp+EgQy2V@8*Rt?g0g zx9vncs#4GDd9#Pn25LTU%-Za#-;K!g2AkSmGx5b$zCH3NO2nyJGOPA7xe>KvZZ~$R zg`a)T$)6u9iI z6423LTIoQH&mEA|b+d>Re~583TY)j(jWi#amN9(7Ay_eX;^|s#uQ!@QQGztWadop& z3s+zu4yH38S}=?Br6--X-TMT8k(Df=a5?Fj5_~pC-$x{d%RcVLK{~0IqjQD>BiVhk z%k9>o?j3wiudhE$>y5p#DDmS)YG#0KfH`C8&bMAqf<1frgxrOT?BHFtn5o-)bLZ6S z69yhG7h1$bhTyIh#m75ZNno_lwx2%D&csQn@|Wg@X_ zyHx)!E)`!WI{vbtx%oR~t%7tAIZItmpw2Du%D#O)p*-M{3DVEgKLaZE*eMg>pip!( zj_3ty9kuu>w0OZxsfnzpnZ>X`uJla?fNDq~pR#D@ybNc1B>!g<@@2Xx)+^yrJZbDb zeb3;FT{Hi%&Zy6~^@v8~Tc{e=tOwK#(koq7r`=wBa|ZIWkG1e;{hMue_mxF)VtOM2 zk2Y%(mRPlgm(ztqA87gyT{&@YzX**c{f&Ra3~aV28;v%Ru& zHC`c6fZej4;XGSGxUw~8O9bI6;iZ$-nWC$GCZm#Al*lFr`&8w`2c}R39L|^BQ*A;PzZ^e$T}i|x`O3%$W9DS-eZ?oi1C zC8ls5*VVlkbmsk*Vx@q(rV5D|37P#Do?dJH>dhJS!&Zeu0pD;>BqmZq*Z$rmQx|9v zfT38zGwlaz<&OQe0O270`k(_5nDvQ{ja~!?rgNP9ReK1PlQ*9c5eKW2<3JW=a>>s; z5?!E~I(lI8-m2U&XAM%aC{h2=xb{JNIRF$4TI{W}Ozw$}-lSywvz-pSI&Z&lDRfUb zb*=%0=UV!-^l~{=h-7}bQNpF>wJx;WotdGIFl{L99(+Qy?yMWg~O~ogtOOrS-8@idhPnMCW zUvI>!@4#5@*9IGhlyLBXkVy-a#IyKmZ=@vO__c z?#w#uP=&)`t;fi#=D3YO0n=oPSdtj8-tRZT?@Q0fIa?`0v?$Mu^_q)x@uB_MGBu_l zYwO~MjKq{?STj=nS8f;V`rBY*POncJ{&|;}&a{8dn9PsV`EU%mvGpA$(HH^ei%QcBq3g zZ^hBKN3=Nj+M<8HI=m?;a%<>26pyHD!CJlk+Iqm=SOY}W`dopvAbwA5P823suAmOk zRLs(NNg0p4SM|ICR6{L@#0@KMeCV%!ZKZ0>tQ{HmxVdizRdG!y+eIbd_^0SqZ<)6F z|0!q5J$;W;Km5Weo|{1=Sv7Xpegsk7Oi+$t>24PGkL-Ih|{_-?OXO&`!B5FLYHp zQbg59#80+yXYs~39OZSt^K)eTdTf_?-GIrH@~tHLBSX$PU9c-z(h?y39V^II@2UKQ z{!ULQ!RZDYabn1AWp78A&r_6LaoZd{bzPlBTf<*MBw|W#W05zYo>HmsYaK_B@zd>T zugT=~zmUwWGT#xztPomu;G>S-GLy+7`JD+8J((lN_&dLeG9L=YK$bsKu&mVv-d$A;~u=^yE@PZqX+&hb5eEtD@1z=DFCHT=2K z94+?oVgKwS@9vzpk2Th8i*vIflD~5$deMz{&qW3+yFKr?%=`*FlqU)Fy+ns2=Ob>H zxX>aN?5}z+is86wgE5si{9E;`&uRC_D*<@w+cyTk*$k69w}*!u^zaJ%qA3v{4Tk#P zPCZnSdt%Fb+~lAUH{Q3mh~tgEu*V8-oZ(Y?P9=PE#Bq{?jhz}N{bG+-Xl1+r+G#@Z z6i8w&XGw?W(IPl_s~#{`rD?IN)Fy_Tcd1cQ12%Rq3E*HqXc6W})6rvB!^Zj>n5MWs z&O^b4=ZZ)Xm$tw4tUk!{X=v2)z&QidVb+}5kVP3iUp5A!1q7z#A6{X3F67JN6>cK=?Om4*f* z;oR+ThT$h~My83(S(i=n8Lq3IlF_q7fK0<9goAEa?c|K%Iq`Z+{E^{Re@htAlKDv# zzQX0^>RcXACNnZ-*2)mW(I?K%{~=k>FTT6|N61=j9%?y3bkro?^4U>Vuwoda@Hc{L zueS422ZN1Q_yGH~mn>B9omD%vZHaz3d;W7Zd$Zji=HwSA{s=baR;LcNM>-^79~^oP zX2!A7X^7}!*XFMpyj6fQPv!AzpYHx_ychVrQ(k_KMZ0GO4hG5ENlGOkCSj!5z?%_% z6GJl$5zZzS^E1_(?$Q@jb@y6cT6?bFH8hCPTGf&}h4Si?AO`=7bq>?<*j%e$STU_zH z>erI;4cvi&vMAql)l~*P5$2L^v#kZn45zmIP7D&IN_X_=4JkrGY!jXnC!R#lho?-s z=J*DS;SZLa{3j1N)b6*YG#_%X?^3z5hHa{?sYTTq?Ua3+TS;`{qD;3mOsw&#+-n4A!O5`C-_06dAJZ!}e?d-Lz&m;qJZC zb5qq__y0La7^Y$u6dXGHknB|ExKEN6bRCbG6&=^>7xx;yi1t#j&EQ0h!)oAB1{(FR z0j;Uu_Y@~u#0L#B>7v(kEN*qDxdQjXe%t;Q_(r6`HKvKE{JUa-_2?w$F5H1x|MT{Y zpM(4gs8qUpE(fzq9ho0ODSlgu=!;qUBH+xSq~_o5jpUtZ+*ew|bRKdzVcX-Xsc#WG#7YmvB?jCde7-c zscHXSGN%vjwaW3qa3jxg9OmK%jBX=W_*}+r7J07ucYb&3XD8|ifygY>wB(b8!!^#Oq=2U#|o z*Y#Q7KCFGc?LX8{(Z7DnA%v$mpRzw=XM^?HBl*V&X0aie=GH&n&$;_tFfeOVOe|1E z+4-K-vBEc!e~6ELWseT9y2%u|zon@`F|N6Nba>DibXM+jCTdtuY2Ymk8$|!9Zq}3^ zc4(gxv;Ow|b}|5(C<=DpucFGDfdwIEXabl>2$&OPvb=s{DO8|APd|gz(7Wdh)Jb0X z_;64DH0hhips*aOth4a%y(7!A`Y{<8iu|rnUL#a2;nQvvY*EFUD?V-!D}7HjxLV3T zV|n>eDh?4izp5Wxa`jmP>3l+HjUNa*>?%wHNK9JqkLFyXsLr=9H8U2fx?ZRSWsI_+ zvK=4TpRj>OlPdU5*Y4#L2C8ww?8t#=y~0meZ>sH?^$7e0o|w-ZA|`cKj$XTFJ&sH= zsgcBS(JVu|z|loSsRJt96|;V-);pkcb1PYh^p0b-ddc0~tg_Z}ak^!C*w4~YHgVp-Bhq(IG7g5NC39kPp~X6BUJ1Q9G%q#a(1J)F@-nNwPi8xI{~?UG6{jxj>%1dtpdMJSX&bx zK#8CRRbBL8n?+eP=5EODbyeG_)G12BRXRP^c5)`Yt?EXGK{9V_S!L~FJZLPo^CQEb zYp*iK)ppHaU0XZ|#c&a~wGzgIwG45&a6UdLXgn@zEpXa9CXhga@16Hw-bXGg9a5vN z!uvs?>Sqf5@SV-Jq<;4?)=2fH4EmmR-d(E&EIS*_iHVYE3(^mt~psxo0e*2{w~ z!CL8U;3dC%0bWxb`dUd9yzA&wsHM`Fomfg^9?!;HXF{y>ssqod3l9_NHzRuf#y~p8 zphXR{_kCOJveO~ctV7wi0E*|8Q`BFl8k_O+O4J=EAS}zkcRD3cVz z*tq|`sChlY?Y!F$yh12j;ETRaM9?xrfNEX-iu;AAM3?K#epgbjjcQ)K69i@>+q*#% z+W?zk=ID9t0O|@gUpsBl6r2R!LT@vM?PXQ<(KeTCb)?cw=dxhTMVXXfG^DV5pE#EQ-4;pPU#*TyR>F3SpU}IY< zs48$+`zjNFW|x!P9|XW^&ZG4w`k+C1w{^FLVO%JQF`p`!l&Pvty2Ds_;ZI%pyR>EL~)CH#jrTy@~n{}PkFgS(N}H&n!_EZGy7GAyd7qx zOn5J!gs_OrC~63Ngt5jxKkP6tG#T-%?%NY1ElaB3Zkkh{e5%Ilpn>I48>X-=?qwpc zLQcDOhz<7s>&XgqJNG(;Jd_0#7gK(rI*FN>Q?Ajp{b}M>AXlYuN|%}#!e zg>T)KCiME|wW_Ia6OveOk2iVOSZO7y+MhT6O~~qQ{~QT4Y61R*TEXxC3DyBRVy)Bc zbMR^fs$w4(*k8M{<-fWMon~;~MXpkF?+fn}Pj*Tdo>37#Xur83f566HU@DPSQ~rQX zq_qcgxLJJKZK+j^yDF ze%=JqsCOi<(omdqj?zCojDMYMt!K4Uon{A~aWoe52IA#(0I2%~im_elAX zaj=nLPy;dP{v|T10A2VU3IA1`11!`KbVCof>0Q{gT3oY=vK$o_CXwq&s2zSA`Zab zzo67(Q}KZYiW{}%c9I!8;{LOx(c_JdwRWjB1c$9$5(b-E)d=6WB&p*woE5GBmcdi# zJ*0UW^-l!wU$6!K53%+CmmvKAFa8X5W&6V+zyP|;dMW0eXUs>FTB82PFR~GVWqpdr zp}F*AC}esGbU8K<=c0H5n0p}R8woX7W6;lydZ2%S<|07rr$JnIIRwxl9_vhV7|nC+ zwmI?@Yd_^~S2VEW`%V6n1N@LLp-fzrO53lMo+m(-K;SxnQ-s~1rSXRf?psrA6?c2Vn2(OId2V#FBBr+LB@#R(Em-axBD6QughRU`xSFAnaS0NRxbAT&CeV$Mn-KRh=3~V53bGD#-9mt@ z(sf+_O&}Xps|HZsC@S^sB1GE(*5sZ!yXL_6q~9FC>P~<*~ia989o=}f5xe(^?C!iNI!G} zs*a9&9Od!QUZ$i4?G_g{MgPqOSR4leX!I@?nB^>zJea*2|9o{qO#}^o7@sl^Xnly= zG(Tj1C;H%bgZ-dM0ny{{^sF_z4JB|fk-lXb2DRty3>cUhhxB{QQx(+#Kn-<`>0LU2 zvI*z{txUz~stuy=7uusy4Ed}|Gr+2(LWkxD`~P;~Fuow4Wf(KPKM3KgfB>mRX_ZWYf_M{Ao$Qsw}qWG&~g zc>aIRt;DbmuN3s!IP`l1l64~ea11bAC*e`R55^X97zd=b2?!iaAcC%#Lt;R$UupWH z>k{F-@zqm>fnfN{_M#x?E2Qb~l~F&JvND@w;ljj!oaQw|-1+^{jt$1dee+k42WB`9 z{qDd(88NrBVyA>%BLgtr24b~gEk9RtLsSFMBR2&It&6QQ7@`t1@uk2Ds96D?9*hC? z^(sJ8Ms6afi7a;Cfw=0j$ zE0XJDGJ4j7F)xqujvaqDaz*p7L;YBm7_gJnhdKL-i;1mKfx~YR)1lyI2vzz085YQr zzPOJ2aUqLU$wLg7Q96Y+^Z~JJ#*jME213Xok~Jv+vazRZL3qtpEpQBRdD4Ri8TRsg0;nQ<3Cn)8z4VoRlL;d0asVJV1FPsXgH(H z>D~_@XSM^DXJu(hL{-8Ml~c}C(L46Or)AeJ!M z*@a{h2j&AaTr^P)=B)qRx~j7C+a^GMB?Rlg2a3CoBk~xq+~c5*gp`r;pakGUgkMU| z_tBMmWt$278%)a6Jx7hk0l`V$ym76A3%h}H>*V3tfb6&k=##R429L&NF+Yj?Wg5^2 z+W(FD5rA78C-eDbR_(||XbINjhx1Obi5SKafIwvn1MSm5nNz|OCqI{L?Zim43C`=k zhV}RSvnWK((pI_5R%PxxK{8V24fQzDQ?F((;b6d{lm{LeHx|PqFEO zkbs6bDgi4G#sDL;N?@;wm3VB|9 z<2OTLK@;36-~_%*zzq&UhR)T}FMbmf|N5EV`^B{uhu`eTL^c&mX;x&ms73QFXiY;+ z3e`5$%AtwvgQ#Gj^6C61UNrPtG!X$*^P_gOU$Xw^75o?d@84Jc9e(`%Kmy<`h1h}r z_n-goumJAW{|}Y}V*zN;HN^ol|{@MDm}e5c#+0|t)&S?e^2Is zPuu%t!--+DrEAb1uc2rSdQljYq|y@E`EMkr4TfH0G8dO!)cm8V&gjrzU(=X80{s!k z@>dGP6sm3{t9g$}u%Ht9@()yH>P45tVCb?d8oZMkF zZzPb_kLwwjB>>H$+cFDpDMlXXcx#ICK&&uI{ zVK5RnsPyjerK`uec5>7`1BjnIdfkCHo#8tsE>XWXLxXXguUVrV<}=|z#a}Pi;Gf^> z*4U#$4$P3Vi%OMZ^HwPgfr3wL7kmJy2O5)<(^jo(6ru+4PSb(?2arV$$&pGgLp^}1 zfU#DEC!HF<6ES_O^M&ntr`vvH%MW(|O@n130I>OAc?T zs~>G3aL6I22?h0dWI&><2&bpxl{N^mm>i!wZsOU@i@^Djd%(v;@50&ZBQVY*w1@){ z!_QfyX6~U!vsGWaZpt13^6SYnFOQi^#4!_s1%D z*rl?m!bZB`VKbI`u*;#rl!3myUBK7<>0tx!PmO}fvg&C|*q05Ct{Ffg6%+UqTzTcD z)&%MB(H1zI9ABi_xXlbd$SJrgG*&( z(7V^n$UB!nD{0%i;1ig9$RTro#ZG+-Fxgt&<1Ho;|DL7C-XB+?|55_1r0T4as|@^| zLQ01giS_fmTu}|Lj{(8Q+q=7p3YR-?%Vk{rv<|W-gjV5n*Az(l(GTc?A1X($$s_`V zxd^h^{SN6=f7{0K`uzEF6j&;y%lij)09tbuySWeO74F$f1x7uaE4&IBoY6vRIX}%x z#6TH&E3OTS$Nd7c59kj$SPRsA9k_Lq8`T9RzH+vD;m#s1MNr-`4#ZY*kac`1p&EP3 z2D<<$Ss>qCL~Ppu`zg}!xOzjl<+Ggmyt=g@2qG#&6@~U*IZ@a?-&wlGY;-35*M@P1!P3thIawp;dH9qWugZ- z3Y$<&0)mD`b*4M)8PQKJg%)*_v6t6wRxnE7A+t`5_cC`a;QUBFl-UVGtYSb;SiIT* za*|5mC)L37XyjENOM zi_qNcKItd9RO#Vs1sACT(%hKE&C3O=ocRsK4k(_Viab5%@M6t&0rrh zLwDtp6bAQVK;OK^InjP_jt6!7Aj3@&?VNeJ*xMT4YY|&>+Y^*po(O@oEPFZwSid)F zj001qoY4R`3ICR3Le1&%QlqMT&sK_iCdG7CniD$( z89-v5nog)u4~W#}O@#~J&O|@dR2A^3cquA6kjy3%`?x*WIKX8*?)=(Qoe7TH)&@oj zr)@xfABeO||E1^jxd{YL`;)JL0?rrp7ZgjUb^Lkp0S9S!k=e(3K^)&Fv&~=h5K66UBUYUJrQDn}4~tJe zm?-SeW2&zRm~?r2H@qNvU~CI$9K4*^p@0HU92X8qs8R3`9yp<_BlUCigG|c@W{>-< zu$DG&(LS)iNTG{rUE(8VKy^ag$!LEJh(||?BQN=JT_JH?%F16|LZ4qwGM{&w41FLX znc^pT=R|v;Twq}#2S+sUeDY?}ogBHCHR_RhE!3mo$VN7q2MrF^PmjIZVFnX+J+GVx z=H4}X-%8USEz@C}4(Bae3YZ7_Nd3th&sud0TBp=L9j9e~J@!uTat*=jL}7Hzcc}eL z*$P6m%sIjt-%b&=2mGyH1r4u10mC~Qz zrpx3`sFKm69&xmzVL#U*qCK$YNXPmRZqJst-J*R+Vby8ia~!}hHnwf(UtsFklx zFN{3Xeq(4#-*yoVsmQ#tiQe=uuvDS9gro9ofO&tqaDT3k{1KD z%)P5(P*G3?d{~OMb}IPtB4`mli%vovUQa+qEV`1+H#u5
|Sb+8}jhj7|=l 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 diff --git a/website/docs/user-group-role/access-control/manage_permissions.md b/website/docs/user-group-role/access-control/manage_permissions.md index 49d6c05bcb..4aa701c132 100644 --- a/website/docs/user-group-role/access-control/manage_permissions.md +++ b/website/docs/user-group-role/access-control/manage_permissions.md @@ -32,9 +32,9 @@ To view _object_ permissions for a specific user or role: \_These instructions apply to all objects that **do not** have a detail page.\_\_ -1. Go to the Admin interface and navigate to **Flows and Stages -> Stagess**. -2. On the row for the specific stage whose permissions you want to view, click the lock icon. -3. On the **Update Permissions** tab, you can view the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. +1. Go to the Admin interface and navigate to **Flows and Stages -> Stages**. +2. On the row for the specific stage whose permissions you want to view, click the **lock icon**. +3. On the **Update Permissions** window, you can view the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. ## Manage permissions @@ -48,21 +48,25 @@ To assign or remove _object_ permissions for a specific user: 2. Select a specific user by clicking on the user's name. 3. Click the **Permissions** tab at the top of the page. 4. To assign or remove permissions that another _user_ has on this specific user: - 1. Click the **User Object Permissions** tab, click **Assign to new user**. + 1. Click the **User Object Permissions** tab, and then click **Assign to new user**. 2. In the **User** drop-down, select the user object. 3. Use the toggles to set which permissions on that selected user object you want to grant to (or remove from) the specific user. 4. Click **Assign** to save your settings and close the modal. 5. To assign or remove permissions that another _role_ has on this specific user: - Click the **Role Object Permissions** tab, click **Assign to new role**. 2. In the **User** drop-down, select the user object. 3. Use the toggles to set which permissions you want to grant to (or remove from) the selected role. 4. Click **Assign** to save your settings and close the modal. + 1. Click the **Role Object Permissions** tab, and then click **Assign to new role**. + 2. In the **User** drop-down, select the user object. + 3. Use the toggles to set which permissions you want to grant to (or remove from) the selected role. + 4. Click **Assign** to save your settings and close the modal. To assign or remove _global_ permissions for a user: 1. Go to the Admin interface and navigate to **Directory -> Users**. 2. Select a specific user the clicking on the user's name. -3. Click the **Assigned Permissions** tab at the top of the page (to the right of the **Permissions** tab). -4. In the **Assigned Global Permissions** area, click **Assign Permission**. -5. In the **Assign permissions to user** modal, click the plus sign (**+**) and then click the checkbox beside each permission that you want to assign to the user. To remove permissions, deselect the checkbox. -6. Click **Add**, and then click **Assign** to save your changes and close the modal. +3. Click the **Permissions** tab at the top of the page. +4. Click **Assigned Global Permissions** to the left. +5. In the **Assign permissions** area, click **Assign Permission**. +6. In the **Assign permission to user** modal box, click the plus sign (**+**) and then click the checkbox beside each permission that you want to assign to the user. To remove permissions, deselect the checkbox. +7. Click **Add**, and then click **Assign** to save your changes and close the modal. ### Assign or remove permissions on a specific group @@ -74,15 +78,18 @@ Also there are no global permissions for groups. To assign or remove _object_ permissions on a specific group by users and roles: 1. Go to the Admin interface and navigate to **Directory -> Groups**. -2. Select a specific group by clicking the the group's name. +2. Select a specific group by clicking the group's name. 3. Click the **Permissions** tab at the top of the page. To assign or remove permissions that another _user_ has on this specific group: - 1. Click the **User Object Permissions** tab, click **Assign to new user**. + 1. Click **User Object Permissions** to the left, and then click **Assign to new user**. 2. In the **User** drop-down, select the user object. 3. Use the toggles to set which permissions on that selected group you want to grant to (or remove from) the specific user. 4. Click **Assign** to save your settings and close the modal. 4. To assign or remove permissions that another _role_ has on this specific group: - Click the **Role Object Permissions** tab, click **Assign to new role**. 2. In the **Role** drop-down, select the role. 3. Use the toggles to set which permissions you want to grant to (or remove from ) the selected role. 4. Click **Assign** to save your settings and close the modal. + 1. Click **Role Object Permissions** to the left, and then click **Assign to new role**. + 2. In the **Role** drop-down, select the role. + 3. Use the toggles to set which permissions you want to grant to (or remove from ) the selected role. + 4. Click **Assign** to save your settings and close the modal. ### Assign or remove permissions for a specific role @@ -91,16 +98,23 @@ To assign or remove _object_ permissions for a specific role: 1. Go to the Admin interface and navigate to **Directory -> Roles**. 2. Select a specific role the clicking on the role's name. 3. Click the **Permissions** tab at the top of the page. - To assign or remove permissions that another _user_ has on this specific role: 1. Click the **User Object Permissions** tab, click **Assign to new user**. 2. In the **User** drop-down, select the user object. 3. Use the toggles to set which permissions on that role you want to grant to (or remove from) the selected user. 4. Click **Assign** to save your settings and close the modal. + To assign or remove permissions that another _user_ has on this specific role: + 1. Click **User Object Permissions** to the left, and then click **Assign to new user**. + 2. In the **User** drop-down, select the user object. + 3. Use the toggles to set which permissions on that role you want to grant to (or remove from) the selected user. + 4. Click **Assign** to save your settings and close the modal. 4. To assign or remove permissions that another _role_ has on this specific group: - Click the **Role Object Permissions** tab, click **Assign to new role**. 2. In the **Role** drop-down, select the role. 3. Use the toggles to set which permissions you want to grant to (or remove from) the selected role. 4. Click **Assign** to save your settings and close the modal. + 1. Click **Role Object Permissions** to the left, and then click **Assign to new role**. + 2. In the **Role** drop-down, select the role. + 3. Use the toggles to set which permissions you want to grant to (or remove from) the selected role. + 4. Click **Assign** to save your settings and close the modal. To assign or remove _global_ permissions for a role: 1. Go to the Admin interface and navigate to **Directory -> Roles**. 2. Select a specific role by clicking on the role's name. -3. The **Overview** tab at the top of the page displays all assigned global permissions for the role. -4. In the **Assigned Global Permissions** area, click **Assign Permission**. +3. Click the **Permissions** tab at the top of the page. +4. Click **Assigned Global Permissions** to the left, and then click **Assign Permission**. 5. In the **Assign permissions to role** modal, click the plus sign (**+**) and then click the checkbox beside each permission that you want to assign to the role. To remove permissions, deselect the checkbox. 6. Click **Assign** to save your changes and close the modal. @@ -114,5 +128,5 @@ To assign or remove _global_ permissions for a role: ### Assign or remove stage permissions 1. Go to the Admin interface and navigate to **Flows and Stages -> Stagess**. -2. On the row for the specific stage that you want to manage permissions, click the lock icon. -3. On the **Update Permissions** tab, you can add or remove the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. +2. On the row for the specific stage that you want to manage permissions, click the **lock icon**. +3. On the **Update Permissions** modal window, you can add or remove the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. diff --git a/website/docs/user-group-role/access-control/permissions.md b/website/docs/user-group-role/access-control/permissions.md index 57c0f7ae87..8393500cc1 100644 --- a/website/docs/user-group-role/access-control/permissions.md +++ b/website/docs/user-group-role/access-control/permissions.md @@ -29,16 +29,16 @@ Object permissions have two categories: - **_User_ object permissions**: defines WHO (which user) can change the **_object_** - **_Role_ object permissions**: defines which ROLE can change the **_object_** -Object permissions are assigned, as the name indicates, to an object (users, [groups](../groups/index.mdx), roles, flows, and stages), and the assigned permissions state exactly what a user or role can do TO the object (i.e. what permissions does the user or role have on that object). +Object permissions are assigned, as the name indicates, to an object ([users](../user/index.mdx), [groups](../groups/index.mdx), [roles](../roles/index.mdx), [flows](../../flow/index.md), and stages), and the assigned permissions state exactly what a user or role can do TO the object (i.e. what permissions does the user or role have on that object). -When working with object permissions, it is important to understand that when you are viewing the page for an object the permissions table shows which users or roles have permissions ON that object. Those permissions describe what those users or roles can do TO the object detailed on the page. +When working with object permissions it is important to understand that when you are viewing the page for an object, the permissions table shows which users or roles have permissions ON that specific object. Those permissions describe what those users or roles can do TO the object detailed on the page. -For example, the UI below shows a user page for the user named Peter. +For example, the Admin interface UI shown below shows a user page for the user named Peter. ![](./user-page.png) -You can see in the **User Object Permissions** table that another user, roberto, has permissions on Peter (that is, on the user object Peter). +You can see in the **User Object Permissions** table that the Admin user (`akadmin`) and one other user (roberto) has permissions on Peter (that is, on the user object named Peter). -Looking at another example, with a flow object called `default-recovery-flow` you can see that the Admin user (akadmin) has all object permissions on the flow, but roberto only has a few permissions on that flow. +Looking at another example, with a flow object called `default-recovery-flow`, you can see that the Admin user (akadmin) has all object permissions on the flow, but roberto only has a few permissions on that flow. ![](./flow-page.png) diff --git a/website/docs/user-group-role/access-control/user-page.png b/website/docs/user-group-role/access-control/user-page.png index 904062b974bd1ea575ebd66a95eaeb201ec96b6d..942ade2f73ade94bea518840ea57aa9216c522ea 100644 GIT binary patch literal 72754 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 YCvUJYzjBl%LW@y6r*byqwEkcJ1%WM=?EnA( literal 121630 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

-Wy>*SCtWU)==wzbhQj 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∾8SVU~&lkv#Si3TRH1lcC;$Q9Bj z$2Vyv(!Y|LLt)43Q(1&DQuO{7dQ3(Oi1B!0>fsT`RXiYF9jJ7oa%~=1sVvwP(y#CXq&dVVfg; z7%X<`Laf=#zCT|F5ka2#mt&J>SCzNWAQj1#F{UJO0o-Sil}DSY2k!Hi-dUltCphXB zL7rj)O#6C|R+pvmFl(?<-fS8OlvvR~?h-E}pJ6oQ!=Z>|~QI05uE`brEQI zVOr>hLCp2nXYd5@3&A0QC-j+wdmmJIpr2JbuMcGUL%$=$MSJO^fW&3B=@s^FAS(9R z_RJen4aO^MzYNGlL4P+@Gb+5_T)8h%~PN1)|%l!)6|n&o1!yD?B#u~r?j)&tyjW$>1RLm0i_Nt z)5Q`HxHfoYJrWHP@o}oLM{73M7b)&TfMSYKbnF^|%7)HyOjWsziah78hBc()i6X7* z=x_95%pC6KlK|KrJx1`tAvFlA7NplYOx6l9T?@{uvjb588{8n%uY^n`*N+PbHYCFb znRt3%Ww@G#X7T!AdEoVGym`*;4zn$**9THOD>2)fzw{Ze(qY9<8Is<5`dwz-bz9cCz;CB}^*<#OH#Vb1qB$?wfujZx*puw4ha3jA2L)q&yahLzp{b%xb z@O+APririV($24pLTq9kfVfI31HRiEUlrYNr(8%&&9c3AR!b$xcfv8#&FvDyr;G&= zbLwkc>Xv>PcXS9L0iteo8~__jtcIFkG!0_=L_s1J0r*B2;=BkA+?@|D|l8VU9o}!7Qaiw8*qi2et1Fa-3G^$TeI1EkviOpHZ zl-iv&v06XpSoES-TUT;&cZe`AaqG!ehZ)^ThIYyp%+gf*RO4X1K|V=E-$rkG_MLRS zwv6rFjS7k^_5qZ>^QyLR>etcY6`wliXH&EHQ#gZ5zxOL<39Dh6GRoAZrSt^(h?rOl zXY1BgS4Ic4oA_oi>(xPBXkK(Mlh_EoSX0n|KF-xskJOL+-n#3+!scW(3q~hV`WAlH zE%vaR8_PpjCujm?bM0W$bDIIU3jw?yyMwn4`)y#c)5vfH<3dp90NuHok)Y}6)x5y( zd0*4>b`2h-txDmiq*z#_De~Za>vRYq3W8FnlV%OaDsuv`KiawWOPje6WontxD)|lH zP|b-I)wC1LYL&u&Y=?+O`h>*qw}>pXo|e{Zw^*{|{52Ri5_4Nd%G58OhDthP3=AteRHqTx{yCAOXfuYe|;VrvD`4+si8W z$wI5sl?ojXfDU?umWL~E5j;(Ebc7xom_@Se%y~b`d%=}qJJ9$G}TvFA05@obE=Z9Q7+%V|%#cI~&lnes7! zbloE+XR<8bo)uq67B>wZ2}FZ-XOg9z0=qrQu1`*qAeeu_TJJSLWM7^-JoZhxfL}#T z_e&8h<0u?z^nc`S4$?Pju5TvVs?M*mYHpbx`NyU|0Gqx~5&&_%Dl`@M6U<;XXIi|2 zpgV8Vw{Y6)v~iUC%toPLvpjzB_{2&JttVwHy}Y5Qs=Dv8AOm#vjP2(r@SR+d@n&Tp z%E~s-N<^t$KYT-W`Gej%xRmNm-64ANN`W=z)MXR1ND}j)_pE%e4cZ4PUjbb$F&XS= zQC2n*va;z|CAG9PRVzfNod+S|UdG-o^)(e0S3S}LtO!vNX@hz|!z}dUGfSkl;SvwzAn8>dDG7 zY*Rra?-1n7w4NmAR)H&;pPM7ozS}(qYeggT=IYbzivepFlE9kE>|9AO^NrMAYy9B{ zj-_*xZfO1nIqembV=SFYH^n9~=pUEGE(LkJugdZ)DHNW6m;<=Y)kNu#p=#qg>hj@Y zteVt|{l6Af_`X+``GCdL$6KD*?%V>B8rV5OxmnE@IK3C6ZdkT}xrfXXaD0IgIY+`t z?KkZ!gh6~?Gr&~_WXknM&vUIp2A@6MB>1WBWycV;#v1Ca-CGKN zP39T?$P0MZ3vjMZ&IPwK8RUy5=``4<|2$ddX_cK^E1b)hNX`eW!hviuzrhwI?+0Zxn_~YeZgC)(`$ND+p4@};Va>hd|HBB2fzkZGt2TNyL)US z>3jw1j%_x4fw`Qvo`{eaSD-;ht^OHYY1x+S%-vbaM^evNMz}OGPV6cxs3cnL%-?bo zI!kOOx-CsY*Nc!9Tv-0x-lD-1PV(jB^Y)y)xEJqKInsl)Ju_cXExm*3U-k6QW3O5v z4Ao16HhA@eTkaEK${JtGghu5;oaCG2 z1^Z)4H@0=jv6cg6r5Y=B!UIzUm{M|V5RM^yAy<9pwlj8gkA~RHj|R)*2F~f?3$AU@r>Gw4va32G*iaq|jPCT+^@#50T2s9G;KA zt515X=8GQ-(VKzd%0|=iBZ*M=3g1lL+&Q$Nsp4j}V{ugK-dBA#3MSNAiX(WYjq}mP z+N#c}MD*~kefneB-|wynfFQh8nh!f`u0eUW_!`4?D&ONM>C~QS^+N-1@*_Cz%RV!i zX#GIwWinF?>Jo+9~kU85Yk2Go_ zhs1zC&_tTMGF_v&tkPz6B0Pu?g*T7!b?8`BfVMZ_m($P4&uK4Dcd}<^NqT*c}JOj z%d9s6vQrjyyVG$+uY5{C<0PvF#NI8}GU18>nCwdZbFgXMTRZ2;Zs;-lmKHAX@D(f( zhP4hA?hSyh`qRvgKAM4svH(v}C5k?H;E(%03IPjX=|db)D36M@<96F`g$kHmlUX6N z-&Fl9JX{U-N#_s+6u91hdZ$O+T2n3j_N+er;?<~NGP$`k?tL#;guP0h>pQ<;y7=IP zEASdznU#)In?Gw%8!D+3N`u-XG9r6nE*KX5v9HVGZ_J%8dab#EHv@6$eE2gNx5HRv zm{qf-%1cjYVY)R64|n?Sj;>Zb+*x0xpOsZ5G~^U=SDk7Itt+R%SoYax7|=CyaC3y% zXK(XqNT-VTjy;l*6H80hL8tXKCXlAn#g?o~Eywv$)s_sTylXU)Iqfk?|qK3 z-w)As(43zgX?QCwF<&Nv#vH{|VZIw{P*LdB##~62e-vm6jhI;v z%*++Minc#}7RJjfAc0Oj%U8ZO!UYo1qQtUFL%rsDXqdS3!i)6L7`=*8QtYj_d@&m8 zZYRvytNau<8KJCeFw0K|n}g?LA>{CP2F#=As?H}=^MySrH15xH>z9gX1{E1TU6i=h z@L9tyzxi-9GCg{jyR8JInF_SS!ip9_?y*Z-(lM&b?@Z?<$;T8*6cyU)v~%}nR+sXl zj_gclTW^%;rX4H?o30_TM{5`Q)sYF!uimn;0hw^*!z)kB16_*ev;6!4ZO&rH*?K~e zy4cV=MVBhmqYZ~FnbU#T44OFrcev4(2u zfpYJ~;d!TF`syaG5uX!xwA{gUYd3=_;5)=G+xbc=8aWHQg5#n0>FAZksNE8coxC0^ zb4?LmJ+5Yv54JZcAIq2D4_K7I>}&;4uMaT>-KemFX@BBq3S*-d;#`Ve14D#GlqG)K z!d`-6nSRDt+H&yoQ=E+i@Cvv?{G;!NvU~mD=A@YKo>@M*k*C9>4WPd)l*DQ#&l;q5 z>K86`(8`!sm0*P9_;vIJPpp&=^tWY+YSIravZqgtO;d?-bFsSg4cV?35au1rj)$N`FNI}0Tc8sdx{2ObhRInrcaV})+)}|8qX_%iq zwKZ!-#x~p8nB5)m@YN(H>_L+L%Es4bVNe9u!RV@c?#v1K#Ng^JICk7` zygxrX|Ai9eyZ9FY4%DE9bZJ>(jk>7eD*xI&+c$8KERP&2IQfIF<4(A@zyKJU5T}@9 zN4XxW=FF1@x>U!im6o}R%A;8{?;$G@! zG(N_t7P#RjshojFkpr9^C8JXyIc`P@2Gx&xPS%b+_S-J2F(?e+y5d=t z+wOc)6{~1NiSwiqynV>!Kv*vHhOAg>{< z>m2Wl)dg=JZtoJtwC}f6@;R)f0{9=Rr`F4)6QU@SeD!G^CjzOyC)wSc$J-R!wI$ha zH1fT%qlsP6BgzovW*N)}n1RAYf&x!JV=v8p*&XkpS3K++b6eYIheKV(qOGPHP>p#o zr?>_?jGuHT(o?OAV|GfZyR6GD_S!}+&gki!>w2SS_CqbAn7 zRXB(J&rtbz*Ik%NrQC@o9?EuJG+jbyC=Cbm9QUsi@qvhgdz|K5KRAX4!xdN;!6{69J zi!Mv1k}3C9?wiv-d@eoeMaFPYS3Q4}%g1~Wtgfs`OcOrdC;AEr_jlG^W>)CaHW)wH z)ybYN#Co>7=``glzqHQi@SOwiwAh$edK@cV@HD!~s7(2@5+S#9^se88b@;`T7Ev>k^G4Ls!Zp-UC9_Xw zt{hld7@fr~^5Ww@veeuRg_!hW0 z2HBnE4ngVNKHm|$$%Q!;(i`-X6IY3{4OtA|*2OF-r&rRZ&*ROuKC>kmF;P&8`*Iji zx=p-?cp2vIBU`oghW!qf&ENdHVk!t*jL)4=Be%~*Q7ZU(sB=>8V{q*0zO*`MZMAOt zkuTbQKMG*347^L2Hxvj6mRmQ*VZNw1x7Xb*!2^X~61P1GBHX|mm{ zvS-O5>v}(}zuFoszkS~NYZ`$;QRn^aK7Hn|$>rPLUu)?{{9}~jUiH3=tJb;49!<9* zR@QjHg>z)Tdm<#{7u7dS@ z)j9uZ2DblpO-8VF3g)0>pkBqk8}+ zZ7=G0FS%mhK2V$d43hl$ivRuRpU2_Mn$h2i?K=i(_9hjjFRi z^?nZ-E`iroybK-n(0zvi^s4deGq-B2Q3xaI=b1p1It+Nkp=RpM9fk2Cq?eZI-hpXK zC}K0;&;y0!xM#R@0JDTvcofgB& zSgJ03;94Yn5shzHvxUfw6M64*XN(p z05f@6yz$VXOeEK;BTZLgeD(=3#eHOVMDR_Efikpisu2KF>!K%h)H)!tB67MbJ8{hs zUK%ns%=vFl4OVzB4vPX+V4*q=Za$hDArMAtO3pjX>#UvwLJq+xV+o~z$0m3O>ung`9Suy(b_yAdT zcrP$8U{

0yD;j&7u-FqL0u^_1J78gZ(lfOy7sh5wp%2ATKmGs>4X%u>7_Z5FLHC z<CIPzV%}k&?q8Rs6c2wr;70 zWBzDan0ZG1c}m6`E&8t0xxwHtuni+qdOmbpk}7Tq_=>AP>un=j$jpRF5w z3l>sh#dDvJ`0?E<(nDAl7GGbTwuBzwn%`tf+xj!hq=jot|2(z`qF!Q;4DCql1&Ecj z$i_Q?#6S=s!2S6Qp6?Ek{z=AGvoORRnx2FGDfUHh!Y+7an37Bg@FHVyip~MVZ^|Ij zHiI*lq(Fs|Iwds3f1mPV86qMj3@(M>g#|MND@RD|0$c-(DQ2|$k=O!lW=9nMyS^}> zSx0DTYQcR0$l#P-@_|yDQ`wdwfzrx{2kpBXY=*0h!7$viN3Myzj2Cuui0k7SW}NByQVgl|GBzM8mSVZ5bi7G_X1?v#dljp*e{0ej>hQ&4{Bttc>#?T zQHtP(5#FED>14)-NOJUI40QzzaIz43@mm_|ycz)LsA@EUtE1O-Zp9f{SFWAj;Ud-u z=GE8ZqHTNAoTD)V@2!RhjOERc8?Y;*6c5W)T3wv#I`~mvVRO!Pi!^ zKo5K{js*nX$>KkR%$no9lAP-*#D!Ly5dZBd@C|R+6xk5|tdIY$Ts+9EJ&r3X7Fq4n zdD6%AdPVB9V_gk3v399Yym`7vNqcgKk7;Hawx8xvP66{!!`v6PK!K?q&h(O3#KW<; z0k&@%dW!2M@zExXi>|Y!>M0i@)s>yOFQc1^m|ndB4Eg1azH zPv8Ufzj!~_QGY%8U9)UPi;SYXw!^1@d1ZD$>h3y8QII#Gl^~Go38Y@)WSY z=^G_qRQbavXCBTJ7alCuOkfn?jM`jt6{l&~oONFNk36z612aC0m_kPPJdfcN28~i4fRzT)%SmvIUR+iLSTu70Z@|EI^VsAw_Ag4{ z4$R4N^1K)K%?b^#hor!UHh)_#FU`TB@qW7xs8I7x;mHq4Q}=sZhh2{31dh-D14^Bg ztt$zalfy#!4CP3UASEh=H#Rl(6x)t!s^H{nc>!E+=3lYxv)@}u@;j!XD)Hm+x-K5l z{2&^_dg=IXnjiL&efF>bb}ZGaN5BTbjNihV9h3~2Ixbt#m3>7pCJR`Oxs!7*QUCK~ z13eedy4+1>_x6hEhqjD&`0v+I%JxYS3qr|x3yof|(0q{BUQ~L5N2%b0A4^Sp#aftv z>=Tz4s!e1SJ6lYKMZk7r>1i-Vs$+pIUZ)y8DHOc|w|lFk96!;$Y*@K%_nE_?$=x`6 zOTyk#D?%EWpNZ zLYva#xJ4L$rHNs31k< zo5W>^+@;R+x)4pXeOod?fxFHTb_Y@o#Ws&_@Z$1azG9pwihe_?E}hy}QK?t4Sl5?j8yq_PD@<#;Ooy4 znL3`{p}6@(`<3(2!AWLh)kmY|4POTP3^Eg60Nt_S4jp-R3QBq!Y)4p{k47nraB{Pt z)o@B35^wAVlFc(}&O>$Zl?4N4VvCDMF@bi$;=r+3H-ass-uvvW4pqDNnR;akIgr%7 zH#2d|`|D95$%roSdxAK`FISjj|0Y152FgkbjF3Nj9+FjJ-+ybm7YLx-GFR$8y~bv! zkbeNnf2)s0&3takW*qxZ*^|mibNjF|Bp-~Z35q?r)uJHU4wLDcKq=4)Scc33{uYyy zb2It7DhyV_5oh;`9Ju>PIuV|TtbKA3nkx3Q-l9^_ljAi--Yzq)_GD_BXUK?MfqzAN zDG#!IvfnbxBqbcR1bvaS(q()GZyaa?~SdQKpOooqj@`OF0qExIO9WG@7#Whn+ntOv?wbxhrwyK%F zVV5mF6$aDe%04MU&}>j`cIrfME-Nn~yH$tnI;=$H8j_baRLP9{WcD^enL?}DhFP^w znJ?;{6C3*;lqftD4FJgrFNSiVcVw@QSbN4- z*Pg1qSnW95A3;%}nf8n(Fevv3EPyWf7s#bfAMD4vaQhqN^_|#v{mLbk11(E*%}5pO zY@9&SaHa7y+3M=+sI7Q|LYQX*p;no+maaBo!jf{!r^XtQuGoav$uQ>GLjOTiy$ZBc z0U``=Ub6|dwS?YyXql1|AU`>ia4qX=VIbL?Q6?0o9P2^p*|uL&;2^*%5LG2vDOu$V z^AAuA8oDf@?Tph#jNU>SRi;B!8H<4>f6z-3d*_xpc5-H=*U^rQ9AD%=YQBDP*tu;A z%4PGn>=L_jL-w(ng^%@BTKy)^MJ^&7Bt)7SI}nEKz?pqcT>CBXi_|Sc_NTa8&Z&_6 z+ujI^8Hv<;Y4u_n)nF~v&YSC|mnPl8l?-7c+;2;&2&mcmru~C?C8{Z~IN? zeV|uEO>>|Gd%#EE!#Hk1gI+$f*M&*R+)*4>)EltEQc~RaxfgL&50mkJ_B3n z-Oa9~!#W~Y+It)DG@s&0c-#0}?Hyf_?a$k#uS%)NEE0()|G4DD{C+%hmu*{AndVaY z9wIL^w44I<t}m@C)>)qMzh2P3K;W<`W*!d?MX--D#)blm&x z5CfC8YJQBJYNBc8_S@hj1!UeqR{P$gb!~pQC(Shj9?+<7QO>C5Yv%+tgb6V@<5_0p zJ{4n@Q^CqFBF6n7d{vp}(K?*}-lH2jl~?Mmenyt$ntd?ew8vN^z;fhvbcHx!R#zK`9m>0*0q*WX4(+96MMV@b@X=07x*v4_K6uAvAN}|htYLosFT|zedjXU+3ito~Bm~u{0CB&C?9Mor11*=K-kvZHP}-l*`oB>L^Klj#u_Nh>dC*!-%?(zF z646Qj2}XW*0%%h%54^#r#+u@)(fSZ){>Gn0N^&z!Y9lTd$xPHuHJ|M-?Si327C;37 zzIH&sXE6qdpf&(lcCnU!q5nc3LsOw;F~8%O_CEL3bP@~%*YIsx?@pH+>u+{KLfo5m#OelfTFbT;ZYZW;Xwgkcfu5~DU+#BQ*xe-& z+aK2`1AJ@DsxL&Z)avhKv8GTzN^?TM7Uz%Vz)kIf%%Ew*4G?q-#BMsmGC3#Lb|_v( z#eq}eKIvP(E?B;eE7VzZRtukqS-zD4k?Q0%d-44!LgJIrEowa**vOIz#F&w>VZiU&*$AnFHX2xmU2OJON$~%KBJ2C9lh+B@R}?V>gG+zEk9VtGznT6S%@R$O2P(YXVT#0pr+ zU9dCpZ1K93_(E$*gnjRJ_}BF*_L30ATQYZW<7Q;P5v&lwp6K0$HV$E>KIHjDNEszVp0HoYJ0t=+3p& z;zg@x4NZ!Fu2FQ`6X1c7rlaXuE}9FSy+f%YW%qUJsxp8O+tYY*!GPINYG^hB0yo8? zc=I~MADX}@oPWyna3yXo4wO${51}ndJ}i4Z(Axdy5>;MAkV^q+WEzC1`3SUUz9AE4 zJp}U(I*H;HQNx1z92VGJ$1YkI-tGa~9YX?iGI_v#m;wuG2TCu$=z*`&*DOsvTQ>au z?O1?J`#~2htQB)1eFvjQ8lv<)>kSJU6p-`#tr(JVyvzVDM$RKkf`BFaWgGTmthqBJ ziOVd=+V#iDQidj_LLVWhOxi=7Wdg~QRNdmd;Sx|ck7bb0AD;{tcZTE|WbM4}96|D- zjV-)A>fdguDo`3M>tgN&pSb^Zm zwx&#^#6F}4DX``OZ0~%2yLjx#V9pM5YyBhFoW4I&wkgdy@&R#Cj=Z_cvvK)isuVJN`QwJ2Cq>@n zaaQo%*g;l{*@ZiM*HfvxigxlzFH--Q%PmDLU=rabVE}@My_MN;FA5@0r&+QeR@{gu}Rq*h@eN8uUEIQ=RlluSbk)r>wVRZmgS9h+t;@Y;(Z+Mr68G604Kr&<}OF8%wo6 zLkPw7!~1;x!yWoj>CgJMogEfVa>k1< zh;c|QKsnH1wI4-H!Te2fd#S}@dtT+Y2#+s%;Kc6NT zZpvuB)P!`kcmlfP|2)C~!jN2i&({fnWn?KFt#$G7Ow->}7cV>_K_w~?J@A>FMKU}B z<`e5BNESe?Wx{$*k41;%?$)AVALX@TWCXKq9?8p$VBRwe^UmWL7UABX0>lE?B3t*7Qv5xxLm>=FaPrE*{-Bn*dKI6E{S30I zt&>|+n1n%gBNxx;q51jY>ioVLBznBz7;B0OS&AyK$X;-EgDsxlI8<8an61fOWSuwz zMu9(NfgPfe@eEG(!)3fPi)wK}au0{z)=cuMGlSWJ>+bd{!+t}Exv|YNX^3>gHX(6_ z2)4lgQ=Ig^1fx7{36rL-7#Z&cGeq)+J*++xN9Q6K5s1AO62M(~G!9w75^sfHY?7tm zd;WL31tZ%%D-PwlWYyesm>wY_mh;dX4$YI~3i^Fi3Ei2ipvdpNFX9$-LbL6xfm|xlK8yG=Ua3&^GSe+>sjz+ zj4?6>4UQ1CN6kBV4m1xp1*TrHFC?iY;B)(rx0CwWkd-6q{Vz2AqQUq)cnleQM8GS3 zehHqmq@F2RY3_KAd*F!E;$a4sGqSnaK*6;(XOGnQEgu0ZFmNHW3{fP=hfaz*P*%1u zr#^oNvoa$gKT}k;Td=!oGJBhfJC~X}SM|dOo#zMTFA=f5WMQw`xBs!g$!jSj&kRrO z-%ok!vh)eBQzu9Ws4nj(xcue7D`}piwu)aQepJ0zBFR4$H88tvS>E!l?_JlszOH*F ztMlTcHlBT5UGKW;Zjvu9Y(_}-@#dYHjv;M5b^X<^KOgc)TV1X(9mmS9M^Ah{!ppVp z#MsBl;sTy5+D`+kvD^VXG*JxVP7ibkvil!tG4gXM6dr$)dJ&IDdMk7ZR5V@oIsoCO zmL;$eBF-E+>$%Q0^z{WurlHo#e2UOsj^+_L&00UUY}`57#U4S^#%KX3N0;FB-bidj zocdsQUg`DU?B=8x~17Cx@;AZd}`WrQ(rLb1kyg*o%*~-5(YN4+*4lvshoh zJ$&ImU$9-8yQW$V2Olm=-E9i4Hf#I!tE8jJ-wtSpHd@k3PO=xZByEX62Gv6T;|&*bwvI9bfdFgDBYLK9~{Z0nPFAuq|}5A#Q0+gt@j- zerqn*Z;#%KKJ%}q&oz#2mzntXNb4cYtf>y_+lbb#jk3yky(zVjAk6*xnmvERExhPF zi-G^~3kgG(0e1rO1eK1=`>ChN6Xw!=!F{+fJY4FsEDr|LsN{72+8>D`WI&7HUU!o_ zh{)pVb~1v^A*H>`(l?z!(yieC?l?*)`Q1T{blh<(YOu{+mKYA<-*pS8w}T$5tJ+Ua zZ++V*MvF8L0UAG#A~1!5=y?2R`!@_&Scx*{*7dh1)W<=f^6l#0>Y$U*EY0l#$M{H; z-=%(#LN-GXZ4m4)FN3)>Z`&r-!M0V_wrV{q%{^o8UT$=cHebxQNsn~%AO*9|TG{;U ztN8k_(zkx!WY=GzYNb=XTe}Ez&!&l$rv(or_Rn@DDn_Y2${@(lTQIL7Yc;G?o7n(#RJY(}?jtR#L|Se~CY<|P1xo@H#`$d>d5+OEiL`ZrN+Es? z;Lx&jn#FEO;QB=Ge_muZr?TjHa7w8KLz$h>J=T716T(^dc8|v=# zb$bi@;CVP?oTRh9I7|Nqyqq$F=tI-4+4)8pid=dJ-0C+@W-P9$sfJq4hk@^|baKzp zjzyU9s<@FZJc6{d3J$%5=5vzy)&r4<6vN_X$HHb+MtZNA^6BgTb^mriZt3Ph2Yx@X zH(booN(**Fp>G`OZsG?m`Dr*EbFxsl50{2bE#@VLCWi&0rq7k}SRsM2oB>^;aRuA_ zRoVp)41~5`pPEkSIQx$a{v7gCyy(B*;jq9YUHHc@a{u=ie=fSniu>Qgvv(|Dx%}_d zv$wqe_oDcF`TqalqDbWtRx-~Men8+6S^aP8BH6x=(toa%w-bL*MZtTqzyEI=FKojq zCI?Y}zs*-F+Iv6Qx4%A!g3^ATFy!x|s&!^aLhk3KJpsiMP?e8k|Fw%xD9uM2m8_Z~ zFQ8)7hmPJeHO7eamN?sK6+5J|6#V@}@eZ`JB2}(|^UU{3Xw8rZv|g1kiv|Lqi`0XE zJ>xV_zn#F|q7oO$r-Y1{TA&eZ0YjT?nVB>gyn|%%6c86K0?dE(XY(7K;-tvmul;QrtW;`O!RSzE&hK-kUcV;CQzpN}}pj?w4uH+sHGKP*w5X1gSS9MOBx?YOI`btP_= z8Fp#)${fD6zYHaX&>^Urw9dqy~O|Y(_Rfh`g;(M{B*m+6hI8KFE3cfhx~XI zpkco7``vw%PBjK?w!C%uc3#jUxK62_bLoFk(b zILid%;-|vx2)pMYaQYID@D!ZzXB0UP!?@2I(y!tVGeP(Hw4*VS@AhJd`0sa}E2IrH ztO=N7Bn!84ionde1t{DpM^9bnKtUrwtuIzQd96-=;n(kzwsyN+*oMB^^lR7{!Y-s2 zvd}1+uVQHV{^`k$0Ib>+(!D!yWT!PlsonC7lC9Z?J@PG}uGZ&RuXm^7#xtP?>x;XJ z+IdC%^EvNEt1U8&14Z^GQmDFiK{+OjOugXMlYi8$&^@&eLM#~zbfMGDc=O`a^a@=0 zA>#lJs(B`TDMM9{Cu}?b__#wY_AXcFTlqy zx&hH&VC0oZ5g~9@0AQeoXz=Mlq+h_c+N(?R}P`MkJ zt1T0^whDC0-M0~c)fQ;YkAxuXP0q4;eT&BEOUBloqEe}bU4JHU#lOQNfdq9GK{GoROV;bizX+e zivVR(yD#8ks+qPv?J6?VF`ljFuV%bMhsC{3?Oy&CD#$6uJpmTlD$BO>7harNPI=iq z=*?pFo7N${%7B#xj<(jl?Hud*Dw-fCIBprS512EL%+ui|G^OUhIj&Zg^?cK^P@JZ6NI{8}vY>{Zg~0&p*;gSD-`DvWBT0f*RxEoIAm zNFihrB%++Im2W{QPb(>D`{PTNK2Td{69#rx^2faxtj=z(!$6iMjm>LcTmQ{KR=r%d zvQoI;#=!)MM`r{`YN?`1Nblg_nKLwG`jDHY=Mf?C{na=;erR&B76}~)W_9k5i$2gI&`a4xu1hw%_kxz6+MQ`aSo!V!!7#JVtH zhTkLp#!_OGvrSSRT@(-wS&>oaIHCbMZbl8#Y1^+IRb~QyijG}bbS8K?O>>cUj-77A zRvW=hB7~GC!Tf3PVS)`NSiP4iI&dNv3K0ZJ(y>XFHpp!TWTN$6nz#-$ z&_nLaT?~^%yMSp%2>p3DiRL3A;~;_rs@QE+wyV#vP7_U9#3-DcRM2Qk_vw>BYaB92&py_v8**=%Wwgb ztM_5+Jbi~QW7WV6nnau%FwnAW)FelIG1iK(EpqBu7gDN2gFOa)F&AkSs0ePsR(o4U z3;dk|=@XCtzQE|Ps$2o5gdTkVICX1L61{OR@l^7AxX}{h0z{MMyfzUw?8JF6*gMNO z&2?4N2K8-g0q9e(Way;S~P(;xB#NA1~OYh)spn#V)rPkH)AtfmD%4n z?Lm~PcF{vK*b>#hdT>>#Au1aL6bl6}-!oqN2XE!~#fHx(J96I>ZqnDgr_Rp`!`a z&_ag*`F7OtmG^w#dwth+&d=k&81g*3tiARs_qtaND4exmlmHI)3i=QuKxiQJLb`tD z^6Usopntrpm;&gutWO-R0(!>AjtnZi&$|wAFKX_70#JMsh~vZDyXcgAp(5YN7>BY= zk`uT+UasAU!>e@CUq&o??C77T#cfz#ti@U}RYv{NY* z>*58hlDI&-$k#`?TIcn>JcvSUp6At)*qc?hy|J+XSW;N9*P%jlC zS@im@A$YJ$QbLI>w^yMCxQ82e^!P7MCc9P)#fE2VPYjUo#y4LA#o3_*i(n_GYFzrs zva4*;%^z}>HQ}fO1c4Gjm6m|&oDz^+sVp1;#RsyHHC!&qN)jMHFh&DjXfyzpjDh0) zoMq;fQK6evAcK+tYy}O?J?Oyav22O#T~Ta%^uw=)><_bQ;kv@~QRwg8jq;>%yFjju z`~9oqFs3gM*1#lh5I+m}74g%+fH5`z?tTggImTs~B*R6rZ*SQq+i1qqrNwOy2157ewgt8$uQse-G9qW|JOEbG~xe~ z2eI+Hje|+c6QF8s<JUz`04B5 ze$p=gZ^!t5>}>XxfMo5Xd;fB)!I^CD&2y_x7=G?6)2HcSTj{;3JXT#alI3QHH~hk$ zEzGEsgC3JuV(==mT3AI(wze{IVu)P`G1~qOddje+FbLYGzE(CyCaqmq`LZWyn{>%S zIP(rOoEgcC{rQbVN$RkrY9`yMFHvIcd5bBj^YaDxL0lgQhzHa!KHTu9uHD-bEwU~= zFvxlk>~$qOs_p3Asl5Z5t~Y;@aFHCZ2c@ec!%9x?^U<&5Nwqy;Xh^-wot~X#8^Z$1 zIDr=Y;biTZ586;8>=9S9UX`EJ`*tezYJN|t3O|0jd+zrBnyOwkh;SLi71?XC@vnYq zf~zR5kw>R|x*Xu=aW)K<^B`36y};{oT9#bzEp-NkRya1G#3-@t9WI~Ppq_KLdD9{X zGSlVR?vyBsJFbTTJ-hMu)Cr2KDMF;J3Qa~=lndYxKdIZ}Ff-x9(Hh>J^-F3$CicpE=V(H2z?)OI~6E}X(%N>65^@$sle#i1rrP0nOSaFmlCmrx$(NOZF>HT@geYDT6xRH zY47S;df(u=@KzBRa$sEQlT{nW^(CXhsDeo5uE@ZKH<}%qd!6-Y?9JyxbDiM1i@w`8 zF2_wVWxuNgiR>Y|!cT$?jtu{`x<;|Kb0m!-vH+E?aEE;Ar%RVtSvdztU=IUK()ZZE zJ+bmr>1-rr-9Srd;}kYQ;H1Oz%VWY~(78&VVeL$}PSP?wuDUsvUUY|i`r>RUaBr1- zr$2diI)r5gEp#2?hKddsf!INIz!U^u@&-6!*`TA`pT&T1Ss?4j;Rmu8GnusBW1_yZ zi`j#4o3G*P^VE;4YIdh9#88t!icw|)03Y-9(GV_R(~-2!bx3W8LC3W6n1l_F3HD?! z^Go>#Ee@Y_B+$ah3e!PFmOSzDbUb%Ke0Fz}pcU`JR3j1Bz%oRth;Qg_Q-_ zy}C_jjeinljKSguaoV&4O`eRfo6)YtGe6zOBWiKhapldWZ;;Ztexlm`p6}AGy}Ge! zqB6yhS6N#5hXo^&liOS%fj6!TvtuIQizK%;uvH61#)Z{ZOPvLFRc%l7cJwi5U9n#$ z1_^UyO+`uO?9Kf-;^^i1x66pKC$)WX1aYKdJpk4JASjSJ7;{icYI)Q+U`_)oNQlaq zRD?zBXG#;a?gv#T0E6_B#J@d8c_E)^iXP2j3YcUs>@3Kn93c6rjk>61SQ5 zFgK>#P*BV@Fn*B{#V?Mtm7*vD+ z!fn-+-KoKRgW@xLx!1NcbE^~NS3Ryb2q>ggad*(7$qX4Sj~69~b8;BlCuN!_> z@C+TP2yVDhP9F56Ij1eU#+Y;1O6;sJMK%z&FP!!zsrp%_+Xab)a(n z;SPa{=$e^4iAw&s)yeFtAq^(jmI1+0C@;}K(l6r)qXh6d$ZLZTqa=s}a;I`5p#fcQ zU>u>k#@MQ-u=&n~2GGr<4Mbwj1JHVw3;>E3^nmD)#yAMZjhcf}!Eu(wbF0?t0K}Ai z*Q;UbmJU`{b8Y##U`xe>UqRu#SH=+2v|6SfYgVmakG%vn$NDKL7qUVz+OBECP16fi zm&g4iB;B=_KJXr-`7tuY+FB-SGoCUJ*;~3VXENi)W0}t_wN!!)(ttdBPxd~JqS6`d z;()iV0WI<^Mv#2ML>77lUcD@(cSFSBm`&+1F3;m-;2s_X1Q_NWpj8ob2Jp?59cdQ7 zSO|!t3S?LV9ZUrP0Siq~b(8!!D7sb+o0`3t-{LdjCzn5@UfDmgW>_c%L7>7BH|fep z>=WtAN2Q((8JH_xR5ZuF4@pohTCB!Om1ouI6{rsQr(X{$tXYN|BW70?Xy^5%gMwG; zO-RlD^+*Pg81h%Y{Lcuy+nf1^n)#^J%r<27H>d1l3J#uxfkytk9Y3_=1v8;!|$VA{hXA%WdSgswxHm654nXSu*`^ zE)-3&X-b#TK8vbM8434K4Z{Ql=PihLbIH)a|bIa1TK7hGPg=oi7u-31r%1Ru8*;?E0tj*I_5K8s@j2i+4iV_H{WIk z_!HnK4sgSib-!YMY{&%A8RFUXt>_tP0$|wF0(F#7AhLJ0uhxYMhseG6piT;N-}_MN zH#z&__fa5Z?i{;65xjW%!%Q}Kal+#3>ibM~_oFq;O69I#^%sLomFnszW`)Jt^dgq# z<|ZT{uRn-<2_V+808nN;2Er_EZ*`m0_`e0x(zF>Rpt?BsY7#fV%kitjSFmoM6utbS zBQsT&K|E?-Oef~~W(XC!=wp-`VIU5$t#hHf!*jfaU5b6x&dyFX)%2M>Y)c!qw13WI za%P)2$0{H=O$~+y;N74zzYT%`W^eeb_;uZOipTH*=nLoxs57WqKb_nuHAu8lG1^Q# z#>wvUTePfY?d8?W@q8lBlyCbsy(fSHIIuZtS6BDAi{6O59 z&l=oAwnNI@$_}CP=}Tc;Z*)GVBGas(SbGs7xr-$BF$u)8k{1B%+*^REA1UIH6#8A3 zpM=00)3fW*tpNOUe@zvI{Jl=;6)b;msu@H1n0+H%IluP;byea=6LO2Y_2A&P2k@kKl^M3-VRq|rq%Eg>6Cy1>tY#hq85au8^4c-3dZwou`L1< zKrXX#<_1^PtT}Bfp7iNm{;O&b$(z2%R!#ni6ewLuB*FV3W19!ev z69J{56;Ek?hSIB9gqaSf9&25lRgbl)Zm7rFRSyqkFVFdGs(iY*H`5Cut6FgOkgetm zax{frOGbY3+4Rp$1$l|wb~gdL@PNsM+tgHFv;lo%gp?J$9zlEQYaBr<^^H=5rT6et zt3THSLe8$D+Mo%Z^_ ztQ-(i7F@W{uU=YtVY^<*QC?-YD?Zx521{+O9MT-~5SHvre-jkVp7i1QXOsYg2V$bx zAc-ZiaRHljo4_fH+7aN}ua~=MsxyFWK;sY$D7%aId#FaqKdltB_u*1L%q=kpVjF+| zbps;%wo^x6d=^+g5j6R_WqvCTvG!rp_oJubk){F~!1O^6h(K2>Jy*t186fU=r7T)W z=$KV}?b-ys{VJQj;kPdw_Fj%q(@qXr)2bghv!?MWO?qq}ek$>BZ?~zOSl~I)In5N?O zWp3_?K#*EhuL1O>Tjk0ZL>4H3coa29ub4|5(8`=HU+p1DQ~(U@SGCWAqtf&(rSfW8 z%Ac$Es!v3Fj^5L&0`C3f`QAf1Har@7t3zU3RWkZ`2G`Ba27tCC@!aG*&?vE>`se}I z$dJ>7Vdu`K$M6zUj$b|jQ-onHm>n)>^+Ij$bITx)RpF)Bo#f&tU7!*%)lwn{&~lBS zQaOpF<(~27r@fA#wik7q?DGC$uA}?|sSuYB@jV)zI$*OGra0@# zx9ICRp92R61U}5yCg1Y#h#uzh0<0SSIJDR_Zf$OsSdOxLMr%$8+;s18uH&Gb7bclt zUhan5UA$WIpq&rHq`4WTF1=ar8bRh*j8!r!`#I}6@8pD~%iZJdrbpI~FuXnIYL(oR zgjxbX97cV*psK;K8*FsvG13Q6D?HMkxLb^h;K?Un8X3E&`(O9YJ5+CU;b1~j~kEOBb89A_ZO z{VB=NNm;})rd_bX8Wkj8Wh*|GlONJO+KMdh5i~FgH|vz}{J4K?M2B=D-?rjelLI`` zlyAF8e6q|`3ujfnI9(}dxsiOeOtC@kQK%x0bZWaDU8O#rfmk1Ubxlk0T4($1#uQvb z+PHh1-NNkn0Px(SJ>MT0Fic$?)X5YGzMe|0S`?-bg275-+7q4;e3IIxW*Q66{wlS) z%+&_(OzcDqd{_P!2nLuDd_nsVpp7)>T3q{pTCX@hv;10kWw)!3_}yo1L3xX;w`)MV zWIZs^P-mw|ExkfywggS4jSt8M6;8@TLm%nXy4+1Qm6oiF1=o?iRdQc+Z4jX;*p%*H zJD*P}9;k8>&snQS1nyg-3)3D3uC}a?%OBlAjg_-YS+m~e!heFn%2m1=@x%gpIZ+X1 zUp1w-s)bbQ=zxJ-o={m?J`S!$Xz)Fj!ZFceC3cZ9dvk)O0&W(!;OEluaTd>gpERz2 z;HPfyO29o|fVy2#O=T5NnIbr6IG&#fP?|Yih3vAZ_{*zr-WvdQDS*P5r>~D6U0(!X z^xaS&&@R+b@2<#zx!4tP@6OL%L!ijg3=Htfys{=OSAvQ@eFWLktAT>w3jWbmT zE{lCvVHG2KV2_+4_pmSGIRXa}afH@W+uzfX*~tqNO74R>JMJN) zYy5)>=o66+_N=Wkb4(xGcD7Ji<^_U5B-2EDz66jM>!pgc)wev=1O|f-v72FeEEpQ) zyFKDp41TGOw=1UMeNfP9f0PIgX{Mb5*k%rCv)+_gNENEU^4bUAnf*>^D#tCBt^`Ix zXUW~OwB?J;VmD7;u2 z!B0L4l8Zhpge1~i$hr{dVjRB0GVE6jaB9sLNI0cZ#Jan$|0?UyOHNd}!BE^Xs4=iv zSRltA(z$dwuu$y_U=%QE*4L_+PGuH|UGPd1GEnFN#G}Qy*6Gi*%pO;^%ex#IDFFGA z4^>`c3!GIQ&^iIYfYNJ|K0evV=rNn}0zl_9{?foboGqM6NYAQ|>83L$N%+9ZPk(JI zmi}|74B7Q^&+WnpCPDfGC_LVBn<=F@Tsn^2A8ZokueHw5X>NiplJTqAUCyJR7noyu zrAYI3ao;QN76EfRajEZv)POtawLJ6M>iH0|wV(XLH_aPxe4$9vtN`3V5dQ7D)|(dQ z)VeF_wHJB9d4XKfeFTaXtSeZOATaMpi^OXBJFHHUN03{EI8bz3`q-^qChtR^DjZG7(^_HXn(yJO&lx$PxUNLk%FJn2 zDIW%BUbE_aT^ONNa(rD(Y4pQfy}V=slzWBgdxE;=z=htIhw!B=I0!$y=(vU?W{Ku- zTm9~~uJOCHGQ>;EkYCO4iId2xcZui`DQj=pext7*VZ_A(f&{#*0QJiA7^yMlJw1Pv z-o03ar4}sDySoa`hxrUlVF-I3mys4&zRTb+MqT`!>6CC8saNp+Ou9pTOw^T8Gj!TQ z3}HMm%JQhT$uejGu`i?7k^YdtS{6wy(K^+kJ`zYeE*HMvu(2?zM<_j`+$eGY9=r~c zphp8ahS^%K4^ykZ_YV9a>1(Ww=L)?Lq*i^SEq?HydVj$H$ zdvmfj`|;}>*#;~?bP7q60{4kz=SETdh6!GoBRSUr(!nwA?np7Hq+WIW&!|lfNq;GEY{e@e!A`6Sw?I&3zq_(sze*uIVx&5qux|K{EXz-wnc9V) zob3_g?G|Zkn7WwBHlJLi=tiZez?tsA27c&M@SBIE(LjwKEKV%D-X*+e81>7mNg@35 zHyb<4_hv8`hzMd(Xpmq>gB&`VTX2@R3|K(B8K9=be=s|SNf~)@Ki!Y043kwg&vOK) z;9z*V)E+#PQ~>zYrxWtwe?7FDji9#oHvQ=7Sv^gA)%;Q~NqkaQH>bA8e}V#v~by36SE$hQ=;U!B|E zyc*|Tg$p9}7dY_fKQw1VgaoK2>O(er|=^bnE8(=2$f9P6P~y^K^90z1g)Zwm5LIww(c}vY+Xt}Y8S9S+g z(r>UR0VuofJkQ7UP3KsGFTzQt71GEd$$)Xz>mfReyP&OP2G=@YV5vR2n&e+1NJ6kQ zcT1D?^OSa8L(hL9y4YJr?!#6Th;RlCdXD-ekfXIi>v@TQd7zX&L~k(+7E2gHeY_I_ zU+oH)&bsY;ZPv`L;ViQe0hQ5wZCz0qVdgMQzye&;1&8wa4u!7yK?7u-w_@rakO6FLsfvX|#Ij@%qQ0M^-i_txwP@BGc1DDelNI+gS z0S;{c?F)LD(%0J+VcWtaR|;KrPzylr;u(zf8RYw(3|QDxC8i0E5Qo; zRzHS8ZPmI{Lqwa@oO=3@z@u`-)RoSodn2nT6=mxND|FM^kLdK0^2sGhRt-JCfBYYV zcRLj>K!t~&v`z;)y#kn76(Eid6~0Np&~Q^VB>CQgz*{@BUwt4vHP0&#WL-$@R)hh* zZ#Nn!9;5hoXs)YIRd4$unxhPAPH|uA=;`u9SK`}AoEy&=&nGot5iF}DLj^g_z$Gu2 z;Fg825~t>p5dwFi=MZquTFO(F6ubMGk5ydsKL^*Rm2^8YD)N?accjZ7X`Zkt0t7Y( z*t0?{ez@KB?%9g2z{LfQ-NAvfUcsL5p!vMDmyPvP1z_4x+a3u$A~4%)0N{y=Uf(uL znJ{a}+SZVgx?=Bb6lQ?NN#N{o$+$jABu}L%{xRSL12F<(ff^X1k@&c9fTLF=sFwxHr)Z3PQ8B<`~ zvBV9KfSJl%DZbQ#?0n2i)Lv5@1%-hk8UVD4v>c=65#QqVfdnmI;zW|iE;aJ|%dT1f zzI>TgoVpe_jzTn_5#~Q)JK#l&Itxf{lE(n5^oTmfHd1`HvBV1>y1gRfde=~+rD#rT zegoE688$oYODmag&qsIMe>^rhMmlfFaj^29D>e(oD@u5bwdS^%3P2)1(o-2oPGL;| zJBnV-I9|&+d28#zhsfW~7^h`qY~6o4d@JnqzDKa#^D?KRo^3sdIo*Bhso{l3CFjlw zqUG;f{1&$JY-Wz|Z(ERoZyIhyO%N4SF3X2Lr^y|--uO7LEHFFBpqSY;Ur>|%I7ki} zK3x#U>P+#e*IKUeH)?71m{(u1t>GKl$pdSi8~*Bh^6=<7w(+lks?T^gQu|<1o=nWy z_>hoIyQ1{Zi{@z0ygh*W{hkaa-+I<;5jj>WW?t=7*7re4`)z~v=qx<#4qyWgtzZ3}y8Dfz;%$g>HR$V#(2$}PMIU-~*di@! z7FDL$Xf80aUh^~h`RpD(@0q?2kBb#etQ*Pd2Vk=tKTBKX4s)d` zl>$_==K<|fhq_s77si)9``K3^EkTD^+Vj*ast@P&pC(K@m(ea6F&9@NggKoRu}(9c z$N?{c!^+&_X0i}uBnp$rSGRe|422tuEwy37} zYFCiSm#gWZF1CzqReAh0rLV**x3nW*Z9f0tZ`7;p&)O#krH#X8*sJm+twHf@XB+(~ zU`d}gq=(1(?lJEct>QNRx{HT~(6ST| zsZuAjBx|;){;@V)N2(kkv0Sa6L9{2Zqj377_}YigX(I=>FJ4`4HV$@Szfob$n`|m> zVM4Z3CAEBkuDU1WcKv&)%x0py0CoIonrFykz#cS^e0;uMnB$)9U4P|fbH?EH8&aB^rLXLl!$sVBey5c1at!KmFkzbqOPu)lYc zr8q%Utn-&A$ufRl%(2~t1~hrGiurlF!)McED!n^L#uh6whs@hD%E|`TYuHOOL$XQC zZ6Tt6?R@d*ghj+3_c!s}c+r~Z#?|}a-=lM?qlF04Bp*gkPcMr^8u0Y?PU!CLe)&6f zkVp$2YS@wBG#vE&*|Tn~l~JEw@}7(%Nk#bnQkSYKZ4?l>9;Wu%+|I=oP_JT`P>=Jn*mdvBw_t9)VKa9@Mz$;hX|Q$<)=-7_+|sd*pYnfT3gS1n5U zX-Xw*c1+)|IdonjY4d5f>HCEfa*dB_$qUT(<&P>4#xh(b)cZZorm3vpZeLB98CkRL znAg9M@Rt(1DAz1oozytCF1f|FJC?#0T}kP*I&PLUoP0Lx)A2+Xhho3})0>rBZ=J5n z&p9k)|MF^X)uR{u)_aU&=>d5}BWyy4NuE!;{rQN&l`}ZmGj446jAh>gA1p{%ZZhMQoO6FY0jId9MO zO!*;&B&Js8#f-eXjJqLwBS7Jtv2k)&ISX|Tceih4HrZ$W(>2w2^h?@#c^8xL-qkGq zsKvlL^aNC@9m8aEF)Lc;ubSoI(vNNvM>NQ}`!8z%2d1SF9K7?KYQQz5K@+SR%Feud zD^aE9o;TB^u)lxSsV;Qn!6{=mo+?yJ?fq1O?PldF{`_d|d1kA!Ic@%;k;!>}YDwuO z|1^s+LEC#*h-W*IB>(}>%X8!Rx2`w|rru(z0pWFUp&hd33EdD{G!K#wK@Yxn)?K+u9kv zD{qe$j3J{6ilhFiQ2QfPH@~(vrF_%Zmu#gTRlP48cG=~12>giKfq^O?P%5=g-d7sD ziu>=6oJ>AUt20$eN$C&pl+DK2#~n(Wl~0uhp261NY5(&y3jF!CpRV(lH~=G{eR%u! z&RsI&7tk~W#)tWK-_7b{91PxAbpD3Dy|w+%TTUBS01P}oFRxKaMP=uY_kjP}$xAeh z{PfoeI|x%Zf46E3AW+-}bf#)G`l}1fy)-?G?R!!V?)+_6M7@!ZPZ=76`O}q$=a+$7|I53#SRXWZVy<)_vwjqR}SUy3kW0vct#>12#$}A z-r>Qzq7wsVa<3#54WT4t5sk4)$!SjCW`hO~`->QO8xwOp6b1MRz*6ps#NYZZR(Gh? zAqhT-EzTv(&*VZu4Y2EHuyGy7rxsFjLqw-Gy%wwiLafpX<`elxl-LkRj>eC3_J6M< zO*=8BU!w{u?g>oM!LM^3pyYOf34eP+zN2@5sax7`@>2`fJKf<@`HwU##P;L}CNEcc zF@?aS53g_9@oifBz;1K{A@bOzBS}cKI_3n{4W*%(KHQdh@~>ZcboV(owRLAI8*#;v zYf%05N6wZrA5WEDBx5R0V`47qJNN2>5=9_@-~NT~$+fF+udgU7oM`n-M^KzQCwBom zw8tNl-sq#F?aG`Mu>(iz;~TR{)N zczIyO*Vs5;J*cw%&6S&Hl8@(*&f~M!T_tWtADmzE{BRp8zq)-`j>bGCM@zCTL_IEu zLfTnU>|H1I% zkfW^WDU1iN5}3ppat4y3@WpC5WlPKH0!W2zoqG***nOgDzA~i=9#dJHQJ@2VP@;m4 zdI>gqqD|C^R!lvc-z!Mma>y#tIcHcnXH9szZ0ym*8^06WQJ*_wa=PHu<-h(9RH)W3 From 7d37e3f668530099a1b7585aea79e2e480450a67 Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 14 Feb 2024 19:57:02 +0100 Subject: [PATCH 092/105] core: fix pagination in applications list being ignored (#8512) --- authentik/core/api/applications.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/authentik/core/api/applications.py b/authentik/core/api/applications.py index bb8532e368..2c8a37c304 100644 --- a/authentik/core/api/applications.py +++ b/authentik/core/api/applications.py @@ -2,7 +2,7 @@ from copy import copy from datetime import timedelta -from typing import Optional +from typing import Iterator, Optional from django.core.cache import cache from django.db.models import QuerySet @@ -131,14 +131,14 @@ class ApplicationViewSet(UsedByMixin, ModelViewSet): return queryset def _get_allowed_applications( - self, queryset: QuerySet, user: Optional[User] = None + self, pagined_apps: Iterator[Application], user: Optional[User] = None ) -> list[Application]: applications = [] request = self.request._request if user: request = copy(request) request.user = user - for application in queryset: + for application in pagined_apps: engine = PolicyEngine(application, request.user, request) engine.build() if engine.passing: @@ -215,7 +215,7 @@ class ApplicationViewSet(UsedByMixin, ModelViewSet): return super().list(request) queryset = self._filter_queryset_for_list(self.get_queryset()) - self.paginate_queryset(queryset) + pagined_apps = self.paginate_queryset(queryset) if "for_user" in request.query_params: try: @@ -229,18 +229,18 @@ class ApplicationViewSet(UsedByMixin, ModelViewSet): raise ValidationError({"for_user": "User not found"}) except ValueError as exc: raise ValidationError from exc - allowed_applications = self._get_allowed_applications(queryset, user=for_user) + allowed_applications = self._get_allowed_applications(pagined_apps, user=for_user) serializer = self.get_serializer(allowed_applications, many=True) return self.get_paginated_response(serializer.data) allowed_applications = [] if not should_cache: - allowed_applications = self._get_allowed_applications(queryset) + allowed_applications = self._get_allowed_applications(pagined_apps) if should_cache: allowed_applications = cache.get(user_app_cache_key(self.request.user.pk)) if not allowed_applications: LOGGER.debug("Caching allowed application list") - allowed_applications = self._get_allowed_applications(queryset) + allowed_applications = self._get_allowed_applications(pagined_apps) cache.set( user_app_cache_key(self.request.user.pk), allowed_applications, From dcc3ca664a1a382edec5bc998c0e6f8b309a7f7e Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 19:07:43 +0000 Subject: [PATCH 093/105] core, web: update translations (#8513) Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> --- locale/en/LC_MESSAGES/django.po | 14 +++++++++++++- web/xliff/de.xlf | 24 ++++++++++++++++++++++++ web/xliff/en.xlf | 24 ++++++++++++++++++++++++ web/xliff/es.xlf | 24 ++++++++++++++++++++++++ web/xliff/fr.xlf | 24 ++++++++++++++++++++++++ web/xliff/ko.xlf | 24 ++++++++++++++++++++++++ web/xliff/nl.xlf | 24 ++++++++++++++++++++++++ web/xliff/pl.xlf | 24 ++++++++++++++++++++++++ web/xliff/pseudo-LOCALE.xlf | 24 ++++++++++++++++++++++++ web/xliff/tr.xlf | 24 ++++++++++++++++++++++++ web/xliff/zh-CN.xlf | 24 ++++++++++++++++++++++++ web/xliff/zh-Hans.xlf | 24 ++++++++++++++++++++++++ web/xliff/zh-Hant.xlf | 24 ++++++++++++++++++++++++ web/xliff/zh_TW.xlf | 24 ++++++++++++++++++++++++ 14 files changed, 325 insertions(+), 1 deletion(-) diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 19c2426ca9..effd6f223a 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-07 12:04+0000\n" +"POT-Creation-Date: 2024-02-14 18:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -408,6 +408,10 @@ msgid "" "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "" +#: authentik/enterprise/providers/rac/models.py +msgid "When set to true, connection tokens will be deleted upon disconnect." +msgstr "" + #: authentik/enterprise/providers/rac/models.py msgid "RAC Provider" msgstr "" @@ -432,6 +436,14 @@ msgstr "" msgid "RAC Property Mappings" msgstr "" +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection token" +msgstr "" + +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection tokens" +msgstr "" + #: authentik/enterprise/providers/rac/views.py msgid "Maximum connection limit reached." msgstr "" diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index 21b8fd3cd7..e5c28fef6f 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -6402,6 +6402,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index e6bd48e183..db06cf2a42 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6672,6 +6672,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index a5b2ea4f3b..3bad1c1691 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -6318,6 +6318,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index e848efb0ac..711971bac5 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -8422,6 +8422,30 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Configure Remote Access Provider Provider Configurer le fournisseur d'accès distant + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/ko.xlf b/web/xliff/ko.xlf index a485c38b52..820e681515 100644 --- a/web/xliff/ko.xlf +++ b/web/xliff/ko.xlf @@ -8266,6 +8266,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/nl.xlf b/web/xliff/nl.xlf index 837eed2f36..21c10a19c4 100644 --- a/web/xliff/nl.xlf +++ b/web/xliff/nl.xlf @@ -8109,6 +8109,30 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 807a2f41a5..4e3b019d88 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -6524,6 +6524,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index cbcc89dd69..124901d4ce 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -8243,4 +8243,28 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections + diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index ca373d1735..99c28adf1a 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -6311,6 +6311,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/zh-CN.xlf b/web/xliff/zh-CN.xlf index d0fee283ba..9c7c3e95d6 100644 --- a/web/xliff/zh-CN.xlf +++ b/web/xliff/zh-CN.xlf @@ -5221,6 +5221,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections + diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 335ded3757..5c0b561487 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -8424,6 +8424,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider 配置远程访问提供程序 + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 81f6200cb5..831d290466 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -6359,6 +6359,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index f6a9e389ea..ba30848b19 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -8227,6 +8227,30 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider + + + Delete authorization on disconnect + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + + + Connection Token(s) + + + Endpoint + + + Connections + + + Unconfigured + + + This option will not be changed by this mapping. + + + RAC Connections From e0db9f3ea17af1eb014f13593dc51e020632fc8e Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Wed, 14 Feb 2024 20:10:33 +0100 Subject: [PATCH 094/105] website/docs: applications: add reference to S3 for icon URLs (#8488) --- website/docs/core/applications.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/core/applications.md b/website/docs/core/applications.md index 5798d986b9..1cf8da196f 100644 --- a/website/docs/core/applications.md +++ b/website/docs/core/applications.md @@ -33,7 +33,7 @@ The following aspects can be configured: If the authentik server does not have a volume mounted under `/media`, you'll get a text input. This accepts absolute URLs. If you've mounted single files into the container, you can reference them using `https://authentik.company/media/my-file.png`. - If there is a mount under `/media`, you'll instead see a field to upload a file. + If there is a mount under `/media` or if [S3 storage](../installation/storage-s3.md) is configured, you'll instead see a field to upload a file. - _Publisher_: Text shown below the application - _Description_: Subtext shown on the application card below the publisher From b999e23d27a362a3c0c2f6148abc2682b703fed8 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 19:24:57 +0000 Subject: [PATCH 095/105] translate: Updates for file locale/en/LC_MESSAGES/django.po in fr (#8514) Translate locale/en/LC_MESSAGES/django.po in fr 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/fr/LC_MESSAGES/django.po | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 1e2b383642..c853b1784d 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-07 12:04+0000\n" +"POT-Creation-Date: 2024-02-14 18:51+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: Marc Schmitt, 2024\n" "Language-Team: French (https://app.transifex.com/authentik/teams/119923/fr/)\n" @@ -460,6 +460,11 @@ msgstr "" "session dure jusqu'à la fermeture du navigateur. (Format : " "hours=-1;minutes=-2;seconds=-3)" +#: authentik/enterprise/providers/rac/models.py +msgid "When set to true, connection tokens will be deleted upon disconnect." +msgstr "" +"Si activé, les jetons de connexion seront supprimés lors de la déconnexion." + #: authentik/enterprise/providers/rac/models.py msgid "RAC Provider" msgstr "Fournisseur RAC" @@ -484,6 +489,14 @@ msgstr "Mappage de propriété RAC" msgid "RAC Property Mappings" msgstr "Mappages de propriété RAC" +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection token" +msgstr "Jeton de connexion RAC" + +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection tokens" +msgstr "Jeton de connexions RAC" + #: authentik/enterprise/providers/rac/views.py msgid "Maximum connection limit reached." msgstr "Limite maximum de connection atteinte." From 2c1df6702cbfa0a499bdb356fcb2ff89ac2ebee9 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 19:26:44 +0000 Subject: [PATCH 096/105] translate: Updates for file web/xliff/en.xlf in fr (#8515) Translate web/xliff/en.xlf in fr 100% translated source file: 'web/xliff/en.xlf' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/fr.xlf | 70 +++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 711971bac5..2c97a1f9a4 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1613,7 +1613,7 @@ Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1781,8 +1781,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2870,7 +2870,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -2959,8 +2959,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3255,7 +3255,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3423,7 +3423,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3737,8 +3737,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3914,10 +3914,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - "? + " + "? @@ -4998,8 +4998,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5324,7 +5324,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5333,10 +5333,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5385,8 +5385,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6165,7 +6165,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7472,7 +7472,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7878,7 +7878,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Utilisateur créé et ajouté au groupe avec succès - This user will be added to the group "". + This user will be added to the group "". Cet utilisateur sera ajouté au groupe &quot;&quot;. @@ -8425,28 +8425,36 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Delete authorization on disconnect + Supprimer l’autorisation à la déconnexion When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + Si activé, les autorisations de connexion seront supprimées lorsqu'un client se déconnecte. Cela forcera les clients avec des connexions internet instables à ré-autoriser le point de terminaison. Connection Token(s) + Jeton(s) de connexion Endpoint + Point de terminaison Connections + Connexions Unconfigured + Non-configuré This option will not be changed by this mapping. + Cette option ne sera pas changée par ce mappage. RAC Connections + Connexions RAC - + \ No newline at end of file From a3bfb3d25cc7a86a6d600b36c70fe33b68e3973f Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Wed, 14 Feb 2024 20:52:56 +0100 Subject: [PATCH 097/105] website/docs: 2024.2 release notes (#8468) Co-authored-by: Tana M Berry Co-authored-by: Jens L. Co-authored-by: Jens Langhammer --- Makefile | 2 +- website/docs/advanced/tenancy.md | 10 +- website/docs/events/index.md | 2 +- website/docs/flow/stages/email/index.mdx | 2 +- .../docs/flow/stages/identification/index.md | 2 +- website/docs/flow/stages/user_login/index.md | 4 +- website/docs/installation/configuration.mdx | 2 +- website/docs/policies/expression.mdx | 6 + website/docs/providers/oauth2/index.md | 4 +- website/docs/releases/2024/v2024.1.md | 115 - website/docs/releases/2024/v2024.2.md | 10209 ++++++++++++++++ website/docusaurus.config.ts | 3 +- website/sidebars.js | 3 +- 13 files changed, 10235 insertions(+), 129 deletions(-) delete mode 100644 website/docs/releases/2024/v2024.1.md create mode 100644 website/docs/releases/2024/v2024.2.md diff --git a/Makefile b/Makefile index 40905f2eb9..0cffb452af 100644 --- a/Makefile +++ b/Makefile @@ -125,7 +125,7 @@ gen-diff: ## (Release) generate the changelog diff between the current schema a docker run \ --rm -v ${PWD}:/local \ --user ${UID}:${GID} \ - docker.io/openapitools/openapi-diff:2.1.0-beta.6 \ + docker.io/openapitools/openapi-diff:2.1.0-beta.8 \ --markdown /local/diff.md \ /local/old_schema.yml /local/schema.yml rm old_schema.yml diff --git a/website/docs/advanced/tenancy.md b/website/docs/advanced/tenancy.md index 222f437201..5f3e1d1ca8 100644 --- a/website/docs/advanced/tenancy.md +++ b/website/docs/advanced/tenancy.md @@ -2,17 +2,23 @@ title: Tenancy --- +Enterprise + +--- + ::::warning This feature is in alpha. Use at your own risk. :::: ::::info -This feature is available from 2024.1.1 and is not to be confused with brands, which used to be called tenants. +This feature is available from 2024.2 and is not to be confused with brands, which used to be called tenants. :::: ## Preparations -Starting with 2024.1.1, authentik allows for multiple tenants to be created. This allows an operator to manage several authentik installations without having to deploy additional instances. +Starting with 2024.2, authentik allows an administrator or operator to create multiple tenants. This means that an operator can manage several authentik installations without having to deploy additional instances. + +Note that creating and managing tenants is handled using authentik APIs, not in the Admin interface. authentik manages tenants by storing data for each tenant in a separate PostgreSQL schema. diff --git a/website/docs/events/index.md b/website/docs/events/index.md index d9f3af567f..51678d87be 100644 --- a/website/docs/events/index.md +++ b/website/docs/events/index.md @@ -306,7 +306,7 @@ A configuration error occurs, for example during the authorization of an applica Logged when any model is created/updated/deleted, including the user that sent the request. :::info -Starting with authentik Enterprise 2024.1, `model_*` events also include which fields have been changed and their previous and new values. +Starting with authentik 2024.2, when a valid enterprise license is installed, these entries will contain additional audit data, including which fields were changed with this event, their previous values and their new values. ::: ### `email_sent` diff --git a/website/docs/flow/stages/email/index.mdx b/website/docs/flow/stages/email/index.mdx index 556b45878e..33b09bf810 100644 --- a/website/docs/flow/stages/email/index.mdx +++ b/website/docs/flow/stages/email/index.mdx @@ -26,7 +26,7 @@ return True You can also use custom email templates, to use your own design or layout. :::info -Starting with authentik 2024.1, it is possible to create `.txt` files with the same name as the `.html` template. If a matching `.txt` file exists, the email sent will be a multipart email with both the text and HTML template. +Starting with authentik 2024.2, it is possible to create `.txt` files with the same name as the `.html` template. If a matching `.txt` file exists, the email sent will be a multipart email with both the text and HTML template. ::: import Tabs from "@theme/Tabs"; diff --git a/website/docs/flow/stages/identification/index.md b/website/docs/flow/stages/identification/index.md index 3b9d647412..5c0046f376 100644 --- a/website/docs/flow/stages/identification/index.md +++ b/website/docs/flow/stages/identification/index.md @@ -25,7 +25,7 @@ These fields specify if and which flows are linked on the form. The enrollment f ## Pretend user exists :::info -Requires authentik 2024.1 +Requires authentik 2024.2 ::: When enabled, any user identifier will be accepted as valid (as long as they match the correct format, i.e. when [User fields](#user-fields) is set to only allow Emails, then the identifier still needs to be an Email). The stage will succeed and the flow will continue to the next stage. Stages like the [Password stage](../password/index.md) and [Email stage](../email/index.mdx) are aware of this "pretend" user and will behave the same as if the user would exist. diff --git a/website/docs/flow/stages/user_login/index.md b/website/docs/flow/stages/user_login/index.md index 92d655093b..a9f00bb5bc 100644 --- a/website/docs/flow/stages/user_login/index.md +++ b/website/docs/flow/stages/user_login/index.md @@ -39,8 +39,6 @@ When configured, all sessions authenticated by this stage will be bound to the s Sessions which break this binding will be terminated on use. The created [`logout`](../../../events/index.md#logout) event will contain additional data related to what caused the binding to be broken: ```json - -Context { "asn": { "asn": 6805, @@ -65,7 +63,7 @@ Context }, "ip": { "previous": "1.2.3.4", - "new": "5.6.7.8", + "new": "5.6.7.8" }, "http_request": { "args": {}, diff --git a/website/docs/installation/configuration.mdx b/website/docs/installation/configuration.mdx index c42290995e..e994837c08 100644 --- a/website/docs/installation/configuration.mdx +++ b/website/docs/installation/configuration.mdx @@ -426,7 +426,7 @@ Defaults to 2. ## System settings :::info -Requires authentik 2024.1.0 +Requires authentik 2024.2 ::: Additional settings are configurable using the Admin interface, under **System** -> **Settings** or using the API. diff --git a/website/docs/policies/expression.mdx b/website/docs/policies/expression.mdx index aaf8506080..68aa595fe4 100644 --- a/website/docs/policies/expression.mdx +++ b/website/docs/policies/expression.mdx @@ -59,6 +59,12 @@ import Objects from "../expressions/_objects.md"; return context["geoip"].country.iso_code == "US" ``` +- `asn`: ASN object, see [GeoIP](https://geoip2.readthedocs.io/en/latest/#geoip2.models.ASN) + + ```python + return context["asn"].autonomous_system_number == 64496 + ``` + - `ak_is_sso_flow`: Boolean which is true if request was initiated by authenticating through an external provider. - `ak_client_ip`: Client's IP Address or 255.255.255.255 if no IP Address could be extracted. Can be [compared](#comparing-ip-addresses), for example diff --git a/website/docs/providers/oauth2/index.md b/website/docs/providers/oauth2/index.md index 90ce757787..556f865f50 100644 --- a/website/docs/providers/oauth2/index.md +++ b/website/docs/providers/oauth2/index.md @@ -38,7 +38,7 @@ To access the user's email address, a scope of `user:email` is required. To acce This grant is used to convert an authorization code to an access token (and optionally refresh token). The authorization code is retrieved through the Authorization flow, and can only be used once, and expires quickly. :::info -Starting with authentik 2024.1, applications only receive an access token. To receive a refresh token, applications must be allowed to request the `offline_access` scope in authentik and also be configured to request the scope. +Starting with authentik 2024.2, applications only receive an access token. To receive a refresh token, both applications and authentik must be configured to request the `offline_access` scope. In authentik this can be done by selecting the `offline_access` Scope mapping in the provider settings. ::: ### `refresh_token`: @@ -46,7 +46,7 @@ Starting with authentik 2024.1, applications only receive an access token. To re Refresh tokens can be used as long-lived tokens to access user data, and further renew the refresh token down the road. :::info -Starting with authentik 2024.1, this grant requires the `offline_access` scope. +Starting with authentik 2024.2, this grant requires the `offline_access` scope. ::: ### `client_credentials`: diff --git a/website/docs/releases/2024/v2024.1.md b/website/docs/releases/2024/v2024.1.md deleted file mode 100644 index fe82074cea..0000000000 --- a/website/docs/releases/2024/v2024.1.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: Release 2024.1 -slug: /releases/2024.1 ---- - -## Breaking changes - -- Tenants have been renamed to brands - - The API endpoints associated with brands have also been renamed. - - Blueprints using `authentik_tenants.tenant` will need to be changed to use `authentik_brands.brand`. - -- The following config options have been moved from the config file and can now be set using the admin interface (under **System** -> **Settings**) or the API: - - - `AUTHENTIK_AVATARS` - - `AUTHENTIK_DEFAULT_USER_CHANGE_NAME` - - `AUTHENTIK_DEFAULT_USER_CHANGE_EMAIL` - - `AUTHENTIK_DEFAULT_USER_CHANGE_USERNAME` - - `AUTHENTIK_GDPR_COMPLIANCE` - - `AUTHENTIK_IMPERSONATION` - - `AUTHENTIK_FOOTER_LINKS` - - `AUTHENTIK_REPUTATION__EXPIRY` - - When upgrading to 2024.1, the currently configured options will be automatically migrated to the database, and can be removed from the `.env` or helm values file afterwards. - -- Required `offline_access` scope for Refresh tokens - - The OAuth2 provider ships with a new default scope called `offline_access`, which must be requested by applications that need a refresh token. Previously, authentik would always issue a refresh token for the _Authorization code_ and _Device code_ OAuth grants. - - Applications which require will need their configuration update to include the `offline_access` scope mapping. - -- The event retention settings configured in brands (previously tenants, see above) has been removed and is now a system settings, managed in the admin interface or via the API (see above). - - There is no built-in migration path for this change. If you set something other than the default (`days=365`), you will need to update the setting in the admin interface. - -- authentik now uses PostgreSQL schemas other than `public`. - - If you have a custom PostgreSQL deployment, please ensure that the authentik user is allowed to create schemas. Usually, if the authentik user is owner of the database, it already can. - -- Removal of deprecated metrics - - - `authentik_outpost_flow_timing_get` -> `authentik_outpost_flow_timing_get_seconds` - - `authentik_outpost_flow_timing_post` -> `authentik_outpost_flow_timing_post_seconds` - - `authentik_outpost_ldap_requests` -> `authentik_outpost_ldap_request_duration_seconds` - - `authentik_outpost_ldap_requests_rejected` -> `authentik_outpost_ldap_requests_rejected_total` - - `authentik_outpost_proxy_requests` -> `authentik_outpost_proxy_request_duration_seconds` - - `authentik_outpost_proxy_upstream_time` -> `authentik_outpost_proxy_upstream_response_duration_seconds` - - `authentik_outpost_radius_requests` -> `authentik_outpost_radius_request_duration_seconds` - - `authentik_outpost_radius_requests_rejected` -> `authentik_outpost_radius_requests_rejected_total` - - `authentik_main_requests` -> `authentik_main_request_duration_seconds` - -- Icons are now in a `public/` subfolder - - If your media folder is `/media`, icons are now stored in `/media/public`. authentik will automatically migrate the icons upon upgrading. - -- The shorthand parameter for `--stage`, `-s` for the `ak test_email` command has been changed to `-S` - -- User sessions will be invalidated after this upgrade. As such, users will need to log back in. - -- The Helm Chart has a number of breaking changes. Find out more in the [chart release notes](https://github.com/goauthentik/helm/releases/tag/authentik-2024.1.0). - -## New features - -- Tenancy Enterprise - - :::warning - This feature is in early preview. Use at your own risk. - ::: - - It allows for authentik operators to manage several authentik installations without having to deploy additional instances. - -- Audit log Enterprise - - authentik instances which have a valid enterprise license installed will log changes made to models including which fields were changed with previous and new values of the fields. The values are censored if they are sensitive (for example a password hash), however a hash of the changed value will still be logged. - -- "Pretend user exists" option for Identification stage - - Previously the identification stage would only continue if a user matching the user identifier exists. While this was the intended functionality, this release adds an option to continue to the next stage even if no matching user was found. "Pretend" users cannot authenticate nor receive emails, and don't exist in the database. **This feature is enabled by default.** - -- S3 file storage - - Media files can now be stored on S3. Follow the [setup guide](../../installation/storage-s3.md) to get started. - -## Upgrading - -This release does not introduce any new requirements. - -### docker-compose - -To upgrade, download the new docker-compose file and update the Docker stack with the new version, using these commands: - -``` -wget -O docker-compose.yml https://goauthentik.io/version/2024.1/docker-compose.yml -docker compose up -d -``` - -The `-O` flag retains the downloaded file's name, overwriting any existing local file with the same name. - -### Kubernetes - -Upgrade the Helm Chart to the new version, using the following commands: - -```shell -helm repo update -helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.1 -``` - -## Minor changes/fixes - - - -## API Changes - - diff --git a/website/docs/releases/2024/v2024.2.md b/website/docs/releases/2024/v2024.2.md new file mode 100644 index 0000000000..a736ca8442 --- /dev/null +++ b/website/docs/releases/2024/v2024.2.md @@ -0,0 +1,10209 @@ +--- +title: Release 2024.2 (unreleased) +slug: /releases/2024.2 +--- + +:::::note +2024.2 has not been released yet! We're publishing these release notes as a preview of what's to come, and for our awesome beta testers trying out release candidates. +::::: + +## Highlights + +- **Remote Access Control** Enterprise Access machines over RDP, SSH, and VNC from authentik + +- **Audit logging** Enterprise See what fields were changed when objects are updated + +- **Session location and network binding** Increase security by preventing session theft + +- **Wizard to simplify creating applications and providers** + +## Breaking changes + +### Manual action is required + +- **Tenants have been renamed to brands** + + Tenants, which were previously used to change branding configuration, default flows, and several other settings have been renamed to _brands_. This name change is due to this release including full tenancy (see [New Features](#new-features)). Additionally, brands now more accurately reflect their usage; to configure branding, logos, colors, and overall login flow behavior. + + Existing _tenant_ objects will automatically be renamed to _brand_ objects. The API endpoints associated with _brands_ have also been renamed. + + Blueprints using `authentik_tenants.tenant` will need to be changed to use `authentik_brands.brand`. + + For more information, refer to the [documentation for _brands_](../../core/brands.md). + + Also, **the event retention settings configured in brands (previously tenants, see above) has been removed and is now a system setting**, managed in the Admin interface or via the API (see below). + + **There is no built-in migration path for this change.** If you set something other than the default (`days=365`), you will need to update the setting in the admin interface. + +- **Helm chart breaking changes** + + The Helm Chart has a number of breaking changes. Find out more in the [chart release notes](https://github.com/goauthentik/helm/releases/tag/authentik-2024.2.0-rc1). + +### Manual action may be required + +- **Required `offline_access` scope for Refresh tokens** + + The OAuth2 provider ships with a new default scope called `offline_access`, which must be requested by applications that need a refresh token. Previously, authentik would always issue a refresh token for the _Authorization code_ and _Device code_ OAuth grants. + + Applications that require a refresh token will need their configuration to be updated to include the `offline_access` scope mapping. + +- **Database requirement changes** + + authentik now uses PostgreSQL schemas other than `public`. + + If you have a custom PostgreSQL deployment, please ensure that the authentik user is allowed to create schemas. Usually, if the authentik user is owner of the database, it already can. + +- **Redis and cache configuration options have been improved** + + Thank you @PKizzle for this contribution! + + Cache settings have been moved from the `redis` top-level config key to their own `cache` top-level config key. + + Settings have also been added to configure the Redis instance/database used for tasks and websockets separately from cache. See [here](../../installation/configuration.mdx#redis-settings). + + Typically, _no changes to the configuration are required_. + +- **Configuration options migrated to the Admin interface** + + The following config options have been moved from the config file and can now be set using the Admin interface (under **System** -> **Settings**) or the API: + + - `AUTHENTIK_AVATARS` + - `AUTHENTIK_DEFAULT_USER_CHANGE_NAME` + - `AUTHENTIK_DEFAULT_USER_CHANGE_EMAIL` + - `AUTHENTIK_DEFAULT_USER_CHANGE_USERNAME` + - `AUTHENTIK_GDPR_COMPLIANCE` + - `AUTHENTIK_IMPERSONATION` + - `AUTHENTIK_FOOTER_LINKS` + - `AUTHENTIK_REPUTATION__EXPIRY` + + When upgrading to 2024.2, the currently configured options will be automatically migrated to the database, and can be removed from the `.env` or helm values file afterwards. + +- **Icons are now in a `public/` subfolder** + + If your media folder is `/media`, icons are now stored in `/media/public`. authentik will automatically migrate the icons upon upgrading. + + Note that even though that folder is named `public`, the files stored here are not automatically public. This is due to the naming of the default PostgreSQL schema. + +- **User sessions will be invalidated after this upgrade.** + + As such, users will need to log back in. Immediately after the upgrade completes, users are logged out automatically and are then prompted to log in again. This only occurs once. + +- **Removal of deprecated metrics** + + These metrics were renamed because they did not adhere to Prometheus best practices. The old metrics were kept for backwards compatibility and have now been removed. + + - `authentik_outpost_flow_timing_get` -> `authentik_outpost_flow_timing_get_seconds` + - `authentik_outpost_flow_timing_post` -> `authentik_outpost_flow_timing_post_seconds` + - `authentik_outpost_ldap_requests` -> `authentik_outpost_ldap_request_duration_seconds` + - `authentik_outpost_ldap_requests_rejected` -> `authentik_outpost_ldap_requests_rejected_total` + - `authentik_outpost_proxy_requests` -> `authentik_outpost_proxy_request_duration_seconds` + - `authentik_outpost_proxy_upstream_time` -> `authentik_outpost_proxy_upstream_response_duration_seconds` + - `authentik_outpost_radius_requests` -> `authentik_outpost_radius_request_duration_seconds` + - `authentik_outpost_radius_requests_rejected` -> `authentik_outpost_radius_requests_rejected_total` + - `authentik_main_requests` -> `authentik_main_request_duration_seconds` + +- The shorthand parameter for `--stage`, `-s` for the `ak test_email` command has been changed to `-S` + +## New features + +- **New provider: Remote Access Control** Enterprise + + The Remote Access Control provider allows you to remotely connect to remote machines over RDP, SSH and VNC through authentik. As such, you can use the same policy engine and customization options that are possible with other providers using the same user and admin interface. + +- **Audit logging** Enterprise + + authentik instances that have a valid enterprise license installed will log any changes made to models, including which fields were changed with previous and new values of the fields. The values are censored if they are sensitive (for example a password hash), however a hash of the changed value will still be logged. + +- **Session location and network binding** + + Sessions for any users can now be bound to a specific geolocation (Continent, Country, City) or network (Autonomous System, subnet, IP address). If the session is accessed from a location/network that is different than that from which it was initially created, the session will be terminated. + + Configuration steps are available [here](../../flow/stages/user_login/index.md#network-bindinggeoip-binding). + +- **S3 file storage** + + Media files can now be stored on S3. Follow the [setup guide](../../installation/storage-s3.md) to get started. + +- **_Pretend user exists_ option for Identification stage** + + Previously the Identification stage would only continue if a user matching the user identifier exists. While this was the intended functionality, this release adds an option to continue to the next stage even if no matching user was found. "Pretend" users cannot authenticate nor receive emails, and don't exist in the database. + + **This feature is enabled by default.** + +- **Tenancy** Enterprise + + :::warning + This feature is in early preview. Use at your own risk. + ::: + + With the release of 2024.2, an administrator or operator can now create multiple tenants. This means that an operator can manage several authentik installations without having to deploy additional instances. + + For more information about tenants, refer to the [documentation](../../advanced/tenancy.md). Refer to the [brands documentation](../../core/brands.md) for information about the updated process for configuring an instance's branding, colors, logos, etc. + +### UX features + +- **Simplified workflow for creating applications and providers** + + Applications and providers can now be created at the same time using the **Application Wizard**, found on the **Applications** -> **Applications** page of the Admin interface. The new wizard removes the previous requirement of first creating the provider, then the application, and then manually linking the two together. + +- **Ability to select more than 20 providers in an outpost** + + We have introduced a new way of selecting providers in the outpost configuration form, which allows for more than 20 providers to be selected for a single outpost. + + This dual-list multiselect prompt is only available for outposts for now, but we plan on extending it to other forms. + +- **Attribute preview per user** + + You can now preview attributes transmitted to SAML and OAuth applications for a specific user. + +- **Display applications a user has access to** + + An administrator can now see all applications a user has access to on the user's page in the Admin interface. + +### Other noteworthy features + +- **New graph for event volume** + + In the **Events** -> **Log** page in the Admin interface, you can see a graph of the event volume matching the search query over the last 7 days. + +- **Flows can now be restricted to outposts** + + You can now restrict a flow to be used only by an outpost using the **Require Outpost** setting on the flow. This would mainly be used for LDAP flows. + +- **System tasks improvements** + + You can now search through system tasks. We have also improved the task duration calculation and display. + +- **LDAP provider: allow overriding gidNumber** + + Previously, the `gidNumber` attribute on a user was set to the same as `uidNumber`. You can now override this behaviour. + +- **LDAP source: new command to check connectivity** + + Examples on how to use are available [here](../..//troubleshooting/ldap_source.md). + +--- + +## Upgrading + +This release does not introduce any new requirements. + +### docker-compose + +To upgrade, download the new docker-compose file and update the Docker stack with the new version, using these commands: + +``` +wget -O docker-compose.yml https://goauthentik.io/version/2024.2/docker-compose.yml +docker compose up -d +``` + +The `-O` flag retains the downloaded file's name, overwriting any existing local file with the same name. + +### Kubernetes + +Upgrade the Helm Chart to the new version, using the following commands: + +```shell +helm repo update +helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.2 +``` + +## Minor changes/fixes + +- blueprints: improve file change handler (#7813) +- blueprints: only watch for fs events we're interested in (#7810) +- core: fix PropertyMapping context not being available in request context +- core: fix pagination in applications list being ignored (#8512) +- core: fix worker beat toggle inverted (#7508) +- core: optimise user list endpoint (#8353) +- core: show all applications a user can access in admin interface (#8343) +- core: use correct .evaluate implementation for testing PropertyMappings (#8459) +- core: use correct .evaluate implementation for testing PropertyMappings (#8459) +- enterprise/providers/rac: add alert that enterprise is required for RAC (#8057) +- enterprise/providers/rac: add option to limit concurrent connections to endpoint (#8053) +- enterprise/providers/rac: connection token management (#8467) +- enterprise/providers/rac: create authorize_application event when creating token (#8050) +- enterprise/providers/rac: fix maximum_connections set to -1 not being effective (#8456) +- enterprise/providers/rac: fix maximum_connections set to -1 not being effective (#8456) +- enterprise/providers: Add RAC (#7291) +- enterprise: add full audit log (#8177) +- enterprise: fix system task missing set_status (#8455) +- enterprise: rework license summary caching (#8501) +- enterrpise: exclude inactive users from license (#8294) +- events: add ASN Database reader (#7793) +- events: add better fallback for sanitize_item to ensure everything can be saved as JSON (#7694) +- events: add graph for event volume (#7639) +- events: fix SystemTask timestamps and scheduling (#8435) +- events: include user agent in events (#7693) +- events: migrate SystemTasks to DB (#8159) +- flows: add "require outpost" authentication_requirement (#7921) +- internal: remove deprecated metrics (#7540) +- internal: remove special route for /outpost.goauthentik.io (#7539) +- outposts/ldap: allow overriding gidNumber for a user (#8003) +- outposts/ldap: avoid nil ptr deref in MemorySearcher (#7767) +- outposts/proxy: better Redis error message (#8044) +- outposts: disable deployment and secret reconciler for embedded outpost in code instead of in config (#8021)(#8024) +- outposts: fix Outpost reconcile not re-assigning managed attribute (#8014) +- providers/oauth2: fix CVE-2024-21637 (#8104) +- providers/oauth2: fix missing nonce in id_token (#8072) +- providers/oauth2: fix missing nonce in token endpoint not being saved (#8073) +- providers/oauth2: offline access (#8026) +- providers/oauth2: remember session_id from initial token (#7976) +- providers/oauth2: set auth_via for token and other endpoints (#7417) +- providers/proxy: Fix duplicate cookies when using file system store. (#7541) +- providers/proxy: fix closed redis client (#7385) +- providers/proxy: use access token (#8022) +- providers/rac: fix property mapping without enterprise (#8144) +- providers/scim: change familyName default (#7904) +- providers/scim: fix missing schemas attribute for User and Group (#7477) +- providers/scim: set timeout based on page and page count (#7941) +- providers/scim: use lock for sync (#7948) +- providers: allow previewing mappings for other users (#8297) +- rbac: fix error when looking up permissions for now uninstalled apps (#8068) +- rbac: fix invitations listing with restricted permissions (#8227) +- root: Multi-tenancy (#7590) +- root: Restructure broker / cache / channel / result configuration (#7097) +- root: bump python deps (django 5) (#7862) +- root: fix listen trusted_proxy_cidrs config loading from environment (#8075) +- root: fix redis config not being updated to match previous change +- root: fix system check warnings (#8277) +- root: include ca-certificates in container (#7763) +- root: make test database name configurable (#7591) +- root: simplify task signal imports (#8454) +- security: fix CVE-2023-48228 (#7666) +- security: fix CVE-2024-23647 (#8345) +- sources/ldap: add check command to verify ldap connectivity (#7263) +- sources/ldap: clean-up certs written from db (#7617) +- sources/ldap: fix Issue with changing passwords with eDirectory (#7997) +- sources/oauth: fix OAuth source type serializer (#8140) +- sources/oauth: fix URLs being overwritten by OIDC urls (#8147) +- sources/oauth: fix azure_ad user_id and add test and fallback (#8146) +- sources/oauth: fix missing get_user_id for OIDC-like sources (Azure AD) (#7970) +- sources/oauth: fix patreon (#7454) +- sources/oauth: revert azure_ad profile URL change (#8139) +- stages/authenticator_totp: fix API validation error due to choices (#7608) +- stages/authenticator_validate: fix error when using pretend_user (#8447) +- stages/authenticator_validate: fix error when using pretend_user (#8447) +- stages/authenticator_validate: use friendly_name for stage selector when enrolling (#8255) +- stages/email: fix duplicate querystring encoding (#7386) +- stages/email: improve error handling for incorrect template syntax (#7758) +- stages/email: prevent authentik emails from being marked as spam (also add text template support) (#7949) +- stages/email: use uuid for email confirmation token instead of username (#7581) +- stages/identification: add option to pretend user exists (#7610) +- stages/user_login: only set last_ip in session if a binding is given (#8074) +- stages/user_login: session binding (#7881) +- web/admin: add RAC Provider to the list of providers understood by the wizard (#8149) +- web/admin: always show oidc well-known URL fields when they're set (#7560) +- web/admin: contextually add user to group when creating user from group page (#7586) +- web/admin: fix admins not able to delete MFA devices (#7660) +- web/admin: fix chart label on dashboard user page (#7434) +- web/admin: fix footer links not being parsed on settings page (#8289) +- web/admin: fix html error on oauth2 provider page (#7384) +- web/admin: fix incorrectly encoded chars in translation (#7580) +- web/admin: hide expiry time if item is set to not expire (#8457) +- web/admin: hide expiry time if item is set to not expire (#8457) +- web/admin: revamped rbac and user settings tabs (#8299) +- web/admin: revise wizard form handling (#7331) +- web/admin: show connected services on user view page, fix styling (#8416) +- web/components: improve error handling in ak-search-select (#8228) +- web/elements: keep selected elements in table when fetching (#7519) +- web/flows: attempt to fix bitwareden android compatibility (#7455) +- web/flows: don't auto-redirect to first source when passwordless is configured (#7579) +- web/flows: fix device picker incorrect foreground color (#8067) +- web/flows: fix icon for generic oauth source with dark theme (#8148) +- web/flows: fix logo height (#7834) +- web/flows: show logo in card (#7824) +- web/flows: use aria-invalid attribute to better show invalid input fields (#7661) +- web/user: fix search not updating selected app in user interface (#7825) +- web: clear "blanked" placeholder when present (#15) (#5948) +- web: clear out selecteds list after an API event to ensure a fresh copy of the policies-to-delete list (#8125) +- web: dark/light theme fixes (#7872) +- web: fix broken backchannel selector (#7480) +- web: fix labels on group view page (#7677) +- web: fix overflow glitch on ak-page-header (#7883) +- web: provide dual-list multiselect with pagination (#8004) + +## API Changes + +#### What's New + +--- + +##### `GET` /admin/settings/ + +##### `PUT` /admin/settings/ + +##### `PATCH` /admin/settings/ + +##### `GET` /core/brands/ + +##### `POST` /core/brands/ + +##### `GET` /core/brands/{#123;brand_uuid}#125;/ + +##### `PUT` /core/brands/{#123;brand_uuid}#125;/ + +##### `DELETE` /core/brands/{#123;brand_uuid}#125;/ + +##### `PATCH` /core/brands/{#123;brand_uuid}#125;/ + +##### `GET` /core/brands/{#123;brand_uuid}#125;/used_by/ + +##### `GET` /core/brands/current/ + +##### `GET` /events/events/volume/ + +##### `GET` /events/system_tasks/ + +##### `GET` /events/system_tasks/{#123;uuid}#125;/ + +##### `POST` /events/system_tasks/{#123;uuid}#125;/run/ + +##### `GET` /propertymappings/rac/ + +##### `POST` /propertymappings/rac/ + +##### `GET` /propertymappings/rac/{#123;pm_uuid}#125;/ + +##### `PUT` /propertymappings/rac/{#123;pm_uuid}#125;/ + +##### `DELETE` /propertymappings/rac/{#123;pm_uuid}#125;/ + +##### `PATCH` /propertymappings/rac/{#123;pm_uuid}#125;/ + +##### `GET` /propertymappings/rac/{#123;pm_uuid}#125;/used_by/ + +##### `GET` /providers/rac/ + +##### `POST` /providers/rac/ + +##### `GET` /providers/rac/{#123;id}#125;/ + +##### `PUT` /providers/rac/{#123;id}#125;/ + +##### `DELETE` /providers/rac/{#123;id}#125;/ + +##### `PATCH` /providers/rac/{#123;id}#125;/ + +##### `GET` /providers/rac/{#123;id}#125;/used_by/ + +##### `GET` /rac/connection_tokens/ + +##### `GET` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ + +##### `PUT` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ + +##### `DELETE` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ + +##### `PATCH` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ + +##### `GET` /rac/connection_tokens/{#123;connection_token_uuid}#125;/used_by/ + +##### `GET` /rac/endpoints/ + +##### `POST` /rac/endpoints/ + +##### `GET` /rac/endpoints/{#123;pbm_uuid}#125;/ + +##### `PUT` /rac/endpoints/{#123;pbm_uuid}#125;/ + +##### `DELETE` /rac/endpoints/{#123;pbm_uuid}#125;/ + +##### `PATCH` /rac/endpoints/{#123;pbm_uuid}#125;/ + +##### `GET` /rac/endpoints/{#123;pbm_uuid}#125;/used_by/ + +##### `GET` /tenants/domains/ + +##### `POST` /tenants/domains/ + +##### `GET` /tenants/domains/{#123;id}#125;/ + +##### `PUT` /tenants/domains/{#123;id}#125;/ + +##### `DELETE` /tenants/domains/{#123;id}#125;/ + +##### `PATCH` /tenants/domains/{#123;id}#125;/ + +##### `GET` /tenants/tenants/ + +##### `POST` /tenants/tenants/ + +##### `GET` /tenants/tenants/{#123;tenant_uuid}#125;/ + +##### `PUT` /tenants/tenants/{#123;tenant_uuid}#125;/ + +##### `DELETE` /tenants/tenants/{#123;tenant_uuid}#125;/ + +##### `PATCH` /tenants/tenants/{#123;tenant_uuid}#125;/ + +##### `POST` /tenants/tenants/{#123;tenant_uuid}#125;/create_admin_group/ + +##### `POST` /tenants/tenants/{#123;tenant_uuid}#125;/create_recovery_key/ + +#### What's Deleted + +--- + +##### `GET` /admin/system_tasks/ + +##### `GET` /admin/system_tasks/{#123;id}#125;/ + +##### `POST` /admin/system_tasks/{#123;id}#125;/retry/ + +##### `GET` /core/tenants/ + +##### `POST` /core/tenants/ + +##### `GET` /core/tenants/{#123;tenant_uuid}#125;/ + +##### `PUT` /core/tenants/{#123;tenant_uuid}#125;/ + +##### `DELETE` /core/tenants/{#123;tenant_uuid}#125;/ + +##### `PATCH` /core/tenants/{#123;tenant_uuid}#125;/ + +##### `GET` /core/tenants/{#123;tenant_uuid}#125;/used_by/ + +##### `GET` /core/tenants/current/ + +#### What's Changed + +--- + +##### `GET` /admin/system/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `brand` + - `embedded_outpost_disabled` + + New optional properties: + + - `tenant` + + * Added property `brand` (string) + + > Currently active brand + + * Added property `embedded_outpost_disabled` (boolean) + + > Whether the embedded outpost is disabled + + * Deleted property `tenant` (string) + > Currently active tenant + +##### `POST` /admin/system/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `brand` + - `embedded_outpost_disabled` + + New optional properties: + + - `tenant` + + * Added property `brand` (string) + + > Currently active brand + + * Added property `embedded_outpost_disabled` (boolean) + + > Whether the embedded outpost is disabled + + * Deleted property `tenant` (string) + > Currently active tenant + +##### `GET` /core/applications/{#123;slug}#125;/check_access/ + +###### Return Type: + +Deleted response : **404 Not Found** + +> for_user user not found + +##### `GET` /core/authenticated_sessions/{#123;uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `asn` + + * Added property `asn` (object) + + > Get ASN Data + + - Property `asn` (integer) + + - Property `as_org` (string) + + - Property `network` (string) + + * Changed property `geo_ip` (object) + > Get GeoIP Data + +##### `GET` /events/events/actions/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /managed/blueprints/{#123;instance_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `context` (object -> object) + + - Changed property `metadata` (object -> object) + +##### `PUT` /managed/blueprints/{#123;instance_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `context` (object -> object) + + - Changed property `metadata` (object -> object) + +##### `PATCH` /managed/blueprints/{#123;instance_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `context` (object -> object) + + - Changed property `metadata` (object -> object) + +##### `POST` /managed/blueprints/{#123;instance_uuid}#125;/apply/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `context` (object -> object) + + - Changed property `metadata` (object -> object) + +##### `GET` /outposts/service_connections/all/types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /outposts/service_connections/kubernetes/{#123;uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +##### `PUT` /outposts/service_connections/kubernetes/{#123;uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +##### `PATCH` /outposts/service_connections/kubernetes/{#123;uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +##### `GET` /policies/all/types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /policies/event_matcher/{#123;policy_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + + - Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `PUT` /policies/event_matcher/{#123;policy_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + + - Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `PATCH` /policies/event_matcher/{#123;policy_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + + - Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `GET` /policies/reputation/scores/{#123;reputation_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `ip_asn_data` (object) + + - Changed property `ip_geo_data` (object -> object) + +##### `GET` /propertymappings/all/types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /providers/all/types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /providers/oauth2/{#123;id}#125;/preview_user/ + +###### Parameters: + +Added: `for_user` in `query` + +##### `GET` /providers/saml/{#123;id}#125;/preview_user/ + +###### Parameters: + +Added: `for_user` in `query` + +##### `GET` /providers/scim/{#123;id}#125;/sync_status/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `is_running` + - `tasks` + + New optional properties: + + - `messages` + - `status` + - `task_description` + - `task_duration` + - `task_finish_timestamp` + - `task_name` + + * Added property `is_running` (boolean) + + * Added property `tasks` (array) + + Items (object): > Serialize TaskInfo and TaskResult + + - Property `uuid` (string) + + - Property `name` (string) + + - Property `full_name` (string) + + > Get full name with UID + + - Property `uid` (string) + + - Property `description` (string) + + - Property `start_timestamp` (string) + + - Property `finish_timestamp` (string) + + - Property `duration` (number) + + - Property `status` (string) + + > - `unknown` - UNKNOWN + > - `successful` - SUCCESSFUL + > - `warning` - WARNING + > - `error` - ERROR + + Enum values: + + - `unknown` + - `successful` + - `warning` + - `error` + + - Property `messages` (array) + + Items (string): + + * Deleted property `task_name` (string) + + * Deleted property `task_description` (string) + + * Deleted property `task_finish_timestamp` (string) + + * Deleted property `task_duration` (integer) + + > Get the duration a task took to run + + * Deleted property `status` (object) + + * Deleted property `messages` (array) + +##### `GET` /schema/ + +###### Parameters: + +Changed: `lang` in `query` + +##### `GET` /sources/all/types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /sources/ldap/{#123;slug}#125;/sync_status/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + +##### `GET` /sources/oauth/source_types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Serializer for SourceType + + New required properties: + + - `verbose_name` + + New optional properties: + + - `slug` + + * Added property `verbose_name` (string) + + * Deleted property `slug` (string) + +##### `GET` /stages/all/types/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /stages/email/templates/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > Types of an object that can be created + + - Added property `requires_enterprise` (boolean) + +##### `GET` /authenticators/duo/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /authenticators/sms/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /authenticators/static/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /authenticators/totp/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /authenticators/webauthn/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/applications/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/authenticated_sessions/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticatedSession Serializer + + New required properties: + + - `asn` + + * Added property `asn` (object) + + > Get ASN Data + + * Changed property `geo_ip` (object) + > Get GeoIP Data + +##### `GET` /core/authenticated_sessions/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/groups/{#123;group_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/tokens/{#123;identifier}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `PUT` /core/tokens/{#123;identifier}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `PATCH` /core/tokens/{#123;identifier}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /core/tokens/{#123;identifier}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/user_consent/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/users/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `PUT` /core/users/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `PATCH` /core/users/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /core/users/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /crypto/certificatekeypairs/{#123;kp_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /enterprise/license/{#123;license_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /events/events/{#123;event_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `PUT` /events/events/{#123;event_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Added property `brand` (object) + +- Deleted property `tenant` (object) + +- Changed property `user` (object -> object) + +- Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `PATCH` /events/events/{#123;event_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Added property `brand` (object) + +- Deleted property `tenant` (object) + +- Changed property `user` (object -> object) + +- Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `GET` /events/notifications/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /events/rules/{#123;pbm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /events/transports/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /flows/bindings/{#123;fsb_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /flows/instances/{#123;slug}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /flows/instances/{#123;slug}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + +- Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /flows/instances/{#123;slug}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + +- Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /flows/instances/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `POST` /managed/blueprints/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `context` (object -> object) + + - Changed property `metadata` (object -> object) + +##### `GET` /managed/blueprints/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Info about a single blueprint instance file + + - Changed property `context` (object -> object) + + - Changed property `metadata` (object -> object) + +##### `GET` /managed/blueprints/{#123;instance_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /oauth2/access_tokens/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /oauth2/authorization_codes/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /oauth2/refresh_tokens/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /outposts/instances/{#123;uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +##### `PUT` /outposts/instances/{#123;uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +##### `PATCH` /outposts/instances/{#123;uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +##### `GET` /outposts/instances/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /outposts/service_connections/all/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /outposts/service_connections/docker/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `POST` /outposts/service_connections/kubernetes/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +##### `GET` /outposts/service_connections/kubernetes/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > KubernetesServiceConnection Serializer + + - Changed property `kubeconfig` (object -> object) + > Paste your kubeconfig here. authentik will automatically use the currently selected context. + +##### `GET` /outposts/service_connections/kubernetes/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/all/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/bindings/{#123;policy_binding_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `PUT` /policies/bindings/{#123;policy_binding_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `PATCH` /policies/bindings/{#123;policy_binding_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /policies/bindings/{#123;policy_binding_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/dummy/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `POST` /policies/event_matcher/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + + - Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `GET` /policies/event_matcher/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Event Matcher Policy Serializer + + - Changed property `app` (string) + + > - `authentik.tenants` - authentik Tenants + > - `authentik.admin` - authentik Admin + > - `authentik.api` - authentik API + > - `authentik.crypto` - authentik Crypto + > - `authentik.flows` - authentik Flows + > - `authentik.outposts` - authentik Outpost + > - `authentik.policies.dummy` - authentik Policies.Dummy + > - `authentik.policies.event_matcher` - authentik Policies.Event Matcher + > - `authentik.policies.expiry` - authentik Policies.Expiry + > - `authentik.policies.expression` - authentik Policies.Expression + > - `authentik.policies.password` - authentik Policies.Password + > - `authentik.policies.reputation` - authentik Policies.Reputation + > - `authentik.policies` - authentik Policies + > - `authentik.providers.ldap` - authentik Providers.LDAP + > - `authentik.providers.oauth2` - authentik Providers.OAuth2 + > - `authentik.providers.proxy` - authentik Providers.Proxy + > - `authentik.providers.radius` - authentik Providers.Radius + > - `authentik.providers.saml` - authentik Providers.SAML + > - `authentik.providers.scim` - authentik Providers.SCIM + > - `authentik.rbac` - authentik RBAC + > - `authentik.recovery` - authentik Recovery + > - `authentik.sources.ldap` - authentik Sources.LDAP + > - `authentik.sources.oauth` - authentik Sources.OAuth + > - `authentik.sources.plex` - authentik Sources.Plex + > - `authentik.sources.saml` - authentik Sources.SAML + > - `authentik.stages.authenticator` - authentik Stages.Authenticator + > - `authentik.stages.authenticator_duo` - authentik Stages.Authenticator.Duo + > - `authentik.stages.authenticator_sms` - authentik Stages.Authenticator.SMS + > - `authentik.stages.authenticator_static` - authentik Stages.Authenticator.Static + > - `authentik.stages.authenticator_totp` - authentik Stages.Authenticator.TOTP + > - `authentik.stages.authenticator_validate` - authentik Stages.Authenticator.Validate + > - `authentik.stages.authenticator_webauthn` - authentik Stages.Authenticator.WebAuthn + > - `authentik.stages.captcha` - authentik Stages.Captcha + > - `authentik.stages.consent` - authentik Stages.Consent + > - `authentik.stages.deny` - authentik Stages.Deny + > - `authentik.stages.dummy` - authentik Stages.Dummy + > - `authentik.stages.email` - authentik Stages.Email + > - `authentik.stages.identification` - authentik Stages.Identification + > - `authentik.stages.invitation` - authentik Stages.User Invitation + > - `authentik.stages.password` - authentik Stages.Password + > - `authentik.stages.prompt` - authentik Stages.Prompt + > - `authentik.stages.user_delete` - authentik Stages.User Delete + > - `authentik.stages.user_login` - authentik Stages.User Login + > - `authentik.stages.user_logout` - authentik Stages.User Logout + > - `authentik.stages.user_write` - authentik Stages.User Write + > - `authentik.brands` - authentik Brands + > - `authentik.blueprints` - authentik Blueprints + > - `authentik.core` - authentik Core + > - `authentik.enterprise` - authentik Enterprise + > - `authentik.enterprise.audit` - authentik Enterprise.Audit + > - `authentik.enterprise.providers.rac` - authentik Enterprise.Providers.RAC + > - `authentik.events` - authentik Events + + Added enum values: + + - `authentik.brands` + - `authentik.enterprise.audit` + - `authentik.enterprise.providers.rac` + + - Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `GET` /policies/event_matcher/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/expression/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/password/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/password_expiry/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/reputation/{#123;policy_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /policies/reputation/scores/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Reputation Serializer + + - Added property `ip_asn_data` (object) + + - Changed property `ip_geo_data` (object -> object) + +##### `GET` /policies/reputation/scores/{#123;reputation_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /propertymappings/all/{#123;pm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /propertymappings/ldap/{#123;pm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /propertymappings/notification/{#123;pm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /propertymappings/saml/{#123;pm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /propertymappings/scim/{#123;pm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /propertymappings/scope/{#123;pm_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/all/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/ldap/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/oauth2/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/proxy/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/radius/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/saml/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /providers/scim/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `POST` /rbac/permissions/assigned_by_roles/{#123;uuid}#125;/assign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `PATCH` /rbac/permissions/assigned_by_roles/{#123;uuid}#125;/unassign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `POST` /rbac/permissions/assigned_by_users/{#123;id}#125;/assign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `PATCH` /rbac/permissions/assigned_by_users/{#123;id}#125;/unassign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + > - `authentik_tenants.domain` - Domain + > - `authentik_crypto.certificatekeypair` - Certificate-Key Pair + > - `authentik_flows.flow` - Flow + > - `authentik_flows.flowstagebinding` - Flow Stage Binding + > - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection + > - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection + > - `authentik_outposts.outpost` - Outpost + > - `authentik_policies_dummy.dummypolicy` - Dummy Policy + > - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy + > - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy + > - `authentik_policies_expression.expressionpolicy` - Expression Policy + > - `authentik_policies_password.passwordpolicy` - Password Policy + > - `authentik_policies_reputation.reputationpolicy` - Reputation Policy + > - `authentik_policies.policybinding` - Policy Binding + > - `authentik_providers_ldap.ldapprovider` - LDAP Provider + > - `authentik_providers_oauth2.scopemapping` - Scope Mapping + > - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider + > - `authentik_providers_proxy.proxyprovider` - Proxy Provider + > - `authentik_providers_radius.radiusprovider` - Radius Provider + > - `authentik_providers_saml.samlprovider` - SAML Provider + > - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping + > - `authentik_providers_scim.scimprovider` - SCIM Provider + > - `authentik_providers_scim.scimmapping` - SCIM Mapping + > - `authentik_rbac.role` - Role + > - `authentik_sources_ldap.ldapsource` - LDAP Source + > - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping + > - `authentik_sources_oauth.oauthsource` - OAuth Source + > - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection + > - `authentik_sources_plex.plexsource` - Plex Source + > - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection + > - `authentik_sources_saml.samlsource` - SAML Source + > - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection + > - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage + > - `authentik_stages_authenticator_duo.duodevice` - Duo Device + > - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage + > - `authentik_stages_authenticator_sms.smsdevice` - SMS Device + > - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage + > - `authentik_stages_authenticator_static.staticdevice` - Static Device + > - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage + > - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device + > - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage + > - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage + > - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device + > - `authentik_stages_captcha.captchastage` - Captcha Stage + > - `authentik_stages_consent.consentstage` - Consent Stage + > - `authentik_stages_consent.userconsent` - User Consent + > - `authentik_stages_deny.denystage` - Deny Stage + > - `authentik_stages_dummy.dummystage` - Dummy Stage + > - `authentik_stages_email.emailstage` - Email Stage + > - `authentik_stages_identification.identificationstage` - Identification Stage + > - `authentik_stages_invitation.invitationstage` - Invitation Stage + > - `authentik_stages_invitation.invitation` - Invitation + > - `authentik_stages_password.passwordstage` - Password Stage + > - `authentik_stages_prompt.prompt` - Prompt + > - `authentik_stages_prompt.promptstage` - Prompt Stage + > - `authentik_stages_user_delete.userdeletestage` - User Delete Stage + > - `authentik_stages_user_login.userloginstage` - User Login Stage + > - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage + > - `authentik_stages_user_write.userwritestage` - User Write Stage + > - `authentik_brands.brand` - Brand + > - `authentik_blueprints.blueprintinstance` - Blueprint Instance + > - `authentik_core.group` - Group + > - `authentik_core.user` - User + > - `authentik_core.application` - Application + > - `authentik_core.token` - Token + > - `authentik_enterprise.license` - License + > - `authentik_providers_rac.racprovider` - RAC Provider + > - `authentik_providers_rac.endpoint` - RAC Endpoint + > - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping + > - `authentik_events.event` - Event + > - `authentik_events.notificationtransport` - Notification Transport + > - `authentik_events.notification` - Notification + > - `authentik_events.notificationrule` - Notification Rule + > - `authentik_events.notificationwebhookmapping` - Webhook Mapping + + Added enum values: + + - `authentik_tenants.domain` + - `authentik_brands.brand` + - `authentik_providers_rac.racprovider` + - `authentik_providers_rac.endpoint` + - `authentik_providers_rac.racpropertymapping` + Removed enum values: + + - `authentik_policies_reputation.reputation` + - `authentik_providers_oauth2.authorizationcode` + - `authentik_providers_oauth2.accesstoken` + - `authentik_providers_oauth2.refreshtoken` + - `authentik_tenants.tenant` + +##### `GET` /rbac/roles/{#123;uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /root/config/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `capabilities` (array) + + Changed items (string): > _ `can_save_media` - Can Save Media > _ `can_geo_ip` - Can Geo Ip > _ `can_asn` - Can Asn > _ `can_impersonate` - Can Impersonate > _ `can_debug` - Can Debug > _ `is_enterprise` - Is Enterprise + + Added enum value: + + - `can_asn` + +##### `GET` /sources/all/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/ldap/{#123;slug}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `connectivity` + + * Added property `connectivity` (object) + > Get cached source connectivity + +##### `PUT` /sources/ldap/{#123;slug}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `connectivity` + + * Added property `connectivity` (object) + > Get cached source connectivity + +##### `PATCH` /sources/ldap/{#123;slug}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New required properties: + + - `connectivity` + + * Added property `connectivity` (object) + > Get cached source connectivity + +##### `GET` /sources/ldap/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/oauth/{#123;slug}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `type` (object) + + > Serializer for SourceType + + New required properties: + + - `verbose_name` + + New optional properties: + + - `slug` + + * Added property `verbose_name` (string) + + * Deleted property `slug` (string) + + - Changed property `oidc_jwks` (object -> object) + + - Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +##### `PUT` /sources/oauth/{#123;slug}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `oidc_jwks` (object -> object) + +- Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `type` (object) + + > Serializer for SourceType + + New required properties: + + - `verbose_name` + + New optional properties: + + - `slug` + + * Added property `verbose_name` (string) + + * Deleted property `slug` (string) + + - Changed property `oidc_jwks` (object -> object) + + - Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +##### `PATCH` /sources/oauth/{#123;slug}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `oidc_jwks` (object -> object) + +- Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `type` (object) + + > Serializer for SourceType + + New required properties: + + - `verbose_name` + + New optional properties: + + - `slug` + + * Added property `verbose_name` (string) + + * Deleted property `slug` (string) + + - Changed property `oidc_jwks` (object -> object) + + - Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +##### `GET` /sources/oauth/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/plex/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/saml/{#123;slug}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/user_connections/all/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/user_connections/oauth/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/user_connections/plex/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /sources/user_connections/saml/{#123;id}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/all/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/authenticator/duo/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/authenticator/sms/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/authenticator/static/{#123;stage_uuid}#125;/used_by/ + +###### Parameters: + +Changed: `stage_uuid` in `path` + +> A UUID string identifying this Static Authenticator Setup Stage. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/authenticator/totp/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/authenticator/validate/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/captcha/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/consent/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/deny/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/dummy/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/email/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/identification/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/invitation/invitations/{#123;invite_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_obj` (object) + + > Flow Serializer + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/invitation/invitations/{#123;invite_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_obj` (object) + + > Flow Serializer + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/invitation/invitations/{#123;invite_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_obj` (object) + + > Flow Serializer + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/invitation/invitations/{#123;invite_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/invitation/stages/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/password/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/prompt/prompts/{#123;prompt_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/prompt/stages/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/user_delete/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/user_login/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/user_logout/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /stages/user_write/{#123;stage_uuid}#125;/used_by/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Changed items (object): > A list of all objects referencing the queried object + + - Changed property `action` (string) + + > - `cascade` - CASCADE + > - `cascade_many` - CASCADE_MANY + > - `set_null` - SET_NULL + > - `set_default` - SET_DEFAULT + + Added enum values: + + - `cascade` + - `cascade_many` + - `set_null` + - `set_default` + Removed enum values: + + - `CASCADE` + - `CASCADE_MANY` + - `SET_NULL` + - `SET_DEFAULT` + +##### `GET` /core/applications/ + +###### Parameters: + +Added: `for_user` in `query` + +##### `POST` /core/tokens/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /core/tokens/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Token Serializer + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /core/user_consent/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `expiring` (boolean) + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `POST` /core/users/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /core/users/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /core/users/me/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user` (object) + + > User Serializer for information a user can retrieve about themselves + + - Changed property `avatar` (string) + + > User's avatar, either a http/https URL or a data URI + + - Changed property `settings` (object) + > Get user settings with brand and group settings applied + +##### `POST` /events/events/ + +###### Request: + +Changed content type : `application/json` + +- Added property `brand` (object) + +- Deleted property `tenant` (object) + +- Changed property `user` (object -> object) + +- Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `GET` /events/events/ + +###### Parameters: + +Added: `brand_name` in `query` + +> Brand name + +Deleted: `tenant_name` in `query` + +> Tenant name + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `GET` /events/notifications/{#123;uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `event` (object) + + > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `PUT` /events/notifications/{#123;uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `event` (object) + + > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `event` (object) + + > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `PATCH` /events/notifications/{#123;uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `event` (object) + + > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `event` (object) + + > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `GET` /flows/bindings/{#123;fsb_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `stage_obj` (object) + + > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /flows/bindings/{#123;fsb_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `stage_obj` (object) + + > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /flows/bindings/{#123;fsb_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `stage_obj` (object) + + > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /flows/instances/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + +- Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /flows/instances/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Flow Serializer + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /oauth2/access_tokens/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /oauth2/authorization_codes/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /oauth2/refresh_tokens/{#123;id}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `POST` /outposts/instances/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +##### `GET` /outposts/instances/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Outpost Serializer + + - Changed property `type` (string) + + > - `proxy` - Proxy + > - `ldap` - Ldap + > - `radius` - Radius + > - `rac` - Rac + + Added enum value: + + - `rac` + +##### `POST` /policies/bindings/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /policies/bindings/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > PolicyBinding Serializer + + - Changed property `user_obj` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /rbac/permissions/assigned_by_roles/ + +###### Parameters: + +Changed: `model` in `query` + +> - `authentik_tenants.domain` - Domain +> - `authentik_crypto.certificatekeypair` - Certificate-Key Pair +> - `authentik_flows.flow` - Flow +> - `authentik_flows.flowstagebinding` - Flow Stage Binding +> - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection +> - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection +> - `authentik_outposts.outpost` - Outpost +> - `authentik_policies_dummy.dummypolicy` - Dummy Policy +> - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy +> - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy +> - `authentik_policies_expression.expressionpolicy` - Expression Policy +> - `authentik_policies_password.passwordpolicy` - Password Policy +> - `authentik_policies_reputation.reputationpolicy` - Reputation Policy +> - `authentik_policies.policybinding` - Policy Binding +> - `authentik_providers_ldap.ldapprovider` - LDAP Provider +> - `authentik_providers_oauth2.scopemapping` - Scope Mapping +> - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider +> - `authentik_providers_proxy.proxyprovider` - Proxy Provider +> - `authentik_providers_radius.radiusprovider` - Radius Provider +> - `authentik_providers_saml.samlprovider` - SAML Provider +> - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping +> - `authentik_providers_scim.scimprovider` - SCIM Provider +> - `authentik_providers_scim.scimmapping` - SCIM Mapping +> - `authentik_rbac.role` - Role +> - `authentik_sources_ldap.ldapsource` - LDAP Source +> - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping +> - `authentik_sources_oauth.oauthsource` - OAuth Source +> - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection +> - `authentik_sources_plex.plexsource` - Plex Source +> - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection +> - `authentik_sources_saml.samlsource` - SAML Source +> - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection +> - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage +> - `authentik_stages_authenticator_duo.duodevice` - Duo Device +> - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage +> - `authentik_stages_authenticator_sms.smsdevice` - SMS Device +> - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage +> - `authentik_stages_authenticator_static.staticdevice` - Static Device +> - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage +> - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device +> - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage +> - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage +> - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device +> - `authentik_stages_captcha.captchastage` - Captcha Stage +> - `authentik_stages_consent.consentstage` - Consent Stage +> - `authentik_stages_consent.userconsent` - User Consent +> - `authentik_stages_deny.denystage` - Deny Stage +> - `authentik_stages_dummy.dummystage` - Dummy Stage +> - `authentik_stages_email.emailstage` - Email Stage +> - `authentik_stages_identification.identificationstage` - Identification Stage +> - `authentik_stages_invitation.invitationstage` - Invitation Stage +> - `authentik_stages_invitation.invitation` - Invitation +> - `authentik_stages_password.passwordstage` - Password Stage +> - `authentik_stages_prompt.prompt` - Prompt +> - `authentik_stages_prompt.promptstage` - Prompt Stage +> - `authentik_stages_user_delete.userdeletestage` - User Delete Stage +> - `authentik_stages_user_login.userloginstage` - User Login Stage +> - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage +> - `authentik_stages_user_write.userwritestage` - User Write Stage +> - `authentik_brands.brand` - Brand +> - `authentik_blueprints.blueprintinstance` - Blueprint Instance +> - `authentik_core.group` - Group +> - `authentik_core.user` - User +> - `authentik_core.application` - Application +> - `authentik_core.token` - Token +> - `authentik_enterprise.license` - License +> - `authentik_providers_rac.racprovider` - RAC Provider +> - `authentik_providers_rac.endpoint` - RAC Endpoint +> - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping +> - `authentik_events.event` - Event +> - `authentik_events.notificationtransport` - Notification Transport +> - `authentik_events.notification` - Notification +> - `authentik_events.notificationrule` - Notification Rule +> - `authentik_events.notificationwebhookmapping` - Webhook Mapping + +##### `GET` /rbac/permissions/assigned_by_users/ + +###### Parameters: + +Changed: `model` in `query` + +> - `authentik_tenants.domain` - Domain +> - `authentik_crypto.certificatekeypair` - Certificate-Key Pair +> - `authentik_flows.flow` - Flow +> - `authentik_flows.flowstagebinding` - Flow Stage Binding +> - `authentik_outposts.dockerserviceconnection` - Docker Service-Connection +> - `authentik_outposts.kubernetesserviceconnection` - Kubernetes Service-Connection +> - `authentik_outposts.outpost` - Outpost +> - `authentik_policies_dummy.dummypolicy` - Dummy Policy +> - `authentik_policies_event_matcher.eventmatcherpolicy` - Event Matcher Policy +> - `authentik_policies_expiry.passwordexpirypolicy` - Password Expiry Policy +> - `authentik_policies_expression.expressionpolicy` - Expression Policy +> - `authentik_policies_password.passwordpolicy` - Password Policy +> - `authentik_policies_reputation.reputationpolicy` - Reputation Policy +> - `authentik_policies.policybinding` - Policy Binding +> - `authentik_providers_ldap.ldapprovider` - LDAP Provider +> - `authentik_providers_oauth2.scopemapping` - Scope Mapping +> - `authentik_providers_oauth2.oauth2provider` - OAuth2/OpenID Provider +> - `authentik_providers_proxy.proxyprovider` - Proxy Provider +> - `authentik_providers_radius.radiusprovider` - Radius Provider +> - `authentik_providers_saml.samlprovider` - SAML Provider +> - `authentik_providers_saml.samlpropertymapping` - SAML Property Mapping +> - `authentik_providers_scim.scimprovider` - SCIM Provider +> - `authentik_providers_scim.scimmapping` - SCIM Mapping +> - `authentik_rbac.role` - Role +> - `authentik_sources_ldap.ldapsource` - LDAP Source +> - `authentik_sources_ldap.ldappropertymapping` - LDAP Property Mapping +> - `authentik_sources_oauth.oauthsource` - OAuth Source +> - `authentik_sources_oauth.useroauthsourceconnection` - User OAuth Source Connection +> - `authentik_sources_plex.plexsource` - Plex Source +> - `authentik_sources_plex.plexsourceconnection` - User Plex Source Connection +> - `authentik_sources_saml.samlsource` - SAML Source +> - `authentik_sources_saml.usersamlsourceconnection` - User SAML Source Connection +> - `authentik_stages_authenticator_duo.authenticatorduostage` - Duo Authenticator Setup Stage +> - `authentik_stages_authenticator_duo.duodevice` - Duo Device +> - `authentik_stages_authenticator_sms.authenticatorsmsstage` - SMS Authenticator Setup Stage +> - `authentik_stages_authenticator_sms.smsdevice` - SMS Device +> - `authentik_stages_authenticator_static.authenticatorstaticstage` - Static Authenticator Setup Stage +> - `authentik_stages_authenticator_static.staticdevice` - Static Device +> - `authentik_stages_authenticator_totp.authenticatortotpstage` - TOTP Authenticator Setup Stage +> - `authentik_stages_authenticator_totp.totpdevice` - TOTP Device +> - `authentik_stages_authenticator_validate.authenticatorvalidatestage` - Authenticator Validation Stage +> - `authentik_stages_authenticator_webauthn.authenticatewebauthnstage` - WebAuthn Authenticator Setup Stage +> - `authentik_stages_authenticator_webauthn.webauthndevice` - WebAuthn Device +> - `authentik_stages_captcha.captchastage` - Captcha Stage +> - `authentik_stages_consent.consentstage` - Consent Stage +> - `authentik_stages_consent.userconsent` - User Consent +> - `authentik_stages_deny.denystage` - Deny Stage +> - `authentik_stages_dummy.dummystage` - Dummy Stage +> - `authentik_stages_email.emailstage` - Email Stage +> - `authentik_stages_identification.identificationstage` - Identification Stage +> - `authentik_stages_invitation.invitationstage` - Invitation Stage +> - `authentik_stages_invitation.invitation` - Invitation +> - `authentik_stages_password.passwordstage` - Password Stage +> - `authentik_stages_prompt.prompt` - Prompt +> - `authentik_stages_prompt.promptstage` - Prompt Stage +> - `authentik_stages_user_delete.userdeletestage` - User Delete Stage +> - `authentik_stages_user_login.userloginstage` - User Login Stage +> - `authentik_stages_user_logout.userlogoutstage` - User Logout Stage +> - `authentik_stages_user_write.userwritestage` - User Write Stage +> - `authentik_brands.brand` - Brand +> - `authentik_blueprints.blueprintinstance` - Blueprint Instance +> - `authentik_core.group` - Group +> - `authentik_core.user` - User +> - `authentik_core.application` - Application +> - `authentik_core.token` - Token +> - `authentik_enterprise.license` - License +> - `authentik_providers_rac.racprovider` - RAC Provider +> - `authentik_providers_rac.endpoint` - RAC Endpoint +> - `authentik_providers_rac.racpropertymapping` - RAC Property Mapping +> - `authentik_events.event` - Event +> - `authentik_events.notificationtransport` - Notification Transport +> - `authentik_events.notification` - Notification +> - `authentik_events.notificationrule` - Notification Rule +> - `authentik_events.notificationwebhookmapping` - Webhook Mapping + +##### `POST` /sources/ldap/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + New required properties: + + - `connectivity` + + * Added property `connectivity` (object) + > Get cached source connectivity + +##### `GET` /sources/ldap/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > LDAP Source Serializer + + New required properties: + + - `connectivity` + + * Added property `connectivity` (object) + > Get cached source connectivity + +##### `POST` /sources/oauth/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `oidc_jwks` (object -> object) + +- Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `type` (object) + + > Serializer for SourceType + + New required properties: + + - `verbose_name` + + New optional properties: + + - `slug` + + * Added property `verbose_name` (string) + + * Deleted property `slug` (string) + + - Changed property `oidc_jwks` (object -> object) + + - Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +##### `GET` /sources/oauth/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > OAuth Source Serializer + + - Changed property `type` (object) + + > Serializer for SourceType + + New required properties: + + - `verbose_name` + + New optional properties: + + - `slug` + + * Added property `verbose_name` (string) + + * Deleted property `slug` (string) + + - Changed property `oidc_jwks` (object -> object) + + - Changed property `provider_type` (string) + > - `apple` - Apple + > - `openidconnect` - OpenID Connect + > - `azuread` - Azure AD + > - `discord` - Discord + > - `facebook` - Facebook + > - `github` - GitHub + > - `google` - Google + > - `mailcow` - Mailcow + > - `okta` - Okta + > - `patreon` - Patreon + > - `reddit` - Reddit + > - `twitch` - Twitch + > - `twitter` - Twitter + +##### `GET` /stages/all/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/duo/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/authenticator/duo/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/authenticator/duo/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/sms/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/authenticator/sms/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/authenticator/sms/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `DELETE` /stages/authenticator/static/{#123;stage_uuid}#125;/ + +###### Parameters: + +Changed: `stage_uuid` in `path` + +> A UUID string identifying this Static Authenticator Setup Stage. + +##### `GET` /stages/authenticator/static/{#123;stage_uuid}#125;/ + +###### Parameters: + +Changed: `stage_uuid` in `path` + +> A UUID string identifying this Static Authenticator Setup Stage. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/authenticator/static/{#123;stage_uuid}#125;/ + +###### Parameters: + +Changed: `stage_uuid` in `path` + +> A UUID string identifying this Static Authenticator Setup Stage. + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/authenticator/static/{#123;stage_uuid}#125;/ + +###### Parameters: + +Changed: `stage_uuid` in `path` + +> A UUID string identifying this Static Authenticator Setup Stage. + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/totp/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/authenticator/totp/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/authenticator/totp/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/validate/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/authenticator/validate/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/authenticator/validate/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/captcha/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/captcha/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/captcha/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/consent/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/consent/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/consent/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/deny/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/deny/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/deny/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/dummy/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/dummy/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/dummy/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/email/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/email/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/email/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/identification/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/identification/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/identification/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/invitation/invitations/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_obj` (object) + + > Flow Serializer + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/invitation/invitations/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Invitation Serializer + + - Changed property `flow_obj` (object) + + > Flow Serializer + + - Changed property `authentication` (string) + + > - `none` - None + > - `require_authenticated` - Require Authenticated + > - `require_unauthenticated` - Require Unauthenticated + > - `require_superuser` - Require Superuser + > - `require_outpost` - Require Outpost + + Added enum value: + + - `require_outpost` + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/invitation/stages/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/invitation/stages/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/invitation/stages/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/password/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/password/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/password/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/prompt/stages/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/prompt/stages/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/prompt/stages/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_delete/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/user_delete/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/user_delete/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_login/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + + Enum values: + + - `no_binding` + - `bind_asn` + - `bind_asn_network` + - `bind_asn_network_ip` + + - Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + + Enum values: + + - `no_binding` + - `bind_continent` + - `bind_continent_country` + - `bind_continent_country_city` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/user_login/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + +- Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + + - Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/user_login/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + +- Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + + - Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_logout/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/user_logout/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/user_logout/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_write/{#123;stage_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/user_write/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/user_write/{#123;stage_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /core/transactional/applications/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `provider_model` (string) + + > - `authentik_providers_ldap.ldapprovider` - authentik_providers_ldap.ldapprovider + > - `authentik_providers_oauth2.oauth2provider` - authentik_providers_oauth2.oauth2provider + > - `authentik_providers_proxy.proxyprovider` - authentik_providers_proxy.proxyprovider + > - `authentik_providers_rac.racprovider` - authentik_providers_rac.racprovider + > - `authentik_providers_radius.radiusprovider` - authentik_providers_radius.radiusprovider + > - `authentik_providers_saml.samlprovider` - authentik_providers_saml.samlprovider + > - `authentik_providers_scim.scimprovider` - authentik_providers_scim.scimprovider + + Added enum value: + + - `authentik_providers_rac.racprovider` + +- Changed property `provider` (object) + + Added 'authentik_providers_rac.racprovider' provider_model: + + - Property `name` (string) + + - Property `authentication_flow` (string) + + > Flow used for authentication when the associated application is accessed by an un-authenticated user. + + - Property `authorization_flow` (string) + + > Flow used when authorizing this provider. + + - Property `property_mappings` (array) + + Items (string): + + - Property `settings` (object) + + - Property `connection_expiry` (string) + + > Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3) + + - Property `delete_token_on_disconnect` (boolean) + > When set to true, connection tokens will be deleted upon disconnect. + +##### `GET` /core/user_consent/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > UserConsent Serializer + + - Added property `expiring` (boolean) + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /events/notifications/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Notification Serializer + + - Changed property `event` (object) + + > Event Serializer + + - Added property `brand` (object) + + - Deleted property `tenant` (object) + + - Changed property `user` (object -> object) + + - Changed property `context` (object -> object) + +##### `POST` /flows/bindings/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `stage_obj` (object) + + > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /flows/bindings/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > FlowStageBinding Serializer + + - Changed property `stage_obj` (object) + + > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /flows/inspector/{#123;flow_slug}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `plans` (array) + + Changed items (object): > Serializer for an active FlowPlan + + - Changed property `current_stage` (object) + + > FlowStageBinding Serializer + + - Changed property `stage_obj` (object) + + > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /oauth2/access_tokens/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Serializer for BaseGrantModel and RefreshToken + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /oauth2/authorization_codes/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Serializer for BaseGrantModel and ExpiringBaseGrant + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /oauth2/refresh_tokens/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Serializer for BaseGrantModel and RefreshToken + + - Changed property `user` (object) + + > User Serializer + + - Changed property `avatar` (string) + > User's avatar, either a http/https URL or a data URI + +##### `GET` /stages/all/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/authenticator/duo/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/duo/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticatorDuoStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/authenticator/sms/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/sms/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticatorSMSStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/authenticator/static/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/static/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticatorStaticStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/authenticator/totp/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/totp/ + +###### Parameters: + +Changed: `digits` in `query` + +> - `6` - 6 digits, widely compatible +> - `8` - 8 digits, not compatible with apps like Google Authenticator + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticatorTOTPStage Serializer + + - Changed property `digits` (integer -> string) + + > - `6` - 6 digits, widely compatible + > - `8` - 8 digits, not compatible with apps like Google Authenticator + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/authenticator/validate/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/validate/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticatorValidateStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/authenticator/webauthn/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/authenticator/webauthn/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > AuthenticateWebAuthnStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/captcha/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/captcha/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > CaptchaStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/consent/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/consent/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > ConsentStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/deny/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/deny/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > DenyStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/dummy/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/dummy/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > DummyStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/email/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/email/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > EmailStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/identification/ + +###### Request: + +Changed content type : `application/json` + +- Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/identification/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > IdentificationStage Serializer + + - Added property `pretend_user_exists` (boolean) + + > When enabled, the stage will succeed and continue even when incorrect user info is entered. + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/invitation/stages/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/invitation/stages/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > InvitationStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/password/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/password/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > PasswordStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/prompt/prompts/{#123;prompt_uuid}#125;/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PUT` /stages/prompt/prompts/{#123;prompt_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `PATCH` /stages/prompt/prompts/{#123;prompt_uuid}#125;/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/prompt/prompts/preview/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/prompt/stages/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/prompt/stages/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > PromptStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/user_delete/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_delete/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > UserDeleteStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/user_login/ + +###### Request: + +Changed content type : `application/json` + +- Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + +- Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + + - Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_login/ + +###### Parameters: + +Added: `geoip_binding` in `query` + +> Bind sessions created by this stage to the configured GeoIP location +> +> - `no_binding` - No Binding +> - `bind_continent` - Bind Continent +> - `bind_continent_country` - Bind Continent Country +> - `bind_continent_country_city` - Bind Continent Country City + +Added: `network_binding` in `query` + +> Bind sessions created by this stage to the configured network +> +> - `no_binding` - No Binding +> - `bind_asn` - Bind Asn +> - `bind_asn_network` - Bind Asn Network +> - `bind_asn_network_ip` - Bind Asn Network Ip + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > UserLoginStage Serializer + + - Added property `network_binding` (object) + + > Bind sessions created by this stage to the configured network + > + > - `no_binding` - No Binding + > - `bind_asn` - Bind Asn + > - `bind_asn_network` - Bind Asn Network + > - `bind_asn_network_ip` - Bind Asn Network Ip + + - Added property `geoip_binding` (object) + + > Bind sessions created by this stage to the configured GeoIP location + > + > - `no_binding` - No Binding + > - `bind_continent` - Bind Continent + > - `bind_continent_country` - Bind Continent Country + > - `bind_continent_country_city` - Bind Continent Country City + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/user_logout/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_logout/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > UserLogoutStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/user_write/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/user_write/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > UserWriteStage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `POST` /stages/prompt/prompts/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right + +##### `GET` /stages/prompt/prompts/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Prompt Serializer + + - Changed property `promptstage_set` (array) + + Changed items (object): > Stage Serializer + + - Changed property `flow_set` (array) + + Changed items (object): > Stripped down flow serializer + + - Changed property `layout` (string) + > - `stacked` - Stacked + > - `content_left` - Content Left + > - `content_right` - Content Right + > - `sidebar_left` - Sidebar Left + > - `sidebar_right` - Sidebar Right diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index aca3c94552..037754a553 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -156,7 +156,8 @@ module.exports = async function (): Promise { repository: "goauthentik/authentik", // Only replace issues and PR links buildUrl: function (values) { - return values.type === "issue" + return values.type === "issue" || + values.type === "mention" ? defaultBuildUrl(values) : false; }, diff --git a/website/sidebars.js b/website/sidebars.js index 922ae2eae9..b8ce3b663d 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -318,13 +318,14 @@ const docsSidebar = { description: "Release notes for recent authentik versions", }, items: [ + "releases/2024/v2024.2", "releases/2023/v2023.10", "releases/2023/v2023.8", - "releases/2023/v2023.6", { type: "category", label: "Previous versions", items: [ + "releases/2023/v2023.6", "releases/2023/v2023.5", "releases/2023/v2023.4", "releases/2023/v2023.3", From 5b0e92f03474219ae0e89574c81992fc240130e4 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Wed, 14 Feb 2024 21:19:24 +0100 Subject: [PATCH 098/105] website/docs: release notes 2024.2: fix API changes titles (#8516) --- website/docs/releases/2024/v2024.2.md | 490 +++++++++++++------------- 1 file changed, 245 insertions(+), 245 deletions(-) diff --git a/website/docs/releases/2024/v2024.2.md b/website/docs/releases/2024/v2024.2.md index a736ca8442..41f64e5b47 100644 --- a/website/docs/releases/2024/v2024.2.md +++ b/website/docs/releases/2024/v2024.2.md @@ -339,15 +339,15 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.2 ##### `POST` /core/brands/ -##### `GET` /core/brands/{#123;brand_uuid}#125;/ +##### `GET` /core/brands/{brand_uuid}/ -##### `PUT` /core/brands/{#123;brand_uuid}#125;/ +##### `PUT` /core/brands/{brand_uuid}/ -##### `DELETE` /core/brands/{#123;brand_uuid}#125;/ +##### `DELETE` /core/brands/{brand_uuid}/ -##### `PATCH` /core/brands/{#123;brand_uuid}#125;/ +##### `PATCH` /core/brands/{brand_uuid}/ -##### `GET` /core/brands/{#123;brand_uuid}#125;/used_by/ +##### `GET` /core/brands/{brand_uuid}/used_by/ ##### `GET` /core/brands/current/ @@ -355,91 +355,91 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.2 ##### `GET` /events/system_tasks/ -##### `GET` /events/system_tasks/{#123;uuid}#125;/ +##### `GET` /events/system_tasks/{uuid}/ -##### `POST` /events/system_tasks/{#123;uuid}#125;/run/ +##### `POST` /events/system_tasks/{uuid}/run/ ##### `GET` /propertymappings/rac/ ##### `POST` /propertymappings/rac/ -##### `GET` /propertymappings/rac/{#123;pm_uuid}#125;/ +##### `GET` /propertymappings/rac/{pm_uuid}/ -##### `PUT` /propertymappings/rac/{#123;pm_uuid}#125;/ +##### `PUT` /propertymappings/rac/{pm_uuid}/ -##### `DELETE` /propertymappings/rac/{#123;pm_uuid}#125;/ +##### `DELETE` /propertymappings/rac/{pm_uuid}/ -##### `PATCH` /propertymappings/rac/{#123;pm_uuid}#125;/ +##### `PATCH` /propertymappings/rac/{pm_uuid}/ -##### `GET` /propertymappings/rac/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/rac/{pm_uuid}/used_by/ ##### `GET` /providers/rac/ ##### `POST` /providers/rac/ -##### `GET` /providers/rac/{#123;id}#125;/ +##### `GET` /providers/rac/{id}/ -##### `PUT` /providers/rac/{#123;id}#125;/ +##### `PUT` /providers/rac/{id}/ -##### `DELETE` /providers/rac/{#123;id}#125;/ +##### `DELETE` /providers/rac/{id}/ -##### `PATCH` /providers/rac/{#123;id}#125;/ +##### `PATCH` /providers/rac/{id}/ -##### `GET` /providers/rac/{#123;id}#125;/used_by/ +##### `GET` /providers/rac/{id}/used_by/ ##### `GET` /rac/connection_tokens/ -##### `GET` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `GET` /rac/connection_tokens/{connection_token_uuid}/ -##### `PUT` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `PUT` /rac/connection_tokens/{connection_token_uuid}/ -##### `DELETE` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `DELETE` /rac/connection_tokens/{connection_token_uuid}/ -##### `PATCH` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `PATCH` /rac/connection_tokens/{connection_token_uuid}/ -##### `GET` /rac/connection_tokens/{#123;connection_token_uuid}#125;/used_by/ +##### `GET` /rac/connection_tokens/{connection_token_uuid}/used_by/ ##### `GET` /rac/endpoints/ ##### `POST` /rac/endpoints/ -##### `GET` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `GET` /rac/endpoints/{pbm_uuid}/ -##### `PUT` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `PUT` /rac/endpoints/{pbm_uuid}/ -##### `DELETE` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `DELETE` /rac/endpoints/{pbm_uuid}/ -##### `PATCH` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `PATCH` /rac/endpoints/{pbm_uuid}/ -##### `GET` /rac/endpoints/{#123;pbm_uuid}#125;/used_by/ +##### `GET` /rac/endpoints/{pbm_uuid}/used_by/ ##### `GET` /tenants/domains/ ##### `POST` /tenants/domains/ -##### `GET` /tenants/domains/{#123;id}#125;/ +##### `GET` /tenants/domains/{id}/ -##### `PUT` /tenants/domains/{#123;id}#125;/ +##### `PUT` /tenants/domains/{id}/ -##### `DELETE` /tenants/domains/{#123;id}#125;/ +##### `DELETE` /tenants/domains/{id}/ -##### `PATCH` /tenants/domains/{#123;id}#125;/ +##### `PATCH` /tenants/domains/{id}/ ##### `GET` /tenants/tenants/ ##### `POST` /tenants/tenants/ -##### `GET` /tenants/tenants/{#123;tenant_uuid}#125;/ +##### `GET` /tenants/tenants/{tenant_uuid}/ -##### `PUT` /tenants/tenants/{#123;tenant_uuid}#125;/ +##### `PUT` /tenants/tenants/{tenant_uuid}/ -##### `DELETE` /tenants/tenants/{#123;tenant_uuid}#125;/ +##### `DELETE` /tenants/tenants/{tenant_uuid}/ -##### `PATCH` /tenants/tenants/{#123;tenant_uuid}#125;/ +##### `PATCH` /tenants/tenants/{tenant_uuid}/ -##### `POST` /tenants/tenants/{#123;tenant_uuid}#125;/create_admin_group/ +##### `POST` /tenants/tenants/{tenant_uuid}/create_admin_group/ -##### `POST` /tenants/tenants/{#123;tenant_uuid}#125;/create_recovery_key/ +##### `POST` /tenants/tenants/{tenant_uuid}/create_recovery_key/ #### What's Deleted @@ -447,23 +447,23 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.2 ##### `GET` /admin/system_tasks/ -##### `GET` /admin/system_tasks/{#123;id}#125;/ +##### `GET` /admin/system_tasks/{id}/ -##### `POST` /admin/system_tasks/{#123;id}#125;/retry/ +##### `POST` /admin/system_tasks/{id}/retry/ ##### `GET` /core/tenants/ ##### `POST` /core/tenants/ -##### `GET` /core/tenants/{#123;tenant_uuid}#125;/ +##### `GET` /core/tenants/{tenant_uuid}/ -##### `PUT` /core/tenants/{#123;tenant_uuid}#125;/ +##### `PUT` /core/tenants/{tenant_uuid}/ -##### `DELETE` /core/tenants/{#123;tenant_uuid}#125;/ +##### `DELETE` /core/tenants/{tenant_uuid}/ -##### `PATCH` /core/tenants/{#123;tenant_uuid}#125;/ +##### `PATCH` /core/tenants/{tenant_uuid}/ -##### `GET` /core/tenants/{#123;tenant_uuid}#125;/used_by/ +##### `GET` /core/tenants/{tenant_uuid}/used_by/ ##### `GET` /core/tenants/current/ @@ -527,7 +527,7 @@ Changed response : **200 OK** * Deleted property `tenant` (string) > Currently active tenant -##### `GET` /core/applications/{#123;slug}#125;/check_access/ +##### `GET` /core/applications/{slug}/check_access/ ###### Return Type: @@ -535,7 +535,7 @@ Deleted response : **404 Not Found** > for_user user not found -##### `GET` /core/authenticated_sessions/{#123;uuid}#125;/ +##### `GET` /core/authenticated_sessions/{uuid}/ ###### Return Type: @@ -572,7 +572,7 @@ Changed response : **200 OK** - Added property `requires_enterprise` (boolean) -##### `GET` /managed/blueprints/{#123;instance_uuid}#125;/ +##### `GET` /managed/blueprints/{instance_uuid}/ ###### Return Type: @@ -584,7 +584,7 @@ Changed response : **200 OK** - Changed property `metadata` (object -> object) -##### `PUT` /managed/blueprints/{#123;instance_uuid}#125;/ +##### `PUT` /managed/blueprints/{instance_uuid}/ ###### Request: @@ -602,7 +602,7 @@ Changed response : **200 OK** - Changed property `metadata` (object -> object) -##### `PATCH` /managed/blueprints/{#123;instance_uuid}#125;/ +##### `PATCH` /managed/blueprints/{instance_uuid}/ ###### Request: @@ -620,7 +620,7 @@ Changed response : **200 OK** - Changed property `metadata` (object -> object) -##### `POST` /managed/blueprints/{#123;instance_uuid}#125;/apply/ +##### `POST` /managed/blueprints/{instance_uuid}/apply/ ###### Return Type: @@ -644,7 +644,7 @@ Changed response : **200 OK** - Added property `requires_enterprise` (boolean) -##### `GET` /outposts/service_connections/kubernetes/{#123;uuid}#125;/ +##### `GET` /outposts/service_connections/kubernetes/{uuid}/ ###### Return Type: @@ -655,7 +655,7 @@ Changed response : **200 OK** - Changed property `kubeconfig` (object -> object) > Paste your kubeconfig here. authentik will automatically use the currently selected context. -##### `PUT` /outposts/service_connections/kubernetes/{#123;uuid}#125;/ +##### `PUT` /outposts/service_connections/kubernetes/{uuid}/ ###### Request: @@ -673,7 +673,7 @@ Changed response : **200 OK** - Changed property `kubeconfig` (object -> object) > Paste your kubeconfig here. authentik will automatically use the currently selected context. -##### `PATCH` /outposts/service_connections/kubernetes/{#123;uuid}#125;/ +##### `PATCH` /outposts/service_connections/kubernetes/{uuid}/ ###### Request: @@ -703,7 +703,7 @@ Changed response : **200 OK** - Added property `requires_enterprise` (boolean) -##### `GET` /policies/event_matcher/{#123;policy_uuid}#125;/ +##### `GET` /policies/event_matcher/{policy_uuid}/ ###### Return Type: @@ -864,7 +864,7 @@ Changed response : **200 OK** - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `PUT` /policies/event_matcher/{#123;policy_uuid}#125;/ +##### `PUT` /policies/event_matcher/{policy_uuid}/ ###### Request: @@ -1182,7 +1182,7 @@ Changed response : **200 OK** - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `PATCH` /policies/event_matcher/{#123;policy_uuid}#125;/ +##### `PATCH` /policies/event_matcher/{policy_uuid}/ ###### Request: @@ -1500,7 +1500,7 @@ Changed response : **200 OK** - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `GET` /policies/reputation/scores/{#123;reputation_uuid}#125;/ +##### `GET` /policies/reputation/scores/{reputation_uuid}/ ###### Return Type: @@ -1536,19 +1536,19 @@ Changed response : **200 OK** - Added property `requires_enterprise` (boolean) -##### `GET` /providers/oauth2/{#123;id}#125;/preview_user/ +##### `GET` /providers/oauth2/{id}/preview_user/ ###### Parameters: Added: `for_user` in `query` -##### `GET` /providers/saml/{#123;id}#125;/preview_user/ +##### `GET` /providers/saml/{id}/preview_user/ ###### Parameters: Added: `for_user` in `query` -##### `GET` /providers/scim/{#123;id}#125;/sync_status/ +##### `GET` /providers/scim/{id}/sync_status/ ###### Return Type: @@ -1644,7 +1644,7 @@ Changed response : **200 OK** - Added property `requires_enterprise` (boolean) -##### `GET` /sources/ldap/{#123;slug}#125;/sync_status/ +##### `GET` /sources/ldap/{slug}/sync_status/ ###### Return Type: @@ -1698,7 +1698,7 @@ Changed response : **200 OK** - Added property `requires_enterprise` (boolean) -##### `GET` /authenticators/duo/{#123;id}#125;/used_by/ +##### `GET` /authenticators/duo/{id}/used_by/ ###### Return Type: @@ -1728,7 +1728,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /authenticators/sms/{#123;id}#125;/used_by/ +##### `GET` /authenticators/sms/{id}/used_by/ ###### Return Type: @@ -1758,7 +1758,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /authenticators/static/{#123;id}#125;/used_by/ +##### `GET` /authenticators/static/{id}/used_by/ ###### Return Type: @@ -1788,7 +1788,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /authenticators/totp/{#123;id}#125;/used_by/ +##### `GET` /authenticators/totp/{id}/used_by/ ###### Return Type: @@ -1818,7 +1818,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /authenticators/webauthn/{#123;id}#125;/used_by/ +##### `GET` /authenticators/webauthn/{id}/used_by/ ###### Return Type: @@ -1848,7 +1848,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /core/applications/{#123;slug}#125;/used_by/ +##### `GET` /core/applications/{slug}/used_by/ ###### Return Type: @@ -1901,7 +1901,7 @@ Changed response : **200 OK** * Changed property `geo_ip` (object) > Get GeoIP Data -##### `GET` /core/authenticated_sessions/{#123;uuid}#125;/used_by/ +##### `GET` /core/authenticated_sessions/{uuid}/used_by/ ###### Return Type: @@ -1931,7 +1931,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /core/groups/{#123;group_uuid}#125;/used_by/ +##### `GET` /core/groups/{group_uuid}/used_by/ ###### Return Type: @@ -1961,7 +1961,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /core/tokens/{#123;identifier}#125;/ +##### `GET` /core/tokens/{identifier}/ ###### Return Type: @@ -1976,7 +1976,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `PUT` /core/tokens/{#123;identifier}#125;/ +##### `PUT` /core/tokens/{identifier}/ ###### Return Type: @@ -1991,7 +1991,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `PATCH` /core/tokens/{#123;identifier}#125;/ +##### `PATCH` /core/tokens/{identifier}/ ###### Return Type: @@ -2006,7 +2006,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `GET` /core/tokens/{#123;identifier}#125;/used_by/ +##### `GET` /core/tokens/{identifier}/used_by/ ###### Return Type: @@ -2036,7 +2036,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /core/user_consent/{#123;id}#125;/used_by/ +##### `GET` /core/user_consent/{id}/used_by/ ###### Return Type: @@ -2066,7 +2066,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /core/users/{#123;id}#125;/ +##### `GET` /core/users/{id}/ ###### Return Type: @@ -2077,7 +2077,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `PUT` /core/users/{#123;id}#125;/ +##### `PUT` /core/users/{id}/ ###### Return Type: @@ -2088,7 +2088,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `PATCH` /core/users/{#123;id}#125;/ +##### `PATCH` /core/users/{id}/ ###### Return Type: @@ -2099,7 +2099,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `GET` /core/users/{#123;id}#125;/used_by/ +##### `GET` /core/users/{id}/used_by/ ###### Return Type: @@ -2129,7 +2129,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /crypto/certificatekeypairs/{#123;kp_uuid}#125;/used_by/ +##### `GET` /crypto/certificatekeypairs/{kp_uuid}/used_by/ ###### Return Type: @@ -2159,7 +2159,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /enterprise/license/{#123;license_uuid}#125;/used_by/ +##### `GET` /enterprise/license/{license_uuid}/used_by/ ###### Return Type: @@ -2189,7 +2189,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /events/events/{#123;event_uuid}#125;/ +##### `GET` /events/events/{event_uuid}/ ###### Return Type: @@ -2205,7 +2205,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `PUT` /events/events/{#123;event_uuid}#125;/ +##### `PUT` /events/events/{event_uuid}/ ###### Request: @@ -2233,7 +2233,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `PATCH` /events/events/{#123;event_uuid}#125;/ +##### `PATCH` /events/events/{event_uuid}/ ###### Request: @@ -2261,7 +2261,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `GET` /events/notifications/{#123;uuid}#125;/used_by/ +##### `GET` /events/notifications/{uuid}/used_by/ ###### Return Type: @@ -2291,7 +2291,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /events/rules/{#123;pbm_uuid}#125;/used_by/ +##### `GET` /events/rules/{pbm_uuid}/used_by/ ###### Return Type: @@ -2321,7 +2321,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /events/transports/{#123;uuid}#125;/used_by/ +##### `GET` /events/transports/{uuid}/used_by/ ###### Return Type: @@ -2351,7 +2351,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /flows/bindings/{#123;fsb_uuid}#125;/used_by/ +##### `GET` /flows/bindings/{fsb_uuid}/used_by/ ###### Return Type: @@ -2381,7 +2381,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /flows/instances/{#123;slug}#125;/ +##### `GET` /flows/instances/{slug}/ ###### Return Type: @@ -2408,7 +2408,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /flows/instances/{#123;slug}#125;/ +##### `PUT` /flows/instances/{slug}/ ###### Request: @@ -2458,7 +2458,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /flows/instances/{#123;slug}#125;/ +##### `PATCH` /flows/instances/{slug}/ ###### Request: @@ -2508,7 +2508,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /flows/instances/{#123;slug}#125;/used_by/ +##### `GET` /flows/instances/{slug}/used_by/ ###### Return Type: @@ -2572,7 +2572,7 @@ Changed response : **200 OK** - Changed property `metadata` (object -> object) -##### `GET` /managed/blueprints/{#123;instance_uuid}#125;/used_by/ +##### `GET` /managed/blueprints/{instance_uuid}/used_by/ ###### Return Type: @@ -2602,7 +2602,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /oauth2/access_tokens/{#123;id}#125;/used_by/ +##### `GET` /oauth2/access_tokens/{id}/used_by/ ###### Return Type: @@ -2632,7 +2632,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /oauth2/authorization_codes/{#123;id}#125;/used_by/ +##### `GET` /oauth2/authorization_codes/{id}/used_by/ ###### Return Type: @@ -2662,7 +2662,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /oauth2/refresh_tokens/{#123;id}#125;/used_by/ +##### `GET` /oauth2/refresh_tokens/{id}/used_by/ ###### Return Type: @@ -2692,7 +2692,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /outposts/instances/{#123;uuid}#125;/ +##### `GET` /outposts/instances/{uuid}/ ###### Return Type: @@ -2711,7 +2711,7 @@ Changed response : **200 OK** - `rac` -##### `PUT` /outposts/instances/{#123;uuid}#125;/ +##### `PUT` /outposts/instances/{uuid}/ ###### Request: @@ -2745,7 +2745,7 @@ Changed response : **200 OK** - `rac` -##### `PATCH` /outposts/instances/{#123;uuid}#125;/ +##### `PATCH` /outposts/instances/{uuid}/ ###### Request: @@ -2779,7 +2779,7 @@ Changed response : **200 OK** - `rac` -##### `GET` /outposts/instances/{#123;uuid}#125;/used_by/ +##### `GET` /outposts/instances/{uuid}/used_by/ ###### Return Type: @@ -2809,7 +2809,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /outposts/service_connections/all/{#123;uuid}#125;/used_by/ +##### `GET` /outposts/service_connections/all/{uuid}/used_by/ ###### Return Type: @@ -2839,7 +2839,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /outposts/service_connections/docker/{#123;uuid}#125;/used_by/ +##### `GET` /outposts/service_connections/docker/{uuid}/used_by/ ###### Return Type: @@ -2902,7 +2902,7 @@ Changed response : **200 OK** - Changed property `kubeconfig` (object -> object) > Paste your kubeconfig here. authentik will automatically use the currently selected context. -##### `GET` /outposts/service_connections/kubernetes/{#123;uuid}#125;/used_by/ +##### `GET` /outposts/service_connections/kubernetes/{uuid}/used_by/ ###### Return Type: @@ -2932,7 +2932,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/all/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/all/{policy_uuid}/used_by/ ###### Return Type: @@ -2962,7 +2962,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/bindings/{#123;policy_binding_uuid}#125;/ +##### `GET` /policies/bindings/{policy_binding_uuid}/ ###### Return Type: @@ -2977,7 +2977,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `PUT` /policies/bindings/{#123;policy_binding_uuid}#125;/ +##### `PUT` /policies/bindings/{policy_binding_uuid}/ ###### Return Type: @@ -2992,7 +2992,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `PATCH` /policies/bindings/{#123;policy_binding_uuid}#125;/ +##### `PATCH` /policies/bindings/{policy_binding_uuid}/ ###### Return Type: @@ -3007,7 +3007,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `GET` /policies/bindings/{#123;policy_binding_uuid}#125;/used_by/ +##### `GET` /policies/bindings/{policy_binding_uuid}/used_by/ ###### Return Type: @@ -3037,7 +3037,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/dummy/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/dummy/{policy_uuid}/used_by/ ###### Return Type: @@ -3550,7 +3550,7 @@ Changed response : **200 OK** - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `GET` /policies/event_matcher/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/event_matcher/{policy_uuid}/used_by/ ###### Return Type: @@ -3580,7 +3580,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/expression/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/expression/{policy_uuid}/used_by/ ###### Return Type: @@ -3610,7 +3610,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/password/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/password/{policy_uuid}/used_by/ ###### Return Type: @@ -3640,7 +3640,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/password_expiry/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/password_expiry/{policy_uuid}/used_by/ ###### Return Type: @@ -3670,7 +3670,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /policies/reputation/{#123;policy_uuid}#125;/used_by/ +##### `GET` /policies/reputation/{policy_uuid}/used_by/ ###### Return Type: @@ -3716,7 +3716,7 @@ Changed response : **200 OK** - Changed property `ip_geo_data` (object -> object) -##### `GET` /policies/reputation/scores/{#123;reputation_uuid}#125;/used_by/ +##### `GET` /policies/reputation/scores/{reputation_uuid}/used_by/ ###### Return Type: @@ -3746,7 +3746,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /propertymappings/all/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/all/{pm_uuid}/used_by/ ###### Return Type: @@ -3776,7 +3776,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /propertymappings/ldap/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/ldap/{pm_uuid}/used_by/ ###### Return Type: @@ -3806,7 +3806,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /propertymappings/notification/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/notification/{pm_uuid}/used_by/ ###### Return Type: @@ -3836,7 +3836,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /propertymappings/saml/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/saml/{pm_uuid}/used_by/ ###### Return Type: @@ -3866,7 +3866,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /propertymappings/scim/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/scim/{pm_uuid}/used_by/ ###### Return Type: @@ -3896,7 +3896,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /propertymappings/scope/{#123;pm_uuid}#125;/used_by/ +##### `GET` /propertymappings/scope/{pm_uuid}/used_by/ ###### Return Type: @@ -3926,7 +3926,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/all/{#123;id}#125;/used_by/ +##### `GET` /providers/all/{id}/used_by/ ###### Return Type: @@ -3956,7 +3956,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/ldap/{#123;id}#125;/used_by/ +##### `GET` /providers/ldap/{id}/used_by/ ###### Return Type: @@ -3986,7 +3986,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/oauth2/{#123;id}#125;/used_by/ +##### `GET` /providers/oauth2/{id}/used_by/ ###### Return Type: @@ -4016,7 +4016,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/proxy/{#123;id}#125;/used_by/ +##### `GET` /providers/proxy/{id}/used_by/ ###### Return Type: @@ -4046,7 +4046,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/radius/{#123;id}#125;/used_by/ +##### `GET` /providers/radius/{id}/used_by/ ###### Return Type: @@ -4076,7 +4076,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/saml/{#123;id}#125;/used_by/ +##### `GET` /providers/saml/{id}/used_by/ ###### Return Type: @@ -4106,7 +4106,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /providers/scim/{#123;id}#125;/used_by/ +##### `GET` /providers/scim/{id}/used_by/ ###### Return Type: @@ -4136,7 +4136,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `POST` /rbac/permissions/assigned_by_roles/{#123;uuid}#125;/assign/ +##### `POST` /rbac/permissions/assigned_by_roles/{uuid}/assign/ ###### Request: @@ -4234,7 +4234,7 @@ Changed content type : `application/json` - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `PATCH` /rbac/permissions/assigned_by_roles/{#123;uuid}#125;/unassign/ +##### `PATCH` /rbac/permissions/assigned_by_roles/{uuid}/unassign/ ###### Request: @@ -4332,7 +4332,7 @@ Changed content type : `application/json` - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `POST` /rbac/permissions/assigned_by_users/{#123;id}#125;/assign/ +##### `POST` /rbac/permissions/assigned_by_users/{id}/assign/ ###### Request: @@ -4430,7 +4430,7 @@ Changed content type : `application/json` - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `PATCH` /rbac/permissions/assigned_by_users/{#123;id}#125;/unassign/ +##### `PATCH` /rbac/permissions/assigned_by_users/{id}/unassign/ ###### Request: @@ -4528,7 +4528,7 @@ Changed content type : `application/json` - `authentik_providers_oauth2.refreshtoken` - `authentik_tenants.tenant` -##### `GET` /rbac/roles/{#123;uuid}#125;/used_by/ +##### `GET` /rbac/roles/{uuid}/used_by/ ###### Return Type: @@ -4574,7 +4574,7 @@ Changed response : **200 OK** - `can_asn` -##### `GET` /sources/all/{#123;slug}#125;/used_by/ +##### `GET` /sources/all/{slug}/used_by/ ###### Return Type: @@ -4604,7 +4604,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/ldap/{#123;slug}#125;/ +##### `GET` /sources/ldap/{slug}/ ###### Return Type: @@ -4619,7 +4619,7 @@ Changed response : **200 OK** * Added property `connectivity` (object) > Get cached source connectivity -##### `PUT` /sources/ldap/{#123;slug}#125;/ +##### `PUT` /sources/ldap/{slug}/ ###### Return Type: @@ -4634,7 +4634,7 @@ Changed response : **200 OK** * Added property `connectivity` (object) > Get cached source connectivity -##### `PATCH` /sources/ldap/{#123;slug}#125;/ +##### `PATCH` /sources/ldap/{slug}/ ###### Return Type: @@ -4649,7 +4649,7 @@ Changed response : **200 OK** * Added property `connectivity` (object) > Get cached source connectivity -##### `GET` /sources/ldap/{#123;slug}#125;/used_by/ +##### `GET` /sources/ldap/{slug}/used_by/ ###### Return Type: @@ -4679,7 +4679,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/oauth/{#123;slug}#125;/ +##### `GET` /sources/oauth/{slug}/ ###### Return Type: @@ -4720,7 +4720,7 @@ Changed response : **200 OK** > - `twitch` - Twitch > - `twitter` - Twitter -##### `PUT` /sources/oauth/{#123;slug}#125;/ +##### `PUT` /sources/oauth/{slug}/ ###### Request: @@ -4782,7 +4782,7 @@ Changed response : **200 OK** > - `twitch` - Twitch > - `twitter` - Twitter -##### `PATCH` /sources/oauth/{#123;slug}#125;/ +##### `PATCH` /sources/oauth/{slug}/ ###### Request: @@ -4844,7 +4844,7 @@ Changed response : **200 OK** > - `twitch` - Twitch > - `twitter` - Twitter -##### `GET` /sources/oauth/{#123;slug}#125;/used_by/ +##### `GET` /sources/oauth/{slug}/used_by/ ###### Return Type: @@ -4874,7 +4874,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/plex/{#123;slug}#125;/used_by/ +##### `GET` /sources/plex/{slug}/used_by/ ###### Return Type: @@ -4904,7 +4904,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/saml/{#123;slug}#125;/used_by/ +##### `GET` /sources/saml/{slug}/used_by/ ###### Return Type: @@ -4934,7 +4934,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/user_connections/all/{#123;id}#125;/used_by/ +##### `GET` /sources/user_connections/all/{id}/used_by/ ###### Return Type: @@ -4964,7 +4964,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/user_connections/oauth/{#123;id}#125;/used_by/ +##### `GET` /sources/user_connections/oauth/{id}/used_by/ ###### Return Type: @@ -4994,7 +4994,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/user_connections/plex/{#123;id}#125;/used_by/ +##### `GET` /sources/user_connections/plex/{id}/used_by/ ###### Return Type: @@ -5024,7 +5024,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /sources/user_connections/saml/{#123;id}#125;/used_by/ +##### `GET` /sources/user_connections/saml/{id}/used_by/ ###### Return Type: @@ -5054,7 +5054,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/all/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/all/{stage_uuid}/used_by/ ###### Return Type: @@ -5084,7 +5084,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/authenticator/duo/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/authenticator/duo/{stage_uuid}/used_by/ ###### Return Type: @@ -5114,7 +5114,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/authenticator/sms/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/authenticator/sms/{stage_uuid}/used_by/ ###### Return Type: @@ -5144,7 +5144,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/authenticator/static/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/authenticator/static/{stage_uuid}/used_by/ ###### Parameters: @@ -5180,7 +5180,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/authenticator/totp/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/authenticator/totp/{stage_uuid}/used_by/ ###### Return Type: @@ -5210,7 +5210,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/authenticator/validate/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/authenticator/validate/{stage_uuid}/used_by/ ###### Return Type: @@ -5240,7 +5240,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/authenticator/webauthn/{stage_uuid}/used_by/ ###### Return Type: @@ -5270,7 +5270,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/captcha/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/captcha/{stage_uuid}/used_by/ ###### Return Type: @@ -5300,7 +5300,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/consent/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/consent/{stage_uuid}/used_by/ ###### Return Type: @@ -5330,7 +5330,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/deny/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/deny/{stage_uuid}/used_by/ ###### Return Type: @@ -5360,7 +5360,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/dummy/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/dummy/{stage_uuid}/used_by/ ###### Return Type: @@ -5390,7 +5390,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/email/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/email/{stage_uuid}/used_by/ ###### Return Type: @@ -5420,7 +5420,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/identification/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/identification/{stage_uuid}/used_by/ ###### Return Type: @@ -5450,7 +5450,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/invitation/invitations/{#123;invite_uuid}#125;/ +##### `GET` /stages/invitation/invitations/{invite_uuid}/ ###### Return Type: @@ -5481,7 +5481,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/invitation/invitations/{#123;invite_uuid}#125;/ +##### `PUT` /stages/invitation/invitations/{invite_uuid}/ ###### Return Type: @@ -5512,7 +5512,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/invitation/invitations/{#123;invite_uuid}#125;/ +##### `PATCH` /stages/invitation/invitations/{invite_uuid}/ ###### Return Type: @@ -5543,7 +5543,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/invitation/invitations/{#123;invite_uuid}#125;/used_by/ +##### `GET` /stages/invitation/invitations/{invite_uuid}/used_by/ ###### Return Type: @@ -5573,7 +5573,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/invitation/stages/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/invitation/stages/{stage_uuid}/used_by/ ###### Return Type: @@ -5603,7 +5603,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/password/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/password/{stage_uuid}/used_by/ ###### Return Type: @@ -5633,7 +5633,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/prompt/prompts/{#123;prompt_uuid}#125;/used_by/ +##### `GET` /stages/prompt/prompts/{prompt_uuid}/used_by/ ###### Return Type: @@ -5663,7 +5663,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/prompt/stages/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/prompt/stages/{stage_uuid}/used_by/ ###### Return Type: @@ -5693,7 +5693,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/user_delete/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/user_delete/{stage_uuid}/used_by/ ###### Return Type: @@ -5723,7 +5723,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/user_login/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/user_login/{stage_uuid}/used_by/ ###### Return Type: @@ -5753,7 +5753,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/user_logout/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/user_logout/{stage_uuid}/used_by/ ###### Return Type: @@ -5783,7 +5783,7 @@ Changed response : **200 OK** - `SET_NULL` - `SET_DEFAULT` -##### `GET` /stages/user_write/{#123;stage_uuid}#125;/used_by/ +##### `GET` /stages/user_write/{stage_uuid}/used_by/ ###### Return Type: @@ -5853,7 +5853,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `GET` /core/user_consent/{#123;id}#125;/ +##### `GET` /core/user_consent/{id}/ ###### Return Type: @@ -5973,7 +5973,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `GET` /events/notifications/{#123;uuid}#125;/ +##### `GET` /events/notifications/{uuid}/ ###### Return Type: @@ -5993,7 +5993,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `PUT` /events/notifications/{#123;uuid}#125;/ +##### `PUT` /events/notifications/{uuid}/ ###### Request: @@ -6029,7 +6029,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `PATCH` /events/notifications/{#123;uuid}#125;/ +##### `PATCH` /events/notifications/{uuid}/ ###### Request: @@ -6065,7 +6065,7 @@ Changed response : **200 OK** - Changed property `context` (object -> object) -##### `GET` /flows/bindings/{#123;fsb_uuid}#125;/ +##### `GET` /flows/bindings/{fsb_uuid}/ ###### Return Type: @@ -6088,7 +6088,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /flows/bindings/{#123;fsb_uuid}#125;/ +##### `PUT` /flows/bindings/{fsb_uuid}/ ###### Return Type: @@ -6111,7 +6111,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /flows/bindings/{#123;fsb_uuid}#125;/ +##### `PATCH` /flows/bindings/{fsb_uuid}/ ###### Return Type: @@ -6215,7 +6215,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /oauth2/access_tokens/{#123;id}#125;/ +##### `GET` /oauth2/access_tokens/{id}/ ###### Return Type: @@ -6230,7 +6230,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `GET` /oauth2/authorization_codes/{#123;id}#125;/ +##### `GET` /oauth2/authorization_codes/{id}/ ###### Return Type: @@ -6245,7 +6245,7 @@ Changed response : **200 OK** - Changed property `avatar` (string) > User's avatar, either a http/https URL or a data URI -##### `GET` /oauth2/refresh_tokens/{#123;id}#125;/ +##### `GET` /oauth2/refresh_tokens/{id}/ ###### Return Type: @@ -6654,7 +6654,7 @@ Changed response : **200 OK** > - `twitch` - Twitch > - `twitter` - Twitter -##### `GET` /stages/all/{#123;stage_uuid}#125;/ +##### `GET` /stages/all/{stage_uuid}/ ###### Return Type: @@ -6673,7 +6673,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/authenticator/duo/{#123;stage_uuid}#125;/ +##### `GET` /stages/authenticator/duo/{stage_uuid}/ ###### Return Type: @@ -6692,7 +6692,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/authenticator/duo/{#123;stage_uuid}#125;/ +##### `PUT` /stages/authenticator/duo/{stage_uuid}/ ###### Request: @@ -6726,7 +6726,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/authenticator/duo/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/authenticator/duo/{stage_uuid}/ ###### Request: @@ -6760,7 +6760,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/authenticator/sms/{#123;stage_uuid}#125;/ +##### `GET` /stages/authenticator/sms/{stage_uuid}/ ###### Return Type: @@ -6779,7 +6779,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/authenticator/sms/{#123;stage_uuid}#125;/ +##### `PUT` /stages/authenticator/sms/{stage_uuid}/ ###### Request: @@ -6813,7 +6813,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/authenticator/sms/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/authenticator/sms/{stage_uuid}/ ###### Request: @@ -6847,7 +6847,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `DELETE` /stages/authenticator/static/{#123;stage_uuid}#125;/ +##### `DELETE` /stages/authenticator/static/{stage_uuid}/ ###### Parameters: @@ -6855,7 +6855,7 @@ Changed: `stage_uuid` in `path` > A UUID string identifying this Static Authenticator Setup Stage. -##### `GET` /stages/authenticator/static/{#123;stage_uuid}#125;/ +##### `GET` /stages/authenticator/static/{stage_uuid}/ ###### Parameters: @@ -6880,7 +6880,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/authenticator/static/{#123;stage_uuid}#125;/ +##### `PUT` /stages/authenticator/static/{stage_uuid}/ ###### Parameters: @@ -6920,7 +6920,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/authenticator/static/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/authenticator/static/{stage_uuid}/ ###### Parameters: @@ -6960,7 +6960,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/authenticator/totp/{#123;stage_uuid}#125;/ +##### `GET` /stages/authenticator/totp/{stage_uuid}/ ###### Return Type: @@ -6984,7 +6984,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/authenticator/totp/{#123;stage_uuid}#125;/ +##### `PUT` /stages/authenticator/totp/{stage_uuid}/ ###### Request: @@ -7028,7 +7028,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/authenticator/totp/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/authenticator/totp/{stage_uuid}/ ###### Request: @@ -7072,7 +7072,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/authenticator/validate/{#123;stage_uuid}#125;/ +##### `GET` /stages/authenticator/validate/{stage_uuid}/ ###### Return Type: @@ -7091,7 +7091,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/authenticator/validate/{#123;stage_uuid}#125;/ +##### `PUT` /stages/authenticator/validate/{stage_uuid}/ ###### Request: @@ -7125,7 +7125,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/authenticator/validate/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/authenticator/validate/{stage_uuid}/ ###### Request: @@ -7159,7 +7159,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/ +##### `GET` /stages/authenticator/webauthn/{stage_uuid}/ ###### Return Type: @@ -7178,7 +7178,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/ +##### `PUT` /stages/authenticator/webauthn/{stage_uuid}/ ###### Request: @@ -7212,7 +7212,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/authenticator/webauthn/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/authenticator/webauthn/{stage_uuid}/ ###### Request: @@ -7246,7 +7246,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/captcha/{#123;stage_uuid}#125;/ +##### `GET` /stages/captcha/{stage_uuid}/ ###### Return Type: @@ -7265,7 +7265,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/captcha/{#123;stage_uuid}#125;/ +##### `PUT` /stages/captcha/{stage_uuid}/ ###### Request: @@ -7299,7 +7299,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/captcha/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/captcha/{stage_uuid}/ ###### Request: @@ -7333,7 +7333,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/consent/{#123;stage_uuid}#125;/ +##### `GET` /stages/consent/{stage_uuid}/ ###### Return Type: @@ -7352,7 +7352,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/consent/{#123;stage_uuid}#125;/ +##### `PUT` /stages/consent/{stage_uuid}/ ###### Request: @@ -7386,7 +7386,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/consent/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/consent/{stage_uuid}/ ###### Request: @@ -7420,7 +7420,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/deny/{#123;stage_uuid}#125;/ +##### `GET` /stages/deny/{stage_uuid}/ ###### Return Type: @@ -7439,7 +7439,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/deny/{#123;stage_uuid}#125;/ +##### `PUT` /stages/deny/{stage_uuid}/ ###### Request: @@ -7473,7 +7473,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/deny/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/deny/{stage_uuid}/ ###### Request: @@ -7507,7 +7507,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/dummy/{#123;stage_uuid}#125;/ +##### `GET` /stages/dummy/{stage_uuid}/ ###### Return Type: @@ -7526,7 +7526,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/dummy/{#123;stage_uuid}#125;/ +##### `PUT` /stages/dummy/{stage_uuid}/ ###### Request: @@ -7560,7 +7560,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/dummy/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/dummy/{stage_uuid}/ ###### Request: @@ -7594,7 +7594,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/email/{#123;stage_uuid}#125;/ +##### `GET` /stages/email/{stage_uuid}/ ###### Return Type: @@ -7613,7 +7613,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/email/{#123;stage_uuid}#125;/ +##### `PUT` /stages/email/{stage_uuid}/ ###### Request: @@ -7647,7 +7647,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/email/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/email/{stage_uuid}/ ###### Request: @@ -7681,7 +7681,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/identification/{#123;stage_uuid}#125;/ +##### `GET` /stages/identification/{stage_uuid}/ ###### Return Type: @@ -7704,7 +7704,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/identification/{#123;stage_uuid}#125;/ +##### `PUT` /stages/identification/{stage_uuid}/ ###### Request: @@ -7746,7 +7746,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/identification/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/identification/{stage_uuid}/ ###### Request: @@ -7854,7 +7854,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/invitation/stages/{#123;stage_uuid}#125;/ +##### `GET` /stages/invitation/stages/{stage_uuid}/ ###### Return Type: @@ -7873,7 +7873,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/invitation/stages/{#123;stage_uuid}#125;/ +##### `PUT` /stages/invitation/stages/{stage_uuid}/ ###### Request: @@ -7907,7 +7907,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/invitation/stages/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/invitation/stages/{stage_uuid}/ ###### Request: @@ -7941,7 +7941,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/password/{#123;stage_uuid}#125;/ +##### `GET` /stages/password/{stage_uuid}/ ###### Return Type: @@ -7960,7 +7960,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/password/{#123;stage_uuid}#125;/ +##### `PUT` /stages/password/{stage_uuid}/ ###### Request: @@ -7994,7 +7994,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/password/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/password/{stage_uuid}/ ###### Request: @@ -8028,7 +8028,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/prompt/stages/{#123;stage_uuid}#125;/ +##### `GET` /stages/prompt/stages/{stage_uuid}/ ###### Return Type: @@ -8047,7 +8047,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/prompt/stages/{#123;stage_uuid}#125;/ +##### `PUT` /stages/prompt/stages/{stage_uuid}/ ###### Request: @@ -8081,7 +8081,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/prompt/stages/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/prompt/stages/{stage_uuid}/ ###### Request: @@ -8115,7 +8115,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/user_delete/{#123;stage_uuid}#125;/ +##### `GET` /stages/user_delete/{stage_uuid}/ ###### Return Type: @@ -8134,7 +8134,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/user_delete/{#123;stage_uuid}#125;/ +##### `PUT` /stages/user_delete/{stage_uuid}/ ###### Request: @@ -8168,7 +8168,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/user_delete/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/user_delete/{stage_uuid}/ ###### Request: @@ -8202,7 +8202,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/user_login/{#123;stage_uuid}#125;/ +##### `GET` /stages/user_login/{stage_uuid}/ ###### Return Type: @@ -8253,7 +8253,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/user_login/{#123;stage_uuid}#125;/ +##### `PUT` /stages/user_login/{stage_uuid}/ ###### Request: @@ -8323,7 +8323,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/user_login/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/user_login/{stage_uuid}/ ###### Request: @@ -8393,7 +8393,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/user_logout/{#123;stage_uuid}#125;/ +##### `GET` /stages/user_logout/{stage_uuid}/ ###### Return Type: @@ -8412,7 +8412,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/user_logout/{#123;stage_uuid}#125;/ +##### `PUT` /stages/user_logout/{stage_uuid}/ ###### Request: @@ -8446,7 +8446,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/user_logout/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/user_logout/{stage_uuid}/ ###### Request: @@ -8480,7 +8480,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/user_write/{#123;stage_uuid}#125;/ +##### `GET` /stages/user_write/{stage_uuid}/ ###### Return Type: @@ -8499,7 +8499,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/user_write/{#123;stage_uuid}#125;/ +##### `PUT` /stages/user_write/{stage_uuid}/ ###### Request: @@ -8533,7 +8533,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/user_write/{#123;stage_uuid}#125;/ +##### `PATCH` /stages/user_write/{stage_uuid}/ ###### Request: @@ -8709,7 +8709,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /flows/inspector/{#123;flow_slug}#125;/ +##### `GET` /flows/inspector/{flow_slug}/ ###### Return Type: @@ -9652,7 +9652,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `GET` /stages/prompt/prompts/{#123;prompt_uuid}#125;/ +##### `GET` /stages/prompt/prompts/{prompt_uuid}/ ###### Return Type: @@ -9675,7 +9675,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PUT` /stages/prompt/prompts/{#123;prompt_uuid}#125;/ +##### `PUT` /stages/prompt/prompts/{prompt_uuid}/ ###### Request: @@ -9717,7 +9717,7 @@ Changed response : **200 OK** > - `sidebar_left` - Sidebar Left > - `sidebar_right` - Sidebar Right -##### `PATCH` /stages/prompt/prompts/{#123;prompt_uuid}#125;/ +##### `PATCH` /stages/prompt/prompts/{prompt_uuid}/ ###### Request: From 2abcc9ce8f8baecf82318ecbdaa62d7479e4fc68 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Thu, 15 Feb 2024 06:09:02 +0100 Subject: [PATCH 099/105] website/docs: release notes 2024.2: add note about RC (#8517) --- website/docs/releases/2024/v2024.2.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/releases/2024/v2024.2.md b/website/docs/releases/2024/v2024.2.md index 41f64e5b47..e698e6925f 100644 --- a/website/docs/releases/2024/v2024.2.md +++ b/website/docs/releases/2024/v2024.2.md @@ -5,6 +5,8 @@ slug: /releases/2024.2 :::::note 2024.2 has not been released yet! We're publishing these release notes as a preview of what's to come, and for our awesome beta testers trying out release candidates. + +To try out the release candidate, replace your Docker image tag with the latest release candidate number, such as 2024.2.0-rc1. You can find the latest one in [the latest releases on GitHub](https://github.com/goauthentik/authentik/releases). If you don't find any, it means we haven't released one yet. ::::: ## Highlights From 09888cb89fa0e605aa7c41fed19ee36ed403a3cd Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 06:09:22 +0100 Subject: [PATCH 100/105] translate: Updates for file web/xliff/en.xlf in zh_CN (#8520) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh_CN.xlf | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/web/xliff/zh_CN.xlf b/web/xliff/zh_CN.xlf index e465da6048..a754555b6b 100644 --- a/web/xliff/zh_CN.xlf +++ b/web/xliff/zh_CN.xlf @@ -8424,6 +8424,38 @@ Bindings to groups/users are checked against the user of the event. Configure Remote Access Provider Provider 配置远程访问提供程序 + + + Delete authorization on disconnect + 断开连接时删除授权 + + + When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + 启用时,客户端断开连接时,其连接授权将会被删除。这会导致网络连接不稳定的客户端重新授权此端点。 + + + Connection Token(s) + 连接令牌 + + + Endpoint + 端点 + + + Connections + 连接 + + + Unconfigured + 未配置 + + + This option will not be changed by this mapping. + 此选项不会被此映射更改。 + + + RAC Connections + RAC 连接 From 9ab3971e633c41b8af6c2622f826c26e0a0a2a73 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 06:09:37 +0100 Subject: [PATCH 101/105] translate: Updates for file web/xliff/en.xlf in zh-Hans (#8521) Translate web/xliff/en.xlf in zh-Hans 100% translated source file: 'web/xliff/en.xlf' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh-Hans.xlf | 52 +++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 5c0b561487..23d30b1ed7 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1782,8 +1782,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2961,8 +2961,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3739,8 +3739,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3916,10 +3916,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5000,7 +5000,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5335,10 +5335,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5387,7 +5387,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7880,7 +7880,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8427,28 +8427,36 @@ Bindings to groups/users are checked against the user of the event. Delete authorization on disconnect + 断开连接时删除授权 When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + 启用时,客户端断开连接时,其连接授权将会被删除。这会导致网络连接不稳定的客户端重新授权此端点。 Connection Token(s) + 连接令牌 Endpoint + 端点 Connections + 连接 Unconfigured + 未配置 This option will not be changed by this mapping. + 此选项不会被此映射更改。 RAC Connections + RAC 连接 - + \ No newline at end of file From 8df73c2f6fe478230325342fb152dab837abd24f Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 06:09:54 +0100 Subject: [PATCH 102/105] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#8522) Translate django.po in zh-Hans 100% translated source file: 'django.po' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh-Hans/LC_MESSAGES/django.po | 1298 +++++++++++++------------- 1 file changed, 648 insertions(+), 650 deletions(-) diff --git a/locale/zh-Hans/LC_MESSAGES/django.po b/locale/zh-Hans/LC_MESSAGES/django.po index 9dd73eac4c..b2da4f46fa 100644 --- a/locale/zh-Hans/LC_MESSAGES/django.po +++ b/locale/zh-Hans/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-06 00:06+0000\n" +"POT-Creation-Date: 2024-02-14 18:51+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: deluxghost, 2024\n" "Language-Team: Chinese Simplified (https://app.transifex.com/authentik/teams/119923/zh-Hans/)\n" @@ -24,32 +24,32 @@ msgstr "" "Language: zh-Hans\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: authentik/api/schema.py:26 +#: authentik/api/schema.py msgid "Generic API Error" msgstr "通用 API 错误" -#: authentik/api/schema.py:34 +#: authentik/api/schema.py msgid "Validation Error" msgstr "校验错误" -#: authentik/blueprints/api.py:44 +#: authentik/blueprints/api.py msgid "Blueprint file does not exist" msgstr "蓝图文件不存在" -#: authentik/blueprints/api.py:55 +#: authentik/blueprints/api.py #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "验证蓝图失败:%(logs)s" -#: authentik/blueprints/api.py:60 +#: authentik/blueprints/api.py msgid "Either path or content must be set." msgstr "必须设置路径或内容。" -#: authentik/blueprints/models.py:31 +#: authentik/blueprints/models.py msgid "Managed by authentik" msgstr "由 authentik 管理" -#: authentik/blueprints/models.py:33 +#: authentik/blueprints/models.py msgid "" "Objects that are managed by authentik. These objects are created and updated" " automatically. This flag only indicates that an object can be overwritten " @@ -59,256 +59,255 @@ msgstr "" "由 authentik 管理的对象。这些对象会自动创建和更新。此标记仅仅表明对象可以被 Migration 覆盖。您仍然可以通过 API " "修改对象,但这些修改可能会在之后的更新中被覆盖。" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py msgid "Blueprint Instance" msgstr "蓝图实例" -#: authentik/blueprints/models.py:114 +#: authentik/blueprints/models.py msgid "Blueprint Instances" msgstr "蓝图实例" -#: authentik/blueprints/v1/exporter.py:62 +#: authentik/blueprints/v1/exporter.py #, python-format msgid "authentik Export - %(date)s" msgstr "authentik 导出 - %(date)s" -#: authentik/blueprints/v1/tasks.py:146 authentik/crypto/tasks.py:88 +#: authentik/blueprints/v1/tasks.py authentik/crypto/tasks.py #, python-format msgid "Successfully imported %(count)d files." msgstr "已成功导入 %(count)d 个文件。" -#: authentik/brands/models.py:23 +#: authentik/brands/models.py msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" msgstr "激活此品牌的域。可以是超集,即 `a.b` 可以同时表示 `aa.b` 和 `ba.b`" -#: authentik/brands/models.py:59 +#: authentik/brands/models.py msgid "Web Certificate used by the authentik Core webserver." msgstr "authentik 核心 Web 服务器使用的 Web 证书。" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py msgid "Brand" msgstr "品牌" -#: authentik/brands/models.py:86 +#: authentik/brands/models.py msgid "Brands" msgstr "品牌" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py msgid "SAML Provider from Metadata" msgstr "来自元数据的 SAML 提供程序" -#: authentik/core/api/providers.py:124 +#: authentik/core/api/providers.py msgid "Create a SAML Provider by importing its Metadata." msgstr "通过导入元数据来创建 SAML 提供程序。" -#: authentik/core/api/users.py:162 +#: authentik/core/api/users.py msgid "No leading or trailing slashes allowed." msgstr "不允许前缀或后缀斜线。" -#: authentik/core/api/users.py:165 +#: authentik/core/api/users.py msgid "No empty segments in user path allowed." msgstr "不允许用户路径包含空段。" -#: authentik/core/models.py:94 +#: authentik/core/models.py msgid "name" msgstr "名称" -#: authentik/core/models.py:96 +#: authentik/core/models.py msgid "Users added to this group will be superusers." msgstr "添加到该组的用户均为超级用户。" -#: authentik/core/models.py:170 +#: authentik/core/models.py msgid "Group" msgstr "组" -#: authentik/core/models.py:171 +#: authentik/core/models.py msgid "Groups" msgstr "组" -#: authentik/core/models.py:202 +#: authentik/core/models.py msgid "User's display name." msgstr "用户的显示名称。" -#: authentik/core/models.py:298 authentik/providers/oauth2/models.py:296 +#: authentik/core/models.py authentik/providers/oauth2/models.py msgid "User" msgstr "用户" -#: authentik/core/models.py:299 +#: authentik/core/models.py msgid "Users" msgstr "用户" -#: authentik/core/models.py:301 -#: authentik/stages/email/templates/email/password_reset.html:28 +#: authentik/core/models.py +#: authentik/stages/email/templates/email/password_reset.html msgid "Reset Password" msgstr "重置密码" -#: authentik/core/models.py:302 +#: authentik/core/models.py msgid "Can impersonate other users" msgstr "可以模拟其他用户的身份" -#: authentik/core/models.py:303 authentik/rbac/models.py:55 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can assign permissions to users" msgstr "可以为用户分配权限" -#: authentik/core/models.py:304 authentik/rbac/models.py:56 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can unassign permissions from users" msgstr "可以取消分配用户的权限" -#: authentik/core/models.py:305 +#: authentik/core/models.py msgid "Can preview user data sent to providers" msgstr "可以预览发送给提供程序的用户数据" -#: authentik/core/models.py:306 +#: authentik/core/models.py msgid "View applications the user has access to" msgstr "查看用户有权访问的应用程序" -#: authentik/core/models.py:328 +#: authentik/core/models.py msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." msgstr "当关联应用程序被未验证身份的用户访问时,用于身份验证的流程。" -#: authentik/core/models.py:338 +#: authentik/core/models.py msgid "Flow used when authorizing this provider." msgstr "授权此提供程序时使用的流程。" -#: authentik/core/models.py:350 +#: authentik/core/models.py msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." msgstr "从应用程序访问;为类似 LDAP 和 SCIM 的协议提供的可选反向通道提供程序。" -#: authentik/core/models.py:405 +#: authentik/core/models.py msgid "Application's display Name." msgstr "应用的显示名称。" -#: authentik/core/models.py:406 +#: authentik/core/models.py msgid "Internal application name, used in URLs." msgstr "应用的内部名称,在 URL 中使用。" -#: authentik/core/models.py:418 +#: authentik/core/models.py msgid "Open launch URL in a new browser tab or window." msgstr "在新浏览器标签页或窗口中打开启动 URL。" -#: authentik/core/models.py:482 +#: authentik/core/models.py msgid "Application" msgstr "应用程序" -#: authentik/core/models.py:483 +#: authentik/core/models.py msgid "Applications" msgstr "应用程序" -#: authentik/core/models.py:489 +#: authentik/core/models.py msgid "Use the source-specific identifier" msgstr "使用源特定的标识符" -#: authentik/core/models.py:491 +#: authentik/core/models.py msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." msgstr "链接到电子邮件地址相同的用户。当源不验证电子邮件地址时,可能会有安全隐患。" -#: authentik/core/models.py:495 +#: authentik/core/models.py msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." msgstr "使用用户的电子邮件地址,但在电子邮件地址已存在时拒绝注册。" -#: authentik/core/models.py:498 +#: authentik/core/models.py msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." msgstr "链接到用户名相同的用户。当其他源使用相同用户名时,可能会有安全隐患。" -#: authentik/core/models.py:502 +#: authentik/core/models.py msgid "" "Use the user's username, but deny enrollment when the username already " "exists." msgstr "使用用户的用户名,但在用户名已存在时拒绝注册。" -#: authentik/core/models.py:509 +#: authentik/core/models.py msgid "Source's display Name." msgstr "源的显示名称。" -#: authentik/core/models.py:510 +#: authentik/core/models.py msgid "Internal source name, used in URLs." msgstr "源的内部名称,在 URL 中使用。" -#: authentik/core/models.py:529 +#: authentik/core/models.py msgid "Flow to use when authenticating existing users." msgstr "认证已存在用户时所使用的流程。" -#: authentik/core/models.py:538 +#: authentik/core/models.py msgid "Flow to use when enrolling new users." msgstr "新用户注册的流程。" -#: authentik/core/models.py:546 +#: authentik/core/models.py msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." msgstr "源怎样确定应该验证已有用户的身份还是注册新用户。" -#: authentik/core/models.py:718 +#: authentik/core/models.py msgid "Token" msgstr "令牌" -#: authentik/core/models.py:719 +#: authentik/core/models.py msgid "Tokens" msgstr "令牌" -#: authentik/core/models.py:724 +#: authentik/core/models.py msgid "View token's key" msgstr "查看令牌密钥" -#: authentik/core/models.py:760 +#: authentik/core/models.py msgid "Property Mapping" msgstr "属性映射" -#: authentik/core/models.py:761 +#: authentik/core/models.py msgid "Property Mappings" msgstr "属性映射" -#: authentik/core/models.py:798 +#: authentik/core/models.py msgid "Authenticated Session" msgstr "已认证会话" -#: authentik/core/models.py:799 +#: authentik/core/models.py msgid "Authenticated Sessions" msgstr "已认证会话" -#: authentik/core/sources/flow_manager.py:191 +#: authentik/core/sources/flow_manager.py #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate" " with the source you've previously signed up with." msgstr "来自 %(source)s 的身份验证请求被拒绝。请用您注册时使用的方式验证身份。" -#: authentik/core/sources/flow_manager.py:243 +#: authentik/core/sources/flow_manager.py msgid "Configured flow does not exist." msgstr "配置的流程不存在。" -#: authentik/core/sources/flow_manager.py:273 -#: authentik/core/sources/flow_manager.py:325 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "成功通过 %(source)s 认证!" -#: authentik/core/sources/flow_manager.py:297 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully linked %(source)s!" msgstr "成功链接 %(source)s!" -#: authentik/core/sources/flow_manager.py:316 +#: authentik/core/sources/flow_manager.py msgid "Source is not configured for enrollment." msgstr "源未被配置用于注册。" -#: authentik/core/templates/if/end_session.html:7 +#: authentik/core/templates/if/end_session.html msgid "End session" msgstr "结束会话" -#: authentik/core/templates/if/end_session.html:11 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -317,7 +316,7 @@ msgstr "" "\n" "您已登出 %(application)s。\n" -#: authentik/core/templates/if/end_session.html:19 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -327,11 +326,11 @@ msgstr "" "\n" " 您已成功登出 %(application)s 。现在您可以返回总览页来启动其他应用,或者登出您的 %(branding_title)s 账户。" -#: authentik/core/templates/if/end_session.html:25 +#: authentik/core/templates/if/end_session.html msgid "Go back to overview" msgstr "返回总览" -#: authentik/core/templates/if/end_session.html:29 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -342,7 +341,7 @@ msgstr "" " 登出 %(branding_title)s\n" " " -#: authentik/core/templates/if/end_session.html:36 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -353,361 +352,367 @@ msgstr "" " 重新登录 %(application)s\n" " " -#: authentik/core/templates/if/error.html:18 +#: authentik/core/templates/if/error.html msgid "Go home" msgstr "前往首页" -#: authentik/core/templates/login/base_full.html:75 +#: authentik/core/templates/login/base_full.html msgid "Powered by authentik" msgstr "由 authentik 强力驱动" -#: authentik/core/views/apps.py:54 -#: authentik/providers/oauth2/views/authorize.py:435 -#: authentik/providers/oauth2/views/device_init.py:71 -#: authentik/providers/saml/views/sso.py:71 +#: authentik/core/views/apps.py authentik/providers/oauth2/views/authorize.py +#: authentik/providers/oauth2/views/device_init.py +#: authentik/providers/saml/views/sso.py #, python-format msgid "You're about to sign into %(application)s." msgstr "您即将登录 %(application)s。" -#: authentik/crypto/api.py:180 +#: authentik/crypto/api.py msgid "Subject-alt name" msgstr "替代名称" -#: authentik/crypto/models.py:31 +#: authentik/crypto/models.py msgid "PEM-encoded Certificate data" msgstr "PEM 编码的证书数据" -#: authentik/crypto/models.py:34 +#: authentik/crypto/models.py msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." msgstr "可选私钥。如果设置,则可以使用此密钥对来加密。" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py msgid "Certificate-Key Pair" msgstr "证书密钥对" -#: authentik/crypto/models.py:103 +#: authentik/crypto/models.py msgid "Certificate-Key Pairs" msgstr "证书密钥对" -#: authentik/enterprise/api.py:34 +#: authentik/enterprise/api.py msgid "Enterprise is required to create/update this object." msgstr "创建/更新此对象需要企业版。" -#: authentik/enterprise/models.py:183 +#: authentik/enterprise/models.py msgid "License" msgstr "许可证" -#: authentik/enterprise/models.py:184 +#: authentik/enterprise/models.py msgid "Licenses" msgstr "许可证" -#: authentik/enterprise/models.py:206 +#: authentik/enterprise/models.py msgid "License Usage" msgstr "许可证使用情况" -#: authentik/enterprise/models.py:207 +#: authentik/enterprise/models.py msgid "License Usage Records" msgstr "许可证使用情况记录" -#: authentik/enterprise/policy.py:19 +#: authentik/enterprise/policy.py msgid "Enterprise required to access this feature." msgstr "访问此功能需要企业版。" -#: authentik/enterprise/policy.py:21 +#: authentik/enterprise/policy.py msgid "Feature only accessible for internal users." msgstr "仅内部用户能访问此功能。" -#: authentik/enterprise/providers/rac/models.py:49 -#: authentik/stages/user_login/models.py:39 +#: authentik/enterprise/providers/rac/models.py +#: authentik/stages/user_login/models.py msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "确定会话持续多长时间。默认值为 0 表示会话持续到浏览器关闭为止。(格式:hours=-1;minutes=-2;seconds=-3)" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py +msgid "When set to true, connection tokens will be deleted upon disconnect." +msgstr "启用时,连接令牌将会在断开连接时被删除。" + +#: authentik/enterprise/providers/rac/models.py msgid "RAC Provider" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:73 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Providers" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoint" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:102 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoints" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mapping" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/models.py:124 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mappings" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/views.py:109 +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection token" +msgstr "RAC 连接令牌" + +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection tokens" +msgstr "RAC 连接令牌" + +#: authentik/enterprise/providers/rac/views.py msgid "Maximum connection limit reached." msgstr "已达到最大连接数。" -#: authentik/enterprise/providers/rac/views.py:113 +#: authentik/enterprise/providers/rac/views.py msgid "(You are already connected in another tab/window)" msgstr "(您已经在另一个标签页/窗口连接了)" -#: authentik/events/api/tasks.py:101 +#: authentik/events/api/tasks.py #, python-format msgid "Successfully started task %(name)s." msgstr "已成功开始任务 %(name)s。" -#: authentik/events/models.py:305 +#: authentik/events/models.py msgid "Event" msgstr "事件" -#: authentik/events/models.py:306 +#: authentik/events/models.py msgid "Events" msgstr "事件" -#: authentik/events/models.py:312 +#: authentik/events/models.py msgid "authentik inbuilt notifications" msgstr "authentik 内置通知" -#: authentik/events/models.py:313 +#: authentik/events/models.py msgid "Generic Webhook" msgstr "通用 Webhook" -#: authentik/events/models.py:314 +#: authentik/events/models.py msgid "Slack Webhook (Slack/Discord)" msgstr "Slack Webhook(Slack/Discord)" -#: authentik/events/models.py:315 +#: authentik/events/models.py msgid "Email" msgstr "电子邮箱" -#: authentik/events/models.py:333 +#: authentik/events/models.py msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." msgstr "仅发送一次通知,例如在向聊天频道发送 Webhook 时。" -#: authentik/events/models.py:398 +#: authentik/events/models.py msgid "Severity" msgstr "严重程度" -#: authentik/events/models.py:403 +#: authentik/events/models.py msgid "Dispatched for user" msgstr "为用户分派" -#: authentik/events/models.py:412 +#: authentik/events/models.py msgid "Event user" msgstr "事件用户" -#: authentik/events/models.py:506 +#: authentik/events/models.py msgid "Notification Transport" msgstr "通知传输" -#: authentik/events/models.py:507 +#: authentik/events/models.py msgid "Notification Transports" msgstr "通知传输" -#: authentik/events/models.py:513 +#: authentik/events/models.py msgid "Notice" msgstr "通知" -#: authentik/events/models.py:514 +#: authentik/events/models.py msgid "Warning" msgstr "警告" -#: authentik/events/models.py:515 +#: authentik/events/models.py msgid "Alert" msgstr "注意" -#: authentik/events/models.py:540 +#: authentik/events/models.py msgid "Notification" msgstr "通知" -#: authentik/events/models.py:541 +#: authentik/events/models.py msgid "Notifications" msgstr "通知" -#: authentik/events/models.py:551 +#: authentik/events/models.py msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." msgstr "选择应使用哪些传输方式来通知用户。如果未选择任何内容,则通知将仅显示在 authentik UI 中。" -#: authentik/events/models.py:559 +#: authentik/events/models.py msgid "Controls which severity level the created notifications will have." msgstr "控制被创建的通知的严重性级别。" -#: authentik/events/models.py:564 +#: authentik/events/models.py msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." msgstr "定义此通知应该发送到哪些用户组。如果留空,则不会发送通知。" -#: authentik/events/models.py:582 +#: authentik/events/models.py msgid "Notification Rule" msgstr "通知规则" -#: authentik/events/models.py:583 +#: authentik/events/models.py msgid "Notification Rules" msgstr "通知规则" -#: authentik/events/models.py:603 +#: authentik/events/models.py msgid "Webhook Mapping" msgstr "Webhook 映射" -#: authentik/events/models.py:604 +#: authentik/events/models.py msgid "Webhook Mappings" msgstr "Webhook 映射" -#: authentik/events/models.py:669 +#: authentik/events/models.py msgid "Run task" msgstr "运行任务" -#: authentik/events/models.py:670 +#: authentik/events/models.py msgid "System Task" msgstr "系统任务" -#: authentik/events/models.py:671 +#: authentik/events/models.py msgid "System Tasks" msgstr "系统任务" -#: authentik/events/system_tasks.py:127 +#: authentik/events/system_tasks.py msgid "Task has not been run yet." msgstr "任务尚未运行。" -#: authentik/flows/api/flows.py:297 +#: authentik/flows/api/flows.py #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "流程不适用于当前用户/请求:%(messages)s" -#: authentik/flows/api/flows_diagram.py:69 -#: authentik/flows/api/flows_diagram.py:95 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Policy (%(type)s)" msgstr "策略(%(type)s)" -#: authentik/flows/api/flows_diagram.py:72 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Binding %(order)d" msgstr "绑定 %(order)d" -#: authentik/flows/api/flows_diagram.py:119 +#: authentik/flows/api/flows_diagram.py msgid "Policy passed" msgstr "策略通过" -#: authentik/flows/api/flows_diagram.py:123 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Stage (%(type)s)" msgstr "阶段(%(type)s)" -#: authentik/flows/api/flows_diagram.py:147 -#: authentik/flows/api/flows_diagram.py:207 +#: authentik/flows/api/flows_diagram.py msgid "Policy denied" msgstr "策略拒绝" -#: authentik/flows/api/flows_diagram.py:157 -#: authentik/flows/api/flows_diagram.py:169 -#: authentik/flows/api/flows_diagram.py:206 -#: authentik/flows/api/flows_diagram.py:228 +#: authentik/flows/api/flows_diagram.py msgid "End of the flow" msgstr "流程结束" -#: authentik/flows/api/flows_diagram.py:170 +#: authentik/flows/api/flows_diagram.py msgid "Requirement not fulfilled" msgstr "需求条件未达成" -#: authentik/flows/api/flows_diagram.py:178 +#: authentik/flows/api/flows_diagram.py msgid "Flow authentication requirement" msgstr "流程身份验证需求" -#: authentik/flows/api/flows_diagram.py:184 +#: authentik/flows/api/flows_diagram.py msgid "Requirement fulfilled" msgstr "需求条件已达成" -#: authentik/flows/api/flows_diagram.py:197 +#: authentik/flows/api/flows_diagram.py msgid "Pre-flow policies" msgstr "流程前置策略" -#: authentik/flows/api/flows_diagram.py:215 authentik/flows/models.py:195 +#: authentik/flows/api/flows_diagram.py authentik/flows/models.py msgid "Flow" msgstr "流程" -#: authentik/flows/exceptions.py:20 +#: authentik/flows/exceptions.py msgid "Flow does not apply to current user." msgstr "流程不应用于当前用户。" -#: authentik/flows/models.py:116 +#: authentik/flows/models.py #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "动态内存中阶段:%(doc)s" -#: authentik/flows/models.py:131 +#: authentik/flows/models.py msgid "Visible in the URL." msgstr "在 URL 中可见。" -#: authentik/flows/models.py:133 +#: authentik/flows/models.py msgid "Shown as the Title in Flow pages." msgstr "显示为流程页面中的标题。" -#: authentik/flows/models.py:140 +#: authentik/flows/models.py msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." msgstr "决定此流程的用途。例如,当未经身份验证的用户访问 authentik 时,会重定向到身份验证流程。" -#: authentik/flows/models.py:149 +#: authentik/flows/models.py msgid "Background shown during execution" msgstr "执行时的背景" -#: authentik/flows/models.py:156 +#: authentik/flows/models.py msgid "" "Enable compatibility mode, increases compatibility with password managers on" " mobile devices." msgstr "启用兼容模式,增强与移动设备上密码管理器的兼容性。" -#: authentik/flows/models.py:164 +#: authentik/flows/models.py msgid "Configure what should happen when a flow denies access to a user." msgstr "配置当流程拒绝访问一名用户时应该发生什么。" -#: authentik/flows/models.py:170 +#: authentik/flows/models.py msgid "Required level of authentication and authorization to access a flow." msgstr "需要身份验证和授权等级以访问流程。" -#: authentik/flows/models.py:196 +#: authentik/flows/models.py msgid "Flows" msgstr "流程" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py msgid "Can export a Flow" msgstr "可以导出流程" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py msgid "Can inspect a Flow's execution" msgstr "可以检视流程执行" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py msgid "View Flow's cache metrics" msgstr "查看流程缓存指标" -#: authentik/flows/models.py:202 +#: authentik/flows/models.py msgid "Clear Flow's cache metrics" msgstr "清除流程缓存指标" -#: authentik/flows/models.py:218 +#: authentik/flows/models.py msgid "Evaluate policies during the Flow planning process." msgstr "在流程规划过程中评估策略。" -#: authentik/flows/models.py:222 +#: authentik/flows/models.py msgid "Evaluate policies when the Stage is present to the user." msgstr "在阶段呈现给用户时评估策略。" -#: authentik/flows/models.py:229 +#: authentik/flows/models.py msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -717,62 +722,62 @@ msgstr "" "配置流程执行器应如何处理对质询的无效响应。RETRY 向执行器返回错误消息和类似的质询。RESTART " "从头开始重新启动流程,RESTART_WITH_CONTEXT 在保留当前上下文的同时重新启动流程。" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py msgid "Flow Stage Binding" msgstr "流程阶段绑定" -#: authentik/flows/models.py:253 +#: authentik/flows/models.py msgid "Flow Stage Bindings" msgstr "流程阶段绑定" -#: authentik/flows/models.py:268 +#: authentik/flows/models.py msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." msgstr "经过身份验证的用户用来配置此阶段的流程。如果为空,用户将无法配置此阶段。" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py msgid "Flow Token" msgstr "流程令牌" -#: authentik/flows/models.py:309 +#: authentik/flows/models.py msgid "Flow Tokens" msgstr "流程令牌" -#: authentik/lib/utils/time.py:28 +#: authentik/lib/utils/time.py #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "%(value)s 的格式不正确,应为 'hours=3;minutes=1'。" -#: authentik/lib/validators.py:17 +#: authentik/lib/validators.py #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "字段 {field_names} 必须一同使用。" -#: authentik/outposts/api/service_connections.py:128 +#: authentik/outposts/api/service_connections.py msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "您只能在连接到本地集群时使用空的 kubeconfig。" -#: authentik/outposts/api/service_connections.py:136 +#: authentik/outposts/api/service_connections.py msgid "Invalid kubeconfig" msgstr "无效 kubeconfig " -#: authentik/outposts/models.py:124 +#: authentik/outposts/models.py msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" msgstr "如果启用,则使用本地连接。需要 Docker Socket / Kubernetes 集成" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py msgid "Outpost Service-Connection" msgstr "前哨服务连接" -#: authentik/outposts/models.py:155 +#: authentik/outposts/models.py msgid "Outpost Service-Connections" msgstr "前哨服务连接" -#: authentik/outposts/models.py:163 +#: authentik/outposts/models.py msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." @@ -780,271 +785,270 @@ msgstr "" "当连接到本地 Docker " "守护进程时,可以使用“unix://”格式,或者在连接远程系统时,使用“https://:2376”格式。" -#: authentik/outposts/models.py:175 +#: authentik/outposts/models.py msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." msgstr "验证端点证书所依据的 CA。可以留空,表示不进行验证。" -#: authentik/outposts/models.py:187 +#: authentik/outposts/models.py msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." msgstr "用于身份验证的证书/密钥。可以留空表示不验证。" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py msgid "Docker Service-Connection" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:206 +#: authentik/outposts/models.py msgid "Docker Service-Connections" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:214 +#: authentik/outposts/models.py msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." msgstr "在这里粘贴您的 kubeconfig。authentik 会自动使用当前选择的上下文。" -#: authentik/outposts/models.py:220 +#: authentik/outposts/models.py msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "验证 Kubernetes API 端点的 SSL 证书" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connection" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:238 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connections" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:254 +#: authentik/outposts/models.py msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave" " empty if authentik should not handle the deployment." msgstr "选择 authentik 在管理此前哨时需要使用的服务连接。如果 authentik 不应该处理此部署,则应该留空。" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py msgid "Outpost" msgstr "前哨" -#: authentik/outposts/models.py:422 +#: authentik/outposts/models.py msgid "Outposts" msgstr "前哨" -#: authentik/policies/denied.py:25 +#: authentik/policies/denied.py msgid "Access denied" msgstr "访问被拒绝" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py msgid "Dummy Policy" msgstr "虚拟策略" -#: authentik/policies/dummy/models.py:46 +#: authentik/policies/dummy/models.py msgid "Dummy Policies" msgstr "虚拟策略" -#: authentik/policies/event_matcher/api.py:21 -#: authentik/policies/event_matcher/models.py:57 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "匹配选定应用程序创建的事件。如果留空,则匹配所有应用程序。" -#: authentik/policies/event_matcher/api.py:30 -#: authentik/policies/event_matcher/models.py:65 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." msgstr "匹配选定模型创建的事件。如果留空,则匹配所有模型。选择应用程序后,则匹配该应用程序的所有模型。" -#: authentik/policies/event_matcher/api.py:43 +#: authentik/policies/event_matcher/api.py msgid "At least one criteria must be set." msgstr "必须至少设置一项标准。" -#: authentik/policies/event_matcher/models.py:49 +#: authentik/policies/event_matcher/models.py msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "将创建的事件与此操作类型匹配。留空时,所有操作类型都将匹配。" -#: authentik/policies/event_matcher/models.py:74 +#: authentik/policies/event_matcher/models.py msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "匹配事件的客户端 IP(严格匹配,要匹配网段请使用表达式策略)" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policy" msgstr "事件匹配策略" -#: authentik/policies/event_matcher/models.py:145 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policies" msgstr "事件匹配策略" -#: authentik/policies/expiry/models.py:46 +#: authentik/policies/expiry/models.py #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "密码在 %(days)d 天前过期。请更新您的密码。" -#: authentik/policies/expiry/models.py:50 +#: authentik/policies/expiry/models.py msgid "Password has expired." msgstr "密码已过期。" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policy" msgstr "密码过期策略" -#: authentik/policies/expiry/models.py:55 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policies" msgstr "密码过期策略" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py msgid "Expression Policy" msgstr "表达式策略" -#: authentik/policies/expression/models.py:42 +#: authentik/policies/expression/models.py msgid "Expression Policies" msgstr "表达式策略" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py msgid "all, all policies must pass" msgstr "All,必须通过所有策略" -#: authentik/policies/models.py:24 +#: authentik/policies/models.py msgid "any, any policy must pass" msgstr "Any,必须通过任意策略" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py msgid "Policy Binding Model" msgstr "策略绑定模型" -#: authentik/policies/models.py:48 +#: authentik/policies/models.py msgid "Policy Binding Models" msgstr "策略绑定模型" -#: authentik/policies/models.py:87 +#: authentik/policies/models.py msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "反转策略的结果。消息不受影响。" -#: authentik/policies/models.py:90 +#: authentik/policies/models.py msgid "Timeout after which Policy execution is terminated." msgstr "策略执行终止的超时时间。" -#: authentik/policies/models.py:93 +#: authentik/policies/models.py msgid "Result if the Policy execution fails." msgstr "策略执行失败时的结果。" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py msgid "Policy Binding" msgstr "策略绑定" -#: authentik/policies/models.py:147 +#: authentik/policies/models.py msgid "Policy Bindings" msgstr "策略绑定" -#: authentik/policies/models.py:168 +#: authentik/policies/models.py msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." msgstr "启用此选项后,将记录此策略的所有执行日志。默认情况下,只记录执行错误。" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py msgid "Policy" msgstr "策略" -#: authentik/policies/models.py:191 +#: authentik/policies/models.py msgid "Policies" msgstr "策略" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py msgid "View Policy's cache metrics" msgstr "查看策略缓存指标" -#: authentik/policies/models.py:195 +#: authentik/policies/models.py msgid "Clear Policy's cache metrics" msgstr "清除策略缓存指标" -#: authentik/policies/password/models.py:28 +#: authentik/policies/password/models.py msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "要检查的字段键,可以使用输入阶段中定义的字段键。" -#: authentik/policies/password/models.py:45 +#: authentik/policies/password/models.py msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "密码哈希允许出现在 HaveIBeenPwned 中多少次" -#: authentik/policies/password/models.py:50 +#: authentik/policies/password/models.py msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "如果 zxcvbn 分数小于等于此值,则策略失败。" -#: authentik/policies/password/models.py:73 +#: authentik/policies/password/models.py msgid "Password not set in context" msgstr "未在上下文中设置密码" -#: authentik/policies/password/models.py:135 +#: authentik/policies/password/models.py #, python-format msgid "Password exists on %(count)d online lists." msgstr "%(count)d 个在线列表中存在密码。" -#: authentik/policies/password/models.py:155 +#: authentik/policies/password/models.py msgid "Password is too weak." msgstr "密码太弱。" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py msgid "Password Policy" msgstr "密码策略" -#: authentik/policies/password/models.py:164 +#: authentik/policies/password/models.py msgid "Password Policies" msgstr "密码策略" -#: authentik/policies/reputation/api.py:19 +#: authentik/policies/reputation/api.py msgid "Either IP or Username must be checked" msgstr "必须检查 IP 或用户名" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py msgid "Reputation Policy" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:69 +#: authentik/policies/reputation/models.py msgid "Reputation Policies" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py msgid "Reputation Score" msgstr "信誉分数" -#: authentik/policies/reputation/models.py:98 +#: authentik/policies/reputation/models.py msgid "Reputation Scores" msgstr "信誉分数" -#: authentik/policies/templates/policies/denied.html:7 -#: authentik/policies/templates/policies/denied.html:11 +#: authentik/policies/templates/policies/denied.html msgid "Permission denied" msgstr "权限被拒绝" -#: authentik/policies/templates/policies/denied.html:21 +#: authentik/policies/templates/policies/denied.html msgid "User's avatar" msgstr "用户的头像" -#: authentik/policies/templates/policies/denied.html:25 +#: authentik/policies/templates/policies/denied.html msgid "Not you?" msgstr "不是您?" -#: authentik/policies/templates/policies/denied.html:33 +#: authentik/policies/templates/policies/denied.html msgid "Request has been denied." msgstr "请求被拒绝。" -#: authentik/policies/templates/policies/denied.html:44 +#: authentik/policies/templates/policies/denied.html msgid "Messages:" msgstr "消息:" -#: authentik/policies/templates/policies/denied.html:54 +#: authentik/policies/templates/policies/denied.html msgid "Explanation:" msgstr "解释:" -#: authentik/policies/templates/policies/denied.html:58 +#: authentik/policies/templates/policies/denied.html #, python-format msgid "" "\n" @@ -1055,21 +1059,21 @@ msgstr "" " 策略绑定 '%(name)s' 返回结果 '%(result)s'\n" " " -#: authentik/policies/views.py:69 +#: authentik/policies/views.py msgid "Failed to resolve application" msgstr "解析应用程序失败" -#: authentik/providers/ldap/models.py:26 +#: authentik/providers/ldap/models.py msgid "DN under which objects are accessible." msgstr "可访问对象的 DN。" -#: authentik/providers/ldap/models.py:35 +#: authentik/providers/ldap/models.py msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." msgstr "该组中的用户可以执行搜索查询。如果未设置,则每个用户都可以执行搜索查询。" -#: authentik/providers/ldap/models.py:54 +#: authentik/providers/ldap/models.py msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " @@ -1078,7 +1082,7 @@ msgstr "" "起始 uidNumbers,这个数字会被添加到 user.pk 中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "2000,以确保我们不会与本地用户的 uidNumber 发生冲突" -#: authentik/providers/ldap/models.py:63 +#: authentik/providers/ldap/models.py msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1088,8 +1092,7 @@ msgstr "" "起始 gidNumbers,这个数字会被添加到从 group.pk 生成的数字中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "4000,以确保我们不会与本地群组或用户主组的 gidNumber 发生冲突" -#: authentik/providers/ldap/models.py:77 -#: authentik/providers/radius/models.py:35 +#: authentik/providers/ldap/models.py authentik/providers/radius/models.py msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be" @@ -1100,958 +1103,955 @@ msgstr "" "启用时,可以通过在密码后添加分号和 TOTP 代码来使用基于代码的多因素身份验证。仅在所有绑定到此提供程序的用户都已配置 TOTP " "设备的情况下才应该启用,否则密码可能会因为包含分号而被错误地拒绝。" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py msgid "LDAP Provider" msgstr "LDAP 提供程序" -#: authentik/providers/ldap/models.py:110 +#: authentik/providers/ldap/models.py msgid "LDAP Providers" msgstr "LDAP 提供程序" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py msgid "Based on the Hashed User ID" msgstr "基于经过哈希处理的用户 ID" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py msgid "Based on user ID" msgstr "基于用户 ID" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py msgid "Based on user UUID" msgstr "基于用户 UUID" -#: authentik/providers/oauth2/id_token.py:31 +#: authentik/providers/oauth2/id_token.py msgid "Based on the username" msgstr "基于用户名" -#: authentik/providers/oauth2/id_token.py:34 +#: authentik/providers/oauth2/id_token.py msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "基于用户的电子邮箱。建议在 UPN 方法上使用。" -#: authentik/providers/oauth2/id_token.py:39 +#: authentik/providers/oauth2/id_token.py msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." msgstr "基于用户的 UPN,仅当用户设置了 'upn' 属性时才有效。仅当您有不同的 UPN 和 Mail 域时才使用此方法。" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py msgid "Confidential" msgstr "机密" -#: authentik/providers/oauth2/models.py:45 +#: authentik/providers/oauth2/models.py msgid "Public" msgstr "公开" -#: authentik/providers/oauth2/models.py:67 +#: authentik/providers/oauth2/models.py msgid "Same identifier is used for all providers" msgstr "所有提供程序都使用相同的标识符" -#: authentik/providers/oauth2/models.py:69 +#: authentik/providers/oauth2/models.py msgid "Each provider has a different issuer, based on the application slug." msgstr "根据应用程序 Slug,每个提供程序都有不同的颁发者。" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py msgid "code (Authorization Code Flow)" msgstr "code(授权码流程)" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py msgid "id_token (Implicit Flow)" msgstr "id_token(隐式流程)" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py msgid "id_token token (Implicit Flow)" msgstr "id_token token(隐式流程)" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py msgid "code token (Hybrid Flow)" msgstr "code token(混合流程)" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py msgid "code id_token (Hybrid Flow)" msgstr "code id_token(混合流程)" -#: authentik/providers/oauth2/models.py:81 +#: authentik/providers/oauth2/models.py msgid "code id_token token (Hybrid Flow)" msgstr "code id_token token(混合流程)" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py msgid "HS256 (Symmetric Encryption)" msgstr "HS256(对称加密)" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py msgid "RS256 (Asymmetric Encryption)" msgstr "RS256(非对称加密)" -#: authentik/providers/oauth2/models.py:89 +#: authentik/providers/oauth2/models.py msgid "ES256 (Asymmetric Encryption)" msgstr "ES256(非对称加密)" -#: authentik/providers/oauth2/models.py:95 +#: authentik/providers/oauth2/models.py msgid "Scope used by the client" msgstr "客户端使用的作用域" -#: authentik/providers/oauth2/models.py:99 +#: authentik/providers/oauth2/models.py msgid "" "Description shown to the user when consenting. If left empty, the user won't" " be informed." msgstr "同意授权时向用户显示的描述。如果留空,则不会告知用户。" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py msgid "Scope Mapping" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:119 +#: authentik/providers/oauth2/models.py msgid "Scope Mappings" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:129 +#: authentik/providers/oauth2/models.py msgid "Client Type" msgstr "客户端类型" -#: authentik/providers/oauth2/models.py:131 +#: authentik/providers/oauth2/models.py msgid "" "Confidential clients are capable of maintaining the confidentiality of their" " credentials. Public clients are incapable" msgstr "机密客户端有能力维护其凭据的机密性。公开客户端无此能力。" -#: authentik/providers/oauth2/models.py:138 +#: authentik/providers/oauth2/models.py msgid "Client ID" msgstr "客户端 ID" -#: authentik/providers/oauth2/models.py:144 +#: authentik/providers/oauth2/models.py msgid "Client Secret" msgstr "客户端密钥" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py msgid "Redirect URIs" msgstr "重定向 URI" -#: authentik/providers/oauth2/models.py:151 +#: authentik/providers/oauth2/models.py msgid "Enter each URI on a new line." msgstr "每行输入一个 URI。" -#: authentik/providers/oauth2/models.py:156 +#: authentik/providers/oauth2/models.py msgid "Include claims in id_token" msgstr "在 id_token 中包含声明" -#: authentik/providers/oauth2/models.py:158 +#: authentik/providers/oauth2/models.py msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." msgstr "对于不访问 userinfo 端点的应用程序,将来自作用域的用户声明包含在 id_token 中。" -#: authentik/providers/oauth2/models.py:167 +#: authentik/providers/oauth2/models.py msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,访问代码无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:175 -#: authentik/providers/oauth2/models.py:183 +#: authentik/providers/oauth2/models.py msgid "" "Tokens not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,令牌无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:192 +#: authentik/providers/oauth2/models.py msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。" -#: authentik/providers/oauth2/models.py:199 +#: authentik/providers/oauth2/models.py msgid "Configure how the issuer field of the ID Token should be filled." msgstr "配置如何填写 ID 令牌的颁发者字段。" -#: authentik/providers/oauth2/models.py:204 +#: authentik/providers/oauth2/models.py msgid "Signing Key" msgstr "签名密钥" -#: authentik/providers/oauth2/models.py:208 +#: authentik/providers/oauth2/models.py msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "用于签名令牌的密钥。仅当 JWT 算法设置为 RS256 时才需要。" -#: authentik/providers/oauth2/models.py:215 +#: authentik/providers/oauth2/models.py msgid "" "Any JWT signed by the JWK of the selected source can be used to " "authenticate." msgstr "任何由选定来源的 JWK 签发的 JWT 都可以用于身份验证。" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Provider" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:289 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Providers" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:298 -#: authentik/providers/oauth2/models.py:431 +#: authentik/providers/oauth2/models.py msgid "Scopes" msgstr "作用域" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py msgid "Code" msgstr "代码" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py msgid "Nonce" msgstr "Nonce" -#: authentik/providers/oauth2/models.py:320 +#: authentik/providers/oauth2/models.py msgid "Code Challenge" msgstr "代码质询" -#: authentik/providers/oauth2/models.py:322 +#: authentik/providers/oauth2/models.py msgid "Code Challenge Method" msgstr "代码质询方法" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py msgid "Authorization Code" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:343 +#: authentik/providers/oauth2/models.py msgid "Authorization Codes" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Token" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:386 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Tokens" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:396 +#: authentik/providers/oauth2/models.py msgid "ID Token" msgstr "ID 令牌" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Token" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:416 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Tokens" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py msgid "Device Token" msgstr "设备令牌" -#: authentik/providers/oauth2/models.py:444 +#: authentik/providers/oauth2/models.py msgid "Device Tokens" msgstr "设备令牌" -#: authentik/providers/oauth2/views/authorize.py:490 -#: authentik/providers/saml/views/flows.py:88 +#: authentik/providers/oauth2/views/authorize.py +#: authentik/providers/saml/views/flows.py #, python-format msgid "Redirecting to %(app)s..." msgstr "正在跳转到 %(app)s…" -#: authentik/providers/oauth2/views/device_init.py:152 +#: authentik/providers/oauth2/views/device_init.py msgid "Invalid code" msgstr "无效代码" -#: authentik/providers/oauth2/views/userinfo.py:56 -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your User Information" msgstr "GitHub 兼容性:访问您的用户信息" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access you Email addresses" msgstr "GitHub 兼容性:访问您的电子邮件地址" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your Groups" msgstr "GitHub 兼容性:访问您的组" -#: authentik/providers/oauth2/views/userinfo.py:60 +#: authentik/providers/oauth2/views/userinfo.py msgid "authentik API Access on behalf of your user" msgstr "代表您的用户访问 authentik API" -#: authentik/providers/proxy/api.py:53 +#: authentik/providers/proxy/api.py msgid "User and password attributes must be set when basic auth is enabled." msgstr "启用 Basic Auth 时,必须设置用户和密码属性。" -#: authentik/providers/proxy/api.py:64 +#: authentik/providers/proxy/api.py msgid "Internal host cannot be empty when forward auth is disabled." msgstr "禁用 Forward Auth 时,内部主机不能为空。" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py msgid "Validate SSL Certificates of upstream servers" msgstr "验证上游服务器的 SSL 证书" -#: authentik/providers/proxy/models.py:56 +#: authentik/providers/proxy/models.py msgid "Internal host SSL Validation" msgstr "内部主机 SSL 验证" -#: authentik/providers/proxy/models.py:62 +#: authentik/providers/proxy/models.py msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." msgstr "在 traefik 和 nginx auth_request 中启用对 ForwardAuth 的支持。排除 internal_host。" -#: authentik/providers/proxy/models.py:71 +#: authentik/providers/proxy/models.py msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." msgstr "用于描述何处不需要身份验证的正则表达式。每个新行都被解释为一个新的正则表达式。" -#: authentik/providers/proxy/models.py:79 +#: authentik/providers/proxy/models.py msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." msgstr "启用时,此提供程序将会拦截 Authorization 标头,并基于其值认证请求。" -#: authentik/providers/proxy/models.py:85 +#: authentik/providers/proxy/models.py msgid "Set HTTP-Basic Authentication" msgstr "设置 HTTP-Basic 身份验证" -#: authentik/providers/proxy/models.py:87 +#: authentik/providers/proxy/models.py msgid "" "Set a custom HTTP-Basic Authentication header based on values from " "authentik." msgstr "根据来自 authentik 的值设置自定义 HTTP-Basic 身份验证标头。" -#: authentik/providers/proxy/models.py:92 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Username Key" msgstr "HTTP-Basic 用户名密钥" -#: authentik/providers/proxy/models.py:94 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not" " set, the user's Email address is used." msgstr "用于 HTTP-Basic 标头用户名部分的用户/组属性。如果未设置,则使用用户的电子邮件地址。" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Password Key" msgstr "HTTP-Basic 密码密钥" -#: authentik/providers/proxy/models.py:101 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "用于 HTTP-Basic 标头的密码部分的用户/组属性。" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py msgid "Proxy Provider" msgstr "代理提供程序" -#: authentik/providers/proxy/models.py:156 +#: authentik/providers/proxy/models.py msgid "Proxy Providers" msgstr "代理提供程序" -#: authentik/providers/radius/models.py:19 +#: authentik/providers/radius/models.py msgid "Shared secret between clients and server to hash packets." msgstr "在客户端和服务端之间共享密钥以哈希数据包。" -#: authentik/providers/radius/models.py:25 +#: authentik/providers/radius/models.py msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." msgstr "允许客户端连接的 CIDR 列表(逗号分隔)。严格的 CIDR 会在宽松的之前匹配。来自 CIDR 范围外的客户端连接将会被丢弃。" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py msgid "Radius Provider" msgstr "Radius 提供程序" -#: authentik/providers/radius/models.py:62 +#: authentik/providers/radius/models.py msgid "Radius Providers" msgstr "Radius 提供程序" -#: authentik/providers/saml/api/providers.py:261 +#: authentik/providers/saml/api/providers.py msgid "Invalid XML Syntax" msgstr "无效 XML 语法" -#: authentik/providers/saml/api/providers.py:271 +#: authentik/providers/saml/api/providers.py #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "导入元数据失败:%(message)s" -#: authentik/providers/saml/models.py:39 +#: authentik/providers/saml/models.py msgid "ACS URL" msgstr "ACS URL" -#: authentik/providers/saml/models.py:44 +#: authentik/providers/saml/models.py msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." msgstr "断言的 Audience 受限字段的值。留空时,不会添加 Audience 限制。" -#: authentik/providers/saml/models.py:48 +#: authentik/providers/saml/models.py msgid "Also known as EntityID" msgstr "也称为 EntityID" -#: authentik/providers/saml/models.py:52 +#: authentik/providers/saml/models.py msgid "Service Provider Binding" msgstr "服务提供程序绑定" -#: authentik/providers/saml/models.py:54 +#: authentik/providers/saml/models.py msgid "" "This determines how authentik sends the response back to the Service " "Provider." msgstr "确定 authentik 如何将响应发送回服务提供程序。" -#: authentik/providers/saml/models.py:64 +#: authentik/providers/saml/models.py msgid "NameID Property Mapping" msgstr "NameID 属性映射" -#: authentik/providers/saml/models.py:66 +#: authentik/providers/saml/models.py msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" msgstr "配置如何创建 NameID 值。如果留空,将考虑传入请求的 NameIDPolicy" -#: authentik/providers/saml/models.py:75 +#: authentik/providers/saml/models.py msgid "" "Assertion valid not before current time + this value (Format: " "hours=-1;minutes=-2;seconds=-3)." msgstr "从当前时间经过多久时或之后,断言有效(格式:hours=-1;minutes=-2;seconds=-3)。" -#: authentik/providers/saml/models.py:83 +#: authentik/providers/saml/models.py msgid "" "Assertion not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,断言无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:92 +#: authentik/providers/saml/models.py msgid "" "Session not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,会话无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA1" msgstr "SHA1" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA256" msgstr "SHA256" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA384" msgstr "SHA384" -#: authentik/providers/saml/models.py:103 authentik/sources/saml/models.py:154 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA512" msgstr "SHA512" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA1" msgstr "RSA-SHA1" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA256" msgstr "RSA-SHA256" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA384" msgstr "RSA-SHA384" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA512" msgstr "RSA-SHA512" -#: authentik/providers/saml/models.py:114 authentik/sources/saml/models.py:165 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "DSA-SHA1" msgstr "DSA-SHA1" -#: authentik/providers/saml/models.py:125 authentik/sources/saml/models.py:131 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." msgstr "选中后,传入断言的签名将根据此证书进行验证。要允许未签名的请求,请保留默认值。" -#: authentik/providers/saml/models.py:129 authentik/sources/saml/models.py:135 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Verification Certificate" msgstr "验证证书" -#: authentik/providers/saml/models.py:137 +#: authentik/providers/saml/models.py msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "密钥对,用于签署发送给服务提供程序的传出响应。" -#: authentik/providers/saml/models.py:139 authentik/sources/saml/models.py:145 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Signing Keypair" msgstr "签名密钥对" -#: authentik/providers/saml/models.py:143 +#: authentik/providers/saml/models.py msgid "Default relay_state value for IDP-initiated logins" msgstr "用于 IDP 发起登录的默认 relay_state 值" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py msgid "SAML Provider" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:173 +#: authentik/providers/saml/models.py msgid "SAML Providers" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py msgid "SAML Property Mapping" msgstr "SAML 属性映射" -#: authentik/providers/saml/models.py:198 +#: authentik/providers/saml/models.py msgid "SAML Property Mappings" msgstr "SAML 属性映射" -#: authentik/providers/scim/models.py:23 +#: authentik/providers/scim/models.py msgid "Base URL to SCIM requests, usually ends in /v2" msgstr "SCIM 请求的基础 URL,通常以 /v2 结尾" -#: authentik/providers/scim/models.py:24 +#: authentik/providers/scim/models.py msgid "Authentication token" msgstr "身份验证令牌" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:99 +#: authentik/providers/scim/models.py authentik/sources/ldap/models.py msgid "Property mappings used for group creation/updating." msgstr "用于创建/更新组的属性映射。" -#: authentik/providers/scim/models.py:72 +#: authentik/providers/scim/models.py msgid "SCIM Provider" msgstr "SCIM 提供程序" -#: authentik/providers/scim/models.py:73 +#: authentik/providers/scim/models.py msgid "SCIM Providers" msgstr "SCIM 提供程序" -#: authentik/providers/scim/models.py:93 +#: authentik/providers/scim/models.py msgid "SCIM Mapping" msgstr "SCIM 映射" -#: authentik/providers/scim/models.py:94 +#: authentik/providers/scim/models.py msgid "SCIM Mappings" msgstr "SCIM 映射" -#: authentik/providers/scim/tasks.py:58 +#: authentik/providers/scim/tasks.py msgid "Starting full SCIM sync" msgstr "开始全量 SCIM 同步" -#: authentik/providers/scim/tasks.py:68 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of users" msgstr "正在同步用户页面 %(page)d" -#: authentik/providers/scim/tasks.py:72 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of groups" msgstr "正在同步群组页面 %(page)d" -#: authentik/providers/scim/tasks.py:104 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步用户 %(user_name)s 失败:%(error)s" -#: authentik/providers/scim/tasks.py:115 authentik/providers/scim/tasks.py:156 +#: authentik/providers/scim/tasks.py #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "由于以下错误,同步停止:%(error)s" -#: authentik/providers/scim/tasks.py:145 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步组 %(group_name)s 失败:%(error)s" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py msgid "Role" msgstr "角色" -#: authentik/rbac/models.py:53 +#: authentik/rbac/models.py msgid "Roles" msgstr "角色" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py msgid "System permission" msgstr "系统权限" -#: authentik/rbac/models.py:68 +#: authentik/rbac/models.py msgid "System permissions" msgstr "系统权限" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py msgid "Can view system info" msgstr "可以查看系统信息" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py msgid "Can view system tasks" msgstr "可以查看系统任务" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py msgid "Can run system tasks" msgstr "可以运行系统任务" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py msgid "Can access admin interface" msgstr "可以访问管理员界面" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py msgid "Can view system settings" msgstr "可以查看系统设置" -#: authentik/rbac/models.py:75 +#: authentik/rbac/models.py msgid "Can edit system settings" msgstr "可以编辑系统设置" -#: authentik/recovery/management/commands/create_admin_group.py:13 +#: authentik/recovery/management/commands/create_admin_group.py msgid "Create admin group if the default group gets deleted." msgstr "如果默认组被删除,则创建管理员组。" -#: authentik/recovery/management/commands/create_recovery_key.py:17 +#: authentik/recovery/management/commands/create_recovery_key.py msgid "Create a Key which can be used to restore access to authentik." msgstr "创建一个密钥,可用于恢复对 authentik 的访问权限。" -#: authentik/recovery/views.py:25 +#: authentik/recovery/views.py msgid "Used recovery-link to authenticate." msgstr "已使用恢复链接进行身份验证。" -#: authentik/sources/ldap/models.py:42 +#: authentik/sources/ldap/models.py msgid "Server URI" msgstr "服务器 URI" -#: authentik/sources/ldap/models.py:51 +#: authentik/sources/ldap/models.py msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this" " keypair." msgstr "可选,根据此密钥对中的 CA 链验证 LDAP 服务器的证书。" -#: authentik/sources/ldap/models.py:60 +#: authentik/sources/ldap/models.py msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "基于 LDAP 服务端证书进行身份验证的客户端证书。" -#: authentik/sources/ldap/models.py:63 +#: authentik/sources/ldap/models.py msgid "Bind CN" msgstr "Bind CN" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py msgid "Enable Start TLS" msgstr "启用 Start TLS" -#: authentik/sources/ldap/models.py:66 +#: authentik/sources/ldap/models.py msgid "Use Server URI for SNI verification" msgstr "SNI 验证时使用服务器 URI" -#: authentik/sources/ldap/models.py:68 +#: authentik/sources/ldap/models.py msgid "Base DN" msgstr "Base DN" -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for User-queries." msgstr "添加到用户查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:71 +#: authentik/sources/ldap/models.py msgid "Addition User DN" msgstr "额外的用户 DN" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for Group-queries." msgstr "添加到组查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:76 +#: authentik/sources/ldap/models.py msgid "Addition Group DN" msgstr "额外的组 DN" -#: authentik/sources/ldap/models.py:82 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Users." msgstr "将与此筛选器匹配的对象视为用户。" -#: authentik/sources/ldap/models.py:85 +#: authentik/sources/ldap/models.py msgid "Field which contains members of a group." msgstr "包含组成员的字段。" -#: authentik/sources/ldap/models.py:89 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Groups." msgstr "将与此过滤器匹配的对象视为组。" -#: authentik/sources/ldap/models.py:92 +#: authentik/sources/ldap/models.py msgid "Field which contains a unique Identifier." msgstr "包含唯一标识符的字段。" -#: authentik/sources/ldap/models.py:106 +#: authentik/sources/ldap/models.py msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "当用户修改密码时,将其同步回 LDAP。仅可在单点 LDAP 源时启用。" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py msgid "LDAP Source" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:250 +#: authentik/sources/ldap/models.py msgid "LDAP Sources" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mapping" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/models.py:273 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mappings" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/signals.py:53 +#: authentik/sources/ldap/signals.py msgid "Password does not match Active Directory Complexity." msgstr "密码与 Active Directory 复杂度不匹配。" -#: authentik/sources/oauth/clients/oauth2.py:69 +#: authentik/sources/oauth/clients/oauth2.py msgid "No token received." msgstr "未收到令牌。" -#: authentik/sources/oauth/models.py:25 +#: authentik/sources/oauth/models.py msgid "Request Token URL" msgstr "请求令牌 URL" -#: authentik/sources/oauth/models.py:27 +#: authentik/sources/oauth/models.py msgid "" "URL used to request the initial token. This URL is only required for OAuth " "1." msgstr "用于请求初始令牌的 URL。只有 OAuth 1 才需要此网址。" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py msgid "Authorization URL" msgstr "授权 URL" -#: authentik/sources/oauth/models.py:34 +#: authentik/sources/oauth/models.py msgid "URL the user is redirect to to conest the flow." msgstr "为控制流程,使用户被重定向到的 URL" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py msgid "Access Token URL" msgstr "访问令牌 URL" -#: authentik/sources/oauth/models.py:40 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to retrieve tokens." msgstr "authentik 用来获取令牌的 URL。" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py msgid "Profile URL" msgstr "个人资料 URL" -#: authentik/sources/oauth/models.py:46 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to get user information." msgstr "authentik 用来获取用户信息的 URL。" -#: authentik/sources/oauth/models.py:49 +#: authentik/sources/oauth/models.py msgid "Additional Scopes" msgstr "额外的作用域" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py msgid "OAuth Source" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:109 +#: authentik/sources/oauth/models.py msgid "OAuth Sources" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Source" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:118 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Sources" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Source" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:127 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Sources" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Source" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:136 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Sources" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Source" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:145 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Sources" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Source" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:154 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Sources" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Source" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:163 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Sources" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Source" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:172 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Sources" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py msgid "Google OAuth Source" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:181 +#: authentik/sources/oauth/models.py msgid "Google OAuth Sources" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Source" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:190 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Sources" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Source" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:199 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Sources" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Source" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:208 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Sources" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Source" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:217 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Sources" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Source" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:226 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Sources" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connection" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/models.py:249 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connections" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/views/callback.py:101 +#: authentik/sources/oauth/views/callback.py #, python-format msgid "Authentication failed: %(reason)s" msgstr "身份验证失败:%(reason)s" -#: authentik/sources/plex/models.py:38 +#: authentik/sources/plex/models.py msgid "Client identifier used to talk to Plex." msgstr "用来与 Plex 通信的客户端标识符。" -#: authentik/sources/plex/models.py:45 +#: authentik/sources/plex/models.py msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." msgstr "用户必须是哪个服务器的成员才能获取权限。空列表允许任何服务器。" -#: authentik/sources/plex/models.py:51 +#: authentik/sources/plex/models.py msgid "Allow friends to authenticate, even if you don't share a server." msgstr "允许好友进行身份验证,即使您不共享服务器。" -#: authentik/sources/plex/models.py:53 +#: authentik/sources/plex/models.py msgid "Plex token used to check friends" msgstr "用于检查好友的 Plex 令牌" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py msgid "Plex Source" msgstr "Plex 源" -#: authentik/sources/plex/models.py:97 +#: authentik/sources/plex/models.py msgid "Plex Sources" msgstr "Plex 源" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py msgid "User Plex Source Connection" msgstr "用户 Plex 源连接" -#: authentik/sources/plex/models.py:114 +#: authentik/sources/plex/models.py msgid "User Plex Source Connections" msgstr "用户 Plex 源连接" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py msgid "Redirect Binding" msgstr "重定向绑定" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py msgid "POST Binding" msgstr "POST 绑定" -#: authentik/sources/saml/models.py:43 +#: authentik/sources/saml/models.py msgid "POST Binding with auto-confirmation" msgstr "带有自动确认功能的 POST 绑定" -#: authentik/sources/saml/models.py:71 +#: authentik/sources/saml/models.py msgid "Flow used before authentication." msgstr "身份验证之前使用的流程。" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py msgid "Issuer" msgstr "颁发者" -#: authentik/sources/saml/models.py:79 +#: authentik/sources/saml/models.py msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "也称为 Entity ID。 默认为元数据 URL。" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py msgid "SSO URL" msgstr "SSO URL" -#: authentik/sources/saml/models.py:84 +#: authentik/sources/saml/models.py msgid "URL that the initial Login request is sent to." msgstr "初始登录请求发送到的 URL。" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py msgid "SLO URL" msgstr "SLO URL" -#: authentik/sources/saml/models.py:91 +#: authentik/sources/saml/models.py msgid "Optional URL if your IDP supports Single-Logout." msgstr "如果您的 IDP 支持单点登出,则为可选 URL。" -#: authentik/sources/saml/models.py:97 +#: authentik/sources/saml/models.py msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." msgstr "允许由 IdP 启动的身份验证流程。这可能存在安全风险,因为未对请求 ID 进行验证。" -#: authentik/sources/saml/models.py:105 +#: authentik/sources/saml/models.py msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is " "sent." msgstr "发送给 IdP 的 NameID 策略。可以取消设置,此时不会发送任何策略。" -#: authentik/sources/saml/models.py:116 +#: authentik/sources/saml/models.py msgid "Delete temporary users after" msgstr "多久后删除临时用户" -#: authentik/sources/saml/models.py:119 +#: authentik/sources/saml/models.py msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " @@ -2060,321 +2060,320 @@ msgstr "" "删除临时用户的时间偏移。这仅适用于您的 IDP 使用 NameID 格式 'transient' " "且用户未手动登出的情况。(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/sources/saml/models.py:143 +#: authentik/sources/saml/models.py msgid "" "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "密钥对,用于签署发送给身份提供程序的传出响应。" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py msgid "SAML Source" msgstr "SAML 源" -#: authentik/sources/saml/models.py:228 +#: authentik/sources/saml/models.py msgid "SAML Sources" msgstr "SAML 源" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py msgid "User SAML Source Connection" msgstr "用户 SAML 源连接" -#: authentik/sources/saml/models.py:244 +#: authentik/sources/saml/models.py msgid "User SAML Source Connections" msgstr "用户 SAML 源连接" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stage" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:81 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stages" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Device" msgstr "Duo 设备" -#: authentik/stages/authenticator_duo/models.py:105 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Devices" msgstr "Duo 设备" -#: authentik/stages/authenticator_sms/models.py:58 +#: authentik/stages/authenticator_sms/models.py msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" " not reused in the future." msgstr "启用时,电话号码仅在注册期间用于验证用户的真实性。仅保存电话号码的哈希,以确保将来不会重复使用。" -#: authentik/stages/authenticator_sms/models.py:69 +#: authentik/stages/authenticator_sms/models.py msgid "Optionally modify the payload being sent to custom providers." msgstr "可选地,修改发送到自定义提供程序的载荷。" -#: authentik/stages/authenticator_sms/models.py:82 +#: authentik/stages/authenticator_sms/models.py #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "使用此代码在 authentik 中验证身份:%(token)s" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stage" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:182 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stages" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Device" msgstr "短信设备" -#: authentik/stages/authenticator_sms/models.py:228 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Devices" msgstr "短信设备" -#: authentik/stages/authenticator_sms/stage.py:58 -#: authentik/stages/authenticator_totp/stage.py:42 -#: authentik/stages/authenticator_totp/stage.py:45 +#: authentik/stages/authenticator_sms/stage.py +#: authentik/stages/authenticator_totp/stage.py msgid "Code does not match" msgstr "代码不匹配" -#: authentik/stages/authenticator_sms/stage.py:74 +#: authentik/stages/authenticator_sms/stage.py msgid "Invalid phone number" msgstr "无效电话号码" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stage" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:54 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stages" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py msgid "Static Device" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:100 +#: authentik/stages/authenticator_static/models.py msgid "Static Devices" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py msgid "Static Token" msgstr "静态令牌" -#: authentik/stages/authenticator_static/models.py:131 +#: authentik/stages/authenticator_static/models.py msgid "Static Tokens" msgstr "静态令牌" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py msgid "6 digits, widely compatible" msgstr "6 位数字,广泛兼容" -#: authentik/stages/authenticator_totp/models.py:27 +#: authentik/stages/authenticator_totp/models.py msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "8 位数字,与 Google 身份验证器等应用不兼容" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stage" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:64 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stages" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Device" msgstr "TOTP 设备" -#: authentik/stages/authenticator_totp/models.py:246 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Devices" msgstr "TOTP 设备" -#: authentik/stages/authenticator_validate/challenge.py:124 +#: authentik/stages/authenticator_validate/challenge.py msgid "Invalid Token" msgstr "无效令牌" -#: authentik/stages/authenticator_validate/models.py:18 +#: authentik/stages/authenticator_validate/models.py msgid "Static" msgstr "静态" -#: authentik/stages/authenticator_validate/models.py:19 +#: authentik/stages/authenticator_validate/models.py msgid "TOTP" msgstr "TOTP" -#: authentik/stages/authenticator_validate/models.py:20 +#: authentik/stages/authenticator_validate/models.py msgid "WebAuthn" msgstr "WebAuthn" -#: authentik/stages/authenticator_validate/models.py:21 +#: authentik/stages/authenticator_validate/models.py msgid "Duo" msgstr "Duo" -#: authentik/stages/authenticator_validate/models.py:22 +#: authentik/stages/authenticator_validate/models.py msgid "SMS" msgstr "短信" -#: authentik/stages/authenticator_validate/models.py:49 +#: authentik/stages/authenticator_validate/models.py msgid "" "Stages used to configure Authenticator when user doesn't have any compatible" " devices. After this configuration Stage passes, the user is not prompted " "again." msgstr "当用户没有任何兼容的设备时,用来配置身份验证器的阶段。此阶段通过后,将不再请求此用户。" -#: authentik/stages/authenticator_validate/models.py:56 +#: authentik/stages/authenticator_validate/models.py msgid "Device classes which can be used to authenticate" msgstr "可用于进行身份验证的设备类型" -#: authentik/stages/authenticator_validate/models.py:64 +#: authentik/stages/authenticator_validate/models.py msgid "" "If any of the user's device has been used within this threshold, this stage " "will be skipped" msgstr "如果用户的任意设备在此期限内被使用过,此阶段会被跳过。" -#: authentik/stages/authenticator_validate/models.py:70 +#: authentik/stages/authenticator_validate/models.py msgid "Enforce user verification for WebAuthn devices." msgstr "对 WebAuthn 设备强制用户验证。" -#: authentik/stages/authenticator_validate/models.py:92 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stage" msgstr "身份验证器验证阶段" -#: authentik/stages/authenticator_validate/models.py:93 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stages" msgstr "身份验证器验证阶段" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stage" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:114 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stages" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Device" msgstr "WebAuthn 设备" -#: authentik/stages/authenticator_webauthn/models.py:153 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Devices" msgstr "WebAuthn 设备" -#: authentik/stages/captcha/models.py:14 +#: authentik/stages/captcha/models.py msgid "Public key, acquired your captcha Provider." msgstr "公钥,从您的验证码提供商处取得。" -#: authentik/stages/captcha/models.py:15 +#: authentik/stages/captcha/models.py msgid "Private key, acquired your captcha Provider." msgstr "私钥,从您的验证码提供商处取得。" -#: authentik/stages/captcha/models.py:37 +#: authentik/stages/captcha/models.py msgid "Captcha Stage" msgstr "验证码阶段" -#: authentik/stages/captcha/models.py:38 +#: authentik/stages/captcha/models.py msgid "Captcha Stages" msgstr "验证码阶段" -#: authentik/stages/consent/models.py:30 +#: authentik/stages/consent/models.py msgid "" "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)." msgstr "经过多少偏移量后同意授权过期。(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/stages/consent/models.py:50 +#: authentik/stages/consent/models.py msgid "Consent Stage" msgstr "同意授权阶段" -#: authentik/stages/consent/models.py:51 +#: authentik/stages/consent/models.py msgid "Consent Stages" msgstr "同意授权阶段" -#: authentik/stages/consent/models.py:72 +#: authentik/stages/consent/models.py msgid "User Consent" msgstr "用户同意授权" -#: authentik/stages/consent/models.py:73 +#: authentik/stages/consent/models.py msgid "User Consents" msgstr "用户同意授权" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py msgid "Deny Stage" msgstr "拒绝阶段" -#: authentik/stages/deny/models.py:34 +#: authentik/stages/deny/models.py msgid "Deny Stages" msgstr "拒绝阶段" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py msgid "Dummy Stage" msgstr "虚拟阶段" -#: authentik/stages/dummy/models.py:36 +#: authentik/stages/dummy/models.py msgid "Dummy Stages" msgstr "虚拟阶段" -#: authentik/stages/email/models.py:27 +#: authentik/stages/email/models.py msgid "Password Reset" msgstr "密码重置" -#: authentik/stages/email/models.py:31 +#: authentik/stages/email/models.py msgid "Account Confirmation" msgstr "账户确认" -#: authentik/stages/email/models.py:60 +#: authentik/stages/email/models.py msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." msgstr "启用后,将使用全局电子邮件连接设置,下面的连接设置将被忽略。" -#: authentik/stages/email/models.py:75 +#: authentik/stages/email/models.py msgid "Activate users upon completion of stage." msgstr "完成阶段后激活用户。" -#: authentik/stages/email/models.py:79 +#: authentik/stages/email/models.py msgid "Time in minutes the token sent is valid." msgstr "发出令牌的有效时间(单位为分钟)。" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py msgid "Email Stage" msgstr "电子邮件阶段" -#: authentik/stages/email/models.py:134 +#: authentik/stages/email/models.py msgid "Email Stages" msgstr "电子邮件阶段" -#: authentik/stages/email/stage.py:127 +#: authentik/stages/email/stage.py msgid "Exception occurred while rendering E-mail template" msgstr "渲染电子邮件模板时发生异常" -#: authentik/stages/email/stage.py:141 +#: authentik/stages/email/stage.py msgid "Successfully verified Email." msgstr "已成功验证电子邮件。" -#: authentik/stages/email/stage.py:148 authentik/stages/email/stage.py:174 +#: authentik/stages/email/stage.py msgid "No pending user." msgstr "没有待处理的用户。" -#: authentik/stages/email/stage.py:164 +#: authentik/stages/email/stage.py msgid "Email sent." msgstr "电子邮件已发出。" -#: authentik/stages/email/stage.py:177 +#: authentik/stages/email/stage.py msgid "Email Successfully sent." msgstr "成功发送电子邮件。" -#: authentik/stages/email/templates/email/account_confirmation.html:10 -#: authentik/stages/email/templates/email/account_confirmation.txt:1 +#: authentik/stages/email/templates/email/account_confirmation.html +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "Welcome!" msgstr "欢迎!" -#: authentik/stages/email/templates/email/account_confirmation.html:19 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just press the button below." msgstr "我们很高兴您能开始使用。首先,您需要确认您的账户。只需点击下面的按钮。" -#: authentik/stages/email/templates/email/account_confirmation.html:24 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "Confirm Account" msgstr "确认账户" -#: authentik/stages/email/templates/email/account_confirmation.html:36 +#: authentik/stages/email/templates/email/account_confirmation.html #, python-format msgid "" "\n" @@ -2385,13 +2384,13 @@ msgstr "" " 如果按钮无效,请复制并在浏览器中粘贴以下链接:%(url)s\n" " " -#: authentik/stages/email/templates/email/account_confirmation.txt:3 +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just open the link below." msgstr "我们很高兴您能开始使用。首先,您需要确认您的账户。只需打开下面的链接。" -#: authentik/stages/email/templates/email/event_notification.html:46 +#: authentik/stages/email/templates/email/event_notification.html #, python-format msgid "" "\n" @@ -2402,19 +2401,19 @@ msgstr "" " 此邮件由通知递送 %(name)s 发送。\n" " " -#: authentik/stages/email/templates/email/event_notification.txt:1 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Dear authentik user," msgstr "亲爱的 authentik 用户," -#: authentik/stages/email/templates/email/event_notification.txt:3 +#: authentik/stages/email/templates/email/event_notification.txt msgid "The following notification was created:" msgstr "以下通知已创建:" -#: authentik/stages/email/templates/email/event_notification.txt:8 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Additional attributes:" msgstr "额外属性:" -#: authentik/stages/email/templates/email/event_notification.txt:13 +#: authentik/stages/email/templates/email/event_notification.txt #, python-format msgid "" "\n" @@ -2423,7 +2422,7 @@ msgstr "" "\n" "此邮件由通知递送 %(name)s 发送。\n" -#: authentik/stages/email/templates/email/password_reset.html:10 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2434,7 +2433,7 @@ msgstr "" " %(username)s 您好,\n" " " -#: authentik/stages/email/templates/email/password_reset.html:21 +#: authentik/stages/email/templates/email/password_reset.html msgid "" "\n" " You recently requested to change your password for your authentik account. Use the button below to set a new password.\n" @@ -2444,7 +2443,7 @@ msgstr "" " 您最近请求更改您的 authentik 账户密码。使用下面的按钮设置新密码。\n" " " -#: authentik/stages/email/templates/email/password_reset.html:39 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2455,12 +2454,12 @@ msgstr "" " 如果您没有请求更改密码,请忽略此电子邮件。上面的链接在 %(expires)s 内有效。\n" " " -#: authentik/stages/email/templates/email/password_reset.txt:1 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "Hi %(username)s," msgstr "您好 %(username)s," -#: authentik/stages/email/templates/email/password_reset.txt:3 +#: authentik/stages/email/templates/email/password_reset.txt msgid "" "\n" "You recently requested to change your password for your authentik account. Use the link below to set a new password.\n" @@ -2468,7 +2467,7 @@ msgstr "" "\n" "您最近请求更改您的 authentik 账户密码。使用下面的链接设置新密码。\n" -#: authentik/stages/email/templates/email/password_reset.txt:7 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "" "\n" @@ -2477,11 +2476,11 @@ msgstr "" "\n" "如果您没有请求更改密码,请忽略此电子邮件。上面的链接在 %(expires)s 内有效。\n" -#: authentik/stages/email/templates/email/setup.html:9 +#: authentik/stages/email/templates/email/setup.html msgid "authentik Test-Email" msgstr "authentik 测试电子邮件" -#: authentik/stages/email/templates/email/setup.html:17 +#: authentik/stages/email/templates/email/setup.html msgid "" "\n" " This is a test email to inform you, that you've successfully configured authentik emails.\n" @@ -2491,7 +2490,7 @@ msgstr "" " 这是一封测试电子邮件,用于通知您已成功配置 authentik 电子邮件。\n" " " -#: authentik/stages/email/templates/email/setup.txt:2 +#: authentik/stages/email/templates/email/setup.txt msgid "" "\n" "This is a test email to inform you, that you've successfully configured authentik emails.\n" @@ -2499,263 +2498,263 @@ msgstr "" "\n" "这是一封测试电子邮件,用于通知您已成功配置 authentik 电子邮件。\n" -#: authentik/stages/identification/api.py:21 +#: authentik/stages/identification/api.py msgid "When no user fields are selected, at least one source must be selected" msgstr "如果未选择用户字段,则至少要选择一个源" -#: authentik/stages/identification/models.py:29 +#: authentik/stages/identification/models.py msgid "" "Fields of the user object to match against. (Hold shift to select multiple " "options)" msgstr "用来匹配的用户对象字段。(按住 Shift 多选)" -#: authentik/stages/identification/models.py:47 +#: authentik/stages/identification/models.py msgid "When enabled, user fields are matched regardless of their casing." msgstr "启用后,无论大小写如何,都将匹配用户字段。" -#: authentik/stages/identification/models.py:52 +#: authentik/stages/identification/models.py msgid "" "When a valid username/email has been entered, and this option is enabled, " "the user's username and avatar will be shown. Otherwise, the text that the " "user entered will be shown" msgstr "如果输入了有效的用户名/电子邮箱,并且启用了此选项,则会显示用户的用户名和头像。否则,将显示用户输入的文本" -#: authentik/stages/identification/models.py:60 +#: authentik/stages/identification/models.py msgid "" "When enabled, the stage will succeed and continue even when incorrect user " "info is entered." msgstr "启用时,即使输入错误的用户信息,此阶段也会成功并继续。" -#: authentik/stages/identification/models.py:72 +#: authentik/stages/identification/models.py msgid "Optional enrollment flow, which is linked at the bottom of the page." msgstr "可选注册流程,链接在页面底部。" -#: authentik/stages/identification/models.py:81 +#: authentik/stages/identification/models.py msgid "Optional recovery flow, which is linked at the bottom of the page." msgstr "可选的恢复流程,链接在页面底部。" -#: authentik/stages/identification/models.py:90 +#: authentik/stages/identification/models.py msgid "Optional passwordless flow, which is linked at the bottom of the page." msgstr "可选的无密码流程,链接在页面底部。" -#: authentik/stages/identification/models.py:94 +#: authentik/stages/identification/models.py msgid "Specify which sources should be shown." msgstr "指定应显示哪些源。" -#: authentik/stages/identification/models.py:115 +#: authentik/stages/identification/models.py msgid "Identification Stage" msgstr "识别阶段" -#: authentik/stages/identification/models.py:116 +#: authentik/stages/identification/models.py msgid "Identification Stages" msgstr "识别阶段" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py msgid "Log in" msgstr "登录" -#: authentik/stages/identification/stage.py:190 +#: authentik/stages/identification/stage.py msgid "Continue" msgstr "继续" -#: authentik/stages/invitation/models.py:22 +#: authentik/stages/invitation/models.py msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " "invitation is given." msgstr "如果设置了此标志,则当没有发出邀请时,此阶段将跳转到下一个阶段。默认情况下,当没有发出邀请时,此阶段将取消流程。" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py msgid "Invitation Stage" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:46 +#: authentik/stages/invitation/models.py msgid "Invitation Stages" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:61 +#: authentik/stages/invitation/models.py msgid "When set, only the configured flow can use this invitation." msgstr "设置时,只有配置的流程可以使用此邀请。" -#: authentik/stages/invitation/models.py:65 +#: authentik/stages/invitation/models.py msgid "When enabled, the invitation will be deleted after usage." msgstr "启用后,邀请将在使用后被删除。" -#: authentik/stages/invitation/models.py:72 +#: authentik/stages/invitation/models.py msgid "Optional fixed data to enforce on user enrollment." msgstr "在用户注册时强制设置的可选固定数据。" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py msgid "Invitation" msgstr "邀请" -#: authentik/stages/invitation/models.py:86 +#: authentik/stages/invitation/models.py msgid "Invitations" msgstr "邀请" -#: authentik/stages/invitation/stage.py:63 +#: authentik/stages/invitation/stage.py msgid "Invalid invite/invite not found" msgstr "邀请无效/未找到" -#: authentik/stages/password/models.py:21 +#: authentik/stages/password/models.py msgid "User database + standard password" msgstr "用户数据库 + 标准密码" -#: authentik/stages/password/models.py:25 +#: authentik/stages/password/models.py msgid "User database + app passwords" msgstr "用户数据库 + 应用程序密码" -#: authentik/stages/password/models.py:29 +#: authentik/stages/password/models.py msgid "User database + LDAP password" msgstr "用户数据库 + LDAP 密码" -#: authentik/stages/password/models.py:39 +#: authentik/stages/password/models.py msgid "Selection of backends to test the password against." msgstr "选择用于测试密码的后端。" -#: authentik/stages/password/models.py:44 +#: authentik/stages/password/models.py msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." msgstr "在取消流程之前,用户可以尝试多少次。要锁定用户,请使用信誉策略和 user_write 阶段。" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py msgid "Password Stage" msgstr "密码阶段" -#: authentik/stages/password/models.py:77 +#: authentik/stages/password/models.py msgid "Password Stages" msgstr "密码阶段" -#: authentik/stages/password/stage.py:125 +#: authentik/stages/password/stage.py msgid "Invalid password" msgstr "无效密码" -#: authentik/stages/prompt/models.py:44 +#: authentik/stages/prompt/models.py msgid "Text: Simple Text input" msgstr "文本:简单文本输入" -#: authentik/stages/prompt/models.py:46 +#: authentik/stages/prompt/models.py msgid "Text area: Multiline Text Input." msgstr "文本框:多行文本输入。" -#: authentik/stages/prompt/models.py:49 +#: authentik/stages/prompt/models.py msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "文本(只读):简单文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:53 +#: authentik/stages/prompt/models.py msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "文本框(只读):多行文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:59 +#: authentik/stages/prompt/models.py msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." msgstr "用户名:与文本输入相同,但检查并防止用户名重复。" -#: authentik/stages/prompt/models.py:61 +#: authentik/stages/prompt/models.py msgid "Email: Text field with Email type." msgstr "电子邮箱:电子邮箱类型的文本字段。" -#: authentik/stages/prompt/models.py:65 +#: authentik/stages/prompt/models.py msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need" " to be identical." msgstr "密码:屏蔽显示输入内容,多个此类型的输入如果在同一个输入项下,则内容需要相同。" -#: authentik/stages/prompt/models.py:72 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a group of radio buttons." msgstr "显示为一组单选按钮的固定选项字段。" -#: authentik/stages/prompt/models.py:74 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a dropdown." msgstr "显示为下拉框的固定选项字段。" -#: authentik/stages/prompt/models.py:81 +#: authentik/stages/prompt/models.py msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" msgstr "文件:任意文件上传。文件内容将在流程上下文中以 data-URI 形式提供" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py msgid "Separator: Static Separator Line" msgstr "分隔符:静态分隔线" -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "隐藏:隐藏字段,可用于将数据插入表单。" -#: authentik/stages/prompt/models.py:88 +#: authentik/stages/prompt/models.py msgid "Static: Static value, displayed as-is." msgstr "静态:静态值,按原样显示。" -#: authentik/stages/prompt/models.py:90 +#: authentik/stages/prompt/models.py msgid "authentik: Selection of locales authentik supports" msgstr "authentik:选择 authentik 支持的语言环境" -#: authentik/stages/prompt/models.py:117 +#: authentik/stages/prompt/models.py msgid "Name of the form field, also used to store the value" msgstr "表单域的名称,也用于存储值" -#: authentik/stages/prompt/models.py:125 +#: authentik/stages/prompt/models.py msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." msgstr "可选的简短提示,用来描述期望的输入值。在创建固定选项字段时,启用以表达式解释,并返回多个选项的列表。" -#: authentik/stages/prompt/models.py:133 +#: authentik/stages/prompt/models.py msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." msgstr "可选的预设输入初始值。在创建固定选项字段时,启用以表达式解释,并返回多个默认选项的列表。" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py msgid "Prompt" msgstr "输入" -#: authentik/stages/prompt/models.py:323 +#: authentik/stages/prompt/models.py msgid "Prompts" msgstr "输入" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py msgid "Prompt Stage" msgstr "输入阶段" -#: authentik/stages/prompt/models.py:351 +#: authentik/stages/prompt/models.py msgid "Prompt Stages" msgstr "输入阶段" -#: authentik/stages/prompt/stage.py:109 +#: authentik/stages/prompt/stage.py msgid "Passwords don't match." msgstr "密码不匹配。" -#: authentik/stages/user_delete/models.py:31 +#: authentik/stages/user_delete/models.py msgid "User Delete Stage" msgstr "用户删除阶段" -#: authentik/stages/user_delete/models.py:32 +#: authentik/stages/user_delete/models.py msgid "User Delete Stages" msgstr "用户删除阶段" -#: authentik/stages/user_delete/stage.py:19 +#: authentik/stages/user_delete/stage.py msgid "No Pending User." msgstr "没有待处理的用户。" -#: authentik/stages/user_login/models.py:47 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured network" msgstr "将此阶段创建的会话与配置的网络绑定" -#: authentik/stages/user_login/models.py:52 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured GeoIP location" msgstr "将此阶段创建的会话与配置的 GeoIP 位置绑定" -#: authentik/stages/user_login/models.py:55 +#: authentik/stages/user_login/models.py msgid "Terminate all other sessions of the user logging in." msgstr "终止用户登录的所有其他会话。" -#: authentik/stages/user_login/models.py:61 +#: authentik/stages/user_login/models.py msgid "" "Offset the session will be extended by when the user picks the remember me " "option. Default of 0 means that the remember me option will not be shown. " @@ -2764,113 +2763,112 @@ msgstr "" "当用户选择“记住我”选项时,会话将会延长的时间。默认值 0 " "表示不显示“记住我”选项。(格式:hours=-1;minutes=-2;seconds=-3)" -#: authentik/stages/user_login/models.py:84 +#: authentik/stages/user_login/models.py msgid "User Login Stage" msgstr "用户登录阶段" -#: authentik/stages/user_login/models.py:85 +#: authentik/stages/user_login/models.py msgid "User Login Stages" msgstr "用户登录阶段" -#: authentik/stages/user_login/stage.py:86 +#: authentik/stages/user_login/stage.py msgid "No Pending user to login." msgstr "没有待定用户可以登录。" -#: authentik/stages/user_login/stage.py:113 +#: authentik/stages/user_login/stage.py msgid "Successfully logged in!" msgstr "已成功登录!" -#: authentik/stages/user_logout/models.py:30 +#: authentik/stages/user_logout/models.py msgid "User Logout Stage" msgstr "用户登出阶段" -#: authentik/stages/user_logout/models.py:31 +#: authentik/stages/user_logout/models.py msgid "User Logout Stages" msgstr "用户登出阶段" -#: authentik/stages/user_write/models.py:31 +#: authentik/stages/user_write/models.py msgid "When set, newly created users are inactive and cannot login." msgstr "设置后,新创建的用户将处于未激活状态,且无法登录。" -#: authentik/stages/user_write/models.py:39 +#: authentik/stages/user_write/models.py msgid "Optionally add newly created users to this group." msgstr "可选,将新创建的用户添加到此组。" -#: authentik/stages/user_write/models.py:68 +#: authentik/stages/user_write/models.py msgid "User Write Stage" msgstr "用户写入阶段" -#: authentik/stages/user_write/models.py:69 +#: authentik/stages/user_write/models.py msgid "User Write Stages" msgstr "用户写入阶段" -#: authentik/stages/user_write/stage.py:142 +#: authentik/stages/user_write/stage.py msgid "No Pending data." msgstr "没有待处理的数据。" -#: authentik/stages/user_write/stage.py:148 +#: authentik/stages/user_write/stage.py msgid "No user found and can't create new user." msgstr "未找到用户并且无法创建新用户。" -#: authentik/stages/user_write/stage.py:165 -#: authentik/stages/user_write/stage.py:179 +#: authentik/stages/user_write/stage.py msgid "Failed to update user. Please try again later." msgstr "更新用户失败。请稍后重试。" -#: authentik/tenants/models.py:30 +#: authentik/tenants/models.py msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." msgstr "模式名称必须以 t_ 开始,只能包含小写字母和数字,并且少于 63 个字符。" -#: authentik/tenants/models.py:50 +#: authentik/tenants/models.py msgid "Configure how authentik should show avatars for users." msgstr "配置 authentik 应该如何显示用户头像。" -#: authentik/tenants/models.py:54 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their name." msgstr "启用用户修改自己名称的能力。" -#: authentik/tenants/models.py:57 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their email address." msgstr "启用用户修改自己电子邮件地址的能力。" -#: authentik/tenants/models.py:60 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their username." msgstr "启用用户修改自己用户名的能力。" -#: authentik/tenants/models.py:66 +#: authentik/tenants/models.py msgid "" "Events will be deleted after this duration.(Format: " "weeks=3;days=2;hours=3,seconds=2)." msgstr "事件会在多久后被删除。(格式:weeks=3;days=2;hours=3,seconds=2)。" -#: authentik/tenants/models.py:70 +#: authentik/tenants/models.py msgid "The option configures the footer links on the flow executor pages." msgstr "此选项配置流程执行器页面上的页脚链接。" -#: authentik/tenants/models.py:76 +#: authentik/tenants/models.py msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." msgstr "启用时,所有由用户造成的事件会在相应用户被删除时一并删除。" -#: authentik/tenants/models.py:82 +#: authentik/tenants/models.py msgid "Globally enable/disable impersonation." msgstr "全局启用/禁用模拟身份。" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py msgid "Tenant" msgstr "租户" -#: authentik/tenants/models.py:106 +#: authentik/tenants/models.py msgid "Tenants" msgstr "租户" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py msgid "Domain" msgstr "域名" -#: authentik/tenants/models.py:127 +#: authentik/tenants/models.py msgid "Domains" msgstr "域名" From 464addfc8d84cd6e3da582536f6703f35699fd13 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 06:10:09 +0100 Subject: [PATCH 103/105] core, web: update translations (#8518) Co-authored-by: rissson <18313093+rissson@users.noreply.github.com> --- locale/zh-Hans/LC_MESSAGES/django.mo | Bin 63129 -> 63312 bytes web/xliff/fr.xlf | 62 +++++++++++++-------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/locale/zh-Hans/LC_MESSAGES/django.mo b/locale/zh-Hans/LC_MESSAGES/django.mo index 210188f8b70200829b79cfd0f13e9dc81ce01b8c..00317efbfbc215c5a040f1f0c4e31ccfe237036c 100644 GIT binary patch delta 13738 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 diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 2c97a1f9a4..effaa48980 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - L'URL " - " n'a pas été trouvée. + The URL "" was not found. + L'URL " + " n'a pas été trouvée. @@ -1040,8 +1040,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Pour permettre n'importe quelle URI de redirection, définissez cette valeur sur ".*". Soyez conscient des possibles implications de sécurité que cela peut avoir. @@ -1613,7 +1613,7 @@ Token to authenticate with. Currently only bearer authentication is supported. - Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. + Jeton d'authentification à utiliser. Actuellement, seule l'authentification "bearer authentication" est prise en charge. @@ -1781,8 +1781,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Entrez une URL complète, un chemin relatif ou utilisez 'fa://fa-test' pour utiliser l'icône Font Awesome "fa-test". @@ -2870,7 +2870,7 @@ doesn't pass when either or both of the selected options are equal or above the To use SSL instead, use 'ldaps://' and disable this option. - Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. + Pour utiliser SSL à la base, utilisez "ldaps://" et désactviez cette option. @@ -2959,8 +2959,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Champ qui contient les membres d'un groupe. Si vous utilisez le champ "memberUid", la valeur est censée contenir un nom distinctif relatif, par exemple 'memberUid=un-utilisateur' au lieu de 'memberUid=cn=un-utilisateur,ou=groups,...' @@ -3255,7 +3255,7 @@ doesn't pass when either or both of the selected options are equal or above the Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. + Moment où les utilisateurs temporaires doivent être supprimés. Cela ne s'applique que si votre IDP utilise le format NameID "transient" et que l'utilisateur ne se déconnecte pas manuellement. @@ -3423,7 +3423,7 @@ doesn't pass when either or both of the selected options are equal or above the Optionally set the 'FriendlyName' value of the Assertion attribute. - Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) + Indiquer la valeur "FriendlyName" de l'attribut d'assertion (optionnel) @@ -3737,8 +3737,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". + When using an external logging solution for archiving, this can be set to "minutes=5". + En cas d'utilisation d'une solution de journalisation externe pour l'archivage, cette valeur peut être fixée à "minutes=5". @@ -3914,10 +3914,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? Êtes-vous sûr de vouloir mettre à jour - " - "? + " + "? @@ -4998,8 +4998,8 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey - Un authentificateur "itinérant", comme une YubiKey + A "roaming" authenticator, like a YubiKey + Un authentificateur "itinérant", comme une YubiKey @@ -5324,7 +5324,7 @@ doesn't pass when either or both of the selected options are equal or above the Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". + Afficher des champs de saisie arbitraires à l'utilisateur, par exemple pendant l'inscription. Les données sont enregistrées dans le contexte du flux sous la variable "prompt_data". @@ -5333,10 +5333,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ", de type + (" + ", de type ) @@ -5385,8 +5385,8 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Si défini à une durée supérieure à 0, l'utilisateur aura la possibilité de choisir de "rester connecté", ce qui prolongera sa session jusqu'à la durée spécifiée ici. @@ -6165,7 +6165,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. - Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. + Peut être au format "unix://" pour une connexion à un service docker local, "ssh://" pour une connexion via SSH, ou "https://:2376" pour une connexion à un système distant. @@ -7472,7 +7472,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). - Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). + Utilisez ce fournisseur avec l'option "auth_request" de Nginx ou "forwardAuth" de Traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, "/outpost.goauthentik.io" doit être routé vers le poste avancé (lorsque vous utilisez un poste avancé géré, cela est fait pour vous). Default relay state @@ -7878,7 +7878,7 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Utilisateur créé et ajouté au groupe avec succès - This user will be added to the group "". + This user will be added to the group "". Cet utilisateur sera ajouté au groupe &quot;&quot;. @@ -8457,4 +8457,4 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti - \ No newline at end of file + From 52b8f24b75970910267797d25f59cb1dfff113ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 05:16:22 +0000 Subject: [PATCH 104/105] core: bump goauthentik.io/api/v3 from 3.2023107.1 to 3.2023107.2 (#8527) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c686dff8c8..7b551478e9 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.8.4 github.com/wwt/guac v1.3.2 - goauthentik.io/api/v3 v3.2023107.1 + goauthentik.io/api/v3 v3.2023107.2 golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.17.0 golang.org/x/sync v0.6.0 diff --git a/go.sum b/go.sum index e53dd73041..5685ccc336 100644 --- a/go.sum +++ b/go.sum @@ -290,8 +290,8 @@ go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYO go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -goauthentik.io/api/v3 v3.2023107.1 h1:kBf+1vLk4vsPKc6OgJSOVx+eBdrPRKjMRtvXkFiOvjk= -goauthentik.io/api/v3 v3.2023107.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= +goauthentik.io/api/v3 v3.2023107.2 h1:rarOk6JVi2o+VYi/PxynbpbLaMZbQZw5Lbw4EHqxoJI= +goauthentik.io/api/v3 v3.2023107.2/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= From babaeb2d0c6f360fe272ce805baac0bdc1668ce7 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 05:19:04 +0000 Subject: [PATCH 105/105] translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#8519) Translate locale/en/LC_MESSAGES/django.po in zh_CN 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/zh_CN/LC_MESSAGES/django.po | 1298 ++++++++++++++-------------- 1 file changed, 648 insertions(+), 650 deletions(-) diff --git a/locale/zh_CN/LC_MESSAGES/django.po b/locale/zh_CN/LC_MESSAGES/django.po index df58c7a448..ea5b8d76c6 100644 --- a/locale/zh_CN/LC_MESSAGES/django.po +++ b/locale/zh_CN/LC_MESSAGES/django.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-06 00:06+0000\n" +"POT-Creation-Date: 2024-02-14 18:51+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" "Last-Translator: deluxghost, 2024\n" "Language-Team: Chinese (China) (https://app.transifex.com/authentik/teams/119923/zh_CN/)\n" @@ -24,32 +24,32 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: authentik/api/schema.py:26 +#: authentik/api/schema.py msgid "Generic API Error" msgstr "通用 API 错误" -#: authentik/api/schema.py:34 +#: authentik/api/schema.py msgid "Validation Error" msgstr "校验错误" -#: authentik/blueprints/api.py:44 +#: authentik/blueprints/api.py msgid "Blueprint file does not exist" msgstr "蓝图文件不存在" -#: authentik/blueprints/api.py:55 +#: authentik/blueprints/api.py #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "验证蓝图失败:%(logs)s" -#: authentik/blueprints/api.py:60 +#: authentik/blueprints/api.py msgid "Either path or content must be set." msgstr "必须设置路径或内容。" -#: authentik/blueprints/models.py:31 +#: authentik/blueprints/models.py msgid "Managed by authentik" msgstr "由 authentik 管理" -#: authentik/blueprints/models.py:33 +#: authentik/blueprints/models.py msgid "" "Objects that are managed by authentik. These objects are created and updated" " automatically. This flag only indicates that an object can be overwritten " @@ -59,256 +59,255 @@ msgstr "" "由 authentik 管理的对象。这些对象会自动创建和更新。此标记仅仅表明对象可以被 Migration 覆盖。您仍然可以通过 API " "修改对象,但这些修改可能会在之后的更新中被覆盖。" -#: authentik/blueprints/models.py:113 +#: authentik/blueprints/models.py msgid "Blueprint Instance" msgstr "蓝图实例" -#: authentik/blueprints/models.py:114 +#: authentik/blueprints/models.py msgid "Blueprint Instances" msgstr "蓝图实例" -#: authentik/blueprints/v1/exporter.py:62 +#: authentik/blueprints/v1/exporter.py #, python-format msgid "authentik Export - %(date)s" msgstr "authentik 导出 - %(date)s" -#: authentik/blueprints/v1/tasks.py:146 authentik/crypto/tasks.py:88 +#: authentik/blueprints/v1/tasks.py authentik/crypto/tasks.py #, python-format msgid "Successfully imported %(count)d files." msgstr "已成功导入 %(count)d 个文件。" -#: authentik/brands/models.py:23 +#: authentik/brands/models.py msgid "" "Domain that activates this brand. Can be a superset, i.e. `a.b` for `aa.b` " "and `ba.b`" msgstr "激活此品牌的域。可以是超集,即 `a.b` 可以同时表示 `aa.b` 和 `ba.b`" -#: authentik/brands/models.py:59 +#: authentik/brands/models.py msgid "Web Certificate used by the authentik Core webserver." msgstr "authentik 核心 Web 服务器使用的 Web 证书。" -#: authentik/brands/models.py:85 +#: authentik/brands/models.py msgid "Brand" msgstr "品牌" -#: authentik/brands/models.py:86 +#: authentik/brands/models.py msgid "Brands" msgstr "品牌" -#: authentik/core/api/providers.py:123 +#: authentik/core/api/providers.py msgid "SAML Provider from Metadata" msgstr "来自元数据的 SAML 提供程序" -#: authentik/core/api/providers.py:124 +#: authentik/core/api/providers.py msgid "Create a SAML Provider by importing its Metadata." msgstr "通过导入元数据来创建 SAML 提供程序。" -#: authentik/core/api/users.py:162 +#: authentik/core/api/users.py msgid "No leading or trailing slashes allowed." msgstr "不允许前缀或后缀斜线。" -#: authentik/core/api/users.py:165 +#: authentik/core/api/users.py msgid "No empty segments in user path allowed." msgstr "不允许用户路径包含空段。" -#: authentik/core/models.py:94 +#: authentik/core/models.py msgid "name" msgstr "名称" -#: authentik/core/models.py:96 +#: authentik/core/models.py msgid "Users added to this group will be superusers." msgstr "添加到该组的用户均为超级用户。" -#: authentik/core/models.py:170 +#: authentik/core/models.py msgid "Group" msgstr "组" -#: authentik/core/models.py:171 +#: authentik/core/models.py msgid "Groups" msgstr "组" -#: authentik/core/models.py:202 +#: authentik/core/models.py msgid "User's display name." msgstr "用户的显示名称。" -#: authentik/core/models.py:298 authentik/providers/oauth2/models.py:296 +#: authentik/core/models.py authentik/providers/oauth2/models.py msgid "User" msgstr "用户" -#: authentik/core/models.py:299 +#: authentik/core/models.py msgid "Users" msgstr "用户" -#: authentik/core/models.py:301 -#: authentik/stages/email/templates/email/password_reset.html:28 +#: authentik/core/models.py +#: authentik/stages/email/templates/email/password_reset.html msgid "Reset Password" msgstr "重置密码" -#: authentik/core/models.py:302 +#: authentik/core/models.py msgid "Can impersonate other users" msgstr "可以模拟其他用户的身份" -#: authentik/core/models.py:303 authentik/rbac/models.py:55 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can assign permissions to users" msgstr "可以为用户分配权限" -#: authentik/core/models.py:304 authentik/rbac/models.py:56 +#: authentik/core/models.py authentik/rbac/models.py msgid "Can unassign permissions from users" msgstr "可以取消分配用户的权限" -#: authentik/core/models.py:305 +#: authentik/core/models.py msgid "Can preview user data sent to providers" msgstr "可以预览发送给提供程序的用户数据" -#: authentik/core/models.py:306 +#: authentik/core/models.py msgid "View applications the user has access to" msgstr "查看用户有权访问的应用程序" -#: authentik/core/models.py:328 +#: authentik/core/models.py msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." msgstr "当关联应用程序被未验证身份的用户访问时,用于身份验证的流程。" -#: authentik/core/models.py:338 +#: authentik/core/models.py msgid "Flow used when authorizing this provider." msgstr "授权此提供程序时使用的流程。" -#: authentik/core/models.py:350 +#: authentik/core/models.py msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." msgstr "从应用程序访问;为类似 LDAP 和 SCIM 的协议提供的可选反向通道提供程序。" -#: authentik/core/models.py:405 +#: authentik/core/models.py msgid "Application's display Name." msgstr "应用的显示名称。" -#: authentik/core/models.py:406 +#: authentik/core/models.py msgid "Internal application name, used in URLs." msgstr "应用的内部名称,在 URL 中使用。" -#: authentik/core/models.py:418 +#: authentik/core/models.py msgid "Open launch URL in a new browser tab or window." msgstr "在新浏览器标签页或窗口中打开启动 URL。" -#: authentik/core/models.py:482 +#: authentik/core/models.py msgid "Application" msgstr "应用程序" -#: authentik/core/models.py:483 +#: authentik/core/models.py msgid "Applications" msgstr "应用程序" -#: authentik/core/models.py:489 +#: authentik/core/models.py msgid "Use the source-specific identifier" msgstr "使用源特定的标识符" -#: authentik/core/models.py:491 +#: authentik/core/models.py msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." msgstr "链接到电子邮件地址相同的用户。当源不验证电子邮件地址时,可能会有安全隐患。" -#: authentik/core/models.py:495 +#: authentik/core/models.py msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." msgstr "使用用户的电子邮件地址,但在电子邮件地址已存在时拒绝注册。" -#: authentik/core/models.py:498 +#: authentik/core/models.py msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." msgstr "链接到用户名相同的用户。当其他源使用相同用户名时,可能会有安全隐患。" -#: authentik/core/models.py:502 +#: authentik/core/models.py msgid "" "Use the user's username, but deny enrollment when the username already " "exists." msgstr "使用用户的用户名,但在用户名已存在时拒绝注册。" -#: authentik/core/models.py:509 +#: authentik/core/models.py msgid "Source's display Name." msgstr "源的显示名称。" -#: authentik/core/models.py:510 +#: authentik/core/models.py msgid "Internal source name, used in URLs." msgstr "源的内部名称,在 URL 中使用。" -#: authentik/core/models.py:529 +#: authentik/core/models.py msgid "Flow to use when authenticating existing users." msgstr "认证已存在用户时所使用的流程。" -#: authentik/core/models.py:538 +#: authentik/core/models.py msgid "Flow to use when enrolling new users." msgstr "新用户注册的流程。" -#: authentik/core/models.py:546 +#: authentik/core/models.py msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." msgstr "源怎样确定应该验证已有用户的身份还是注册新用户。" -#: authentik/core/models.py:718 +#: authentik/core/models.py msgid "Token" msgstr "令牌" -#: authentik/core/models.py:719 +#: authentik/core/models.py msgid "Tokens" msgstr "令牌" -#: authentik/core/models.py:724 +#: authentik/core/models.py msgid "View token's key" msgstr "查看令牌密钥" -#: authentik/core/models.py:760 +#: authentik/core/models.py msgid "Property Mapping" msgstr "属性映射" -#: authentik/core/models.py:761 +#: authentik/core/models.py msgid "Property Mappings" msgstr "属性映射" -#: authentik/core/models.py:798 +#: authentik/core/models.py msgid "Authenticated Session" msgstr "已认证会话" -#: authentik/core/models.py:799 +#: authentik/core/models.py msgid "Authenticated Sessions" msgstr "已认证会话" -#: authentik/core/sources/flow_manager.py:191 +#: authentik/core/sources/flow_manager.py #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate" " with the source you've previously signed up with." msgstr "来自 %(source)s 的身份验证请求被拒绝。请用您注册时使用的方式验证身份。" -#: authentik/core/sources/flow_manager.py:243 +#: authentik/core/sources/flow_manager.py msgid "Configured flow does not exist." msgstr "配置的流程不存在。" -#: authentik/core/sources/flow_manager.py:273 -#: authentik/core/sources/flow_manager.py:325 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "成功通过 %(source)s 认证!" -#: authentik/core/sources/flow_manager.py:297 +#: authentik/core/sources/flow_manager.py #, python-format msgid "Successfully linked %(source)s!" msgstr "成功链接 %(source)s!" -#: authentik/core/sources/flow_manager.py:316 +#: authentik/core/sources/flow_manager.py msgid "Source is not configured for enrollment." msgstr "源未被配置用于注册。" -#: authentik/core/templates/if/end_session.html:7 +#: authentik/core/templates/if/end_session.html msgid "End session" msgstr "结束会话" -#: authentik/core/templates/if/end_session.html:11 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -317,7 +316,7 @@ msgstr "" "\n" "您已登出 %(application)s。\n" -#: authentik/core/templates/if/end_session.html:19 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -327,11 +326,11 @@ msgstr "" "\n" " 您已成功登出 %(application)s 。现在您可以返回总览页来启动其他应用,或者登出您的 %(branding_title)s 账户。" -#: authentik/core/templates/if/end_session.html:25 +#: authentik/core/templates/if/end_session.html msgid "Go back to overview" msgstr "返回总览" -#: authentik/core/templates/if/end_session.html:29 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -342,7 +341,7 @@ msgstr "" " 登出 %(branding_title)s\n" " " -#: authentik/core/templates/if/end_session.html:36 +#: authentik/core/templates/if/end_session.html #, python-format msgid "" "\n" @@ -353,361 +352,367 @@ msgstr "" " 重新登录 %(application)s\n" " " -#: authentik/core/templates/if/error.html:18 +#: authentik/core/templates/if/error.html msgid "Go home" msgstr "前往首页" -#: authentik/core/templates/login/base_full.html:75 +#: authentik/core/templates/login/base_full.html msgid "Powered by authentik" msgstr "由 authentik 强力驱动" -#: authentik/core/views/apps.py:54 -#: authentik/providers/oauth2/views/authorize.py:435 -#: authentik/providers/oauth2/views/device_init.py:71 -#: authentik/providers/saml/views/sso.py:71 +#: authentik/core/views/apps.py authentik/providers/oauth2/views/authorize.py +#: authentik/providers/oauth2/views/device_init.py +#: authentik/providers/saml/views/sso.py #, python-format msgid "You're about to sign into %(application)s." msgstr "您即将登录 %(application)s。" -#: authentik/crypto/api.py:180 +#: authentik/crypto/api.py msgid "Subject-alt name" msgstr "替代名称" -#: authentik/crypto/models.py:31 +#: authentik/crypto/models.py msgid "PEM-encoded Certificate data" msgstr "PEM 编码的证书数据" -#: authentik/crypto/models.py:34 +#: authentik/crypto/models.py msgid "" "Optional Private Key. If this is set, you can use this keypair for " "encryption." msgstr "可选私钥。如果设置,则可以使用此密钥对来加密。" -#: authentik/crypto/models.py:102 +#: authentik/crypto/models.py msgid "Certificate-Key Pair" msgstr "证书密钥对" -#: authentik/crypto/models.py:103 +#: authentik/crypto/models.py msgid "Certificate-Key Pairs" msgstr "证书密钥对" -#: authentik/enterprise/api.py:34 +#: authentik/enterprise/api.py msgid "Enterprise is required to create/update this object." msgstr "创建/更新此对象需要企业版。" -#: authentik/enterprise/models.py:183 +#: authentik/enterprise/models.py msgid "License" msgstr "许可证" -#: authentik/enterprise/models.py:184 +#: authentik/enterprise/models.py msgid "Licenses" msgstr "许可证" -#: authentik/enterprise/models.py:206 +#: authentik/enterprise/models.py msgid "License Usage" msgstr "许可证使用情况" -#: authentik/enterprise/models.py:207 +#: authentik/enterprise/models.py msgid "License Usage Records" msgstr "许可证使用情况记录" -#: authentik/enterprise/policy.py:19 +#: authentik/enterprise/policy.py msgid "Enterprise required to access this feature." msgstr "访问此功能需要企业版。" -#: authentik/enterprise/policy.py:21 +#: authentik/enterprise/policy.py msgid "Feature only accessible for internal users." msgstr "仅内部用户能访问此功能。" -#: authentik/enterprise/providers/rac/models.py:49 -#: authentik/stages/user_login/models.py:39 +#: authentik/enterprise/providers/rac/models.py +#: authentik/stages/user_login/models.py msgid "" "Determines how long a session lasts. Default of 0 means that the sessions " "lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)" msgstr "确定会话持续多长时间。默认值为 0 表示会话持续到浏览器关闭为止。(格式:hours=-1;minutes=-2;seconds=-3)" -#: authentik/enterprise/providers/rac/models.py:72 +#: authentik/enterprise/providers/rac/models.py +msgid "When set to true, connection tokens will be deleted upon disconnect." +msgstr "启用时,连接令牌将会在断开连接时被删除。" + +#: authentik/enterprise/providers/rac/models.py msgid "RAC Provider" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:73 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Providers" msgstr "RAC 提供程序" -#: authentik/enterprise/providers/rac/models.py:101 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoint" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:102 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Endpoints" msgstr "RAC 端点" -#: authentik/enterprise/providers/rac/models.py:123 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mapping" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/models.py:124 +#: authentik/enterprise/providers/rac/models.py msgid "RAC Property Mappings" msgstr "RAC 属性映射" -#: authentik/enterprise/providers/rac/views.py:109 +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection token" +msgstr "RAC 连接令牌" + +#: authentik/enterprise/providers/rac/models.py +msgid "RAC Connection tokens" +msgstr "RAC 连接令牌" + +#: authentik/enterprise/providers/rac/views.py msgid "Maximum connection limit reached." msgstr "已达到最大连接数。" -#: authentik/enterprise/providers/rac/views.py:113 +#: authentik/enterprise/providers/rac/views.py msgid "(You are already connected in another tab/window)" msgstr "(您已经在另一个标签页/窗口连接了)" -#: authentik/events/api/tasks.py:101 +#: authentik/events/api/tasks.py #, python-format msgid "Successfully started task %(name)s." msgstr "已成功开始任务 %(name)s。" -#: authentik/events/models.py:305 +#: authentik/events/models.py msgid "Event" msgstr "事件" -#: authentik/events/models.py:306 +#: authentik/events/models.py msgid "Events" msgstr "事件" -#: authentik/events/models.py:312 +#: authentik/events/models.py msgid "authentik inbuilt notifications" msgstr "authentik 内置通知" -#: authentik/events/models.py:313 +#: authentik/events/models.py msgid "Generic Webhook" msgstr "通用 Webhook" -#: authentik/events/models.py:314 +#: authentik/events/models.py msgid "Slack Webhook (Slack/Discord)" msgstr "Slack Webhook(Slack/Discord)" -#: authentik/events/models.py:315 +#: authentik/events/models.py msgid "Email" msgstr "电子邮箱" -#: authentik/events/models.py:333 +#: authentik/events/models.py msgid "" "Only send notification once, for example when sending a webhook into a chat " "channel." msgstr "仅发送一次通知,例如在向聊天频道发送 Webhook 时。" -#: authentik/events/models.py:398 +#: authentik/events/models.py msgid "Severity" msgstr "严重程度" -#: authentik/events/models.py:403 +#: authentik/events/models.py msgid "Dispatched for user" msgstr "为用户分派" -#: authentik/events/models.py:412 +#: authentik/events/models.py msgid "Event user" msgstr "事件用户" -#: authentik/events/models.py:506 +#: authentik/events/models.py msgid "Notification Transport" msgstr "通知传输" -#: authentik/events/models.py:507 +#: authentik/events/models.py msgid "Notification Transports" msgstr "通知传输" -#: authentik/events/models.py:513 +#: authentik/events/models.py msgid "Notice" msgstr "通知" -#: authentik/events/models.py:514 +#: authentik/events/models.py msgid "Warning" msgstr "警告" -#: authentik/events/models.py:515 +#: authentik/events/models.py msgid "Alert" msgstr "注意" -#: authentik/events/models.py:540 +#: authentik/events/models.py msgid "Notification" msgstr "通知" -#: authentik/events/models.py:541 +#: authentik/events/models.py msgid "Notifications" msgstr "通知" -#: authentik/events/models.py:551 +#: authentik/events/models.py msgid "" "Select which transports should be used to notify the user. If none are " "selected, the notification will only be shown in the authentik UI." msgstr "选择应使用哪些传输方式来通知用户。如果未选择任何内容,则通知将仅显示在 authentik UI 中。" -#: authentik/events/models.py:559 +#: authentik/events/models.py msgid "Controls which severity level the created notifications will have." msgstr "控制被创建的通知的严重性级别。" -#: authentik/events/models.py:564 +#: authentik/events/models.py msgid "" "Define which group of users this notification should be sent and shown to. " "If left empty, Notification won't ben sent." msgstr "定义此通知应该发送到哪些用户组。如果留空,则不会发送通知。" -#: authentik/events/models.py:582 +#: authentik/events/models.py msgid "Notification Rule" msgstr "通知规则" -#: authentik/events/models.py:583 +#: authentik/events/models.py msgid "Notification Rules" msgstr "通知规则" -#: authentik/events/models.py:603 +#: authentik/events/models.py msgid "Webhook Mapping" msgstr "Webhook 映射" -#: authentik/events/models.py:604 +#: authentik/events/models.py msgid "Webhook Mappings" msgstr "Webhook 映射" -#: authentik/events/models.py:669 +#: authentik/events/models.py msgid "Run task" msgstr "运行任务" -#: authentik/events/models.py:670 +#: authentik/events/models.py msgid "System Task" msgstr "系统任务" -#: authentik/events/models.py:671 +#: authentik/events/models.py msgid "System Tasks" msgstr "系统任务" -#: authentik/events/system_tasks.py:127 +#: authentik/events/system_tasks.py msgid "Task has not been run yet." msgstr "任务尚未运行。" -#: authentik/flows/api/flows.py:297 +#: authentik/flows/api/flows.py #, python-format msgid "Flow not applicable to current user/request: %(messages)s" msgstr "流程不适用于当前用户/请求:%(messages)s" -#: authentik/flows/api/flows_diagram.py:69 -#: authentik/flows/api/flows_diagram.py:95 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Policy (%(type)s)" msgstr "策略(%(type)s)" -#: authentik/flows/api/flows_diagram.py:72 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Binding %(order)d" msgstr "绑定 %(order)d" -#: authentik/flows/api/flows_diagram.py:119 +#: authentik/flows/api/flows_diagram.py msgid "Policy passed" msgstr "策略通过" -#: authentik/flows/api/flows_diagram.py:123 +#: authentik/flows/api/flows_diagram.py #, python-format msgid "Stage (%(type)s)" msgstr "阶段(%(type)s)" -#: authentik/flows/api/flows_diagram.py:147 -#: authentik/flows/api/flows_diagram.py:207 +#: authentik/flows/api/flows_diagram.py msgid "Policy denied" msgstr "策略拒绝" -#: authentik/flows/api/flows_diagram.py:157 -#: authentik/flows/api/flows_diagram.py:169 -#: authentik/flows/api/flows_diagram.py:206 -#: authentik/flows/api/flows_diagram.py:228 +#: authentik/flows/api/flows_diagram.py msgid "End of the flow" msgstr "流程结束" -#: authentik/flows/api/flows_diagram.py:170 +#: authentik/flows/api/flows_diagram.py msgid "Requirement not fulfilled" msgstr "需求条件未达成" -#: authentik/flows/api/flows_diagram.py:178 +#: authentik/flows/api/flows_diagram.py msgid "Flow authentication requirement" msgstr "流程身份验证需求" -#: authentik/flows/api/flows_diagram.py:184 +#: authentik/flows/api/flows_diagram.py msgid "Requirement fulfilled" msgstr "需求条件已达成" -#: authentik/flows/api/flows_diagram.py:197 +#: authentik/flows/api/flows_diagram.py msgid "Pre-flow policies" msgstr "流程前置策略" -#: authentik/flows/api/flows_diagram.py:215 authentik/flows/models.py:195 +#: authentik/flows/api/flows_diagram.py authentik/flows/models.py msgid "Flow" msgstr "流程" -#: authentik/flows/exceptions.py:20 +#: authentik/flows/exceptions.py msgid "Flow does not apply to current user." msgstr "流程不应用于当前用户。" -#: authentik/flows/models.py:116 +#: authentik/flows/models.py #, python-format msgid "Dynamic In-memory stage: %(doc)s" msgstr "动态内存中阶段:%(doc)s" -#: authentik/flows/models.py:131 +#: authentik/flows/models.py msgid "Visible in the URL." msgstr "在 URL 中可见。" -#: authentik/flows/models.py:133 +#: authentik/flows/models.py msgid "Shown as the Title in Flow pages." msgstr "显示为流程页面中的标题。" -#: authentik/flows/models.py:140 +#: authentik/flows/models.py msgid "" "Decides what this Flow is used for. For example, the Authentication flow is " "redirect to when an un-authenticated user visits authentik." msgstr "决定此流程的用途。例如,当未经身份验证的用户访问 authentik 时,会重定向到身份验证流程。" -#: authentik/flows/models.py:149 +#: authentik/flows/models.py msgid "Background shown during execution" msgstr "执行时的背景" -#: authentik/flows/models.py:156 +#: authentik/flows/models.py msgid "" "Enable compatibility mode, increases compatibility with password managers on" " mobile devices." msgstr "启用兼容模式,增强与移动设备上密码管理器的兼容性。" -#: authentik/flows/models.py:164 +#: authentik/flows/models.py msgid "Configure what should happen when a flow denies access to a user." msgstr "配置当流程拒绝访问一名用户时应该发生什么。" -#: authentik/flows/models.py:170 +#: authentik/flows/models.py msgid "Required level of authentication and authorization to access a flow." msgstr "需要身份验证和授权等级以访问流程。" -#: authentik/flows/models.py:196 +#: authentik/flows/models.py msgid "Flows" msgstr "流程" -#: authentik/flows/models.py:199 +#: authentik/flows/models.py msgid "Can export a Flow" msgstr "可以导出流程" -#: authentik/flows/models.py:200 +#: authentik/flows/models.py msgid "Can inspect a Flow's execution" msgstr "可以检视流程执行" -#: authentik/flows/models.py:201 +#: authentik/flows/models.py msgid "View Flow's cache metrics" msgstr "查看流程缓存指标" -#: authentik/flows/models.py:202 +#: authentik/flows/models.py msgid "Clear Flow's cache metrics" msgstr "清除流程缓存指标" -#: authentik/flows/models.py:218 +#: authentik/flows/models.py msgid "Evaluate policies during the Flow planning process." msgstr "在流程规划过程中评估策略。" -#: authentik/flows/models.py:222 +#: authentik/flows/models.py msgid "Evaluate policies when the Stage is present to the user." msgstr "在阶段呈现给用户时评估策略。" -#: authentik/flows/models.py:229 +#: authentik/flows/models.py msgid "" "Configure how the flow executor should handle an invalid response to a " "challenge. RETRY returns the error message and a similar challenge to the " @@ -717,62 +722,62 @@ msgstr "" "配置流程执行器应如何处理对质询的无效响应。RETRY 向执行器返回错误消息和类似的质询。RESTART " "从头开始重新启动流程,RESTART_WITH_CONTEXT 在保留当前上下文的同时重新启动流程。" -#: authentik/flows/models.py:252 +#: authentik/flows/models.py msgid "Flow Stage Binding" msgstr "流程阶段绑定" -#: authentik/flows/models.py:253 +#: authentik/flows/models.py msgid "Flow Stage Bindings" msgstr "流程阶段绑定" -#: authentik/flows/models.py:268 +#: authentik/flows/models.py msgid "" "Flow used by an authenticated user to configure this Stage. If empty, user " "will not be able to configure this stage." msgstr "经过身份验证的用户用来配置此阶段的流程。如果为空,用户将无法配置此阶段。" -#: authentik/flows/models.py:308 +#: authentik/flows/models.py msgid "Flow Token" msgstr "流程令牌" -#: authentik/flows/models.py:309 +#: authentik/flows/models.py msgid "Flow Tokens" msgstr "流程令牌" -#: authentik/lib/utils/time.py:28 +#: authentik/lib/utils/time.py #, python-format msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'." msgstr "%(value)s 的格式不正确,应为 'hours=3;minutes=1'。" -#: authentik/lib/validators.py:17 +#: authentik/lib/validators.py #, python-brace-format msgid "The fields {field_names} must be used together." msgstr "字段 {field_names} 必须一同使用。" -#: authentik/outposts/api/service_connections.py:128 +#: authentik/outposts/api/service_connections.py msgid "" "You can only use an empty kubeconfig when connecting to a local cluster." msgstr "您只能在连接到本地集群时使用空的 kubeconfig。" -#: authentik/outposts/api/service_connections.py:136 +#: authentik/outposts/api/service_connections.py msgid "Invalid kubeconfig" msgstr "无效 kubeconfig " -#: authentik/outposts/models.py:124 +#: authentik/outposts/models.py msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" msgstr "如果启用,则使用本地连接。需要 Docker Socket / Kubernetes 集成" -#: authentik/outposts/models.py:154 +#: authentik/outposts/models.py msgid "Outpost Service-Connection" msgstr "前哨服务连接" -#: authentik/outposts/models.py:155 +#: authentik/outposts/models.py msgid "Outpost Service-Connections" msgstr "前哨服务连接" -#: authentik/outposts/models.py:163 +#: authentik/outposts/models.py msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." @@ -780,271 +785,270 @@ msgstr "" "当连接到本地 Docker " "守护进程时,可以使用“unix://”格式,或者在连接远程系统时,使用“https://:2376”格式。" -#: authentik/outposts/models.py:175 +#: authentik/outposts/models.py msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." msgstr "验证端点证书所依据的 CA。可以留空,表示不进行验证。" -#: authentik/outposts/models.py:187 +#: authentik/outposts/models.py msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." msgstr "用于身份验证的证书/密钥。可以留空表示不验证。" -#: authentik/outposts/models.py:205 +#: authentik/outposts/models.py msgid "Docker Service-Connection" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:206 +#: authentik/outposts/models.py msgid "Docker Service-Connections" msgstr "Docker 服务连接" -#: authentik/outposts/models.py:214 +#: authentik/outposts/models.py msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." msgstr "在这里粘贴您的 kubeconfig。authentik 会自动使用当前选择的上下文。" -#: authentik/outposts/models.py:220 +#: authentik/outposts/models.py msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "验证 Kubernetes API 端点的 SSL 证书" -#: authentik/outposts/models.py:237 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connection" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:238 +#: authentik/outposts/models.py msgid "Kubernetes Service-Connections" msgstr "Kubernetes 服务连接" -#: authentik/outposts/models.py:254 +#: authentik/outposts/models.py msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave" " empty if authentik should not handle the deployment." msgstr "选择 authentik 在管理此前哨时需要使用的服务连接。如果 authentik 不应该处理此部署,则应该留空。" -#: authentik/outposts/models.py:421 +#: authentik/outposts/models.py msgid "Outpost" msgstr "前哨" -#: authentik/outposts/models.py:422 +#: authentik/outposts/models.py msgid "Outposts" msgstr "前哨" -#: authentik/policies/denied.py:25 +#: authentik/policies/denied.py msgid "Access denied" msgstr "访问被拒绝" -#: authentik/policies/dummy/models.py:45 +#: authentik/policies/dummy/models.py msgid "Dummy Policy" msgstr "虚拟策略" -#: authentik/policies/dummy/models.py:46 +#: authentik/policies/dummy/models.py msgid "Dummy Policies" msgstr "虚拟策略" -#: authentik/policies/event_matcher/api.py:21 -#: authentik/policies/event_matcher/models.py:57 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "匹配选定应用程序创建的事件。如果留空,则匹配所有应用程序。" -#: authentik/policies/event_matcher/api.py:30 -#: authentik/policies/event_matcher/models.py:65 +#: authentik/policies/event_matcher/api.py +#: authentik/policies/event_matcher/models.py msgid "" "Match events created by selected model. When left empty, all models are " "matched. When an app is selected, all the application's models are matched." msgstr "匹配选定模型创建的事件。如果留空,则匹配所有模型。选择应用程序后,则匹配该应用程序的所有模型。" -#: authentik/policies/event_matcher/api.py:43 +#: authentik/policies/event_matcher/api.py msgid "At least one criteria must be set." msgstr "必须至少设置一项标准。" -#: authentik/policies/event_matcher/models.py:49 +#: authentik/policies/event_matcher/models.py msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "将创建的事件与此操作类型匹配。留空时,所有操作类型都将匹配。" -#: authentik/policies/event_matcher/models.py:74 +#: authentik/policies/event_matcher/models.py msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "匹配事件的客户端 IP(严格匹配,要匹配网段请使用表达式策略)" -#: authentik/policies/event_matcher/models.py:144 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policy" msgstr "事件匹配策略" -#: authentik/policies/event_matcher/models.py:145 +#: authentik/policies/event_matcher/models.py msgid "Event Matcher Policies" msgstr "事件匹配策略" -#: authentik/policies/expiry/models.py:46 +#: authentik/policies/expiry/models.py #, python-format msgid "Password expired %(days)d days ago. Please update your password." msgstr "密码在 %(days)d 天前过期。请更新您的密码。" -#: authentik/policies/expiry/models.py:50 +#: authentik/policies/expiry/models.py msgid "Password has expired." msgstr "密码已过期。" -#: authentik/policies/expiry/models.py:54 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policy" msgstr "密码过期策略" -#: authentik/policies/expiry/models.py:55 +#: authentik/policies/expiry/models.py msgid "Password Expiry Policies" msgstr "密码过期策略" -#: authentik/policies/expression/models.py:41 +#: authentik/policies/expression/models.py msgid "Expression Policy" msgstr "表达式策略" -#: authentik/policies/expression/models.py:42 +#: authentik/policies/expression/models.py msgid "Expression Policies" msgstr "表达式策略" -#: authentik/policies/models.py:23 +#: authentik/policies/models.py msgid "all, all policies must pass" msgstr "All,必须通过所有策略" -#: authentik/policies/models.py:24 +#: authentik/policies/models.py msgid "any, any policy must pass" msgstr "Any,必须通过任意策略" -#: authentik/policies/models.py:47 +#: authentik/policies/models.py msgid "Policy Binding Model" msgstr "策略绑定模型" -#: authentik/policies/models.py:48 +#: authentik/policies/models.py msgid "Policy Binding Models" msgstr "策略绑定模型" -#: authentik/policies/models.py:87 +#: authentik/policies/models.py msgid "Negates the outcome of the policy. Messages are unaffected." msgstr "反转策略的结果。消息不受影响。" -#: authentik/policies/models.py:90 +#: authentik/policies/models.py msgid "Timeout after which Policy execution is terminated." msgstr "策略执行终止的超时时间。" -#: authentik/policies/models.py:93 +#: authentik/policies/models.py msgid "Result if the Policy execution fails." msgstr "策略执行失败时的结果。" -#: authentik/policies/models.py:146 +#: authentik/policies/models.py msgid "Policy Binding" msgstr "策略绑定" -#: authentik/policies/models.py:147 +#: authentik/policies/models.py msgid "Policy Bindings" msgstr "策略绑定" -#: authentik/policies/models.py:168 +#: authentik/policies/models.py msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." msgstr "启用此选项后,将记录此策略的所有执行日志。默认情况下,只记录执行错误。" -#: authentik/policies/models.py:190 +#: authentik/policies/models.py msgid "Policy" msgstr "策略" -#: authentik/policies/models.py:191 +#: authentik/policies/models.py msgid "Policies" msgstr "策略" -#: authentik/policies/models.py:194 +#: authentik/policies/models.py msgid "View Policy's cache metrics" msgstr "查看策略缓存指标" -#: authentik/policies/models.py:195 +#: authentik/policies/models.py msgid "Clear Policy's cache metrics" msgstr "清除策略缓存指标" -#: authentik/policies/password/models.py:28 +#: authentik/policies/password/models.py msgid "Field key to check, field keys defined in Prompt stages are available." msgstr "要检查的字段键,可以使用输入阶段中定义的字段键。" -#: authentik/policies/password/models.py:45 +#: authentik/policies/password/models.py msgid "How many times the password hash is allowed to be on haveibeenpwned" msgstr "密码哈希允许出现在 HaveIBeenPwned 中多少次" -#: authentik/policies/password/models.py:50 +#: authentik/policies/password/models.py msgid "" "If the zxcvbn score is equal or less than this value, the policy will fail." msgstr "如果 zxcvbn 分数小于等于此值,则策略失败。" -#: authentik/policies/password/models.py:73 +#: authentik/policies/password/models.py msgid "Password not set in context" msgstr "未在上下文中设置密码" -#: authentik/policies/password/models.py:135 +#: authentik/policies/password/models.py #, python-format msgid "Password exists on %(count)d online lists." msgstr "%(count)d 个在线列表中存在密码。" -#: authentik/policies/password/models.py:155 +#: authentik/policies/password/models.py msgid "Password is too weak." msgstr "密码太弱。" -#: authentik/policies/password/models.py:163 +#: authentik/policies/password/models.py msgid "Password Policy" msgstr "密码策略" -#: authentik/policies/password/models.py:164 +#: authentik/policies/password/models.py msgid "Password Policies" msgstr "密码策略" -#: authentik/policies/reputation/api.py:19 +#: authentik/policies/reputation/api.py msgid "Either IP or Username must be checked" msgstr "必须检查 IP 或用户名" -#: authentik/policies/reputation/models.py:68 +#: authentik/policies/reputation/models.py msgid "Reputation Policy" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:69 +#: authentik/policies/reputation/models.py msgid "Reputation Policies" msgstr "信誉策略" -#: authentik/policies/reputation/models.py:97 +#: authentik/policies/reputation/models.py msgid "Reputation Score" msgstr "信誉分数" -#: authentik/policies/reputation/models.py:98 +#: authentik/policies/reputation/models.py msgid "Reputation Scores" msgstr "信誉分数" -#: authentik/policies/templates/policies/denied.html:7 -#: authentik/policies/templates/policies/denied.html:11 +#: authentik/policies/templates/policies/denied.html msgid "Permission denied" msgstr "权限被拒绝" -#: authentik/policies/templates/policies/denied.html:21 +#: authentik/policies/templates/policies/denied.html msgid "User's avatar" msgstr "用户的头像" -#: authentik/policies/templates/policies/denied.html:25 +#: authentik/policies/templates/policies/denied.html msgid "Not you?" msgstr "不是您?" -#: authentik/policies/templates/policies/denied.html:33 +#: authentik/policies/templates/policies/denied.html msgid "Request has been denied." msgstr "请求被拒绝。" -#: authentik/policies/templates/policies/denied.html:44 +#: authentik/policies/templates/policies/denied.html msgid "Messages:" msgstr "消息:" -#: authentik/policies/templates/policies/denied.html:54 +#: authentik/policies/templates/policies/denied.html msgid "Explanation:" msgstr "解释:" -#: authentik/policies/templates/policies/denied.html:58 +#: authentik/policies/templates/policies/denied.html #, python-format msgid "" "\n" @@ -1055,21 +1059,21 @@ msgstr "" " 策略绑定 '%(name)s' 返回结果 '%(result)s'\n" " " -#: authentik/policies/views.py:69 +#: authentik/policies/views.py msgid "Failed to resolve application" msgstr "解析应用程序失败" -#: authentik/providers/ldap/models.py:26 +#: authentik/providers/ldap/models.py msgid "DN under which objects are accessible." msgstr "可访问对象的 DN。" -#: authentik/providers/ldap/models.py:35 +#: authentik/providers/ldap/models.py msgid "" "Users in this group can do search queries. If not set, every user can " "execute search queries." msgstr "该组中的用户可以执行搜索查询。如果未设置,则每个用户都可以执行搜索查询。" -#: authentik/providers/ldap/models.py:54 +#: authentik/providers/ldap/models.py msgid "" "The start for uidNumbers, this number is added to the user.pk to make sure " "that the numbers aren't too low for POSIX users. Default is 2000 to ensure " @@ -1078,7 +1082,7 @@ msgstr "" "起始 uidNumbers,这个数字会被添加到 user.pk 中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "2000,以确保我们不会与本地用户的 uidNumber 发生冲突" -#: authentik/providers/ldap/models.py:63 +#: authentik/providers/ldap/models.py msgid "" "The start for gidNumbers, this number is added to a number generated from " "the group.pk to make sure that the numbers aren't too low for POSIX groups. " @@ -1088,8 +1092,7 @@ msgstr "" "起始 gidNumbers,这个数字会被添加到从 group.pk 生成的数字中,以确保对于 POSIX 用户来说,这个数字不会太低。默认值为 " "4000,以确保我们不会与本地群组或用户主组的 gidNumber 发生冲突" -#: authentik/providers/ldap/models.py:77 -#: authentik/providers/radius/models.py:35 +#: authentik/providers/ldap/models.py authentik/providers/radius/models.py msgid "" "When enabled, code-based multi-factor authentication can be used by " "appending a semicolon and the TOTP code to the password. This should only be" @@ -1100,958 +1103,955 @@ msgstr "" "启用时,可以通过在密码后添加分号和 TOTP 代码来使用基于代码的多因素身份验证。仅在所有绑定到此提供程序的用户都已配置 TOTP " "设备的情况下才应该启用,否则密码可能会因为包含分号而被错误地拒绝。" -#: authentik/providers/ldap/models.py:109 +#: authentik/providers/ldap/models.py msgid "LDAP Provider" msgstr "LDAP 提供程序" -#: authentik/providers/ldap/models.py:110 +#: authentik/providers/ldap/models.py msgid "LDAP Providers" msgstr "LDAP 提供程序" -#: authentik/providers/oauth2/id_token.py:28 +#: authentik/providers/oauth2/id_token.py msgid "Based on the Hashed User ID" msgstr "基于经过哈希处理的用户 ID" -#: authentik/providers/oauth2/id_token.py:29 +#: authentik/providers/oauth2/id_token.py msgid "Based on user ID" msgstr "基于用户 ID" -#: authentik/providers/oauth2/id_token.py:30 +#: authentik/providers/oauth2/id_token.py msgid "Based on user UUID" msgstr "基于用户 UUID" -#: authentik/providers/oauth2/id_token.py:31 +#: authentik/providers/oauth2/id_token.py msgid "Based on the username" msgstr "基于用户名" -#: authentik/providers/oauth2/id_token.py:34 +#: authentik/providers/oauth2/id_token.py msgid "Based on the User's Email. This is recommended over the UPN method." msgstr "基于用户的电子邮箱。建议在 UPN 方法上使用。" -#: authentik/providers/oauth2/id_token.py:39 +#: authentik/providers/oauth2/id_token.py msgid "" "Based on the User's UPN, only works if user has a 'upn' attribute set. Use " "this method only if you have different UPN and Mail domains." msgstr "基于用户的 UPN,仅当用户设置了 'upn' 属性时才有效。仅当您有不同的 UPN 和 Mail 域时才使用此方法。" -#: authentik/providers/oauth2/models.py:44 +#: authentik/providers/oauth2/models.py msgid "Confidential" msgstr "机密" -#: authentik/providers/oauth2/models.py:45 +#: authentik/providers/oauth2/models.py msgid "Public" msgstr "公开" -#: authentik/providers/oauth2/models.py:67 +#: authentik/providers/oauth2/models.py msgid "Same identifier is used for all providers" msgstr "所有提供程序都使用相同的标识符" -#: authentik/providers/oauth2/models.py:69 +#: authentik/providers/oauth2/models.py msgid "Each provider has a different issuer, based on the application slug." msgstr "根据应用程序 Slug,每个提供程序都有不同的颁发者。" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py msgid "code (Authorization Code Flow)" msgstr "code(授权码流程)" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py msgid "id_token (Implicit Flow)" msgstr "id_token(隐式流程)" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py msgid "id_token token (Implicit Flow)" msgstr "id_token token(隐式流程)" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py msgid "code token (Hybrid Flow)" msgstr "code token(混合流程)" -#: authentik/providers/oauth2/models.py:80 +#: authentik/providers/oauth2/models.py msgid "code id_token (Hybrid Flow)" msgstr "code id_token(混合流程)" -#: authentik/providers/oauth2/models.py:81 +#: authentik/providers/oauth2/models.py msgid "code id_token token (Hybrid Flow)" msgstr "code id_token token(混合流程)" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py msgid "HS256 (Symmetric Encryption)" msgstr "HS256(对称加密)" -#: authentik/providers/oauth2/models.py:88 +#: authentik/providers/oauth2/models.py msgid "RS256 (Asymmetric Encryption)" msgstr "RS256(非对称加密)" -#: authentik/providers/oauth2/models.py:89 +#: authentik/providers/oauth2/models.py msgid "ES256 (Asymmetric Encryption)" msgstr "ES256(非对称加密)" -#: authentik/providers/oauth2/models.py:95 +#: authentik/providers/oauth2/models.py msgid "Scope used by the client" msgstr "客户端使用的作用域" -#: authentik/providers/oauth2/models.py:99 +#: authentik/providers/oauth2/models.py msgid "" "Description shown to the user when consenting. If left empty, the user won't" " be informed." msgstr "同意授权时向用户显示的描述。如果留空,则不会告知用户。" -#: authentik/providers/oauth2/models.py:118 +#: authentik/providers/oauth2/models.py msgid "Scope Mapping" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:119 +#: authentik/providers/oauth2/models.py msgid "Scope Mappings" msgstr "作用域映射" -#: authentik/providers/oauth2/models.py:129 +#: authentik/providers/oauth2/models.py msgid "Client Type" msgstr "客户端类型" -#: authentik/providers/oauth2/models.py:131 +#: authentik/providers/oauth2/models.py msgid "" "Confidential clients are capable of maintaining the confidentiality of their" " credentials. Public clients are incapable" msgstr "机密客户端有能力维护其凭据的机密性。公开客户端无此能力。" -#: authentik/providers/oauth2/models.py:138 +#: authentik/providers/oauth2/models.py msgid "Client ID" msgstr "客户端 ID" -#: authentik/providers/oauth2/models.py:144 +#: authentik/providers/oauth2/models.py msgid "Client Secret" msgstr "客户端密钥" -#: authentik/providers/oauth2/models.py:150 +#: authentik/providers/oauth2/models.py msgid "Redirect URIs" msgstr "重定向 URI" -#: authentik/providers/oauth2/models.py:151 +#: authentik/providers/oauth2/models.py msgid "Enter each URI on a new line." msgstr "每行输入一个 URI。" -#: authentik/providers/oauth2/models.py:156 +#: authentik/providers/oauth2/models.py msgid "Include claims in id_token" msgstr "在 id_token 中包含声明" -#: authentik/providers/oauth2/models.py:158 +#: authentik/providers/oauth2/models.py msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." msgstr "对于不访问 userinfo 端点的应用程序,将来自作用域的用户声明包含在 id_token 中。" -#: authentik/providers/oauth2/models.py:167 +#: authentik/providers/oauth2/models.py msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,访问代码无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:175 -#: authentik/providers/oauth2/models.py:183 +#: authentik/providers/oauth2/models.py msgid "" "Tokens not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,令牌无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/oauth2/models.py:192 +#: authentik/providers/oauth2/models.py msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "配置应将哪些数据用作唯一用户标识符。在大多数情况下保持默认值即可。" -#: authentik/providers/oauth2/models.py:199 +#: authentik/providers/oauth2/models.py msgid "Configure how the issuer field of the ID Token should be filled." msgstr "配置如何填写 ID 令牌的颁发者字段。" -#: authentik/providers/oauth2/models.py:204 +#: authentik/providers/oauth2/models.py msgid "Signing Key" msgstr "签名密钥" -#: authentik/providers/oauth2/models.py:208 +#: authentik/providers/oauth2/models.py msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "用于签名令牌的密钥。仅当 JWT 算法设置为 RS256 时才需要。" -#: authentik/providers/oauth2/models.py:215 +#: authentik/providers/oauth2/models.py msgid "" "Any JWT signed by the JWK of the selected source can be used to " "authenticate." msgstr "任何由选定来源的 JWK 签发的 JWT 都可以用于身份验证。" -#: authentik/providers/oauth2/models.py:288 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Provider" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:289 +#: authentik/providers/oauth2/models.py msgid "OAuth2/OpenID Providers" msgstr "OAuth2/OpenID 提供程序" -#: authentik/providers/oauth2/models.py:298 -#: authentik/providers/oauth2/models.py:431 +#: authentik/providers/oauth2/models.py msgid "Scopes" msgstr "作用域" -#: authentik/providers/oauth2/models.py:318 +#: authentik/providers/oauth2/models.py msgid "Code" msgstr "代码" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py msgid "Nonce" msgstr "Nonce" -#: authentik/providers/oauth2/models.py:320 +#: authentik/providers/oauth2/models.py msgid "Code Challenge" msgstr "代码质询" -#: authentik/providers/oauth2/models.py:322 +#: authentik/providers/oauth2/models.py msgid "Code Challenge Method" msgstr "代码质询方法" -#: authentik/providers/oauth2/models.py:342 +#: authentik/providers/oauth2/models.py msgid "Authorization Code" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:343 +#: authentik/providers/oauth2/models.py msgid "Authorization Codes" msgstr "授权代码" -#: authentik/providers/oauth2/models.py:385 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Token" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:386 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Access Tokens" msgstr "OAuth2 访问令牌" -#: authentik/providers/oauth2/models.py:396 +#: authentik/providers/oauth2/models.py msgid "ID Token" msgstr "ID 令牌" -#: authentik/providers/oauth2/models.py:415 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Token" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:416 +#: authentik/providers/oauth2/models.py msgid "OAuth2 Refresh Tokens" msgstr "OAuth2 刷新令牌" -#: authentik/providers/oauth2/models.py:443 +#: authentik/providers/oauth2/models.py msgid "Device Token" msgstr "设备令牌" -#: authentik/providers/oauth2/models.py:444 +#: authentik/providers/oauth2/models.py msgid "Device Tokens" msgstr "设备令牌" -#: authentik/providers/oauth2/views/authorize.py:490 -#: authentik/providers/saml/views/flows.py:88 +#: authentik/providers/oauth2/views/authorize.py +#: authentik/providers/saml/views/flows.py #, python-format msgid "Redirecting to %(app)s..." msgstr "正在跳转到 %(app)s…" -#: authentik/providers/oauth2/views/device_init.py:152 +#: authentik/providers/oauth2/views/device_init.py msgid "Invalid code" msgstr "无效代码" -#: authentik/providers/oauth2/views/userinfo.py:56 -#: authentik/providers/oauth2/views/userinfo.py:57 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your User Information" msgstr "GitHub 兼容性:访问您的用户信息" -#: authentik/providers/oauth2/views/userinfo.py:58 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access you Email addresses" msgstr "GitHub 兼容性:访问您的电子邮件地址" -#: authentik/providers/oauth2/views/userinfo.py:59 +#: authentik/providers/oauth2/views/userinfo.py msgid "GitHub Compatibility: Access your Groups" msgstr "GitHub 兼容性:访问您的组" -#: authentik/providers/oauth2/views/userinfo.py:60 +#: authentik/providers/oauth2/views/userinfo.py msgid "authentik API Access on behalf of your user" msgstr "代表您的用户访问 authentik API" -#: authentik/providers/proxy/api.py:53 +#: authentik/providers/proxy/api.py msgid "User and password attributes must be set when basic auth is enabled." msgstr "启用 Basic Auth 时,必须设置用户和密码属性。" -#: authentik/providers/proxy/api.py:64 +#: authentik/providers/proxy/api.py msgid "Internal host cannot be empty when forward auth is disabled." msgstr "禁用 Forward Auth 时,内部主机不能为空。" -#: authentik/providers/proxy/models.py:55 +#: authentik/providers/proxy/models.py msgid "Validate SSL Certificates of upstream servers" msgstr "验证上游服务器的 SSL 证书" -#: authentik/providers/proxy/models.py:56 +#: authentik/providers/proxy/models.py msgid "Internal host SSL Validation" msgstr "内部主机 SSL 验证" -#: authentik/providers/proxy/models.py:62 +#: authentik/providers/proxy/models.py msgid "" "Enable support for forwardAuth in traefik and nginx auth_request. Exclusive " "with internal_host." msgstr "在 traefik 和 nginx auth_request 中启用对 ForwardAuth 的支持。排除 internal_host。" -#: authentik/providers/proxy/models.py:71 +#: authentik/providers/proxy/models.py msgid "" "Regular expressions for which authentication is not required. Each new line " "is interpreted as a new Regular Expression." msgstr "用于描述何处不需要身份验证的正则表达式。每个新行都被解释为一个新的正则表达式。" -#: authentik/providers/proxy/models.py:79 +#: authentik/providers/proxy/models.py msgid "" "When enabled, this provider will intercept the authorization header and " "authenticate requests based on its value." msgstr "启用时,此提供程序将会拦截 Authorization 标头,并基于其值认证请求。" -#: authentik/providers/proxy/models.py:85 +#: authentik/providers/proxy/models.py msgid "Set HTTP-Basic Authentication" msgstr "设置 HTTP-Basic 身份验证" -#: authentik/providers/proxy/models.py:87 +#: authentik/providers/proxy/models.py msgid "" "Set a custom HTTP-Basic Authentication header based on values from " "authentik." msgstr "根据来自 authentik 的值设置自定义 HTTP-Basic 身份验证标头。" -#: authentik/providers/proxy/models.py:92 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Username Key" msgstr "HTTP-Basic 用户名密钥" -#: authentik/providers/proxy/models.py:94 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the user part of the HTTP-Basic Header. If not" " set, the user's Email address is used." msgstr "用于 HTTP-Basic 标头用户名部分的用户/组属性。如果未设置,则使用用户的电子邮件地址。" -#: authentik/providers/proxy/models.py:100 +#: authentik/providers/proxy/models.py msgid "HTTP-Basic Password Key" msgstr "HTTP-Basic 密码密钥" -#: authentik/providers/proxy/models.py:101 +#: authentik/providers/proxy/models.py msgid "" "User/Group Attribute used for the password part of the HTTP-Basic Header." msgstr "用于 HTTP-Basic 标头的密码部分的用户/组属性。" -#: authentik/providers/proxy/models.py:155 +#: authentik/providers/proxy/models.py msgid "Proxy Provider" msgstr "代理提供程序" -#: authentik/providers/proxy/models.py:156 +#: authentik/providers/proxy/models.py msgid "Proxy Providers" msgstr "代理提供程序" -#: authentik/providers/radius/models.py:19 +#: authentik/providers/radius/models.py msgid "Shared secret between clients and server to hash packets." msgstr "在客户端和服务端之间共享密钥以哈希数据包。" -#: authentik/providers/radius/models.py:25 +#: authentik/providers/radius/models.py msgid "" "List of CIDRs (comma-separated) that clients can connect from. A more " "specific CIDR will match before a looser one. Clients connecting from a non-" "specified CIDR will be dropped." msgstr "允许客户端连接的 CIDR 列表(逗号分隔)。严格的 CIDR 会在宽松的之前匹配。来自 CIDR 范围外的客户端连接将会被丢弃。" -#: authentik/providers/radius/models.py:61 +#: authentik/providers/radius/models.py msgid "Radius Provider" msgstr "Radius 提供程序" -#: authentik/providers/radius/models.py:62 +#: authentik/providers/radius/models.py msgid "Radius Providers" msgstr "Radius 提供程序" -#: authentik/providers/saml/api/providers.py:261 +#: authentik/providers/saml/api/providers.py msgid "Invalid XML Syntax" msgstr "无效 XML 语法" -#: authentik/providers/saml/api/providers.py:271 +#: authentik/providers/saml/api/providers.py #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "导入元数据失败:%(message)s" -#: authentik/providers/saml/models.py:39 +#: authentik/providers/saml/models.py msgid "ACS URL" msgstr "ACS URL" -#: authentik/providers/saml/models.py:44 +#: authentik/providers/saml/models.py msgid "" "Value of the audience restriction field of the assertion. When left empty, " "no audience restriction will be added." msgstr "断言的 Audience 受限字段的值。留空时,不会添加 Audience 限制。" -#: authentik/providers/saml/models.py:48 +#: authentik/providers/saml/models.py msgid "Also known as EntityID" msgstr "也称为 EntityID" -#: authentik/providers/saml/models.py:52 +#: authentik/providers/saml/models.py msgid "Service Provider Binding" msgstr "服务提供程序绑定" -#: authentik/providers/saml/models.py:54 +#: authentik/providers/saml/models.py msgid "" "This determines how authentik sends the response back to the Service " "Provider." msgstr "确定 authentik 如何将响应发送回服务提供程序。" -#: authentik/providers/saml/models.py:64 +#: authentik/providers/saml/models.py msgid "NameID Property Mapping" msgstr "NameID 属性映射" -#: authentik/providers/saml/models.py:66 +#: authentik/providers/saml/models.py msgid "" "Configure how the NameID value will be created. When left empty, the " "NameIDPolicy of the incoming request will be considered" msgstr "配置如何创建 NameID 值。如果留空,将考虑传入请求的 NameIDPolicy" -#: authentik/providers/saml/models.py:75 +#: authentik/providers/saml/models.py msgid "" "Assertion valid not before current time + this value (Format: " "hours=-1;minutes=-2;seconds=-3)." msgstr "从当前时间经过多久时或之后,断言有效(格式:hours=-1;minutes=-2;seconds=-3)。" -#: authentik/providers/saml/models.py:83 +#: authentik/providers/saml/models.py msgid "" "Assertion not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,断言无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:92 +#: authentik/providers/saml/models.py msgid "" "Session not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "从当前时间经过多久时或之后,会话无效(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:151 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA1" msgstr "SHA1" -#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:152 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA256" msgstr "SHA256" -#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:153 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA384" msgstr "SHA384" -#: authentik/providers/saml/models.py:103 authentik/sources/saml/models.py:154 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "SHA512" msgstr "SHA512" -#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:161 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA1" msgstr "RSA-SHA1" -#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:162 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA256" msgstr "RSA-SHA256" -#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:163 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA384" msgstr "RSA-SHA384" -#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:164 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "RSA-SHA512" msgstr "RSA-SHA512" -#: authentik/providers/saml/models.py:114 authentik/sources/saml/models.py:165 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "DSA-SHA1" msgstr "DSA-SHA1" -#: authentik/providers/saml/models.py:125 authentik/sources/saml/models.py:131 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "" "When selected, incoming assertion's Signatures will be validated against " "this certificate. To allow unsigned Requests, leave on default." msgstr "选中后,传入断言的签名将根据此证书进行验证。要允许未签名的请求,请保留默认值。" -#: authentik/providers/saml/models.py:129 authentik/sources/saml/models.py:135 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Verification Certificate" msgstr "验证证书" -#: authentik/providers/saml/models.py:137 +#: authentik/providers/saml/models.py msgid "Keypair used to sign outgoing Responses going to the Service Provider." msgstr "密钥对,用于签署发送给服务提供程序的传出响应。" -#: authentik/providers/saml/models.py:139 authentik/sources/saml/models.py:145 +#: authentik/providers/saml/models.py authentik/sources/saml/models.py msgid "Signing Keypair" msgstr "签名密钥对" -#: authentik/providers/saml/models.py:143 +#: authentik/providers/saml/models.py msgid "Default relay_state value for IDP-initiated logins" msgstr "用于 IDP 发起登录的默认 relay_state 值" -#: authentik/providers/saml/models.py:172 +#: authentik/providers/saml/models.py msgid "SAML Provider" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:173 +#: authentik/providers/saml/models.py msgid "SAML Providers" msgstr "SAML 提供程序" -#: authentik/providers/saml/models.py:197 +#: authentik/providers/saml/models.py msgid "SAML Property Mapping" msgstr "SAML 属性映射" -#: authentik/providers/saml/models.py:198 +#: authentik/providers/saml/models.py msgid "SAML Property Mappings" msgstr "SAML 属性映射" -#: authentik/providers/scim/models.py:23 +#: authentik/providers/scim/models.py msgid "Base URL to SCIM requests, usually ends in /v2" msgstr "SCIM 请求的基础 URL,通常以 /v2 结尾" -#: authentik/providers/scim/models.py:24 +#: authentik/providers/scim/models.py msgid "Authentication token" msgstr "身份验证令牌" -#: authentik/providers/scim/models.py:30 authentik/sources/ldap/models.py:99 +#: authentik/providers/scim/models.py authentik/sources/ldap/models.py msgid "Property mappings used for group creation/updating." msgstr "用于创建/更新组的属性映射。" -#: authentik/providers/scim/models.py:72 +#: authentik/providers/scim/models.py msgid "SCIM Provider" msgstr "SCIM 提供程序" -#: authentik/providers/scim/models.py:73 +#: authentik/providers/scim/models.py msgid "SCIM Providers" msgstr "SCIM 提供程序" -#: authentik/providers/scim/models.py:93 +#: authentik/providers/scim/models.py msgid "SCIM Mapping" msgstr "SCIM 映射" -#: authentik/providers/scim/models.py:94 +#: authentik/providers/scim/models.py msgid "SCIM Mappings" msgstr "SCIM 映射" -#: authentik/providers/scim/tasks.py:58 +#: authentik/providers/scim/tasks.py msgid "Starting full SCIM sync" msgstr "开始全量 SCIM 同步" -#: authentik/providers/scim/tasks.py:68 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of users" msgstr "正在同步用户页面 %(page)d" -#: authentik/providers/scim/tasks.py:72 +#: authentik/providers/scim/tasks.py #, python-format msgid "Syncing page %(page)d of groups" msgstr "正在同步群组页面 %(page)d" -#: authentik/providers/scim/tasks.py:104 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync user %(user_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步用户 %(user_name)s 失败:%(error)s" -#: authentik/providers/scim/tasks.py:115 authentik/providers/scim/tasks.py:156 +#: authentik/providers/scim/tasks.py #, python-format msgid "Stopping sync due to error: %(error)s" msgstr "由于以下错误,同步停止:%(error)s" -#: authentik/providers/scim/tasks.py:145 +#: authentik/providers/scim/tasks.py #, python-format msgid "Failed to sync group %(group_name)s due to remote error: %(error)s" msgstr "由于远端错误,同步组 %(group_name)s 失败:%(error)s" -#: authentik/rbac/models.py:52 +#: authentik/rbac/models.py msgid "Role" msgstr "角色" -#: authentik/rbac/models.py:53 +#: authentik/rbac/models.py msgid "Roles" msgstr "角色" -#: authentik/rbac/models.py:67 +#: authentik/rbac/models.py msgid "System permission" msgstr "系统权限" -#: authentik/rbac/models.py:68 +#: authentik/rbac/models.py msgid "System permissions" msgstr "系统权限" -#: authentik/rbac/models.py:70 +#: authentik/rbac/models.py msgid "Can view system info" msgstr "可以查看系统信息" -#: authentik/rbac/models.py:71 +#: authentik/rbac/models.py msgid "Can view system tasks" msgstr "可以查看系统任务" -#: authentik/rbac/models.py:72 +#: authentik/rbac/models.py msgid "Can run system tasks" msgstr "可以运行系统任务" -#: authentik/rbac/models.py:73 +#: authentik/rbac/models.py msgid "Can access admin interface" msgstr "可以访问管理员界面" -#: authentik/rbac/models.py:74 +#: authentik/rbac/models.py msgid "Can view system settings" msgstr "可以查看系统设置" -#: authentik/rbac/models.py:75 +#: authentik/rbac/models.py msgid "Can edit system settings" msgstr "可以编辑系统设置" -#: authentik/recovery/management/commands/create_admin_group.py:13 +#: authentik/recovery/management/commands/create_admin_group.py msgid "Create admin group if the default group gets deleted." msgstr "如果默认组被删除,则创建管理员组。" -#: authentik/recovery/management/commands/create_recovery_key.py:17 +#: authentik/recovery/management/commands/create_recovery_key.py msgid "Create a Key which can be used to restore access to authentik." msgstr "创建一个密钥,可用于恢复对 authentik 的访问权限。" -#: authentik/recovery/views.py:25 +#: authentik/recovery/views.py msgid "Used recovery-link to authenticate." msgstr "已使用恢复链接进行身份验证。" -#: authentik/sources/ldap/models.py:42 +#: authentik/sources/ldap/models.py msgid "Server URI" msgstr "服务器 URI" -#: authentik/sources/ldap/models.py:51 +#: authentik/sources/ldap/models.py msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this" " keypair." msgstr "可选,根据此密钥对中的 CA 链验证 LDAP 服务器的证书。" -#: authentik/sources/ldap/models.py:60 +#: authentik/sources/ldap/models.py msgid "" "Client certificate to authenticate against the LDAP Server's Certificate." msgstr "基于 LDAP 服务端证书进行身份验证的客户端证书。" -#: authentik/sources/ldap/models.py:63 +#: authentik/sources/ldap/models.py msgid "Bind CN" msgstr "Bind CN" -#: authentik/sources/ldap/models.py:65 +#: authentik/sources/ldap/models.py msgid "Enable Start TLS" msgstr "启用 Start TLS" -#: authentik/sources/ldap/models.py:66 +#: authentik/sources/ldap/models.py msgid "Use Server URI for SNI verification" msgstr "SNI 验证时使用服务器 URI" -#: authentik/sources/ldap/models.py:68 +#: authentik/sources/ldap/models.py msgid "Base DN" msgstr "Base DN" -#: authentik/sources/ldap/models.py:70 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for User-queries." msgstr "添加到用户查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:71 +#: authentik/sources/ldap/models.py msgid "Addition User DN" msgstr "额外的用户 DN" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py msgid "Prepended to Base DN for Group-queries." msgstr "添加到组查询的 Base DN 起始处。" -#: authentik/sources/ldap/models.py:76 +#: authentik/sources/ldap/models.py msgid "Addition Group DN" msgstr "额外的组 DN" -#: authentik/sources/ldap/models.py:82 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Users." msgstr "将与此筛选器匹配的对象视为用户。" -#: authentik/sources/ldap/models.py:85 +#: authentik/sources/ldap/models.py msgid "Field which contains members of a group." msgstr "包含组成员的字段。" -#: authentik/sources/ldap/models.py:89 +#: authentik/sources/ldap/models.py msgid "Consider Objects matching this filter to be Groups." msgstr "将与此过滤器匹配的对象视为组。" -#: authentik/sources/ldap/models.py:92 +#: authentik/sources/ldap/models.py msgid "Field which contains a unique Identifier." msgstr "包含唯一标识符的字段。" -#: authentik/sources/ldap/models.py:106 +#: authentik/sources/ldap/models.py msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "当用户修改密码时,将其同步回 LDAP。仅可在单点 LDAP 源时启用。" -#: authentik/sources/ldap/models.py:249 +#: authentik/sources/ldap/models.py msgid "LDAP Source" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:250 +#: authentik/sources/ldap/models.py msgid "LDAP Sources" msgstr "LDAP 源" -#: authentik/sources/ldap/models.py:272 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mapping" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/models.py:273 +#: authentik/sources/ldap/models.py msgid "LDAP Property Mappings" msgstr "LDAP 属性映射" -#: authentik/sources/ldap/signals.py:53 +#: authentik/sources/ldap/signals.py msgid "Password does not match Active Directory Complexity." msgstr "密码与 Active Directory 复杂度不匹配。" -#: authentik/sources/oauth/clients/oauth2.py:69 +#: authentik/sources/oauth/clients/oauth2.py msgid "No token received." msgstr "未收到令牌。" -#: authentik/sources/oauth/models.py:25 +#: authentik/sources/oauth/models.py msgid "Request Token URL" msgstr "请求令牌 URL" -#: authentik/sources/oauth/models.py:27 +#: authentik/sources/oauth/models.py msgid "" "URL used to request the initial token. This URL is only required for OAuth " "1." msgstr "用于请求初始令牌的 URL。只有 OAuth 1 才需要此网址。" -#: authentik/sources/oauth/models.py:33 +#: authentik/sources/oauth/models.py msgid "Authorization URL" msgstr "授权 URL" -#: authentik/sources/oauth/models.py:34 +#: authentik/sources/oauth/models.py msgid "URL the user is redirect to to conest the flow." msgstr "为控制流程,使用户被重定向到的 URL" -#: authentik/sources/oauth/models.py:39 +#: authentik/sources/oauth/models.py msgid "Access Token URL" msgstr "访问令牌 URL" -#: authentik/sources/oauth/models.py:40 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to retrieve tokens." msgstr "authentik 用来获取令牌的 URL。" -#: authentik/sources/oauth/models.py:45 +#: authentik/sources/oauth/models.py msgid "Profile URL" msgstr "个人资料 URL" -#: authentik/sources/oauth/models.py:46 +#: authentik/sources/oauth/models.py msgid "URL used by authentik to get user information." msgstr "authentik 用来获取用户信息的 URL。" -#: authentik/sources/oauth/models.py:49 +#: authentik/sources/oauth/models.py msgid "Additional Scopes" msgstr "额外的作用域" -#: authentik/sources/oauth/models.py:108 +#: authentik/sources/oauth/models.py msgid "OAuth Source" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:109 +#: authentik/sources/oauth/models.py msgid "OAuth Sources" msgstr "OAuth 源" -#: authentik/sources/oauth/models.py:117 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Source" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:118 +#: authentik/sources/oauth/models.py msgid "GitHub OAuth Sources" msgstr "GitHub OAuth 源" -#: authentik/sources/oauth/models.py:126 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Source" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:127 +#: authentik/sources/oauth/models.py msgid "Twitch OAuth Sources" msgstr "Twitch OAuth 源" -#: authentik/sources/oauth/models.py:135 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Source" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:136 +#: authentik/sources/oauth/models.py msgid "Mailcow OAuth Sources" msgstr "Mailcow OAuth 源" -#: authentik/sources/oauth/models.py:144 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Source" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:145 +#: authentik/sources/oauth/models.py msgid "Twitter OAuth Sources" msgstr "Twitter OAuth 源" -#: authentik/sources/oauth/models.py:153 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Source" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:154 +#: authentik/sources/oauth/models.py msgid "Facebook OAuth Sources" msgstr "Facebook OAuth 源" -#: authentik/sources/oauth/models.py:162 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Source" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:163 +#: authentik/sources/oauth/models.py msgid "Discord OAuth Sources" msgstr "Discord OAuth 源" -#: authentik/sources/oauth/models.py:171 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Source" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:172 +#: authentik/sources/oauth/models.py msgid "Patreon OAuth Sources" msgstr "Patreon OAuth 源" -#: authentik/sources/oauth/models.py:180 +#: authentik/sources/oauth/models.py msgid "Google OAuth Source" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:181 +#: authentik/sources/oauth/models.py msgid "Google OAuth Sources" msgstr "Google OAuth 源" -#: authentik/sources/oauth/models.py:189 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Source" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:190 +#: authentik/sources/oauth/models.py msgid "Azure AD OAuth Sources" msgstr "Azure AD OAuth 源" -#: authentik/sources/oauth/models.py:198 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Source" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:199 +#: authentik/sources/oauth/models.py msgid "OpenID OAuth Sources" msgstr "OpenID OAuth 源" -#: authentik/sources/oauth/models.py:207 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Source" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:208 +#: authentik/sources/oauth/models.py msgid "Apple OAuth Sources" msgstr "Apple OAuth 源" -#: authentik/sources/oauth/models.py:216 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Source" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:217 +#: authentik/sources/oauth/models.py msgid "Okta OAuth Sources" msgstr "Okta OAuth 源" -#: authentik/sources/oauth/models.py:225 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Source" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:226 +#: authentik/sources/oauth/models.py msgid "Reddit OAuth Sources" msgstr "Reddit OAuth 源" -#: authentik/sources/oauth/models.py:248 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connection" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/models.py:249 +#: authentik/sources/oauth/models.py msgid "User OAuth Source Connections" msgstr "用户 OAuth 源连接" -#: authentik/sources/oauth/views/callback.py:101 +#: authentik/sources/oauth/views/callback.py #, python-format msgid "Authentication failed: %(reason)s" msgstr "身份验证失败:%(reason)s" -#: authentik/sources/plex/models.py:38 +#: authentik/sources/plex/models.py msgid "Client identifier used to talk to Plex." msgstr "用来与 Plex 通信的客户端标识符。" -#: authentik/sources/plex/models.py:45 +#: authentik/sources/plex/models.py msgid "" "Which servers a user has to be a member of to be granted access. Empty list " "allows every server." msgstr "用户必须是哪个服务器的成员才能获取权限。空列表允许任何服务器。" -#: authentik/sources/plex/models.py:51 +#: authentik/sources/plex/models.py msgid "Allow friends to authenticate, even if you don't share a server." msgstr "允许好友进行身份验证,即使您不共享服务器。" -#: authentik/sources/plex/models.py:53 +#: authentik/sources/plex/models.py msgid "Plex token used to check friends" msgstr "用于检查好友的 Plex 令牌" -#: authentik/sources/plex/models.py:96 +#: authentik/sources/plex/models.py msgid "Plex Source" msgstr "Plex 源" -#: authentik/sources/plex/models.py:97 +#: authentik/sources/plex/models.py msgid "Plex Sources" msgstr "Plex 源" -#: authentik/sources/plex/models.py:113 +#: authentik/sources/plex/models.py msgid "User Plex Source Connection" msgstr "用户 Plex 源连接" -#: authentik/sources/plex/models.py:114 +#: authentik/sources/plex/models.py msgid "User Plex Source Connections" msgstr "用户 Plex 源连接" -#: authentik/sources/saml/models.py:41 +#: authentik/sources/saml/models.py msgid "Redirect Binding" msgstr "重定向绑定" -#: authentik/sources/saml/models.py:42 +#: authentik/sources/saml/models.py msgid "POST Binding" msgstr "POST 绑定" -#: authentik/sources/saml/models.py:43 +#: authentik/sources/saml/models.py msgid "POST Binding with auto-confirmation" msgstr "带有自动确认功能的 POST 绑定" -#: authentik/sources/saml/models.py:71 +#: authentik/sources/saml/models.py msgid "Flow used before authentication." msgstr "身份验证之前使用的流程。" -#: authentik/sources/saml/models.py:78 +#: authentik/sources/saml/models.py msgid "Issuer" msgstr "颁发者" -#: authentik/sources/saml/models.py:79 +#: authentik/sources/saml/models.py msgid "Also known as Entity ID. Defaults the Metadata URL." msgstr "也称为 Entity ID。 默认为元数据 URL。" -#: authentik/sources/saml/models.py:83 +#: authentik/sources/saml/models.py msgid "SSO URL" msgstr "SSO URL" -#: authentik/sources/saml/models.py:84 +#: authentik/sources/saml/models.py msgid "URL that the initial Login request is sent to." msgstr "初始登录请求发送到的 URL。" -#: authentik/sources/saml/models.py:90 +#: authentik/sources/saml/models.py msgid "SLO URL" msgstr "SLO URL" -#: authentik/sources/saml/models.py:91 +#: authentik/sources/saml/models.py msgid "Optional URL if your IDP supports Single-Logout." msgstr "如果您的 IDP 支持单点登出,则为可选 URL。" -#: authentik/sources/saml/models.py:97 +#: authentik/sources/saml/models.py msgid "" "Allows authentication flows initiated by the IdP. This can be a security " "risk, as no validation of the request ID is done." msgstr "允许由 IdP 启动的身份验证流程。这可能存在安全风险,因为未对请求 ID 进行验证。" -#: authentik/sources/saml/models.py:105 +#: authentik/sources/saml/models.py msgid "" "NameID Policy sent to the IdP. Can be unset, in which case no Policy is " "sent." msgstr "发送给 IdP 的 NameID 策略。可以取消设置,此时不会发送任何策略。" -#: authentik/sources/saml/models.py:116 +#: authentik/sources/saml/models.py msgid "Delete temporary users after" msgstr "多久后删除临时用户" -#: authentik/sources/saml/models.py:119 +#: authentik/sources/saml/models.py msgid "" "Time offset when temporary users should be deleted. This only applies if " "your IDP uses the NameID Format 'transient', and the user doesn't log out " @@ -2060,321 +2060,320 @@ msgstr "" "删除临时用户的时间偏移。这仅适用于您的 IDP 使用 NameID 格式 'transient' " "且用户未手动登出的情况。(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/sources/saml/models.py:143 +#: authentik/sources/saml/models.py msgid "" "Keypair used to sign outgoing Responses going to the Identity Provider." msgstr "密钥对,用于签署发送给身份提供程序的传出响应。" -#: authentik/sources/saml/models.py:227 +#: authentik/sources/saml/models.py msgid "SAML Source" msgstr "SAML 源" -#: authentik/sources/saml/models.py:228 +#: authentik/sources/saml/models.py msgid "SAML Sources" msgstr "SAML 源" -#: authentik/sources/saml/models.py:243 +#: authentik/sources/saml/models.py msgid "User SAML Source Connection" msgstr "用户 SAML 源连接" -#: authentik/sources/saml/models.py:244 +#: authentik/sources/saml/models.py msgid "User SAML Source Connections" msgstr "用户 SAML 源连接" -#: authentik/stages/authenticator_duo/models.py:80 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stage" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:81 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Authenticator Setup Stages" msgstr "Duo 身份验证器设置阶段" -#: authentik/stages/authenticator_duo/models.py:104 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Device" msgstr "Duo 设备" -#: authentik/stages/authenticator_duo/models.py:105 +#: authentik/stages/authenticator_duo/models.py msgid "Duo Devices" msgstr "Duo 设备" -#: authentik/stages/authenticator_sms/models.py:58 +#: authentik/stages/authenticator_sms/models.py msgid "" "When enabled, the Phone number is only used during enrollment to verify the " "users authenticity. Only a hash of the phone number is saved to ensure it is" " not reused in the future." msgstr "启用时,电话号码仅在注册期间用于验证用户的真实性。仅保存电话号码的哈希,以确保将来不会重复使用。" -#: authentik/stages/authenticator_sms/models.py:69 +#: authentik/stages/authenticator_sms/models.py msgid "Optionally modify the payload being sent to custom providers." msgstr "可选地,修改发送到自定义提供程序的载荷。" -#: authentik/stages/authenticator_sms/models.py:82 +#: authentik/stages/authenticator_sms/models.py #, python-format msgid "Use this code to authenticate in authentik: %(token)s" msgstr "使用此代码在 authentik 中验证身份:%(token)s" -#: authentik/stages/authenticator_sms/models.py:181 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stage" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:182 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Authenticator Setup Stages" msgstr "短信身份验证器设置阶段" -#: authentik/stages/authenticator_sms/models.py:227 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Device" msgstr "短信设备" -#: authentik/stages/authenticator_sms/models.py:228 +#: authentik/stages/authenticator_sms/models.py msgid "SMS Devices" msgstr "短信设备" -#: authentik/stages/authenticator_sms/stage.py:58 -#: authentik/stages/authenticator_totp/stage.py:42 -#: authentik/stages/authenticator_totp/stage.py:45 +#: authentik/stages/authenticator_sms/stage.py +#: authentik/stages/authenticator_totp/stage.py msgid "Code does not match" msgstr "代码不匹配" -#: authentik/stages/authenticator_sms/stage.py:74 +#: authentik/stages/authenticator_sms/stage.py msgid "Invalid phone number" msgstr "无效电话号码" -#: authentik/stages/authenticator_static/models.py:53 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stage" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:54 +#: authentik/stages/authenticator_static/models.py msgid "Static Authenticator Setup Stages" msgstr "静态身份验证器设置阶段" -#: authentik/stages/authenticator_static/models.py:99 +#: authentik/stages/authenticator_static/models.py msgid "Static Device" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:100 +#: authentik/stages/authenticator_static/models.py msgid "Static Devices" msgstr "静态设备" -#: authentik/stages/authenticator_static/models.py:130 +#: authentik/stages/authenticator_static/models.py msgid "Static Token" msgstr "静态令牌" -#: authentik/stages/authenticator_static/models.py:131 +#: authentik/stages/authenticator_static/models.py msgid "Static Tokens" msgstr "静态令牌" -#: authentik/stages/authenticator_totp/models.py:26 +#: authentik/stages/authenticator_totp/models.py msgid "6 digits, widely compatible" msgstr "6 位数字,广泛兼容" -#: authentik/stages/authenticator_totp/models.py:27 +#: authentik/stages/authenticator_totp/models.py msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "8 位数字,与 Google 身份验证器等应用不兼容" -#: authentik/stages/authenticator_totp/models.py:63 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stage" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:64 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Authenticator Setup Stages" msgstr "TOTP 身份验证器设置阶段" -#: authentik/stages/authenticator_totp/models.py:245 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Device" msgstr "TOTP 设备" -#: authentik/stages/authenticator_totp/models.py:246 +#: authentik/stages/authenticator_totp/models.py msgid "TOTP Devices" msgstr "TOTP 设备" -#: authentik/stages/authenticator_validate/challenge.py:124 +#: authentik/stages/authenticator_validate/challenge.py msgid "Invalid Token" msgstr "无效令牌" -#: authentik/stages/authenticator_validate/models.py:18 +#: authentik/stages/authenticator_validate/models.py msgid "Static" msgstr "静态" -#: authentik/stages/authenticator_validate/models.py:19 +#: authentik/stages/authenticator_validate/models.py msgid "TOTP" msgstr "TOTP" -#: authentik/stages/authenticator_validate/models.py:20 +#: authentik/stages/authenticator_validate/models.py msgid "WebAuthn" msgstr "WebAuthn" -#: authentik/stages/authenticator_validate/models.py:21 +#: authentik/stages/authenticator_validate/models.py msgid "Duo" msgstr "Duo" -#: authentik/stages/authenticator_validate/models.py:22 +#: authentik/stages/authenticator_validate/models.py msgid "SMS" msgstr "短信" -#: authentik/stages/authenticator_validate/models.py:49 +#: authentik/stages/authenticator_validate/models.py msgid "" "Stages used to configure Authenticator when user doesn't have any compatible" " devices. After this configuration Stage passes, the user is not prompted " "again." msgstr "当用户没有任何兼容的设备时,用来配置身份验证器的阶段。此阶段通过后,将不再请求此用户。" -#: authentik/stages/authenticator_validate/models.py:56 +#: authentik/stages/authenticator_validate/models.py msgid "Device classes which can be used to authenticate" msgstr "可用于进行身份验证的设备类型" -#: authentik/stages/authenticator_validate/models.py:64 +#: authentik/stages/authenticator_validate/models.py msgid "" "If any of the user's device has been used within this threshold, this stage " "will be skipped" msgstr "如果用户的任意设备在此期限内被使用过,此阶段会被跳过。" -#: authentik/stages/authenticator_validate/models.py:70 +#: authentik/stages/authenticator_validate/models.py msgid "Enforce user verification for WebAuthn devices." msgstr "对 WebAuthn 设备强制用户验证。" -#: authentik/stages/authenticator_validate/models.py:92 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stage" msgstr "身份验证器验证阶段" -#: authentik/stages/authenticator_validate/models.py:93 +#: authentik/stages/authenticator_validate/models.py msgid "Authenticator Validation Stages" msgstr "身份验证器验证阶段" -#: authentik/stages/authenticator_webauthn/models.py:113 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stage" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:114 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Authenticator Setup Stages" msgstr "WebAuthn 身份验证器设置阶段" -#: authentik/stages/authenticator_webauthn/models.py:152 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Device" msgstr "WebAuthn 设备" -#: authentik/stages/authenticator_webauthn/models.py:153 +#: authentik/stages/authenticator_webauthn/models.py msgid "WebAuthn Devices" msgstr "WebAuthn 设备" -#: authentik/stages/captcha/models.py:14 +#: authentik/stages/captcha/models.py msgid "Public key, acquired your captcha Provider." msgstr "公钥,从您的验证码提供商处取得。" -#: authentik/stages/captcha/models.py:15 +#: authentik/stages/captcha/models.py msgid "Private key, acquired your captcha Provider." msgstr "私钥,从您的验证码提供商处取得。" -#: authentik/stages/captcha/models.py:37 +#: authentik/stages/captcha/models.py msgid "Captcha Stage" msgstr "验证码阶段" -#: authentik/stages/captcha/models.py:38 +#: authentik/stages/captcha/models.py msgid "Captcha Stages" msgstr "验证码阶段" -#: authentik/stages/consent/models.py:30 +#: authentik/stages/consent/models.py msgid "" "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)." msgstr "经过多少偏移量后同意授权过期。(格式:hours=1;minutes=2;seconds=3)。" -#: authentik/stages/consent/models.py:50 +#: authentik/stages/consent/models.py msgid "Consent Stage" msgstr "同意授权阶段" -#: authentik/stages/consent/models.py:51 +#: authentik/stages/consent/models.py msgid "Consent Stages" msgstr "同意授权阶段" -#: authentik/stages/consent/models.py:72 +#: authentik/stages/consent/models.py msgid "User Consent" msgstr "用户同意授权" -#: authentik/stages/consent/models.py:73 +#: authentik/stages/consent/models.py msgid "User Consents" msgstr "用户同意授权" -#: authentik/stages/deny/models.py:33 +#: authentik/stages/deny/models.py msgid "Deny Stage" msgstr "拒绝阶段" -#: authentik/stages/deny/models.py:34 +#: authentik/stages/deny/models.py msgid "Deny Stages" msgstr "拒绝阶段" -#: authentik/stages/dummy/models.py:35 +#: authentik/stages/dummy/models.py msgid "Dummy Stage" msgstr "虚拟阶段" -#: authentik/stages/dummy/models.py:36 +#: authentik/stages/dummy/models.py msgid "Dummy Stages" msgstr "虚拟阶段" -#: authentik/stages/email/models.py:27 +#: authentik/stages/email/models.py msgid "Password Reset" msgstr "密码重置" -#: authentik/stages/email/models.py:31 +#: authentik/stages/email/models.py msgid "Account Confirmation" msgstr "账户确认" -#: authentik/stages/email/models.py:60 +#: authentik/stages/email/models.py msgid "" "When enabled, global Email connection settings will be used and connection " "settings below will be ignored." msgstr "启用后,将使用全局电子邮件连接设置,下面的连接设置将被忽略。" -#: authentik/stages/email/models.py:75 +#: authentik/stages/email/models.py msgid "Activate users upon completion of stage." msgstr "完成阶段后激活用户。" -#: authentik/stages/email/models.py:79 +#: authentik/stages/email/models.py msgid "Time in minutes the token sent is valid." msgstr "发出令牌的有效时间(单位为分钟)。" -#: authentik/stages/email/models.py:133 +#: authentik/stages/email/models.py msgid "Email Stage" msgstr "电子邮件阶段" -#: authentik/stages/email/models.py:134 +#: authentik/stages/email/models.py msgid "Email Stages" msgstr "电子邮件阶段" -#: authentik/stages/email/stage.py:127 +#: authentik/stages/email/stage.py msgid "Exception occurred while rendering E-mail template" msgstr "渲染电子邮件模板时发生异常" -#: authentik/stages/email/stage.py:141 +#: authentik/stages/email/stage.py msgid "Successfully verified Email." msgstr "已成功验证电子邮件。" -#: authentik/stages/email/stage.py:148 authentik/stages/email/stage.py:174 +#: authentik/stages/email/stage.py msgid "No pending user." msgstr "没有待处理的用户。" -#: authentik/stages/email/stage.py:164 +#: authentik/stages/email/stage.py msgid "Email sent." msgstr "电子邮件已发出。" -#: authentik/stages/email/stage.py:177 +#: authentik/stages/email/stage.py msgid "Email Successfully sent." msgstr "成功发送电子邮件。" -#: authentik/stages/email/templates/email/account_confirmation.html:10 -#: authentik/stages/email/templates/email/account_confirmation.txt:1 +#: authentik/stages/email/templates/email/account_confirmation.html +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "Welcome!" msgstr "欢迎!" -#: authentik/stages/email/templates/email/account_confirmation.html:19 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just press the button below." msgstr "我们很高兴您能开始使用。首先,您需要确认您的账户。只需点击下面的按钮。" -#: authentik/stages/email/templates/email/account_confirmation.html:24 +#: authentik/stages/email/templates/email/account_confirmation.html msgid "Confirm Account" msgstr "确认账户" -#: authentik/stages/email/templates/email/account_confirmation.html:36 +#: authentik/stages/email/templates/email/account_confirmation.html #, python-format msgid "" "\n" @@ -2385,13 +2384,13 @@ msgstr "" " 如果按钮无效,请复制并在浏览器中粘贴以下链接:%(url)s\n" " " -#: authentik/stages/email/templates/email/account_confirmation.txt:3 +#: authentik/stages/email/templates/email/account_confirmation.txt msgid "" "We're excited to have you get started. First, you need to confirm your " "account. Just open the link below." msgstr "我们很高兴您能开始使用。首先,您需要确认您的账户。只需打开下面的链接。" -#: authentik/stages/email/templates/email/event_notification.html:46 +#: authentik/stages/email/templates/email/event_notification.html #, python-format msgid "" "\n" @@ -2402,19 +2401,19 @@ msgstr "" " 此邮件由通知递送 %(name)s 发送。\n" " " -#: authentik/stages/email/templates/email/event_notification.txt:1 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Dear authentik user," msgstr "亲爱的 authentik 用户," -#: authentik/stages/email/templates/email/event_notification.txt:3 +#: authentik/stages/email/templates/email/event_notification.txt msgid "The following notification was created:" msgstr "以下通知已创建:" -#: authentik/stages/email/templates/email/event_notification.txt:8 +#: authentik/stages/email/templates/email/event_notification.txt msgid "Additional attributes:" msgstr "额外属性:" -#: authentik/stages/email/templates/email/event_notification.txt:13 +#: authentik/stages/email/templates/email/event_notification.txt #, python-format msgid "" "\n" @@ -2423,7 +2422,7 @@ msgstr "" "\n" "此邮件由通知递送 %(name)s 发送。\n" -#: authentik/stages/email/templates/email/password_reset.html:10 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2434,7 +2433,7 @@ msgstr "" " %(username)s 您好,\n" " " -#: authentik/stages/email/templates/email/password_reset.html:21 +#: authentik/stages/email/templates/email/password_reset.html msgid "" "\n" " You recently requested to change your password for your authentik account. Use the button below to set a new password.\n" @@ -2444,7 +2443,7 @@ msgstr "" " 您最近请求更改您的 authentik 账户密码。使用下面的按钮设置新密码。\n" " " -#: authentik/stages/email/templates/email/password_reset.html:39 +#: authentik/stages/email/templates/email/password_reset.html #, python-format msgid "" "\n" @@ -2455,12 +2454,12 @@ msgstr "" " 如果您没有请求更改密码,请忽略此电子邮件。上面的链接在 %(expires)s 内有效。\n" " " -#: authentik/stages/email/templates/email/password_reset.txt:1 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "Hi %(username)s," msgstr "您好 %(username)s," -#: authentik/stages/email/templates/email/password_reset.txt:3 +#: authentik/stages/email/templates/email/password_reset.txt msgid "" "\n" "You recently requested to change your password for your authentik account. Use the link below to set a new password.\n" @@ -2468,7 +2467,7 @@ msgstr "" "\n" "您最近请求更改您的 authentik 账户密码。使用下面的链接设置新密码。\n" -#: authentik/stages/email/templates/email/password_reset.txt:7 +#: authentik/stages/email/templates/email/password_reset.txt #, python-format msgid "" "\n" @@ -2477,11 +2476,11 @@ msgstr "" "\n" "如果您没有请求更改密码,请忽略此电子邮件。上面的链接在 %(expires)s 内有效。\n" -#: authentik/stages/email/templates/email/setup.html:9 +#: authentik/stages/email/templates/email/setup.html msgid "authentik Test-Email" msgstr "authentik 测试电子邮件" -#: authentik/stages/email/templates/email/setup.html:17 +#: authentik/stages/email/templates/email/setup.html msgid "" "\n" " This is a test email to inform you, that you've successfully configured authentik emails.\n" @@ -2491,7 +2490,7 @@ msgstr "" " 这是一封测试电子邮件,用于通知您已成功配置 authentik 电子邮件。\n" " " -#: authentik/stages/email/templates/email/setup.txt:2 +#: authentik/stages/email/templates/email/setup.txt msgid "" "\n" "This is a test email to inform you, that you've successfully configured authentik emails.\n" @@ -2499,263 +2498,263 @@ msgstr "" "\n" "这是一封测试电子邮件,用于通知您已成功配置 authentik 电子邮件。\n" -#: authentik/stages/identification/api.py:21 +#: authentik/stages/identification/api.py msgid "When no user fields are selected, at least one source must be selected" msgstr "如果未选择用户字段,则至少要选择一个源" -#: authentik/stages/identification/models.py:29 +#: authentik/stages/identification/models.py msgid "" "Fields of the user object to match against. (Hold shift to select multiple " "options)" msgstr "用来匹配的用户对象字段。(按住 Shift 多选)" -#: authentik/stages/identification/models.py:47 +#: authentik/stages/identification/models.py msgid "When enabled, user fields are matched regardless of their casing." msgstr "启用后,无论大小写如何,都将匹配用户字段。" -#: authentik/stages/identification/models.py:52 +#: authentik/stages/identification/models.py msgid "" "When a valid username/email has been entered, and this option is enabled, " "the user's username and avatar will be shown. Otherwise, the text that the " "user entered will be shown" msgstr "如果输入了有效的用户名/电子邮箱,并且启用了此选项,则会显示用户的用户名和头像。否则,将显示用户输入的文本" -#: authentik/stages/identification/models.py:60 +#: authentik/stages/identification/models.py msgid "" "When enabled, the stage will succeed and continue even when incorrect user " "info is entered." msgstr "启用时,即使输入错误的用户信息,此阶段也会成功并继续。" -#: authentik/stages/identification/models.py:72 +#: authentik/stages/identification/models.py msgid "Optional enrollment flow, which is linked at the bottom of the page." msgstr "可选注册流程,链接在页面底部。" -#: authentik/stages/identification/models.py:81 +#: authentik/stages/identification/models.py msgid "Optional recovery flow, which is linked at the bottom of the page." msgstr "可选的恢复流程,链接在页面底部。" -#: authentik/stages/identification/models.py:90 +#: authentik/stages/identification/models.py msgid "Optional passwordless flow, which is linked at the bottom of the page." msgstr "可选的无密码流程,链接在页面底部。" -#: authentik/stages/identification/models.py:94 +#: authentik/stages/identification/models.py msgid "Specify which sources should be shown." msgstr "指定应显示哪些源。" -#: authentik/stages/identification/models.py:115 +#: authentik/stages/identification/models.py msgid "Identification Stage" msgstr "识别阶段" -#: authentik/stages/identification/models.py:116 +#: authentik/stages/identification/models.py msgid "Identification Stages" msgstr "识别阶段" -#: authentik/stages/identification/stage.py:189 +#: authentik/stages/identification/stage.py msgid "Log in" msgstr "登录" -#: authentik/stages/identification/stage.py:190 +#: authentik/stages/identification/stage.py msgid "Continue" msgstr "继续" -#: authentik/stages/invitation/models.py:22 +#: authentik/stages/invitation/models.py msgid "" "If this flag is set, this Stage will jump to the next Stage when no " "Invitation is given. By default this Stage will cancel the Flow when no " "invitation is given." msgstr "如果设置了此标志,则当没有发出邀请时,此阶段将跳转到下一个阶段。默认情况下,当没有发出邀请时,此阶段将取消流程。" -#: authentik/stages/invitation/models.py:45 +#: authentik/stages/invitation/models.py msgid "Invitation Stage" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:46 +#: authentik/stages/invitation/models.py msgid "Invitation Stages" msgstr "邀请阶段" -#: authentik/stages/invitation/models.py:61 +#: authentik/stages/invitation/models.py msgid "When set, only the configured flow can use this invitation." msgstr "设置时,只有配置的流程可以使用此邀请。" -#: authentik/stages/invitation/models.py:65 +#: authentik/stages/invitation/models.py msgid "When enabled, the invitation will be deleted after usage." msgstr "启用后,邀请将在使用后被删除。" -#: authentik/stages/invitation/models.py:72 +#: authentik/stages/invitation/models.py msgid "Optional fixed data to enforce on user enrollment." msgstr "在用户注册时强制设置的可选固定数据。" -#: authentik/stages/invitation/models.py:85 +#: authentik/stages/invitation/models.py msgid "Invitation" msgstr "邀请" -#: authentik/stages/invitation/models.py:86 +#: authentik/stages/invitation/models.py msgid "Invitations" msgstr "邀请" -#: authentik/stages/invitation/stage.py:63 +#: authentik/stages/invitation/stage.py msgid "Invalid invite/invite not found" msgstr "邀请无效/未找到" -#: authentik/stages/password/models.py:21 +#: authentik/stages/password/models.py msgid "User database + standard password" msgstr "用户数据库 + 标准密码" -#: authentik/stages/password/models.py:25 +#: authentik/stages/password/models.py msgid "User database + app passwords" msgstr "用户数据库 + 应用程序密码" -#: authentik/stages/password/models.py:29 +#: authentik/stages/password/models.py msgid "User database + LDAP password" msgstr "用户数据库 + LDAP 密码" -#: authentik/stages/password/models.py:39 +#: authentik/stages/password/models.py msgid "Selection of backends to test the password against." msgstr "选择用于测试密码的后端。" -#: authentik/stages/password/models.py:44 +#: authentik/stages/password/models.py msgid "" "How many attempts a user has before the flow is canceled. To lock the user " "out, use a reputation policy and a user_write stage." msgstr "在取消流程之前,用户可以尝试多少次。要锁定用户,请使用信誉策略和 user_write 阶段。" -#: authentik/stages/password/models.py:76 +#: authentik/stages/password/models.py msgid "Password Stage" msgstr "密码阶段" -#: authentik/stages/password/models.py:77 +#: authentik/stages/password/models.py msgid "Password Stages" msgstr "密码阶段" -#: authentik/stages/password/stage.py:125 +#: authentik/stages/password/stage.py msgid "Invalid password" msgstr "无效密码" -#: authentik/stages/prompt/models.py:44 +#: authentik/stages/prompt/models.py msgid "Text: Simple Text input" msgstr "文本:简单文本输入" -#: authentik/stages/prompt/models.py:46 +#: authentik/stages/prompt/models.py msgid "Text area: Multiline Text Input." msgstr "文本框:多行文本输入。" -#: authentik/stages/prompt/models.py:49 +#: authentik/stages/prompt/models.py msgid "Text (read-only): Simple Text input, but cannot be edited." msgstr "文本(只读):简单文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:53 +#: authentik/stages/prompt/models.py msgid "Text area (read-only): Multiline Text input, but cannot be edited." msgstr "文本框(只读):多行文本输入,但无法编辑。" -#: authentik/stages/prompt/models.py:59 +#: authentik/stages/prompt/models.py msgid "" "Username: Same as Text input, but checks for and prevents duplicate " "usernames." msgstr "用户名:与文本输入相同,但检查并防止用户名重复。" -#: authentik/stages/prompt/models.py:61 +#: authentik/stages/prompt/models.py msgid "Email: Text field with Email type." msgstr "电子邮箱:电子邮箱类型的文本字段。" -#: authentik/stages/prompt/models.py:65 +#: authentik/stages/prompt/models.py msgid "" "Password: Masked input, multiple inputs of this type on the same prompt need" " to be identical." msgstr "密码:屏蔽显示输入内容,多个此类型的输入如果在同一个输入项下,则内容需要相同。" -#: authentik/stages/prompt/models.py:72 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a group of radio buttons." msgstr "显示为一组单选按钮的固定选项字段。" -#: authentik/stages/prompt/models.py:74 +#: authentik/stages/prompt/models.py msgid "Fixed choice field rendered as a dropdown." msgstr "显示为下拉框的固定选项字段。" -#: authentik/stages/prompt/models.py:81 +#: authentik/stages/prompt/models.py msgid "" "File: File upload for arbitrary files. File content will be available in " "flow context as data-URI" msgstr "文件:任意文件上传。文件内容将在流程上下文中以 data-URI 形式提供" -#: authentik/stages/prompt/models.py:86 +#: authentik/stages/prompt/models.py msgid "Separator: Static Separator Line" msgstr "分隔符:静态分隔线" -#: authentik/stages/prompt/models.py:87 +#: authentik/stages/prompt/models.py msgid "Hidden: Hidden field, can be used to insert data into form." msgstr "隐藏:隐藏字段,可用于将数据插入表单。" -#: authentik/stages/prompt/models.py:88 +#: authentik/stages/prompt/models.py msgid "Static: Static value, displayed as-is." msgstr "静态:静态值,按原样显示。" -#: authentik/stages/prompt/models.py:90 +#: authentik/stages/prompt/models.py msgid "authentik: Selection of locales authentik supports" msgstr "authentik:选择 authentik 支持的语言环境" -#: authentik/stages/prompt/models.py:117 +#: authentik/stages/prompt/models.py msgid "Name of the form field, also used to store the value" msgstr "表单域的名称,也用于存储值" -#: authentik/stages/prompt/models.py:125 +#: authentik/stages/prompt/models.py msgid "" "Optionally provide a short hint that describes the expected input value. " "When creating a fixed choice field, enable interpreting as expression and " "return a list to return multiple choices." msgstr "可选的简短提示,用来描述期望的输入值。在创建固定选项字段时,启用以表达式解释,并返回多个选项的列表。" -#: authentik/stages/prompt/models.py:133 +#: authentik/stages/prompt/models.py msgid "" "Optionally pre-fill the input with an initial value. When creating a fixed " "choice field, enable interpreting as expression and return a list to return " "multiple default choices." msgstr "可选的预设输入初始值。在创建固定选项字段时,启用以表达式解释,并返回多个默认选项的列表。" -#: authentik/stages/prompt/models.py:322 +#: authentik/stages/prompt/models.py msgid "Prompt" msgstr "输入" -#: authentik/stages/prompt/models.py:323 +#: authentik/stages/prompt/models.py msgid "Prompts" msgstr "输入" -#: authentik/stages/prompt/models.py:350 +#: authentik/stages/prompt/models.py msgid "Prompt Stage" msgstr "输入阶段" -#: authentik/stages/prompt/models.py:351 +#: authentik/stages/prompt/models.py msgid "Prompt Stages" msgstr "输入阶段" -#: authentik/stages/prompt/stage.py:109 +#: authentik/stages/prompt/stage.py msgid "Passwords don't match." msgstr "密码不匹配。" -#: authentik/stages/user_delete/models.py:31 +#: authentik/stages/user_delete/models.py msgid "User Delete Stage" msgstr "用户删除阶段" -#: authentik/stages/user_delete/models.py:32 +#: authentik/stages/user_delete/models.py msgid "User Delete Stages" msgstr "用户删除阶段" -#: authentik/stages/user_delete/stage.py:19 +#: authentik/stages/user_delete/stage.py msgid "No Pending User." msgstr "没有待处理的用户。" -#: authentik/stages/user_login/models.py:47 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured network" msgstr "将此阶段创建的会话与配置的网络绑定" -#: authentik/stages/user_login/models.py:52 +#: authentik/stages/user_login/models.py msgid "Bind sessions created by this stage to the configured GeoIP location" msgstr "将此阶段创建的会话与配置的 GeoIP 位置绑定" -#: authentik/stages/user_login/models.py:55 +#: authentik/stages/user_login/models.py msgid "Terminate all other sessions of the user logging in." msgstr "终止用户登录的所有其他会话。" -#: authentik/stages/user_login/models.py:61 +#: authentik/stages/user_login/models.py msgid "" "Offset the session will be extended by when the user picks the remember me " "option. Default of 0 means that the remember me option will not be shown. " @@ -2764,113 +2763,112 @@ msgstr "" "当用户选择“记住我”选项时,会话将会延长的时间。默认值 0 " "表示不显示“记住我”选项。(格式:hours=-1;minutes=-2;seconds=-3)" -#: authentik/stages/user_login/models.py:84 +#: authentik/stages/user_login/models.py msgid "User Login Stage" msgstr "用户登录阶段" -#: authentik/stages/user_login/models.py:85 +#: authentik/stages/user_login/models.py msgid "User Login Stages" msgstr "用户登录阶段" -#: authentik/stages/user_login/stage.py:86 +#: authentik/stages/user_login/stage.py msgid "No Pending user to login." msgstr "没有待定用户可以登录。" -#: authentik/stages/user_login/stage.py:113 +#: authentik/stages/user_login/stage.py msgid "Successfully logged in!" msgstr "已成功登录!" -#: authentik/stages/user_logout/models.py:30 +#: authentik/stages/user_logout/models.py msgid "User Logout Stage" msgstr "用户登出阶段" -#: authentik/stages/user_logout/models.py:31 +#: authentik/stages/user_logout/models.py msgid "User Logout Stages" msgstr "用户登出阶段" -#: authentik/stages/user_write/models.py:31 +#: authentik/stages/user_write/models.py msgid "When set, newly created users are inactive and cannot login." msgstr "设置后,新创建的用户将处于未激活状态,且无法登录。" -#: authentik/stages/user_write/models.py:39 +#: authentik/stages/user_write/models.py msgid "Optionally add newly created users to this group." msgstr "可选,将新创建的用户添加到此组。" -#: authentik/stages/user_write/models.py:68 +#: authentik/stages/user_write/models.py msgid "User Write Stage" msgstr "用户写入阶段" -#: authentik/stages/user_write/models.py:69 +#: authentik/stages/user_write/models.py msgid "User Write Stages" msgstr "用户写入阶段" -#: authentik/stages/user_write/stage.py:142 +#: authentik/stages/user_write/stage.py msgid "No Pending data." msgstr "没有待处理的数据。" -#: authentik/stages/user_write/stage.py:148 +#: authentik/stages/user_write/stage.py msgid "No user found and can't create new user." msgstr "未找到用户并且无法创建新用户。" -#: authentik/stages/user_write/stage.py:165 -#: authentik/stages/user_write/stage.py:179 +#: authentik/stages/user_write/stage.py msgid "Failed to update user. Please try again later." msgstr "更新用户失败。请稍后重试。" -#: authentik/tenants/models.py:30 +#: authentik/tenants/models.py msgid "" "Schema name must start with t_, only contain lowercase letters and numbers " "and be less than 63 characters." msgstr "模式名称必须以 t_ 开始,只能包含小写字母和数字,并且少于 63 个字符。" -#: authentik/tenants/models.py:50 +#: authentik/tenants/models.py msgid "Configure how authentik should show avatars for users." msgstr "配置 authentik 应该如何显示用户头像。" -#: authentik/tenants/models.py:54 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their name." msgstr "启用用户修改自己名称的能力。" -#: authentik/tenants/models.py:57 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their email address." msgstr "启用用户修改自己电子邮件地址的能力。" -#: authentik/tenants/models.py:60 +#: authentik/tenants/models.py msgid "Enable the ability for users to change their username." msgstr "启用用户修改自己用户名的能力。" -#: authentik/tenants/models.py:66 +#: authentik/tenants/models.py msgid "" "Events will be deleted after this duration.(Format: " "weeks=3;days=2;hours=3,seconds=2)." msgstr "事件会在多久后被删除。(格式:weeks=3;days=2;hours=3,seconds=2)。" -#: authentik/tenants/models.py:70 +#: authentik/tenants/models.py msgid "The option configures the footer links on the flow executor pages." msgstr "此选项配置流程执行器页面上的页脚链接。" -#: authentik/tenants/models.py:76 +#: authentik/tenants/models.py msgid "" "When enabled, all the events caused by a user will be deleted upon the " "user's deletion." msgstr "启用时,所有由用户造成的事件会在相应用户被删除时一并删除。" -#: authentik/tenants/models.py:82 +#: authentik/tenants/models.py msgid "Globally enable/disable impersonation." msgstr "全局启用/禁用模拟身份。" -#: authentik/tenants/models.py:105 +#: authentik/tenants/models.py msgid "Tenant" msgstr "租户" -#: authentik/tenants/models.py:106 +#: authentik/tenants/models.py msgid "Tenants" msgstr "租户" -#: authentik/tenants/models.py:126 +#: authentik/tenants/models.py msgid "Domain" msgstr "域名" -#: authentik/tenants/models.py:127 +#: authentik/tenants/models.py msgid "Domains" msgstr "域名"