From 05a46492825df0100b7aa81c9d02d6b9c86773f8 Mon Sep 17 00:00:00 2001 From: Jens L Date: Sat, 2 Sep 2023 18:59:17 +0200 Subject: [PATCH 01/19] web: replace ampersand (#6737) Signed-off-by: Jens Langhammer --- locale/en/LC_MESSAGES/django.po | 26 +++++-- web/src/admin/AdminInterface.ts | 6 +- web/src/admin/flows/BoundStagesList.ts | 2 +- web/src/admin/policies/BoundPoliciesList.ts | 2 +- web/src/admin/sources/SourceListPage.ts | 2 +- web/xliff/de.xlf | 30 +++----- web/xliff/en.xlf | 32 +++----- web/xliff/es.xlf | 30 +++----- web/xliff/fr_FR.xlf | 32 +++----- web/xliff/pl.xlf | 30 +++----- web/xliff/pseudo-LOCALE.xlf | 32 +++----- web/xliff/tr.xlf | 30 +++----- web/xliff/zh-Hans.xlf | 83 +++++++++------------ web/xliff/zh-Hant.xlf | 30 +++----- web/xliff/zh_TW.xlf | 30 +++----- 15 files changed, 170 insertions(+), 227 deletions(-) diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index cf9509f65..8d98b8fdd 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: 2023-08-30 17:44+0000\n" +"POT-Creation-Date: 2023-09-02 15:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -325,6 +325,14 @@ msgstr "" msgid "Certificate-Key Pairs" msgstr "" +#: authentik/enterprise/models.py:193 +msgid "License Usage" +msgstr "" + +#: authentik/enterprise/models.py:194 +msgid "License Usage Records" +msgstr "" + #: authentik/events/models.py:290 msgid "Event" msgstr "" @@ -804,14 +812,22 @@ msgstr "" msgid "Password Policies" msgstr "" -#: authentik/policies/reputation/models.py:58 +#: authentik/policies/reputation/models.py:67 msgid "Reputation Policy" msgstr "" -#: authentik/policies/reputation/models.py:59 +#: authentik/policies/reputation/models.py:68 msgid "Reputation Policies" msgstr "" +#: authentik/policies/reputation/models.py:95 +msgid "Reputation Score" +msgstr "" + +#: authentik/policies/reputation/models.py:96 +msgid "Reputation Scores" +msgstr "" + #: authentik/policies/templates/policies/denied.html:7 #: authentik/policies/templates/policies/denied.html:11 msgid "Permission denied" @@ -1242,11 +1258,11 @@ msgstr "" msgid "Radius Providers" msgstr "" -#: authentik/providers/saml/api/providers.py:260 +#: authentik/providers/saml/api/providers.py:257 msgid "Invalid XML Syntax" msgstr "" -#: authentik/providers/saml/api/providers.py:270 +#: authentik/providers/saml/api/providers.py:267 #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "" diff --git a/web/src/admin/AdminInterface.ts b/web/src/admin/AdminInterface.ts index 9fd6db2eb..4ef0cd686 100644 --- a/web/src/admin/AdminInterface.ts +++ b/web/src/admin/AdminInterface.ts @@ -263,7 +263,7 @@ export class AdminInterface extends Interface { - ${msg("Flows & Stages")} + ${msg("Flows and Stages")} ${SLUG_REGEX})$`]} @@ -295,10 +295,10 @@ export class AdminInterface extends Interface { path="/core/sources" .activeWhen=${[`^/core/sources/(?${SLUG_REGEX})$`]} > - ${msg("Federation & Social login")} + ${msg("Federation and Social login")} - ${msg("Tokens & App passwords")} + ${msg("Tokens and App passwords")} ${msg("Invitations")} diff --git a/web/src/admin/flows/BoundStagesList.ts b/web/src/admin/flows/BoundStagesList.ts index f682dfc05..9394145e4 100644 --- a/web/src/admin/flows/BoundStagesList.ts +++ b/web/src/admin/flows/BoundStagesList.ts @@ -142,7 +142,7 @@ export class BoundStagesList extends Table { renderToolbar(): TemplateResult { return html` diff --git a/web/src/admin/policies/BoundPoliciesList.ts b/web/src/admin/policies/BoundPoliciesList.ts index acf8b2ce7..8a7dffc2b 100644 --- a/web/src/admin/policies/BoundPoliciesList.ts +++ b/web/src/admin/policies/BoundPoliciesList.ts @@ -194,7 +194,7 @@ export class BoundPoliciesList extends Table { renderToolbar(): TemplateResult { return html` diff --git a/web/src/admin/sources/SourceListPage.ts b/web/src/admin/sources/SourceListPage.ts index 6a95116af..5e627e7c9 100644 --- a/web/src/admin/sources/SourceListPage.ts +++ b/web/src/admin/sources/SourceListPage.ts @@ -24,7 +24,7 @@ import { Source, SourcesApi } from "@goauthentik/api"; @customElement("ak-source-list") export class SourceListPage extends TablePage { pageTitle(): string { - return msg("Federation & Social login"); + return msg("Federation and Social login"); } pageDescription(): string | undefined { return msg( diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index 4d40fa614..feb91af14 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -2292,9 +2292,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Aktuell sind keine Richtlinien mit diesem Objekt verknüpft. - - Create & bind Policy - Bind existing policy @@ -2697,10 +2694,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. Neue Quelle erstellen. - - Federation & Social login - Föderierter & Social Login - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Identitätsquellen, die entweder mit der Datenbank von authentik synchronisiert oder von Benutzern verwendet werden können, um sich selbst zu authentifizieren und zu registrieren. @@ -4644,9 +4637,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Phasen-Verknüpfung - - Create & bind Stage - Bind existing stage @@ -5214,18 +5204,10 @@ Bindings to groups/users are checked against the user of the event. Customisation Anpassung - - Flows & Stages - Abläufe & Phasen - Directory Verzeichnis - - Tokens & App passwords - Tokens & App Passwörter - System System @@ -5893,6 +5875,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index da9ff1d36..fb62bc1d5 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -2438,10 +2438,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. No policies are currently bound to this object. - - Create & bind Policy - Create & bind Policy - Bind existing policy Bind existing policy @@ -2858,10 +2854,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. Create a new source. - - Federation & Social login - Federation & Social login - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. @@ -4912,10 +4904,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Bind stage - - Create & bind Stage - Create & bind Stage - Bind existing stage Bind existing stage @@ -5512,18 +5500,10 @@ Bindings to groups/users are checked against the user of the event. Customisation Customisation - - Flows & Stages - Flows & Stages - Directory Directory - - Tokens & App passwords - Tokens & App passwords - System System @@ -6209,6 +6189,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 93f5569e8..b36d5e178 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -2250,9 +2250,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Actualmente, no hay políticas vinculadas a este objeto. - - Create & bind Policy - Bind existing policy @@ -2649,10 +2646,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. - - Federation & Social login - Inicio de sesión de federación y redes - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Fuentes de identidades, que se pueden sincronizar en la base de datos de authentik o que los usuarios pueden utilizar para autenticarse e inscribirse ellos mismos. @@ -4565,9 +4558,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Etapa Bind - - Create & bind Stage - Bind existing stage @@ -5131,18 +5121,10 @@ Bindings to groups/users are checked against the user of the event. Customisation Personalización - - Flows & Stages - Flujos y etapas - Directory Directorio - - Tokens & App passwords - Tokens y contraseñas de aplicaciones - System Sistema @@ -5801,6 +5783,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/fr_FR.xlf b/web/xliff/fr_FR.xlf index bc2759dad..24778a610 100644 --- a/web/xliff/fr_FR.xlf +++ b/web/xliff/fr_FR.xlf @@ -2308,10 +2308,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Aucune politique n'est actuellement lié à cet objet. - - Create & bind Policy - Créer & Lier une politique - Bind existing policy Lier une politique existante @@ -2716,10 +2712,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. Créer une nouvelle source. - - Federation & Social login - Fédération & Connection Sociale - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Sources d'identités, qui peuvent soit être synchronisées dans la base de données d'authentik, soit être utilisées par les utilisateurs pour s'authentifier et s'inscrire. @@ -4655,10 +4647,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Lier une étape - - Create & bind Stage - Créer & Lier une étape - Bind existing stage Lier une étape existante @@ -5228,18 +5216,10 @@ Bindings to groups/users are checked against the user of the event. Customisation Personalisation - - Flows & Stages - Flux & Étapes - Directory Répertoire - - Tokens & App passwords - Jetons & mots de passe d'application - System Système @@ -5908,6 +5888,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 8d3f9be51..2db8d6604 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -2353,9 +2353,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Żadne zasady nie są obecnie powiązane z tym obiektem. - - Create & bind Policy - Bind existing policy @@ -2764,10 +2761,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. Utwórz nowe źródło. - - Federation & Social login - Logowanie federacyjne i społecznościowe - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Źródła tożsamości, które mogą być zsynchronizowane z bazą danych authentik lub mogą być używane przez użytkowników do uwierzytelniania i rejestracji. @@ -4764,9 +4757,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Powiąż etap - - Create & bind Stage - Bind existing stage @@ -5352,18 +5342,10 @@ Bindings to groups/users are checked against the user of the event. Customisation Dostosowywanie - - Flows & Stages - Przepływy i etapy - Directory Katalog - - Tokens & App passwords - Tokeny i hasła aplikacji - System System @@ -6040,6 +6022,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index ceb9b0577..4a6c751a7 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -2412,10 +2412,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. - - - Create & bind Policy - Bind existing policy @@ -2832,10 +2828,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. - - - Federation & Social login - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. @@ -4871,10 +4863,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage - - - Create & bind Stage - Bind existing stage @@ -5463,18 +5451,10 @@ Bindings to groups/users are checked against the user of the event. Customisation - - - Flows & Stages - Directory - - - Tokens & App passwords - System @@ -6144,6 +6124,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index d6268cdc4..dc00a4264 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -2249,9 +2249,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. Hiçbir ilke şu anda bu nesneye bağlı değildir. - - Create & bind Policy - Bind existing policy @@ -2648,10 +2645,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. - - Federation & Social login - Federasyon ve Sosyal Giriş - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Auentik'in veritabanına senkronize edilebilen ya da kullanıcılar tarafından kimlik doğrulaması ve kayıt yaptırmak için kullanılabilen kimliklerin kaynakları. @@ -4556,9 +4549,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Bağlama aşaması - - Create & bind Stage - Bind existing stage @@ -5121,18 +5111,10 @@ Bindings to groups/users are checked against the user of the event. Customisation Özelleştirme - - Flows & Stages - Akışlar ve Aşamalar - Directory Rehber - - Tokens & App passwords - Belirteçler ve Uygulama parolaları - System Sistem @@ -5791,6 +5773,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index c4e9d4a49..d54397910 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -618,9 +618,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1072,8 +1072,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,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1819,8 +1819,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"。 @@ -3041,11 +3041,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 当前没有策略绑定到此对象。 - - - Create & bind Policy - 创建 & 绑定策略 - Bind existing policy @@ -3248,8 +3243,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,...' @@ -3566,11 +3561,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. 创建一个新身份来源。 - - - Federation & Social login - 联结与社交登录 - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. @@ -4046,8 +4036,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"。 @@ -4056,8 +4046,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - 格式:"weeks=3;days=2;hours=3,seconds=2"。 + Format: "weeks=3;days=2;hours=3,seconds=2". + 格式:"weeks=3;days=2;hours=3,seconds=2"。 @@ -4253,10 +4243,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 ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5372,7 +5362,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 这样的“漫游”身份验证器 @@ -5707,10 +5697,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5759,7 +5749,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,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -6140,11 +6130,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage 绑定阶段 - - - Create & bind Stage - 创建 & 绑定阶段 - Bind existing stage @@ -6889,21 +6874,11 @@ Bindings to groups/users are checked against the user of the event. Customisation 自定义 - - - Flows & Stages - 流程与阶段 - Directory 目录 - - - Tokens & App passwords - 令牌和应用程序密码 - System @@ -7775,7 +7750,19 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. 静态拒绝流。要有效地使用此阶段,请在相应的绑定上禁用*规划时进行评估*。 + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages - \ No newline at end of file + diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 4afbc635a..71a66196f 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -2273,9 +2273,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 当前没有策略绑定到此对象。 - - Create & bind Policy - Bind existing policy @@ -2674,10 +2671,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. 创建一个新身份来源。 - - Federation & Social login - 联盟和社交登录 - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. 身份来源,既可以同步到authentik的数据库中,也可以被用户用来进行身份验证和注册。 @@ -4603,9 +4596,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Bind 阶段 - - Create & bind Stage - Bind existing stage @@ -5172,18 +5162,10 @@ Bindings to groups/users are checked against the user of the event. Customisation 定制 - - Flows & Stages - 流程和阶段 - Directory 目录 - - Tokens & App passwords - 令牌和应用程序密码 - System 系统 @@ -5846,6 +5828,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 83a3798ad..7de7926b2 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -2273,9 +2273,6 @@ doesn't pass when either or both of the selected options are equal or above the No policies are currently bound to this object. 当前没有策略绑定到此对象。 - - Create & bind Policy - Bind existing policy @@ -2674,10 +2671,6 @@ doesn't pass when either or both of the selected options are equal or above the Create a new source. 创建一个新身份来源。 - - Federation & Social login - 联盟和社交登录 - Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. 身份来源,既可以同步到authentik的数据库中,也可以被用户用来进行身份验证和注册。 @@ -4602,9 +4595,6 @@ doesn't pass when either or both of the selected options are equal or above the Bind stage Bind 阶段 - - Create & bind Stage - Bind existing stage @@ -5171,18 +5161,10 @@ Bindings to groups/users are checked against the user of the event. Customisation 定制 - - Flows & Stages - 流程和阶段 - Directory 目录 - - Tokens & App passwords - 令牌和应用程序密码 - System 系统 @@ -5845,6 +5827,18 @@ Bindings to groups/users are checked against the user of the event. Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + + + Create and bind Policy + + + Federation and Social login + + + Create and bind Stage + + + Flows and Stages From 9c448d74f7422f271d9ce91ec4b0fa21d30fdb7f Mon Sep 17 00:00:00 2001 From: Jens L Date: Sat, 2 Sep 2023 18:59:27 +0200 Subject: [PATCH 02/19] web/admin: fix application icon size (#6738) Signed-off-by: Jens Langhammer --- web/src/admin/applications/ApplicationViewPage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/admin/applications/ApplicationViewPage.ts b/web/src/admin/applications/ApplicationViewPage.ts index 8ff27f8b9..56f9fcb64 100644 --- a/web/src/admin/applications/ApplicationViewPage.ts +++ b/web/src/admin/applications/ApplicationViewPage.ts @@ -87,7 +87,7 @@ export class ApplicationViewPage extends AKElement { .iconImage=${true} > From 5333050e5d2b280910571594715211bd73614d60 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Sat, 2 Sep 2023 19:27:19 +0200 Subject: [PATCH 03/19] core: compile backend translations (#6739) Signed-off-by: GitHub Co-authored-by: BeryJu --- locale/fr/LC_MESSAGES/django.mo | Bin 62753 -> 64234 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 005955a1afc4daefb37c0691639d6fbe67ac0eb0..44523d5163661227e6f90de4ea4325fe820b69c5 100644 GIT binary patch delta 13306 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 Date: Sun, 3 Sep 2023 22:32:23 +0200 Subject: [PATCH 04/19] root: fix broken celery dependency (#6744) celery 5.3.3 was yanked so downgrade Signed-off-by: Jens Langhammer --- poetry.lock | 463 ++++++++++++++++++++++++++-------------------------- 1 file changed, 228 insertions(+), 235 deletions(-) diff --git a/poetry.lock b/poetry.lock index e34ae081e..8d1c9150d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -163,13 +163,13 @@ files = [ [[package]] name = "anyio" -version = "3.7.1" +version = "4.0.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"}, - {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"}, + {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, + {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, ] [package.dependencies] @@ -177,9 +177,9 @@ idna = ">=2.8" sniffio = ">=1.1" [package.extras] -doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"] -test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] -trio = ["trio (<0.22)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.22)"] [[package]] name = "argon2-cffi" @@ -280,13 +280,13 @@ wrapt = {version = ">=1.14,<2", markers = "python_version >= \"3.11\""} [[package]] name = "async-timeout" -version = "4.0.2" +version = "4.0.3" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, - {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, ] [[package]] @@ -355,13 +355,13 @@ visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"] [[package]] name = "autopep8" -version = "2.0.2" +version = "2.0.4" description = "A tool that automatically formats Python code to conform to the PEP 8 style guide" optional = false python-versions = ">=3.6" files = [ - {file = "autopep8-2.0.2-py2.py3-none-any.whl", hash = "sha256:86e9303b5e5c8160872b2f5ef611161b2893e9bfe8ccc7e2f76385947d57a2f1"}, - {file = "autopep8-2.0.2.tar.gz", hash = "sha256:f9849cdd62108cb739dbcdbfb7fdcc9a30d1b63c4cc3e1c1f893b5360941b61c"}, + {file = "autopep8-2.0.4-py2.py3-none-any.whl", hash = "sha256:067959ca4a07b24dbd5345efa8325f5f58da4298dab0dde0443d5ed765de80cb"}, + {file = "autopep8-2.0.4.tar.gz", hash = "sha256:2913064abd97b3419d1cc83ea71f042cb821f87e45b9c88cad5ad3c4ea87fe0c"}, ] [package.dependencies] @@ -552,13 +552,13 @@ test = ["pytest", "pytest-cov"] [[package]] name = "celery" -version = "5.3.3" +version = "5.3.1" description = "Distributed Task Queue." optional = false python-versions = ">=3.8" files = [ - {file = "celery-5.3.3-py3-none-any.whl", hash = "sha256:d65c0be70d0949fcda8893876a071a7cfd9f248f9ad92e1919845e5cbc268db7"}, - {file = "celery-5.3.3.tar.gz", hash = "sha256:bac90ef99b70b9b5b5d4cfcebf6f1ab5168b86c6120bc7c5814cd8234dfd9381"}, + {file = "celery-5.3.1-py3-none-any.whl", hash = "sha256:27f8f3f3b58de6e0ab4f174791383bbd7445aff0471a43e99cfd77727940753f"}, + {file = "celery-5.3.1.tar.gz", hash = "sha256:f84d1c21a1520c116c2b7d26593926581191435a03aa74b77c941b93ca1c6210"}, ] [package.dependencies] @@ -567,14 +567,14 @@ click = ">=8.1.2,<9.0" click-didyoumean = ">=0.3.0" click-plugins = ">=1.1.1" click-repl = ">=0.2.0" -kombu = ">=5.3.2,<6.0" +kombu = ">=5.3.1,<6.0" python-dateutil = ">=2.8.2" tzdata = ">=2022.7" vine = ">=5.0.0,<6.0" [package.extras] -arangodb = ["pyArango (>=2.0.2)"] -auth = ["cryptography (==41.0.3)"] +arangodb = ["pyArango (>=2.0.1)"] +auth = ["cryptography (==41.0.1)"] azureblockblob = ["azure-storage-blob (>=12.15.0)"] brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] cassandra = ["cassandra-driver (>=3.25.0,<4)"] @@ -594,7 +594,7 @@ msgpack = ["msgpack (==1.0.5)"] pymemcache = ["python-memcached (==1.59)"] pyro = ["pyro4 (==4.82)"] pytest = ["pytest-celery (==0.0.0)"] -redis = ["redis (>=4.5.2,!=4.5.5,<5.0.0)"] +redis = ["redis (>=4.5.2,!=4.5.5)"] s3 = ["boto3 (>=1.26.143)"] slmq = ["softlayer-messaging (>=1.0.3)"] solar = ["ephem (==4.1.4)"] @@ -819,13 +819,13 @@ files = [ [[package]] name = "click" -version = "8.1.6" +version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.6-py3-none-any.whl", hash = "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"}, - {file = "click-8.1.6.tar.gz", hash = "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -1284,13 +1284,13 @@ djangorestframework = "*" [[package]] name = "dnspython" -version = "2.4.1" +version = "2.4.2" description = "DNS toolkit" optional = false python-versions = ">=3.8,<4.0" files = [ - {file = "dnspython-2.4.1-py3-none-any.whl", hash = "sha256:5b7488477388b8c0b70a8ce93b227c5603bc7b77f1565afe8e729c36c51447d7"}, - {file = "dnspython-2.4.1.tar.gz", hash = "sha256:c33971c79af5be968bb897e95c2448e11a645ee84d93b265ce0b7aabe5dfdca8"}, + {file = "dnspython-2.4.2-py3-none-any.whl", hash = "sha256:57c6fbaaeaaf39c891292012060beb141791735dbb4004798328fc2c467402d8"}, + {file = "dnspython-2.4.2.tar.gz", hash = "sha256:8dcfae8c7460a2f84b4072e26f1c9f4101ca20c071649cb7c34e8b6a93d58984"}, ] [package.extras] @@ -1414,13 +1414,13 @@ idna = ">=2.0.0" [[package]] name = "exceptiongroup" -version = "1.1.2" +version = "1.1.3" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, - {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, ] [package.extras] @@ -1560,13 +1560,13 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.32" +version = "3.1.34" description = "GitPython is a Python library used to interact with Git repositories" optional = false python-versions = ">=3.7" files = [ - {file = "GitPython-3.1.32-py3-none-any.whl", hash = "sha256:e3d59b1c2c6ebb9dfa7a184daf3b6dd4914237e7488a1730a6d8f6f5d0b4187f"}, - {file = "GitPython-3.1.32.tar.gz", hash = "sha256:8d9b8cb1e80b9735e8717c9362079d3ce4c6e5ddeebedd0361b228c3a67a62f6"}, + {file = "GitPython-3.1.34-py3-none-any.whl", hash = "sha256:5d3802b98a3bae1c2b8ae0e1ff2e4aa16bcdf02c145da34d092324f599f01395"}, + {file = "GitPython-3.1.34.tar.gz", hash = "sha256:85f7d365d1f6bf677ae51039c1ef67ca59091c7ebd5a3509aa399d4eda02d6dd"}, ] [package.dependencies] @@ -1687,13 +1687,13 @@ test = ["Cython (>=0.29.24,<0.30.0)"] [[package]] name = "humanize" -version = "4.7.0" +version = "4.8.0" description = "Python humanize utilities" optional = false python-versions = ">=3.8" files = [ - {file = "humanize-4.7.0-py3-none-any.whl", hash = "sha256:df7c429c2d27372b249d3f26eb53b07b166b661326e0325793e0a988082e3889"}, - {file = "humanize-4.7.0.tar.gz", hash = "sha256:7ca0e43e870981fa684acb5b062deb307218193bca1a01f2b2676479df849b3a"}, + {file = "humanize-4.8.0-py3-none-any.whl", hash = "sha256:8bc9e2bb9315e61ec06bf690151ae35aeb65651ab091266941edf97c90836404"}, + {file = "humanize-4.8.0.tar.gz", hash = "sha256:9783373bf1eec713a770ecaa7c2d7a7902c98398009dfa3d8a2df91eec9311e8"}, ] [package.extras] @@ -1841,13 +1841,13 @@ files = [ [[package]] name = "jsonschema" -version = "4.18.4" +version = "4.19.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.18.4-py3-none-any.whl", hash = "sha256:971be834317c22daaa9132340a51c01b50910724082c2c1a2ac87eeec153a3fe"}, - {file = "jsonschema-4.18.4.tar.gz", hash = "sha256:fb3642735399fa958c0d2aad7057901554596c63349f4f6b283c493cf692a25d"}, + {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, + {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, ] [package.dependencies] @@ -2520,13 +2520,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co [[package]] name = "pluggy" -version = "1.2.0" +version = "1.3.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, ] [package.extras] @@ -2840,13 +2840,13 @@ pydantic = [ [[package]] name = "pygments" -version = "2.15.1" +version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, - {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, ] [package.extras] @@ -2999,13 +2999,13 @@ files = [ [[package]] name = "pytest" -version = "7.4.0" +version = "7.4.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-7.4.1-py3-none-any.whl", hash = "sha256:460c9a59b14e27c602eb5ece2e47bec99dc5fc5f6513cf924a7d03a578991b1f"}, + {file = "pytest-7.4.1.tar.gz", hash = "sha256:2f2301e797521b23e4d2585a0a3d7b5e50fdddaaf7e7d6773ea26ddb17c213ab"}, ] [package.dependencies] @@ -3137,7 +3137,6 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -3145,15 +3144,8 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -3170,7 +3162,6 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -3178,7 +3169,6 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -3186,13 +3176,13 @@ files = [ [[package]] name = "redis" -version = "4.6.0" +version = "5.0.0" description = "Python client for Redis database and key-value store" optional = false python-versions = ">=3.7" files = [ - {file = "redis-4.6.0-py3-none-any.whl", hash = "sha256:e2b03db868160ee4591de3cb90d40ebb50a90dd302138775937f6a42b7ed183c"}, - {file = "redis-4.6.0.tar.gz", hash = "sha256:585dc516b9eb042a619ef0a39c3d7d55fe81bdb4df09a52c9cdde0d07bf1aa7d"}, + {file = "redis-5.0.0-py3-none-any.whl", hash = "sha256:06570d0b2d84d46c21defc550afbaada381af82f5b83e5b3777600e05d8e2ed0"}, + {file = "redis-5.0.0.tar.gz", hash = "sha256:5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120"}, ] [package.dependencies] @@ -3204,13 +3194,13 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" [[package]] name = "referencing" -version = "0.30.0" +version = "0.30.2" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.30.0-py3-none-any.whl", hash = "sha256:c257b08a399b6c2f5a3510a50d28ab5dbc7bbde049bcaf954d43c446f83ab548"}, - {file = "referencing-0.30.0.tar.gz", hash = "sha256:47237742e990457f7512c7d27486394a9aadaf876cbfaa4be65b27b4f4d47c6b"}, + {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"}, + {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"}, ] [package.dependencies] @@ -3277,13 +3267,13 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] [[package]] name = "rich" -version = "13.5.1" +version = "13.5.2" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.5.1-py3-none-any.whl", hash = "sha256:b97381b204a206e1be618f5e1215a57174a1a7732490b3bf6668cf41d30bc72d"}, - {file = "rich-13.5.1.tar.gz", hash = "sha256:881653ee7037803559d8eae98f145e0a4c4b0ec3ff0300d2cc8d479c71fc6819"}, + {file = "rich-13.5.2-py3-none-any.whl", hash = "sha256:146a90b3b6b47cac4a73c12866a499e9817426423f57c5a66949c086191a8808"}, + {file = "rich-13.5.2.tar.gz", hash = "sha256:fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"}, ] [package.dependencies] @@ -3295,108 +3285,108 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.9.2" +version = "0.10.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.9.2-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:ab6919a09c055c9b092798ce18c6c4adf49d24d4d9e43a92b257e3f2548231e7"}, - {file = "rpds_py-0.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d55777a80f78dd09410bd84ff8c95ee05519f41113b2df90a69622f5540c4f8b"}, - {file = "rpds_py-0.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a216b26e5af0a8e265d4efd65d3bcec5fba6b26909014effe20cd302fd1138fa"}, - {file = "rpds_py-0.9.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:29cd8bfb2d716366a035913ced99188a79b623a3512292963d84d3e06e63b496"}, - {file = "rpds_py-0.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44659b1f326214950a8204a248ca6199535e73a694be8d3e0e869f820767f12f"}, - {file = "rpds_py-0.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:745f5a43fdd7d6d25a53ab1a99979e7f8ea419dfefebcab0a5a1e9095490ee5e"}, - {file = "rpds_py-0.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a987578ac5214f18b99d1f2a3851cba5b09f4a689818a106c23dbad0dfeb760f"}, - {file = "rpds_py-0.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf4151acb541b6e895354f6ff9ac06995ad9e4175cbc6d30aaed08856558201f"}, - {file = "rpds_py-0.9.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:03421628f0dc10a4119d714a17f646e2837126a25ac7a256bdf7c3943400f67f"}, - {file = "rpds_py-0.9.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13b602dc3e8dff3063734f02dcf05111e887f301fdda74151a93dbbc249930fe"}, - {file = "rpds_py-0.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fae5cb554b604b3f9e2c608241b5d8d303e410d7dfb6d397c335f983495ce7f6"}, - {file = "rpds_py-0.9.2-cp310-none-win32.whl", hash = "sha256:47c5f58a8e0c2c920cc7783113df2fc4ff12bf3a411d985012f145e9242a2764"}, - {file = "rpds_py-0.9.2-cp310-none-win_amd64.whl", hash = "sha256:4ea6b73c22d8182dff91155af018b11aac9ff7eca085750455c5990cb1cfae6e"}, - {file = "rpds_py-0.9.2-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e564d2238512c5ef5e9d79338ab77f1cbbda6c2d541ad41b2af445fb200385e3"}, - {file = "rpds_py-0.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f411330a6376fb50e5b7a3e66894e4a39e60ca2e17dce258d53768fea06a37bd"}, - {file = "rpds_py-0.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e7521f5af0233e89939ad626b15278c71b69dc1dfccaa7b97bd4cdf96536bb7"}, - {file = "rpds_py-0.9.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8d3335c03100a073883857e91db9f2e0ef8a1cf42dc0369cbb9151c149dbbc1b"}, - {file = "rpds_py-0.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d25b1c1096ef0447355f7293fbe9ad740f7c47ae032c2884113f8e87660d8f6e"}, - {file = "rpds_py-0.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a5d3fbd02efd9cf6a8ffc2f17b53a33542f6b154e88dd7b42ef4a4c0700fdad"}, - {file = "rpds_py-0.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5934e2833afeaf36bd1eadb57256239785f5af0220ed8d21c2896ec4d3a765f"}, - {file = "rpds_py-0.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:095b460e117685867d45548fbd8598a8d9999227e9061ee7f012d9d264e6048d"}, - {file = "rpds_py-0.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:91378d9f4151adc223d584489591dbb79f78814c0734a7c3bfa9c9e09978121c"}, - {file = "rpds_py-0.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:24a81c177379300220e907e9b864107614b144f6c2a15ed5c3450e19cf536fae"}, - {file = "rpds_py-0.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:de0b6eceb46141984671802d412568d22c6bacc9b230174f9e55fc72ef4f57de"}, - {file = "rpds_py-0.9.2-cp311-none-win32.whl", hash = "sha256:700375326ed641f3d9d32060a91513ad668bcb7e2cffb18415c399acb25de2ab"}, - {file = "rpds_py-0.9.2-cp311-none-win_amd64.whl", hash = "sha256:0766babfcf941db8607bdaf82569ec38107dbb03c7f0b72604a0b346b6eb3298"}, - {file = "rpds_py-0.9.2-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1440c291db3f98a914e1afd9d6541e8fc60b4c3aab1a9008d03da4651e67386"}, - {file = "rpds_py-0.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0f2996fbac8e0b77fd67102becb9229986396e051f33dbceada3debaacc7033f"}, - {file = "rpds_py-0.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f30d205755566a25f2ae0382944fcae2f350500ae4df4e795efa9e850821d82"}, - {file = "rpds_py-0.9.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:159fba751a1e6b1c69244e23ba6c28f879a8758a3e992ed056d86d74a194a0f3"}, - {file = "rpds_py-0.9.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1f044792e1adcea82468a72310c66a7f08728d72a244730d14880cd1dabe36b"}, - {file = "rpds_py-0.9.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9251eb8aa82e6cf88510530b29eef4fac825a2b709baf5b94a6094894f252387"}, - {file = "rpds_py-0.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01899794b654e616c8625b194ddd1e5b51ef5b60ed61baa7a2d9c2ad7b2a4238"}, - {file = "rpds_py-0.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0c43f8ae8f6be1d605b0465671124aa8d6a0e40f1fb81dcea28b7e3d87ca1e1"}, - {file = "rpds_py-0.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:207f57c402d1f8712618f737356e4b6f35253b6d20a324d9a47cb9f38ee43a6b"}, - {file = "rpds_py-0.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b52e7c5ae35b00566d244ffefba0f46bb6bec749a50412acf42b1c3f402e2c90"}, - {file = "rpds_py-0.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:978fa96dbb005d599ec4fd9ed301b1cc45f1a8f7982d4793faf20b404b56677d"}, - {file = "rpds_py-0.9.2-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6aa8326a4a608e1c28da191edd7c924dff445251b94653988efb059b16577a4d"}, - {file = "rpds_py-0.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:aad51239bee6bff6823bbbdc8ad85136c6125542bbc609e035ab98ca1e32a192"}, - {file = "rpds_py-0.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bd4dc3602370679c2dfb818d9c97b1137d4dd412230cfecd3c66a1bf388a196"}, - {file = "rpds_py-0.9.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd9da77c6ec1f258387957b754f0df60766ac23ed698b61941ba9acccd3284d1"}, - {file = "rpds_py-0.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:190ca6f55042ea4649ed19c9093a9be9d63cd8a97880106747d7147f88a49d18"}, - {file = "rpds_py-0.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:876bf9ed62323bc7dcfc261dbc5572c996ef26fe6406b0ff985cbcf460fc8a4c"}, - {file = "rpds_py-0.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa2818759aba55df50592ecbc95ebcdc99917fa7b55cc6796235b04193eb3c55"}, - {file = "rpds_py-0.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9ea4d00850ef1e917815e59b078ecb338f6a8efda23369677c54a5825dbebb55"}, - {file = "rpds_py-0.9.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:5855c85eb8b8a968a74dc7fb014c9166a05e7e7a8377fb91d78512900aadd13d"}, - {file = "rpds_py-0.9.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:14c408e9d1a80dcb45c05a5149e5961aadb912fff42ca1dd9b68c0044904eb32"}, - {file = "rpds_py-0.9.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:65a0583c43d9f22cb2130c7b110e695fff834fd5e832a776a107197e59a1898e"}, - {file = "rpds_py-0.9.2-cp38-none-win32.whl", hash = "sha256:71f2f7715935a61fa3e4ae91d91b67e571aeb5cb5d10331ab681256bda2ad920"}, - {file = "rpds_py-0.9.2-cp38-none-win_amd64.whl", hash = "sha256:674c704605092e3ebbbd13687b09c9f78c362a4bc710343efe37a91457123044"}, - {file = "rpds_py-0.9.2-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:07e2c54bef6838fa44c48dfbc8234e8e2466d851124b551fc4e07a1cfeb37260"}, - {file = "rpds_py-0.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f7fdf55283ad38c33e35e2855565361f4bf0abd02470b8ab28d499c663bc5d7c"}, - {file = "rpds_py-0.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:890ba852c16ace6ed9f90e8670f2c1c178d96510a21b06d2fa12d8783a905193"}, - {file = "rpds_py-0.9.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:50025635ba8b629a86d9d5474e650da304cb46bbb4d18690532dd79341467846"}, - {file = "rpds_py-0.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:517cbf6e67ae3623c5127206489d69eb2bdb27239a3c3cc559350ef52a3bbf0b"}, - {file = "rpds_py-0.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0836d71ca19071090d524739420a61580f3f894618d10b666cf3d9a1688355b1"}, - {file = "rpds_py-0.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c439fd54b2b9053717cca3de9583be6584b384d88d045f97d409f0ca867d80f"}, - {file = "rpds_py-0.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f68996a3b3dc9335037f82754f9cdbe3a95db42bde571d8c3be26cc6245f2324"}, - {file = "rpds_py-0.9.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7d68dc8acded354c972116f59b5eb2e5864432948e098c19fe6994926d8e15c3"}, - {file = "rpds_py-0.9.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f963c6b1218b96db85fc37a9f0851eaf8b9040aa46dec112611697a7023da535"}, - {file = "rpds_py-0.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a46859d7f947061b4010e554ccd1791467d1b1759f2dc2ec9055fa239f1bc26"}, - {file = "rpds_py-0.9.2-cp39-none-win32.whl", hash = "sha256:e07e5dbf8a83c66783a9fe2d4566968ea8c161199680e8ad38d53e075df5f0d0"}, - {file = "rpds_py-0.9.2-cp39-none-win_amd64.whl", hash = "sha256:682726178138ea45a0766907957b60f3a1bf3acdf212436be9733f28b6c5af3c"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:196cb208825a8b9c8fc360dc0f87993b8b260038615230242bf18ec84447c08d"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c7671d45530fcb6d5e22fd40c97e1e1e01965fc298cbda523bb640f3d923b387"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83b32f0940adec65099f3b1c215ef7f1d025d13ff947975a055989cb7fd019a4"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f67da97f5b9eac838b6980fc6da268622e91f8960e083a34533ca710bec8611"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:03975db5f103997904c37e804e5f340c8fdabbb5883f26ee50a255d664eed58c"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:987b06d1cdb28f88a42e4fb8a87f094e43f3c435ed8e486533aea0bf2e53d931"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c861a7e4aef15ff91233751619ce3a3d2b9e5877e0fcd76f9ea4f6847183aa16"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02938432352359805b6da099c9c95c8a0547fe4b274ce8f1a91677401bb9a45f"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:ef1f08f2a924837e112cba2953e15aacfccbbfcd773b4b9b4723f8f2ddded08e"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:35da5cc5cb37c04c4ee03128ad59b8c3941a1e5cd398d78c37f716f32a9b7f67"}, - {file = "rpds_py-0.9.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:141acb9d4ccc04e704e5992d35472f78c35af047fa0cfae2923835d153f091be"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:79f594919d2c1a0cc17d1988a6adaf9a2f000d2e1048f71f298b056b1018e872"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:a06418fe1155e72e16dddc68bb3780ae44cebb2912fbd8bb6ff9161de56e1798"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b2eb034c94b0b96d5eddb290b7b5198460e2d5d0c421751713953a9c4e47d10"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b08605d248b974eb02f40bdcd1a35d3924c83a2a5e8f5d0fa5af852c4d960af"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a0805911caedfe2736935250be5008b261f10a729a303f676d3d5fea6900c96a"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab2299e3f92aa5417d5e16bb45bb4586171c1327568f638e8453c9f8d9e0f020"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c8d7594e38cf98d8a7df25b440f684b510cf4627fe038c297a87496d10a174f"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8b9ec12ad5f0a4625db34db7e0005be2632c1013b253a4a60e8302ad4d462afd"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1fcdee18fea97238ed17ab6478c66b2095e4ae7177e35fb71fbe561a27adf620"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:933a7d5cd4b84f959aedeb84f2030f0a01d63ae6cf256629af3081cf3e3426e8"}, - {file = "rpds_py-0.9.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:686ba516e02db6d6f8c279d1641f7067ebb5dc58b1d0536c4aaebb7bf01cdc5d"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0173c0444bec0a3d7d848eaeca2d8bd32a1b43f3d3fde6617aac3731fa4be05f"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:d576c3ef8c7b2d560e301eb33891d1944d965a4d7a2eacb6332eee8a71827db6"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed89861ee8c8c47d6beb742a602f912b1bb64f598b1e2f3d758948721d44d468"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1054a08e818f8e18910f1bee731583fe8f899b0a0a5044c6e680ceea34f93876"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99e7c4bb27ff1aab90dcc3e9d37ee5af0231ed98d99cb6f5250de28889a3d502"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c545d9d14d47be716495076b659db179206e3fd997769bc01e2d550eeb685596"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9039a11bca3c41be5a58282ed81ae422fa680409022b996032a43badef2a3752"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fb39aca7a64ad0c9490adfa719dbeeb87d13be137ca189d2564e596f8ba32c07"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2d8b3b3a2ce0eaa00c5bbbb60b6713e94e7e0becab7b3db6c5c77f979e8ed1f1"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:99b1c16f732b3a9971406fbfe18468592c5a3529585a45a35adbc1389a529a03"}, - {file = "rpds_py-0.9.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c27ee01a6c3223025f4badd533bea5e87c988cb0ba2811b690395dfe16088cfe"}, - {file = "rpds_py-0.9.2.tar.gz", hash = "sha256:8d70e8f14900f2657c249ea4def963bed86a29b81f81f5b76b5a9215680de945"}, + {file = "rpds_py-0.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31"}, + {file = "rpds_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3"}, + {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef"}, + {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186"}, + {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640"}, + {file = "rpds_py-0.10.0-cp310-none-win32.whl", hash = "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d"}, + {file = "rpds_py-0.10.0-cp310-none-win_amd64.whl", hash = "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685"}, + {file = "rpds_py-0.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1"}, + {file = "rpds_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59"}, + {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe"}, + {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7"}, + {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055"}, + {file = "rpds_py-0.10.0-cp311-none-win32.whl", hash = "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c"}, + {file = "rpds_py-0.10.0-cp311-none-win_amd64.whl", hash = "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83"}, + {file = "rpds_py-0.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103"}, + {file = "rpds_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a"}, + {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af"}, + {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882"}, + {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8"}, + {file = "rpds_py-0.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279"}, + {file = "rpds_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74"}, + {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e"}, + {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1"}, + {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453"}, + {file = "rpds_py-0.10.0-cp38-none-win32.whl", hash = "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e"}, + {file = "rpds_py-0.10.0-cp38-none-win_amd64.whl", hash = "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b"}, + {file = "rpds_py-0.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582"}, + {file = "rpds_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf"}, + {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"}, + {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775"}, + {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f"}, + {file = "rpds_py-0.10.0-cp39-none-win32.whl", hash = "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5"}, + {file = "rpds_py-0.10.0-cp39-none-win_amd64.whl", hash = "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa"}, + {file = "rpds_py-0.10.0.tar.gz", hash = "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f"}, ] [[package]] @@ -3415,28 +3405,28 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.0.286" +version = "0.0.287" description = "An extremely fast Python linter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.286-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:8e22cb557e7395893490e7f9cfea1073d19a5b1dd337f44fd81359b2767da4e9"}, - {file = "ruff-0.0.286-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:68ed8c99c883ae79a9133cb1a86d7130feee0397fdf5ba385abf2d53e178d3fa"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8301f0bb4ec1a5b29cfaf15b83565136c47abefb771603241af9d6038f8981e8"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:acc4598f810bbc465ce0ed84417ac687e392c993a84c7eaf3abf97638701c1ec"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88c8e358b445eb66d47164fa38541cfcc267847d1e7a92dd186dddb1a0a9a17f"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0433683d0c5dbcf6162a4beb2356e820a593243f1fa714072fec15e2e4f4c939"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddb61a0c4454cbe4623f4a07fef03c5ae921fe04fede8d15c6e36703c0a73b07"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:47549c7c0be24c8ae9f2bce6f1c49fbafea83bca80142d118306f08ec7414041"}, - {file = "ruff-0.0.286-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:559aa793149ac23dc4310f94f2c83209eedb16908a0343663be19bec42233d25"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d73cfb1c3352e7aa0ce6fb2321f36fa1d4a2c48d2ceac694cb03611ddf0e4db6"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3dad93b1f973c6d1db4b6a5da8690c5625a3fa32bdf38e543a6936e634b83dc3"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26afc0851f4fc3738afcf30f5f8b8612a31ac3455cb76e611deea80f5c0bf3ce"}, - {file = "ruff-0.0.286-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:9b6b116d1c4000de1b9bf027131dbc3b8a70507788f794c6b09509d28952c512"}, - {file = "ruff-0.0.286-py3-none-win32.whl", hash = "sha256:556e965ac07c1e8c1c2d759ac512e526ecff62c00fde1a046acb088d3cbc1a6c"}, - {file = "ruff-0.0.286-py3-none-win_amd64.whl", hash = "sha256:5d295c758961376c84aaa92d16e643d110be32add7465e197bfdaec5a431a107"}, - {file = "ruff-0.0.286-py3-none-win_arm64.whl", hash = "sha256:1d6142d53ab7f164204b3133d053c4958d4d11ec3a39abf23a40b13b0784e3f0"}, - {file = "ruff-0.0.286.tar.gz", hash = "sha256:f1e9d169cce81a384a26ee5bb8c919fe9ae88255f39a1a69fd1ebab233a85ed2"}, + {file = "ruff-0.0.287-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:1e0f9ee4c3191444eefeda97d7084721d9b8e29017f67997a20c153457f2eafd"}, + {file = "ruff-0.0.287-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:e9843e5704d4fb44e1a8161b0d31c1a38819723f0942639dfeb53d553be9bfb5"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca1ed11d759a29695aed2bfc7f914b39bcadfe2ef08d98ff69c873f639ad3a8"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1cf4d5ad3073af10f186ea22ce24bc5a8afa46151f6896f35c586e40148ba20b"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d9d58bcb29afd72d2afe67120afcc7d240efc69a235853813ad556443dc922"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:06ac5df7dd3ba8bf83bba1490a72f97f1b9b21c7cbcba8406a09de1a83f36083"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2bfb478e1146a60aa740ab9ebe448b1f9e3c0dfb54be3cc58713310eef059c30"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00d579a011949108c4b4fa04c4f1ee066dab536a9ba94114e8e580c96be2aeb4"}, + {file = "ruff-0.0.287-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a810a79b8029cc92d06c36ea1f10be5298d2323d9024e1d21aedbf0a1a13e5"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:150007028ad4976ce9a7704f635ead6d0e767f73354ce0137e3e44f3a6c0963b"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a24a280db71b0fa2e0de0312b4aecb8e6d08081d1b0b3c641846a9af8e35b4a7"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2918cb7885fa1611d542de1530bea3fbd63762da793751cc8c8d6e4ba234c3d8"}, + {file = "ruff-0.0.287-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:33d7b251afb60bec02a64572b0fd56594b1923ee77585bee1e7e1daf675e7ae7"}, + {file = "ruff-0.0.287-py3-none-win32.whl", hash = "sha256:022f8bed2dcb5e5429339b7c326155e968a06c42825912481e10be15dafb424b"}, + {file = "ruff-0.0.287-py3-none-win_amd64.whl", hash = "sha256:26bd0041d135a883bd6ab3e0b29c42470781fb504cf514e4c17e970e33411d90"}, + {file = "ruff-0.0.287-py3-none-win_arm64.whl", hash = "sha256:44bceb3310ac04f0e59d4851e6227f7b1404f753997c7859192e41dbee9f5c8d"}, + {file = "ruff-0.0.287.tar.gz", hash = "sha256:02dc4f5bf53ef136e459d467f3ce3e04844d509bc46c025a05b018feb37bbc39"}, ] [[package]] @@ -3525,18 +3515,18 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] [[package]] name = "setuptools" -version = "68.0.0" +version = "68.1.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, - {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, + {file = "setuptools-68.1.2-py3-none-any.whl", hash = "sha256:3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b"}, + {file = "setuptools-68.1.2.tar.gz", hash = "sha256:3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5,<=7.1.2)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -3772,27 +3762,30 @@ windows-platform = ["pywin32 (!=226)", "pywin32 (!=226)", "twisted[all-non-platf [[package]] name = "twisted-iocpsupport" -version = "1.0.3" +version = "1.0.4" description = "An extension for use in the twisted I/O Completion Ports reactor." optional = false python-versions = "*" files = [ - {file = "twisted-iocpsupport-1.0.3.tar.gz", hash = "sha256:afb00801fdfbaccf0d0173a722626500023d4a19719ac9f129d1347a32e2fc66"}, - {file = "twisted_iocpsupport-1.0.3-cp310-cp310-win32.whl", hash = "sha256:a379ef56a576c8090889f74441bc3822ca31ac82253cc61e8d50631bcb0c26d0"}, - {file = "twisted_iocpsupport-1.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1ea2c3fbdb739c95cc8b3355305cd593d2c9ec56d709207aa1a05d4d98671e85"}, - {file = "twisted_iocpsupport-1.0.3-cp311-cp311-win32.whl", hash = "sha256:7efcdfafb377f32db90f42bd5fc5bb32cd1e3637ee936cdaf3aff4f4786ab3bf"}, - {file = "twisted_iocpsupport-1.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1dbfac706972bf9ec5ce1ddbc735d2ebba406ad363345df8751ffd5252aa1618"}, - {file = "twisted_iocpsupport-1.0.3-cp36-cp36m-win32.whl", hash = "sha256:1ddfc5fa22ec6f913464b736b3f46e642237f17ac41be47eed6fa9bd52f5d0e0"}, - {file = "twisted_iocpsupport-1.0.3-cp36-cp36m-win_amd64.whl", hash = "sha256:1bdccbb22199fc69fd7744d6d2dfd22d073c028c8611d994b41d2d2ad0e0f40d"}, - {file = "twisted_iocpsupport-1.0.3-cp37-cp37m-win32.whl", hash = "sha256:db11c80054b52dbdea44d63d5474a44c9a6531882f0e2960268b15123088641a"}, - {file = "twisted_iocpsupport-1.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:67bec1716eb8f466ef366bbf262e1467ecc9e20940111207663ac24049785bad"}, - {file = "twisted_iocpsupport-1.0.3-cp38-cp38-win32.whl", hash = "sha256:98a6f16ab215f8c1446e9fc60aaed0ab7c746d566aa2f3492a23cea334e6bebb"}, - {file = "twisted_iocpsupport-1.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:4f249d0baac836bb431d6fa0178be063a310136bc489465a831e3abd2d7acafd"}, - {file = "twisted_iocpsupport-1.0.3-cp39-cp39-win32.whl", hash = "sha256:aaca8f30c3b7c80d27a33fe9fe0d0bac42b1b012ddc60f677175c30e1becc1f3"}, - {file = "twisted_iocpsupport-1.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:dff43136c33665c2d117a73706aef6f7d6433e5c4560332a118fe066b16b8695"}, - {file = "twisted_iocpsupport-1.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:8faceae553cfadc42ad791b1790e7cdecb7751102608c405217f6a26e877e0c5"}, - {file = "twisted_iocpsupport-1.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6f8c433faaad5d53d30d1da6968d5a3730df415e2efb6864847267a9b51290cd"}, - {file = "twisted_iocpsupport-1.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3f39c41c0213a81a9ce0961e30d0d7650f371ad80f8d261007d15a2deb6d5be3"}, + {file = "twisted-iocpsupport-1.0.4.tar.gz", hash = "sha256:858096c0d15e33f15ac157f455d8f86f2f2cdd223963e58c0f682a3af8362d89"}, + {file = "twisted_iocpsupport-1.0.4-cp310-cp310-win32.whl", hash = "sha256:afa2b630797f9ed2f27f3d9f55e3f72b4244911e45a8c82756f44babbf0b243e"}, + {file = "twisted_iocpsupport-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:0058c963c8957bcd3deda62122e89953c9de1e867a274facc9b15dde1a9f31e8"}, + {file = "twisted_iocpsupport-1.0.4-cp311-cp311-win32.whl", hash = "sha256:196f7c7ccad4ba4d1783b1c4e1d1b22d93c04275cd780bf7498d16c77319ad6e"}, + {file = "twisted_iocpsupport-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:4e5f97bcbabdd79cbaa969b63439b89801ea560f11d42b0a387634275c633623"}, + {file = "twisted_iocpsupport-1.0.4-cp312-cp312-win32.whl", hash = "sha256:6081bd7c2f4fcf9b383dcdb3b3385d75a26a7c9d2be25b6950c3d8ea652d2d2d"}, + {file = "twisted_iocpsupport-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:76f7e67cec1f1d097d1f4ed7de41be3d74546e1a4ede0c7d56e775c4dce5dfb0"}, + {file = "twisted_iocpsupport-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:3d306fc4d88a6bcf61ce9d572c738b918578121bfd72891625fab314549024b5"}, + {file = "twisted_iocpsupport-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:391ac4d6002a80e15f35adc4ad6056f4fe1c17ceb0d1f98ba01b0f4f917adfd7"}, + {file = "twisted_iocpsupport-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:0c1b5cf37f0b2d96cc3c9bc86fff16613b9f5d0ca565c96cf1f1fb8cfca4b81c"}, + {file = "twisted_iocpsupport-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:3c5dc11d72519e55f727320e3cee535feedfaee09c0f0765ed1ca7badff1ab3c"}, + {file = "twisted_iocpsupport-1.0.4-cp38-cp38-win32.whl", hash = "sha256:cc86c2ef598c15d824a243c2541c29459881c67fc3c0adb6efe2242f8f0ec3af"}, + {file = "twisted_iocpsupport-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:c27985e949b9b1a1fb4c20c71d315c10ea0f93fdf3ccdd4a8c158b5926edd8c8"}, + {file = "twisted_iocpsupport-1.0.4-cp39-cp39-win32.whl", hash = "sha256:e311dfcb470696e3c077249615893cada598e62fa7c4e4ca090167bd2b7d331f"}, + {file = "twisted_iocpsupport-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4574eef1f3bb81501fb02f911298af3c02fe8179c31a33b361dd49180c3e644d"}, + {file = "twisted_iocpsupport-1.0.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:872747a3b64e2909aee59c803ccd0bceb9b75bf27915520ebd32d69687040fa2"}, + {file = "twisted_iocpsupport-1.0.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:c2712b778bacf1db434e3e065adfed3db300754186a29aecac1efae9ef4bcaff"}, + {file = "twisted_iocpsupport-1.0.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:7c66fa0aa4236b27b3c61cb488662d85dae746a6d1c7b0d91cf7aae118445adf"}, + {file = "twisted_iocpsupport-1.0.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:300437af17396a945a58dcfffd77863303a8b6d9e65c6e81f1d2eed55b50d444"}, ] [[package]] @@ -4012,33 +4005,33 @@ watchmedo = ["PyYAML (>=3.10)"] [[package]] name = "watchfiles" -version = "0.19.0" +version = "0.20.0" description = "Simple, modern and high performance file watching and code reload in python." optional = false python-versions = ">=3.7" files = [ - {file = "watchfiles-0.19.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:91633e64712df3051ca454ca7d1b976baf842d7a3640b87622b323c55f3345e7"}, - {file = "watchfiles-0.19.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:b6577b8c6c8701ba8642ea9335a129836347894b666dd1ec2226830e263909d3"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:18b28f6ad871b82df9542ff958d0c86bb0d8310bb09eb8e87d97318a3b5273af"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fac19dc9cbc34052394dbe81e149411a62e71999c0a19e1e09ce537867f95ae0"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:09ea3397aecbc81c19ed7f025e051a7387feefdb789cf768ff994c1228182fda"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c0376deac92377817e4fb8f347bf559b7d44ff556d9bc6f6208dd3f79f104aaf"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c75eff897786ee262c9f17a48886f4e98e6cfd335e011c591c305e5d083c056"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb5d45c4143c1dd60f98a16187fd123eda7248f84ef22244818c18d531a249d1"}, - {file = "watchfiles-0.19.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:79c533ff593db861ae23436541f481ec896ee3da4e5db8962429b441bbaae16e"}, - {file = "watchfiles-0.19.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3d7d267d27aceeeaa3de0dd161a0d64f0a282264d592e335fff7958cc0cbae7c"}, - {file = "watchfiles-0.19.0-cp37-abi3-win32.whl", hash = "sha256:176a9a7641ec2c97b24455135d58012a5be5c6217fc4d5fef0b2b9f75dbf5154"}, - {file = "watchfiles-0.19.0-cp37-abi3-win_amd64.whl", hash = "sha256:945be0baa3e2440151eb3718fd8846751e8b51d8de7b884c90b17d271d34cae8"}, - {file = "watchfiles-0.19.0-cp37-abi3-win_arm64.whl", hash = "sha256:0089c6dc24d436b373c3c57657bf4f9a453b13767150d17284fc6162b2791911"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cae3dde0b4b2078f31527acff6f486e23abed307ba4d3932466ba7cdd5ecec79"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f3920b1285a7d3ce898e303d84791b7bf40d57b7695ad549dc04e6a44c9f120"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9afd0d69429172c796164fd7fe8e821ade9be983f51c659a38da3faaaaac44dc"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68dce92b29575dda0f8d30c11742a8e2b9b8ec768ae414b54f7453f27bdf9545"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:5569fc7f967429d4bc87e355cdfdcee6aabe4b620801e2cf5805ea245c06097c"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5471582658ea56fca122c0f0d0116a36807c63fefd6fdc92c71ca9a4491b6b48"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b538014a87f94d92f98f34d3e6d2635478e6be6423a9ea53e4dd96210065e193"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20b44221764955b1e703f012c74015306fb7e79a00c15370785f309b1ed9aa8d"}, - {file = "watchfiles-0.19.0.tar.gz", hash = "sha256:d9b073073e048081e502b6c6b0b88714c026a1a4c890569238d04aca5f9ca74b"}, + {file = "watchfiles-0.20.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:3796312bd3587e14926013612b23066912cf45a14af71cf2b20db1c12dadf4e9"}, + {file = "watchfiles-0.20.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d0002d81c89a662b595645fb684a371b98ff90a9c7d8f8630c82f0fde8310458"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:570848706440373b4cd8017f3e850ae17f76dbdf1e9045fc79023b11e1afe490"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a0351d20d03c6f7ad6b2e8a226a5efafb924c7755ee1e34f04c77c3682417fa"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:007dcc4a401093010b389c044e81172c8a2520dba257c88f8828b3d460c6bb38"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d82dbc1832da83e441d112069833eedd4cf583d983fb8dd666fbefbea9d99c0"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99f4c65fd2fce61a571b2a6fcf747d6868db0bef8a934e8ca235cc8533944d95"}, + {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5392dd327a05f538c56edb1c6ebba6af91afc81b40822452342f6da54907bbdf"}, + {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:08dc702529bb06a2b23859110c214db245455532da5eaea602921687cfcd23db"}, + {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7d4e66a857621584869cfbad87039e65dadd7119f0d9bb9dbc957e089e32c164"}, + {file = "watchfiles-0.20.0-cp37-abi3-win32.whl", hash = "sha256:a03d1e6feb7966b417f43c3e3783188167fd69c2063e86bad31e62c4ea794cc5"}, + {file = "watchfiles-0.20.0-cp37-abi3-win_amd64.whl", hash = "sha256:eccc8942bcdc7d638a01435d915b913255bbd66f018f1af051cd8afddb339ea3"}, + {file = "watchfiles-0.20.0-cp37-abi3-win_arm64.whl", hash = "sha256:b17d4176c49d207865630da5b59a91779468dd3e08692fe943064da260de2c7c"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d97db179f7566dcf145c5179ddb2ae2a4450e3a634eb864b09ea04e68c252e8e"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:835df2da7a5df5464c4a23b2d963e1a9d35afa422c83bf4ff4380b3114603644"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:608cd94a8767f49521901aff9ae0c92cc8f5a24d528db7d6b0295290f9d41193"}, + {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d1de8218874925bce7bb2ae9657efc504411528930d7a83f98b1749864f2ef"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:13f995d5152a8ba4ed7c2bbbaeee4e11a5944defc7cacd0ccb4dcbdcfd78029a"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b5c8d3be7b502f8c43a33c63166ada8828dbb0c6d49c8f9ce990a96de2f5a49"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e43af4464daa08723c04b43cf978ab86cc55c684c16172622bdac64b34e36af0"}, + {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d9e1f75c4f86c93d73b5bd1ebe667558357548f11b4f8af4e0e272f79413ce"}, + {file = "watchfiles-0.20.0.tar.gz", hash = "sha256:728575b6b94c90dd531514677201e8851708e6e4b5fe7028ac506a200b622019"}, ] [package.dependencies] @@ -4075,17 +4068,17 @@ pyOpenSSL = ">=23.2.0" [[package]] name = "websocket-client" -version = "1.6.1" +version = "1.6.2" description = "WebSocket client for Python with low level API options" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "websocket-client-1.6.1.tar.gz", hash = "sha256:c951af98631d24f8df89ab1019fc365f2227c0892f12fd150e935607c79dd0dd"}, - {file = "websocket_client-1.6.1-py3-none-any.whl", hash = "sha256:f1f9f2ad5291f0225a49efad77abf9e700b6fef553900623060dad6e26503b9d"}, + {file = "websocket-client-1.6.2.tar.gz", hash = "sha256:53e95c826bf800c4c465f50093a8c4ff091c7327023b10bfaff40cf1ef170eaa"}, + {file = "websocket_client-1.6.2-py3-none-any.whl", hash = "sha256:ce54f419dfae71f4bdba69ebe65bf7f0a93fe71bc009ad3a010aacc3eebad537"}, ] [package.extras] -docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] +docs = ["Sphinx (>=6.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] From 19e04d78377899ae0eb999c978c699d00063e07b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 04:26:49 +0000 Subject: [PATCH 05/19] core: bump celery from 5.3.1 to 5.3.4 Bumps [celery](https://github.com/celery/celery) from 5.3.1 to 5.3.4. - [Release notes](https://github.com/celery/celery/releases) - [Changelog](https://github.com/celery/celery/blob/main/Changelog.rst) - [Commits](https://github.com/celery/celery/compare/v5.3.1...v5.3.4) --- updated-dependencies: - dependency-name: celery dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- poetry.lock | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8d1c9150d..23cb7e227 100644 --- a/poetry.lock +++ b/poetry.lock @@ -552,13 +552,13 @@ test = ["pytest", "pytest-cov"] [[package]] name = "celery" -version = "5.3.1" +version = "5.3.4" description = "Distributed Task Queue." optional = false python-versions = ">=3.8" files = [ - {file = "celery-5.3.1-py3-none-any.whl", hash = "sha256:27f8f3f3b58de6e0ab4f174791383bbd7445aff0471a43e99cfd77727940753f"}, - {file = "celery-5.3.1.tar.gz", hash = "sha256:f84d1c21a1520c116c2b7d26593926581191435a03aa74b77c941b93ca1c6210"}, + {file = "celery-5.3.4-py3-none-any.whl", hash = "sha256:1e6ed40af72695464ce98ca2c201ad0ef8fd192246f6c9eac8bba343b980ad34"}, + {file = "celery-5.3.4.tar.gz", hash = "sha256:9023df6a8962da79eb30c0c84d5f4863d9793a466354cc931d7f72423996de28"}, ] [package.dependencies] @@ -567,14 +567,14 @@ click = ">=8.1.2,<9.0" click-didyoumean = ">=0.3.0" click-plugins = ">=1.1.1" click-repl = ">=0.2.0" -kombu = ">=5.3.1,<6.0" +kombu = ">=5.3.2,<6.0" python-dateutil = ">=2.8.2" tzdata = ">=2022.7" vine = ">=5.0.0,<6.0" [package.extras] -arangodb = ["pyArango (>=2.0.1)"] -auth = ["cryptography (==41.0.1)"] +arangodb = ["pyArango (>=2.0.2)"] +auth = ["cryptography (==41.0.3)"] azureblockblob = ["azure-storage-blob (>=12.15.0)"] brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] cassandra = ["cassandra-driver (>=3.25.0,<4)"] @@ -594,7 +594,7 @@ msgpack = ["msgpack (==1.0.5)"] pymemcache = ["python-memcached (==1.59)"] pyro = ["pyro4 (==4.82)"] pytest = ["pytest-celery (==0.0.0)"] -redis = ["redis (>=4.5.2,!=4.5.5)"] +redis = ["redis (>=4.5.2,!=4.5.5,<5.0.0)"] s3 = ["boto3 (>=1.26.143)"] slmq = ["softlayer-messaging (>=1.0.3)"] solar = ["ephem (==4.1.4)"] @@ -3137,6 +3137,7 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -3144,8 +3145,15 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -3162,6 +3170,7 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -3169,6 +3178,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, From 4b20409a91356991f75e5a8be5aa63856cb3c32f Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 4 Sep 2023 08:44:00 +0200 Subject: [PATCH 06/19] sources/ldap: fix FreeIPA nsaccountlock sync (#6745) Signed-off-by: Jens Langhammer --- authentik/sources/ldap/sync/vendor/freeipa.py | 6 +- authentik/sources/ldap/tests/mock_freeipa.py | 111 ++++++++++++++++++ authentik/sources/ldap/tests/mock_slapd.py | 2 +- authentik/sources/ldap/tests/test_sync.py | 18 +++ 4 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 authentik/sources/ldap/tests/mock_freeipa.py diff --git a/authentik/sources/ldap/sync/vendor/freeipa.py b/authentik/sources/ldap/sync/vendor/freeipa.py index 2eff854f6..8ac6361a1 100644 --- a/authentik/sources/ldap/sync/vendor/freeipa.py +++ b/authentik/sources/ldap/sync/vendor/freeipa.py @@ -45,7 +45,11 @@ class FreeIPA(BaseLDAPSynchronizer): # 389-ds and this will trigger regardless if "nsaccountlock" not in attributes: return - is_active = attributes.get("nsaccountlock", False) + # For some reason, nsaccountlock is not defined properly in the schema as bool + # hence we get it as a list of strings + _is_active = str(self._flatten(attributes.get("nsaccountlock", ["FALSE"]))) + # So we have to attempt to convert it to a bool + is_active = _is_active.lower() == "true" if is_active != user.is_active: user.is_active = is_active user.save() diff --git a/authentik/sources/ldap/tests/mock_freeipa.py b/authentik/sources/ldap/tests/mock_freeipa.py new file mode 100644 index 000000000..f2bb8bb7b --- /dev/null +++ b/authentik/sources/ldap/tests/mock_freeipa.py @@ -0,0 +1,111 @@ +"""ldap testing utils""" + +from ldap3 import MOCK_SYNC, OFFLINE_DS389_1_3_3, Connection, Server + + +def mock_freeipa_connection(password: str) -> Connection: + """Create mock FreeIPA-ish connection""" + server = Server("my_fake_server", get_info=OFFLINE_DS389_1_3_3) + _pass = "foo" # noqa # nosec + connection = Connection( + server, + user="cn=my_user,dc=goauthentik,dc=io", + password=_pass, + client_strategy=MOCK_SYNC, + ) + # Entry for password checking + connection.strategy.add_entry( + "cn=user,ou=users,dc=goauthentik,dc=io", + { + "name": "test-user", + "uid": "unique-test-group", + "objectClass": "person", + "displayName": "Erin M. Hagens", + }, + ) + connection.strategy.add_entry( + "cn=group1,ou=groups,dc=goauthentik,dc=io", + { + "cn": "group1", + "uid": "unique-test-group", + "objectClass": "groupOfNames", + "member": ["cn=user0,ou=users,dc=goauthentik,dc=io"], + }, + ) + # Group without SID + connection.strategy.add_entry( + "cn=group2,ou=groups,dc=goauthentik,dc=io", + { + "cn": "group2", + "objectClass": "groupOfNames", + }, + ) + connection.strategy.add_entry( + "cn=user0,ou=users,dc=goauthentik,dc=io", + { + "userPassword": password, + "name": "user0_sn", + "uid": "user0_sn", + "objectClass": "person", + }, + ) + # User without SID + connection.strategy.add_entry( + "cn=user1,ou=users,dc=goauthentik,dc=io", + { + "userPassword": "test1111", + "name": "user1_sn", + "objectClass": "person", + }, + ) + # Duplicate users + connection.strategy.add_entry( + "cn=user2,ou=users,dc=goauthentik,dc=io", + { + "userPassword": "test2222", + "name": "user2_sn", + "uid": "unique-test2222", + "objectClass": "person", + }, + ) + connection.strategy.add_entry( + "cn=user3,ou=users,dc=goauthentik,dc=io", + { + "userPassword": "test2222", + "name": "user2_sn", + "uid": "unique-test2222", + "objectClass": "person", + }, + ) + # Group with posixGroup and memberUid + connection.strategy.add_entry( + "cn=group-posix,ou=groups,dc=goauthentik,dc=io", + { + "cn": "group-posix", + "objectClass": "posixGroup", + "memberUid": ["user-posix"], + }, + ) + # User with posixAccount + connection.strategy.add_entry( + "cn=user-posix,ou=users,dc=goauthentik,dc=io", + { + "userPassword": password, + "uid": "user-posix", + "cn": "user-posix", + "objectClass": "posixAccount", + }, + ) + # Locked out user + connection.strategy.add_entry( + "cn=user-nsaccountlock,ou=users,dc=goauthentik,dc=io", + { + "userPassword": password, + "uid": "user-nsaccountlock", + "cn": "user-nsaccountlock", + "objectClass": "person", + "nsaccountlock": ["TRUE"], + }, + ) + connection.bind() + return connection diff --git a/authentik/sources/ldap/tests/mock_slapd.py b/authentik/sources/ldap/tests/mock_slapd.py index 075421f26..957b7fbdc 100644 --- a/authentik/sources/ldap/tests/mock_slapd.py +++ b/authentik/sources/ldap/tests/mock_slapd.py @@ -4,7 +4,7 @@ from ldap3 import MOCK_SYNC, OFFLINE_SLAPD_2_4, Connection, Server def mock_slapd_connection(password: str) -> Connection: - """Create mock AD connection""" + """Create mock SLAPD connection""" server = Server("my_fake_server", get_info=OFFLINE_SLAPD_2_4) _pass = "foo" # noqa # nosec connection = Connection( diff --git a/authentik/sources/ldap/tests/test_sync.py b/authentik/sources/ldap/tests/test_sync.py index 21aad1be4..5fbfd553d 100644 --- a/authentik/sources/ldap/tests/test_sync.py +++ b/authentik/sources/ldap/tests/test_sync.py @@ -17,6 +17,7 @@ from authentik.sources.ldap.sync.membership import MembershipLDAPSynchronizer from authentik.sources.ldap.sync.users import UserLDAPSynchronizer from authentik.sources.ldap.tasks import ldap_sync, ldap_sync_all from authentik.sources.ldap.tests.mock_ad import mock_ad_connection +from authentik.sources.ldap.tests.mock_freeipa import mock_freeipa_connection from authentik.sources.ldap.tests.mock_slapd import mock_slapd_connection LDAP_PASSWORD = generate_key() @@ -120,6 +121,23 @@ class LDAPSyncTests(TestCase): self.assertTrue(User.objects.filter(username="user0_sn").exists()) self.assertFalse(User.objects.filter(username="user1_sn").exists()) + def test_sync_users_freeipa_ish(self): + """Test user sync (FreeIPA-ish), mainly testing vendor quirks""" + self.source.object_uniqueness_field = "uid" + self.source.property_mappings.set( + LDAPPropertyMapping.objects.filter( + Q(managed__startswith="goauthentik.io/sources/ldap/default") + | Q(managed__startswith="goauthentik.io/sources/ldap/openldap") + ) + ) + self.source.save() + connection = MagicMock(return_value=mock_freeipa_connection(LDAP_PASSWORD)) + with patch("authentik.sources.ldap.models.LDAPSource.connection", connection): + user_sync = UserLDAPSynchronizer(self.source) + user_sync.sync_full() + self.assertTrue(User.objects.filter(username="user0_sn").exists()) + self.assertFalse(User.objects.filter(username="user1_sn").exists()) + def test_sync_groups_ad(self): """Test group sync""" self.source.property_mappings.set( From 77e7c3156705be0022780bd8522592c7b5357b29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 11:23:07 +0200 Subject: [PATCH 07/19] core: bump django from 4.2.4 to 4.2.5 (#6751) Bumps [django](https://github.com/django/django) from 4.2.4 to 4.2.5. - [Commits](https://github.com/django/django/compare/4.2.4...4.2.5) --- 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 23cb7e227..d610b36df 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1125,13 +1125,13 @@ graph = ["objgraph (>=1.7.2)"] [[package]] name = "django" -version = "4.2.4" +version = "4.2.5" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.8" files = [ - {file = "Django-4.2.4-py3-none-any.whl", hash = "sha256:860ae6a138a238fc4f22c99b52f3ead982bb4b1aad8c0122bcd8c8a3a02e409d"}, - {file = "Django-4.2.4.tar.gz", hash = "sha256:7e4225ec065e0f354ccf7349a22d209de09cc1c074832be9eb84c51c1799c432"}, + {file = "Django-4.2.5-py3-none-any.whl", hash = "sha256:b6b2b5cae821077f137dc4dade696a1c2aa292f892eca28fa8d7bfdf2608ddd4"}, + {file = "Django-4.2.5.tar.gz", hash = "sha256:5e5c1c9548ffb7796b4a8a4782e9a2e5a3df3615259fc1bfd3ebc73b646146c1"}, ] [package.dependencies] From 7e9e2ec53d461333be7d0da0c0bb9287006e674a Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 5 Sep 2023 21:34:34 +0200 Subject: [PATCH 08/19] web: don't import entire SourceViewPage in flow and user interface (#6761) Signed-off-by: Jens Langhammer --- web/src/admin/sources/SourceViewPage.ts | 12 ------------ web/src/admin/sources/utils.ts | 13 +++++++++++++ .../stages/identification/IdentificationStage.ts | 2 +- .../user/user-settings/sources/SourceSettings.ts | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 web/src/admin/sources/utils.ts diff --git a/web/src/admin/sources/SourceViewPage.ts b/web/src/admin/sources/SourceViewPage.ts index 3c010bdb0..d0050fdf9 100644 --- a/web/src/admin/sources/SourceViewPage.ts +++ b/web/src/admin/sources/SourceViewPage.ts @@ -14,18 +14,6 @@ import { ifDefined } from "lit/directives/if-defined.js"; import { Source, SourcesApi } from "@goauthentik/api"; -export function renderSourceIcon(name: string, iconUrl: string | undefined | null): TemplateResult { - const icon = html``; - if (iconUrl) { - if (iconUrl.startsWith("fa://")) { - const url = iconUrl.replaceAll("fa://", ""); - return html``; - } - return html`${name}`; - } - return icon; -} - @customElement("ak-source-view") export class SourceViewPage extends AKElement { @property({ type: String }) diff --git a/web/src/admin/sources/utils.ts b/web/src/admin/sources/utils.ts new file mode 100644 index 000000000..83ff0b967 --- /dev/null +++ b/web/src/admin/sources/utils.ts @@ -0,0 +1,13 @@ +import { TemplateResult, html } from "lit"; + +export function renderSourceIcon(name: string, iconUrl: string | undefined | null): TemplateResult { + const icon = html``; + if (iconUrl) { + if (iconUrl.startsWith("fa://")) { + const url = iconUrl.replaceAll("fa://", ""); + return html``; + } + return html`${name}`; + } + return icon; +} diff --git a/web/src/flow/stages/identification/IdentificationStage.ts b/web/src/flow/stages/identification/IdentificationStage.ts index 6e302f9a7..49b530026 100644 --- a/web/src/flow/stages/identification/IdentificationStage.ts +++ b/web/src/flow/stages/identification/IdentificationStage.ts @@ -1,4 +1,4 @@ -import { renderSourceIcon } from "@goauthentik/admin/sources/SourceViewPage"; +import { renderSourceIcon } from "@goauthentik/app/admin/sources/utils"; import "@goauthentik/elements/Divider"; import "@goauthentik/elements/EmptyState"; import "@goauthentik/elements/forms/FormElement"; diff --git a/web/src/user/user-settings/sources/SourceSettings.ts b/web/src/user/user-settings/sources/SourceSettings.ts index 718c7d1c8..203eef9f3 100644 --- a/web/src/user/user-settings/sources/SourceSettings.ts +++ b/web/src/user/user-settings/sources/SourceSettings.ts @@ -1,4 +1,4 @@ -import { renderSourceIcon } from "@goauthentik/admin/sources/SourceViewPage"; +import { renderSourceIcon } from "@goauthentik/app/admin/sources/utils"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import { me } from "@goauthentik/common/users"; From aa209efa904236402fa30a766d27ee67cb59fd43 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 5 Sep 2023 21:58:11 +0200 Subject: [PATCH 09/19] =?UTF-8?q?stages/password:=20fix=20failed=5Fattempt?= =?UTF-8?q?s=5Fbefore=5Fcancel=20allowing=20one=20too=20m=E2=80=A6=20(#676?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * stages/password: fix failed_attempts_before_cancel allowing one too many tries Signed-off-by: Jens Langhammer * fix tests Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/stages/password/stage.py | 2 +- authentik/stages/password/tests.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/authentik/stages/password/stage.py b/authentik/stages/password/stage.py index 9b87a6691..bdf3650bf 100644 --- a/authentik/stages/password/stage.py +++ b/authentik/stages/password/stage.py @@ -111,7 +111,7 @@ class PasswordStageView(ChallengeStageView): current_stage: PasswordStage = self.executor.current_stage if ( self.request.session[SESSION_KEY_INVALID_TRIES] - > current_stage.failed_attempts_before_cancel + >= current_stage.failed_attempts_before_cancel ): self.logger.debug("User has exceeded maximum tries") del self.request.session[SESSION_KEY_INVALID_TRIES] diff --git a/authentik/stages/password/tests.py b/authentik/stages/password/tests.py index 33abe5961..4d8b9a38f 100644 --- a/authentik/stages/password/tests.py +++ b/authentik/stages/password/tests.py @@ -108,7 +108,7 @@ class TestPasswordStage(FlowTestCase): session[SESSION_KEY_PLAN] = plan session.save() - for _ in range(self.stage.failed_attempts_before_cancel): + for _ in range(self.stage.failed_attempts_before_cancel - 1): response = self.client.post( reverse( "authentik_api:flow-executor", @@ -118,6 +118,11 @@ class TestPasswordStage(FlowTestCase): {"password": self.user.username + "test"}, ) self.assertEqual(response.status_code, 200) + self.assertStageResponse( + response, + flow=self.flow, + response_errors={"password": [{"string": "Invalid password", "code": "invalid"}]}, + ) response = self.client.post( reverse("authentik_api:flow-executor", kwargs={"flow_slug": self.flow.slug}), @@ -127,6 +132,7 @@ class TestPasswordStage(FlowTestCase): self.assertEqual(response.status_code, 200) # To ensure the plan has been cancelled, check SESSION_KEY_PLAN self.assertNotIn(SESSION_KEY_PLAN, self.client.session) + self.assertStageResponse(response, flow=self.flow, error_message="Unknown error") @patch( "authentik.flows.views.executor.to_stage_response", From ae91689fd8c158b4c92dc9cbc4c76c193e65866c Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 5 Sep 2023 22:15:14 +0200 Subject: [PATCH 10/19] policies/reputation: require either check to be enabled (#6764) Signed-off-by: Jens Langhammer --- authentik/policies/reputation/api.py | 7 +++++++ authentik/policies/reputation/tests.py | 7 +++++++ web/src/admin/policies/reputation/ReputationPolicyForm.ts | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/authentik/policies/reputation/api.py b/authentik/policies/reputation/api.py index fc9eafcab..9e9d95e13 100644 --- a/authentik/policies/reputation/api.py +++ b/authentik/policies/reputation/api.py @@ -1,5 +1,7 @@ """Reputation policy API Views""" +from django.utils.translation import gettext_lazy as _ from rest_framework import mixins +from rest_framework.exceptions import ValidationError from rest_framework.serializers import ModelSerializer from rest_framework.viewsets import GenericViewSet, ModelViewSet @@ -11,6 +13,11 @@ from authentik.policies.reputation.models import Reputation, ReputationPolicy class ReputationPolicySerializer(PolicySerializer): """Reputation Policy Serializer""" + def validate(self, attrs: dict) -> dict: + if not attrs.get("check_ip", False) and not attrs.get("check_username", False): + raise ValidationError(_("Either IP or Username must be checked")) + return super().validate(attrs) + class Meta: model = ReputationPolicy fields = PolicySerializer.Meta.fields + [ diff --git a/authentik/policies/reputation/tests.py b/authentik/policies/reputation/tests.py index 65910b89b..76a8cea4a 100644 --- a/authentik/policies/reputation/tests.py +++ b/authentik/policies/reputation/tests.py @@ -3,6 +3,8 @@ from django.core.cache import cache 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.tasks import save_reputation from authentik.policies.types import PolicyRequest @@ -61,3 +63,8 @@ class TestReputationPolicy(TestCase): name="reputation-test", threshold=0 ) self.assertTrue(policy.passes(request).passing) + + def test_api(self): + """Test API Validation""" + no_toggle = ReputationPolicySerializer(data={"name": generate_id(), "threshold": -5}) + self.assertFalse(no_toggle.is_valid()) diff --git a/web/src/admin/policies/reputation/ReputationPolicyForm.ts b/web/src/admin/policies/reputation/ReputationPolicyForm.ts index 4d6088fb3..33903caab 100644 --- a/web/src/admin/policies/reputation/ReputationPolicyForm.ts +++ b/web/src/admin/policies/reputation/ReputationPolicyForm.ts @@ -93,7 +93,7 @@ doesn't pass when either or both of the selected options are equal or above the From 25ac04f4e5dce318de99430455c0f551872b7ccd Mon Sep 17 00:00:00 2001 From: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com> Date: Tue, 5 Sep 2023 15:37:49 -0700 Subject: [PATCH 11/19] web/admin: fix not being able to unset certificates (#6767) * web: fix 6742: empty web certificate request needs to return null, not undefined This replaces the `undefined` setting of the certificate search wrapper to `null` when the admin requests no certificate. * only set singleton if we don't have an instance Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- web/src/admin/common/ak-crypto-certificate-search.ts | 2 +- web/src/admin/providers/oauth2/OAuth2ProviderForm.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/web/src/admin/common/ak-crypto-certificate-search.ts b/web/src/admin/common/ak-crypto-certificate-search.ts index 15fe347c2..3d913a13a 100644 --- a/web/src/admin/common/ak-crypto-certificate-search.ts +++ b/web/src/admin/common/ak-crypto-certificate-search.ts @@ -69,7 +69,7 @@ export class AkCryptoCertificateSearch extends CustomListenerElement(AKElement) } get value() { - return this.selectedKeypair ? renderValue(this.selectedKeypair) : undefined; + return this.selectedKeypair ? renderValue(this.selectedKeypair) : null; } connectedCallback() { diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts index 1a335846d..b1e07c352 100644 --- a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts +++ b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts @@ -205,8 +205,8 @@ ${this.instance?.redirectUris}

${msg("Key used to sign the tokens.")}

From f2754d278fc7b368decad9d8a61c7aee07691d92 Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 6 Sep 2023 12:22:25 +0200 Subject: [PATCH 12/19] root: lock node to 20.5 (#6776) * root: lock node to 20.5 there are apparently some breaking issues in 20.6 with babel https://github.com/babel/babel/issues/15927 Signed-off-by: Jens Langhammer * use same version of setup-node everywhere Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer # Conflicts: # .github/workflows/ci-web.yml # .github/workflows/ci-website.yml --- .github/actions/setup/action.yml | 2 +- .github/workflows/ci-outpost.yml | 4 ++-- .github/workflows/ci-web.yml | 30 +++++++++++++-------------- .github/workflows/ci-website.yml | 18 ++++++++-------- .github/workflows/release-publish.yml | 4 ++-- .github/workflows/web-api-publish.yml | 4 ++-- Dockerfile | 4 ++-- proxy.Dockerfile | 2 +- 8 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index c13282ba0..9fc956c80 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -23,7 +23,7 @@ runs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - name: Setup dependencies diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index 84f523f92..6520fd730 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -120,9 +120,9 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: "go.mod" - - uses: actions/setup-node@v3.8.1 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - name: Generate API diff --git a/.github/workflows/ci-web.yml b/.github/workflows/ci-web.yml index b6da95d2d..6a23127a7 100644 --- a/.github/workflows/ci-web.yml +++ b/.github/workflows/ci-web.yml @@ -14,10 +14,10 @@ jobs: lint-eslint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - working-directory: web/ @@ -30,10 +30,10 @@ jobs: lint-build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - working-directory: web/ @@ -46,10 +46,10 @@ jobs: lint-prettier: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - working-directory: web/ @@ -62,10 +62,10 @@ jobs: lint-lit-analyse: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - working-directory: web/ @@ -94,10 +94,10 @@ jobs: - ci-web-mark runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - working-directory: web/ diff --git a/.github/workflows/ci-website.yml b/.github/workflows/ci-website.yml index 38885d83b..0445b4703 100644 --- a/.github/workflows/ci-website.yml +++ b/.github/workflows/ci-website.yml @@ -14,10 +14,10 @@ jobs: lint-prettier: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: website/package-lock.json - working-directory: website/ @@ -28,10 +28,10 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: website/package-lock.json - working-directory: website/ @@ -49,10 +49,10 @@ jobs: - build - build-docs-only steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3.8.1 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: website/package-lock.json - working-directory: website/ diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 032380ee7..b568486db 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -110,9 +110,9 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: "go.mod" - - uses: actions/setup-node@v3.8.1 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" cache: "npm" cache-dependency-path: web/package-lock.json - name: Build web diff --git a/.github/workflows/web-api-publish.yml b/.github/workflows/web-api-publish.yml index 1f6ffbb4a..d587b78d9 100644 --- a/.github/workflows/web-api-publish.yml +++ b/.github/workflows/web-api-publish.yml @@ -17,9 +17,9 @@ jobs: - uses: actions/checkout@v3 with: token: ${{ steps.generate_token.outputs.token }} - - uses: actions/setup-node@v3.8.1 + - uses: actions/setup-node@v3 with: - node-version: "20" + node-version: "20.5" registry-url: "https://registry.npmjs.org" - name: Generate API Client run: make gen-client-ts diff --git a/Dockerfile b/Dockerfile index c78b4a96a..cb3f63a13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Stage 1: Build website -FROM --platform=${BUILDPLATFORM} docker.io/node:20 as website-builder +FROM --platform=${BUILDPLATFORM} docker.io/node:20.5 as website-builder COPY ./website /work/website/ COPY ./blueprints /work/blueprints/ @@ -10,7 +10,7 @@ WORKDIR /work/website RUN npm ci --include=dev && npm run build-docs-only # Stage 2: Build webui -FROM --platform=${BUILDPLATFORM} docker.io/node:20 as web-builder +FROM --platform=${BUILDPLATFORM} docker.io/node:20.5 as web-builder COPY ./web /work/web/ COPY ./website /work/website/ diff --git a/proxy.Dockerfile b/proxy.Dockerfile index 3043031f9..0174c32f8 100644 --- a/proxy.Dockerfile +++ b/proxy.Dockerfile @@ -1,5 +1,5 @@ # Stage 1: Build website -FROM --platform=${BUILDPLATFORM} docker.io/node:20 as web-builder +FROM --platform=${BUILDPLATFORM} docker.io/node:20.5 as web-builder COPY ./web /static/ From d36574fc1a9c2f21e3f3bb0f0652fb5f05c7f435 Mon Sep 17 00:00:00 2001 From: Alissa Gerhard Date: Fri, 8 Sep 2023 20:37:54 +0200 Subject: [PATCH 13/19] sources/ldap: fix task timeout for ldap_sync_all and ldap_sync_single (#6809) * sources/ldap: fix task timeout for ldap_sync_all and ldap_sync_single * ldap_sync_all runs tasks async so doesn't need longer timeouts Signed-off-by: Jens Langhammer * bump time more as we run some tasks in serial and add more leeway Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- authentik/sources/ldap/tasks.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/authentik/sources/ldap/tasks.py b/authentik/sources/ldap/tasks.py index 39aeb4c3c..0223a68ba 100644 --- a/authentik/sources/ldap/tasks.py +++ b/authentik/sources/ldap/tasks.py @@ -33,7 +33,13 @@ def ldap_sync_all(): ldap_sync_single(source.pk) -@CELERY_APP.task() +@CELERY_APP.task( + # We take the configured hours timeout time by 2.5 as we run user and + # group in parallel and then membership, so 2x is to cover the serial tasks, + # and 0.5x on top of that to give some more leeway + soft_time_limit=(60 * 60 * CONFIG.get_int("ldap.task_timeout_hours")) * 2.5, + task_time_limit=(60 * 60 * CONFIG.get_int("ldap.task_timeout_hours")) * 2.5, +) def ldap_sync_single(source_pk: str): """Sync a single source""" source: LDAPSource = LDAPSource.objects.filter(pk=source_pk).first() From dd18f9cd302ea05c2fc5be9ad151938e3219f209 Mon Sep 17 00:00:00 2001 From: Alissa Gerhard Date: Mon, 11 Sep 2023 12:43:10 +0200 Subject: [PATCH 14/19] sources/ldap: dont prefetch useless items (#6812) sources/ldap: Fixed fetching of useless data into redis --- authentik/sources/ldap/sync/groups.py | 3 +++ authentik/sources/ldap/sync/membership.py | 3 +++ authentik/sources/ldap/sync/users.py | 3 +++ 3 files changed, 9 insertions(+) diff --git a/authentik/sources/ldap/sync/groups.py b/authentik/sources/ldap/sync/groups.py index a10e0a904..68eedcc34 100644 --- a/authentik/sources/ldap/sync/groups.py +++ b/authentik/sources/ldap/sync/groups.py @@ -18,6 +18,9 @@ class GroupLDAPSynchronizer(BaseLDAPSynchronizer): return "groups" def get_objects(self, **kwargs) -> Generator: + if not self._source.sync_groups: + self.message("Group syncing is disabled for this Source") + return iter(()) return self.search_paginator( search_base=self.base_dn_groups, search_filter=self._source.group_object_filter, diff --git a/authentik/sources/ldap/sync/membership.py b/authentik/sources/ldap/sync/membership.py index 432715c5a..134f12380 100644 --- a/authentik/sources/ldap/sync/membership.py +++ b/authentik/sources/ldap/sync/membership.py @@ -24,6 +24,9 @@ class MembershipLDAPSynchronizer(BaseLDAPSynchronizer): return "membership" def get_objects(self, **kwargs) -> Generator: + if not self._source.sync_groups: + self.message("Group syncing is disabled for this Source") + return iter(()) return self.search_paginator( search_base=self.base_dn_groups, search_filter=self._source.group_object_filter, diff --git a/authentik/sources/ldap/sync/users.py b/authentik/sources/ldap/sync/users.py index 4a67c1cdc..68d966022 100644 --- a/authentik/sources/ldap/sync/users.py +++ b/authentik/sources/ldap/sync/users.py @@ -20,6 +20,9 @@ class UserLDAPSynchronizer(BaseLDAPSynchronizer): return "users" def get_objects(self, **kwargs) -> Generator: + if not self._source.sync_users: + self.message("User syncing is disabled for this Source") + return iter(()) return self.search_paginator( search_base=self.base_dn_users, search_filter=self._source.user_object_filter, From 67bd622aa4d0e1261308e997a22e95ceb44dca6c Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 11 Sep 2023 14:14:52 +0200 Subject: [PATCH 15/19] web/admin: fix flow-search not being able to unset (#6838) similar to https://github.com/goauthentik/authentik/pull/6767 Signed-off-by: Jens Langhammer --- web/src/admin/common/ak-flow-search/FlowSearch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/admin/common/ak-flow-search/FlowSearch.ts b/web/src/admin/common/ak-flow-search/FlowSearch.ts index b19a8e4cf..e6e18ad3a 100644 --- a/web/src/admin/common/ak-flow-search/FlowSearch.ts +++ b/web/src/admin/common/ak-flow-search/FlowSearch.ts @@ -66,7 +66,7 @@ export class FlowSearch extends CustomListenerElement(AKElement) selectedFlow?: T; get value() { - return this.selectedFlow ? getFlowValue(this.selectedFlow) : undefined; + return this.selectedFlow ? getFlowValue(this.selectedFlow) : null; } constructor() { From fe02720f8dc173cb9feb7834b162d51f0e80fd12 Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 11 Sep 2023 18:12:04 +0200 Subject: [PATCH 16/19] providers/scim: check that a provider exists before starting scim task (#6841) Signed-off-by: Jens Langhammer --- authentik/providers/scim/signals.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/authentik/providers/scim/signals.py b/authentik/providers/scim/signals.py index c9e179ac9..e799044d6 100644 --- a/authentik/providers/scim/signals.py +++ b/authentik/providers/scim/signals.py @@ -23,6 +23,8 @@ def post_save_provider(sender: type[Model], instance, created: bool, **_): @receiver(post_save, sender=Group) def post_save_scim(sender: type[Model], instance: User | Group, created: bool, **_): """Post save handler""" + if not SCIMProvider.objects.filter(backchannel_application__isnull=False).exists(): + return scim_signal_direct.delay(class_to_path(instance.__class__), instance.pk, PatchOp.add.value) @@ -30,6 +32,8 @@ def post_save_scim(sender: type[Model], instance: User | Group, created: bool, * @receiver(pre_delete, sender=Group) def pre_delete_scim(sender: type[Model], instance: User | Group, **_): """Pre-delete handler""" + if not SCIMProvider.objects.filter(backchannel_application__isnull=False).exists(): + return scim_signal_direct.delay(class_to_path(instance.__class__), instance.pk, PatchOp.remove.value) @@ -40,6 +44,8 @@ def m2m_changed_scim( """Sync group membership""" if action not in ["post_add", "post_remove"]: return + if not SCIMProvider.objects.filter(backchannel_application__isnull=False).exists(): + return # reverse: instance is a Group, pk_set is a list of user pks # non-reverse: instance is a User, pk_set is a list of groups if reverse: From ec5bd550c7a8403f222e0db823bc88997af48b82 Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 11 Sep 2023 18:12:18 +0200 Subject: [PATCH 17/19] core: remove celery's duplicate max_tasks_per_child (#6840) Signed-off-by: Jens Langhammer --- authentik/core/management/commands/worker.py | 1 - 1 file changed, 1 deletion(-) diff --git a/authentik/core/management/commands/worker.py b/authentik/core/management/commands/worker.py index cb03c5846..d65027943 100644 --- a/authentik/core/management/commands/worker.py +++ b/authentik/core/management/commands/worker.py @@ -26,7 +26,6 @@ class Command(BaseCommand): no_color=False, quiet=True, optimization="fair", - max_tasks_per_child=1, autoscale=(3, 1), task_events=True, beat=True, From b5b33ce8e9b69327e5a450096851e78dc4e42e2d Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 11 Sep 2023 18:54:36 +0200 Subject: [PATCH 18/19] website/docs: prepare 2023.8.3 release notes (#6843) Signed-off-by: Jens Langhammer --- website/docs/releases/2023/v2023.8.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/website/docs/releases/2023/v2023.8.md b/website/docs/releases/2023/v2023.8.md index c55e291b4..7c805ae83 100644 --- a/website/docs/releases/2023/v2023.8.md +++ b/website/docs/releases/2023/v2023.8.md @@ -136,6 +136,25 @@ image: - web/admin: clear other options depending on what the binding targets (#6703) - web/admin: fix ak-toggle-group for policy and blueprint uses (#6687) +## Fixed in 2023.8.3 + +- core: bump celery from 5.3.1 to 5.3.4 +- core: bump django from 4.2.4 to 4.2.5 (#6751) +- core: remove celery's duplicate max_tasks_per_child (#6840) +- policies/reputation: require either check to be enabled (#6764) +- providers/scim: check that a provider exists before starting scim task (#6841) +- root: fix broken celery dependency (#6744) +- root: lock node to 20.5 (#6776) +- sources/ldap: dont prefetch useless items (#6812) +- sources/ldap: fix FreeIPA nsaccountlock sync (#6745) +- sources/ldap: fix task timeout for ldap_sync_all and ldap_sync_single (#6809) +- stages/password: fix failed_attempts_before_cancel allowing one too m… (#6763) +- web/admin: fix application icon size (#6738) +- web/admin: fix not being able to unset flows (#6838) +- web/admin: fix not being able to unset certificates (#6767) +- web: don't import entire SourceViewPage in flow and user interface (#6761) +- web: replace ampersand (#6737) + ## API Changes #### What's New From f885f8c0395df639ccabd762910867bef0f4577c Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Mon, 11 Sep 2023 18:55:08 +0200 Subject: [PATCH 19/19] release: 2023.8.3 --- .bumpversion.cfg | 2 +- authentik/__init__.py | 2 +- docker-compose.yml | 4 ++-- internal/constants/constants.go | 2 +- pyproject.toml | 2 +- schema.yml | 2 +- web/src/common/constants.ts | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index d8ee84991..bb2356e3b 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2023.8.2 +current_version = 2023.8.3 tag = True commit = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/authentik/__init__.py b/authentik/__init__.py index aaa69d843..a08d2bfe9 100644 --- a/authentik/__init__.py +++ b/authentik/__init__.py @@ -2,7 +2,7 @@ from os import environ from typing import Optional -__version__ = "2023.8.2" +__version__ = "2023.8.3" ENV_GIT_HASH_KEY = "GIT_BUILD_HASH" diff --git a/docker-compose.yml b/docker-compose.yml index 2c28b97c1..8cbf644d5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: volumes: - redis:/data server: - image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.8.2} + image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.8.3} restart: unless-stopped command: server environment: @@ -53,7 +53,7 @@ services: - postgresql - redis worker: - image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.8.2} + image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2023.8.3} restart: unless-stopped command: worker environment: diff --git a/internal/constants/constants.go b/internal/constants/constants.go index d2ce8bea0..a32e8622f 100644 --- a/internal/constants/constants.go +++ b/internal/constants/constants.go @@ -29,4 +29,4 @@ func UserAgent() string { return fmt.Sprintf("authentik@%s", FullVersion()) } -const VERSION = "2023.8.2" +const VERSION = "2023.8.3" diff --git a/pyproject.toml b/pyproject.toml index 79750f204..7e31f7be5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -113,7 +113,7 @@ filterwarnings = [ [tool.poetry] name = "authentik" -version = "2023.8.2" +version = "2023.8.3" description = "" authors = ["authentik Team "] diff --git a/schema.yml b/schema.yml index 10249bf12..57cbffd9a 100644 --- a/schema.yml +++ b/schema.yml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: authentik - version: 2023.8.2 + version: 2023.8.3 description: Making authentication simple. contact: email: hello@goauthentik.io diff --git a/web/src/common/constants.ts b/web/src/common/constants.ts index 262a4a8ff..ca6ce33a1 100644 --- a/web/src/common/constants.ts +++ b/web/src/common/constants.ts @@ -3,7 +3,7 @@ export const SUCCESS_CLASS = "pf-m-success"; export const ERROR_CLASS = "pf-m-danger"; export const PROGRESS_CLASS = "pf-m-in-progress"; export const CURRENT_CLASS = "pf-m-current"; -export const VERSION = "2023.8.2"; +export const VERSION = "2023.8.3"; export const TITLE_DEFAULT = "authentik"; export const ROUTE_SEPARATOR = ";";