canaille-globuzma/doc/gettext/development.pot
2024-11-22 17:26:32 +01:00

2622 lines
74 KiB
Text

# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2024, Yaal Coop
# This file is distributed under the same license as the canaille package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: canaille 0.0.56\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-22 17:21+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../development/changelog.rst:2
#: 2321f3b3acf14287bec3b91e374b7a4e
msgid "Release notes"
msgstr ""
#: ../development/changelog.rst:4
#: ce54249c983b474c8e0fea402ee7db08
msgid "All notable changes to this project will be documented in there."
msgstr ""
#: ../development/changelog.rst:6
#: a3295c678f074c63a2a73028fa0cdb24
msgid "The format is based on `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_, and this project adheres to `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_."
msgstr ""
#: ../../CHANGES.rst:2
#: e5fa6b4fbd7440ea8c9d4c81ee723400
msgid "[0.0.57] - Unreleased"
msgstr ""
#: ../../CHANGES.rst:5
#: ../../CHANGES.rst:20
#: ../../CHANGES.rst:48
#: ../../CHANGES.rst:67
#: ../../CHANGES.rst:74
#: ../../CHANGES.rst:93
#: ../../CHANGES.rst:151
#: ../../CHANGES.rst:177
#: ../../CHANGES.rst:192
#: ../../CHANGES.rst:241
#: ../../CHANGES.rst:267
#: ../../CHANGES.rst:286
#: ../../CHANGES.rst:294
#: ../../CHANGES.rst:303
#: ../../CHANGES.rst:327
#: ../../CHANGES.rst:360
#: ../../CHANGES.rst:386
#: ../../CHANGES.rst:433
#: ../../CHANGES.rst:461
#: ../../CHANGES.rst:491
#: ../../CHANGES.rst:547
#: ../../CHANGES.rst:580
#: ../../CHANGES.rst:601
#: ../../CHANGES.rst:611
#: ../../CHANGES.rst:634
#: ../../CHANGES.rst:701
#: ../../CHANGES.rst:739
#: ../../CHANGES.rst:756
#: ../../CHANGES.rst:792
#: 68d7c354e87a417cb210174cdf0caf03
#: 3db0c002c2764afbaee00eb85f608618
#: bcd37e5f6d1c4cd4afd82eadf5d23bce
#: 89fc5c0226a445f49244caf1e62d080f
#: 19f1711026114064a5bb8d49031510c3
#: 2e29ff42691149fa969ca9fdeb3a4e39
#: 239be472848d430098630a890fe77b5e
#: 7e8bb2e384ff418f954ff6dfc16b929b
#: 43bc9bb8e77143369f5fc7b14c1abcb9
#: 4aa7554114624a25ab488d3ae36c0081
#: eb81cce526c34574b68be0ae49958436
#: d57353f495f2404ca80a5302e2a33579
#: 864a98b7bc754beea56f6deecd06400f
#: 1243783fe4cf470d96f1d99848565ea9
#: da5ebf8438f647868f53e84cc5fa1980
#: 6ad9f25517b34d1e974a37479774c59c
#: 182d965a1dde4d95bdbb9617607c588a
#: 37a62b2eb4aa4c378f4961b0a96a694c
#: ae83441c7d7440ce9bcba1dab44b9e17
#: dc487d8fc4ad4c919b576678475e3579
#: b2a149dbf92b4a269ef3ba3a58d58894
#: 8073c3471b8d4b19a344155e1c8bc7fb
#: 0a8ca3f4481e4a48bd29fc5a69fa803c
#: 6f1a10debe3e49ebafb5d35d5b582935
#: dff770d00b5c43feb6abe259a6f62233
#: 1ffcab7dcb044a768fec8cec5b4079e9
#: 18a9b586f7924b6b9506fb40695c6f52
#: 536fa76ec5b74cfea65f706328cf399d
#: 34242a231a08460183bc15c10ad62416
msgid "Added"
msgstr ""
#: ../../CHANGES.rst:6
#: 76511a0335094c85885bcba9209552fb
msgid "Password compromission check :issue:`179`"
msgstr ""
#: ../../CHANGES.rst:7
#: 7a7920f8d7a841c185fe3f051f5c9ea8
msgid ":attr:`~canaille.core.configuration.CoreSettings.ADMIN_EMAIL` and :attr:`~canaille.core.configuration.CoreSettings.ENABLE_PASSWORD_COMPROMISSION_CHECK` and :attr:`~canaille.core.configuration.CoreSettings.API_URL_HIBP` :issue:`179`"
msgstr ""
#: ../../CHANGES.rst:13
#: a8d81bff320f4897acde83bf6b46304f
msgid "[0.0.56] - 2024-11-07"
msgstr ""
#: ../../CHANGES.rst:16
#: ../../CHANGES.rst:58
#: ../../CHANGES.rst:97
#: ../../CHANGES.rst:105
#: ../../CHANGES.rst:113
#: ../../CHANGES.rst:120
#: ../../CHANGES.rst:127
#: ../../CHANGES.rst:141
#: ../../CHANGES.rst:169
#: ../../CHANGES.rst:182
#: ../../CHANGES.rst:200
#: ../../CHANGES.rst:219
#: ../../CHANGES.rst:227
#: ../../CHANGES.rst:253
#: ../../CHANGES.rst:261
#: ../../CHANGES.rst:281
#: ../../CHANGES.rst:311
#: ../../CHANGES.rst:341
#: ../../CHANGES.rst:349
#: ../../CHANGES.rst:373
#: ../../CHANGES.rst:393
#: ../../CHANGES.rst:415
#: ../../CHANGES.rst:425
#: ../../CHANGES.rst:446
#: ../../CHANGES.rst:454
#: ../../CHANGES.rst:477
#: ../../CHANGES.rst:500
#: ../../CHANGES.rst:512
#: ../../CHANGES.rst:521
#: ../../CHANGES.rst:530
#: ../../CHANGES.rst:539
#: ../../CHANGES.rst:559
#: ../../CHANGES.rst:566
#: ../../CHANGES.rst:616
#: ../../CHANGES.rst:624
#: ../../CHANGES.rst:649
#: ../../CHANGES.rst:657
#: ../../CHANGES.rst:665
#: ../../CHANGES.rst:678
#: ../../CHANGES.rst:692
#: ../../CHANGES.rst:724
#: ../../CHANGES.rst:747
#: ../../CHANGES.rst:778
#: c6436e97687f47059a0cee1d524a47e9
#: 9c0f6431917f4a028953286eca0c0cfe
#: 93f90bed1a674784a7f5acaeba3f604c
#: 106b8093407848da93d18cf1159549d8
#: 9b3353616c1845f7a528a3dd4f29e788
#: c82a0ef7ede341fdaefe086516ddcfa6
#: 0622c64030ba4be4b2f7d4b6868d5cea
#: 375079958ff14b0aaca6745e79ae2415
#: 0c43788b676c4e3ea67950a078f16108
#: 1af4b96af7c74d9cb407d9c3d25f22c6
#: 8cb332e78e8b43e3bdfb2ee17391b95f
#: 0fd2668c4a06415a82e24ceadbef42d9
#: 767b2db5c1dc40ba9099f108c8892931
#: 9b0c1776d1424188b18a4981e37f503f
#: d5ce5edfaa79499d86f18818d1128662
#: 6f01d2ff547b4a7da75fba7505f0c928
#: 5516287260254aaf8546be4b15f813ae
#: f560d39a9ab14fcf97370016363e00b9
#: f53f69e009534f16be2d83ae976a4d50
#: 100a1287150746fda66d2d20d86ae28d
#: 59be91b9f20d4db2b773253f2af92205
#: 7b414594484a496fa9dc0f900b944fc3
#: c550c697f9f24ccabd597743b065a194
#: 809c6b26372b4afc806bd4cc764ea8c2
#: 9a1154c00a494a8f9faf52e6a321b480
#: c4839a2d52fb4da3aba2021e69a806d9
#: d90b0e85882045c6a7e6775ddaa87320
#: fc28d39c9a564152a86cec53b829168f
#: 6414599939fb46b1a93445c2711b3eb3
#: 22d8d9f8912540d3a53620b47668d9f1
#: cc737544941c4404b62295cb26228988
#: 2e6e142a7bae44528009159bf8b912de
#: 0b74f6c12571422e8038c272f6786431
#: 48fd64a65440420cb4abddfb33e1960d
#: 3d2164df801a46f39778ce191498d823
#: 40564ad34a6d4c2eabfcfc91c14021b1
#: 434aa98010b840a59f0ac1b20d805a36
#: 5a752d2d6a874724b55bfae88cd6b5e1
#: feaaddf40ade4bfdaa734fa4d6867bd6
#: 0f12030c10e348af8002f79e38131c89
#: 50a0c42fe2864a1b82ad62d57c69115e
#: 30aecc67e5874f67958c3ad4e590689d
#: ca11980027b74148bb955b294b904aed
msgid "Fixed"
msgstr ""
#: ../../CHANGES.rst:17
#: f75ed82ec3464069afb11e411860a098
msgid "With LDAP backend, updating another user groups could result in a permission lost for the editor. :issue:`202`"
msgstr ""
#: ../../CHANGES.rst:21
#: fa2bfd3a364b42eb819e00e3b6cfe8f6
msgid ":attr:`~canaille.core.configuration.CoreSettings.MAX_PASSWORD_LENGHT` and :attr:`~canaille.core.configuration.CoreSettings.MIN_PASSWORD_LENGHT` configuration options :issue:`174`"
msgstr ""
#: ../../CHANGES.rst:23
#: c04207e5c1014abc81ac33e46044be68
msgid "Password strength visual indicator :issue:`174`"
msgstr ""
#: ../../CHANGES.rst:24
#: 76c8b3dc402144e6b76f4f15c4a1dce0
msgid "Security events logs :issue:`177`"
msgstr ""
#: ../../CHANGES.rst:25
#: 66c0285ecc324619b90ee9580787b42b
msgid "Support for Python 3.13 :pr:`186`"
msgstr ""
#: ../../CHANGES.rst:28
#: ../../CHANGES.rst:41
#: ../../CHANGES.rst:53
#: ../../CHANGES.rst:78
#: ../../CHANGES.rst:86
#: ../../CHANGES.rst:134
#: ../../CHANGES.rst:158
#: ../../CHANGES.rst:210
#: ../../CHANGES.rst:247
#: ../../CHANGES.rst:316
#: ../../CHANGES.rst:332
#: ../../CHANGES.rst:368
#: ../../CHANGES.rst:405
#: ../../CHANGES.rst:440
#: ../../CHANGES.rst:483
#: ../../CHANGES.rst:587
#: ../../CHANGES.rst:641
#: ../../CHANGES.rst:673
#: ../../CHANGES.rst:687
#: 17c200d74dc94e618f5a8f1a4c737892
#: ccb630d62929451d86cfe50c5e9d3b0c
#: 90945415d6ba49e2949e6843e363aa54
#: 7e9a9e0fbd27415e911f4d0229e89ce5
#: 5308306c6a9848db85d209a93bf73f10
#: fea433e54cb745aa951c32c5ebf2902b
#: 79a0c2512c9b41c4aae6f0242f8cf3ec
#: 34ba73a5ce4c471e85dbd5935079eb1b
#: 256bc9a8adbb4b908412109831aa2965
#: 6e213464c100494ebfd7cc02300d0a6c
#: 9ab07efdabae43da9c5a5f48a49a6eed
#: d2b7338ef0cc46e19a020852536f8136
#: 66443c36a4c34c2384b3e053978f305e
#: 6eb2ae5f5d0747d6bd769409b69a5df3
#: f16408e600fb4a41a0baca3c45764151
#: 63be612c208b45a4a3456c07bc33480e
#: 2def5c51796844b0b6a242eb3161d389
#: 808861ca6acb43c0bb39ebcda59434b7
#: 3525164111a4470c911c4d92538c7891
msgid "Changed"
msgstr ""
#: ../../CHANGES.rst:29
#: f6dd0f6bfafd4d2b904ed4e6269a101d
msgid "Update to HTMX 2.0.3 :pr:`184`"
msgstr ""
#: ../../CHANGES.rst:30
#: 5483fcfcc96949a5913fcc4fd14977f2
msgid "Migrate from poetry to uv :pr:`187`"
msgstr ""
#: ../../CHANGES.rst:31
#: 8258ddbb1640406d8f6739a37e94875b
msgid "The ``sql`` package extra is now split between ``sqlite``, ``postgresql`` and ``mysql``."
msgstr ""
#: ../../CHANGES.rst:34
#: ../../CHANGES.rst:378
#: ../../CHANGES.rst:784
#: ff210a53b34e45e2b91b13a776999d67
#: 93a0b2853b2644c3bd42d00d854d614b
#: 52a78299c19c4677a74dc0cb2f50c670
msgid "Removed"
msgstr ""
#: ../../CHANGES.rst:35
#: 740852cc46ee478eb5f3aeb2613acf95
msgid "End support for python 3.9. :pr:`179`"
msgstr ""
#: ../../CHANGES.rst:38
#: 482c536c76fa4d94b2b30dcc8ee6b541
msgid "[0.0.55] - 2024-08-30"
msgstr ""
#: ../../CHANGES.rst:42
#: a198bc7ecca541c695b52bc3279f5d31
msgid "Use poetry-core build backend. :pr:`178`"
msgstr ""
#: ../../CHANGES.rst:45
#: 68fb373964584f1e830fbef217f942e9
msgid "[0.0.54] - 2024-07-25"
msgstr ""
#: ../../CHANGES.rst:49
#: 5e73dc86053a4be98fc43f61b56ae307
msgid "Group member removal can be achieved from the group edition page :issue:`192`"
msgstr ""
#: ../../CHANGES.rst:50
#: ebd2fe8625fa4c44bb2f057528712d25
msgid "Model management commands :issue:`117` :issue:`54`"
msgstr ""
#: ../../CHANGES.rst:54
#: cf2dd6aef9684a878412b58ce961688d
msgid "Model `identifier_attributes` are fixed."
msgstr ""
#: ../../CHANGES.rst:55
#: 03a7ad9d623c408296b6a88abd0ba9ce
msgid "Bump to htmx 1.9.12 :pr:`172`"
msgstr ""
#: ../../CHANGES.rst:60
#: 4df3c65b91dc4ecba3c44d142963c276
msgid "Dark theme colors for better readability"
msgstr ""
#: ../../CHANGES.rst:61
#: 91c0ae975e544d0ca32cfdaee2fb0e27
msgid "Crash for passwordless users at login when no SMTP server was configured."
msgstr ""
#: ../../CHANGES.rst:64
#: d8ada9c57f4b44ed815b070924f0937b
msgid "[0.0.53] - 2024-04-22"
msgstr ""
#: ../../CHANGES.rst:68
#: cf9cefa8bf3541a782d9762e069e7ccf
msgid "`env_prefix` create_app variable can select the environment var prefix."
msgstr ""
#: ../../CHANGES.rst:71
#: 1f6cfb92fd364d57b8ed7522c42fc076
msgid "[0.0.52] - 2024-04-22"
msgstr ""
#: ../../CHANGES.rst:75
#: 1f4573a94d0a421ea02c9d09b66db2c9
msgid "`env_file` create_app variable can customize/disable the .env file"
msgstr ""
#: ../../CHANGES.rst:79
#: 066410eaab1540eab2776a5fc87504cc
msgid "Locked users cannot be impersonated anymore."
msgstr ""
#: ../../CHANGES.rst:80
#: ace6053c00b74772b52f849bbbae2e31
msgid "Minimum python requirement is 3.9."
msgstr ""
#: ../../CHANGES.rst:83
#: 22ea6460d2e34b6eb367f3a4e4e3d17b
msgid "[0.0.51] - 2024-04-09"
msgstr ""
#: ../../CHANGES.rst:87
#: 1b7d91a9d02f4cabbef111079d39b344
msgid "Display the menu bar on error pages."
msgstr ""
#: ../../CHANGES.rst:90
#: 78fed34f5122433bbe6021b31638194e
msgid "[0.0.50] - 2024-04-09"
msgstr ""
#: ../../CHANGES.rst:94
#: f7cb34791e1e4380a57e373b1b087925
msgid "Sign in/out events are logged in :issue:`177`"
msgstr ""
#: ../../CHANGES.rst:98
#: 45c11baa1194416dbc2d41264b74a2e5
msgid "HTMX and JAVASCRIPT configuration settings."
msgstr ""
#: ../../CHANGES.rst:99
#: 8deccea079c84b3bae3f56912bc22ce6
msgid "Compatibility with old sessions IDs."
msgstr ""
#: ../../CHANGES.rst:102
#: 54b31975f2074e42a3e408198c5dcfaa
msgid "[0.0.49] - 2024-04-08"
msgstr ""
#: ../../CHANGES.rst:106
#: 2540f82b704b458a8d36f0e4315c7dfc
msgid "LDAP user group removal."
msgstr ""
#: ../../CHANGES.rst:107
#: fd4408f9b27d423d89bef78c94129312
msgid "Display an error message when trying to remove the last user from a group."
msgstr ""
#: ../../CHANGES.rst:110
#: 78661756213542da9bfc0d1f0132699b
msgid "[0.0.48] - 2024-04-08"
msgstr ""
#: ../../CHANGES.rst:114
#: 1e0516ca6b0749f5b1d9607cc7a25d36
msgid "LDAP objectClass guessing exception."
msgstr ""
#: ../../CHANGES.rst:117
#: 1fcba77b03424826a405e4ea54fff663
msgid "[0.0.47] - 2024-04-08"
msgstr ""
#: ../../CHANGES.rst:121
#: 82668bcaf18a44128f17457d5362ba4f
msgid "Lazy permission loading exception."
msgstr ""
#: ../../CHANGES.rst:124
#: 4fb3b475ce0c4cec9e20ce04636b6b3c
msgid "[0.0.46] - 2024-04-08"
msgstr ""
#: ../../CHANGES.rst:128
#: dd7382397fe542578854431f6e6bbf89
msgid "Saving an object with the LDAP backend keeps the objectClass un-managed by Canaille. :pr:`171`"
msgstr ""
#: ../../CHANGES.rst:131
#: ee059b69e1a9440abadc77ec40e25d80
msgid "[0.0.45] - 2024-04-04"
msgstr ""
#: ../../CHANGES.rst:135
#: 9d61e5909fd643d592725db933b4912b
msgid "Internal indexation mechanism of :class:`~canaille.backends.memory.model.MemoryModel`"
msgstr ""
#: ../../CHANGES.rst:138
#: 39bf7adeb4194a858226346c50be08d6
msgid "[0.0.44] - 2024-03-29"
msgstr ""
#: ../../CHANGES.rst:142
#: ea00e8ce44a64df9b11922ddfc6ccc3c
msgid "Fix the default LDAP USER_FILTER value"
msgstr ""
#: ../../CHANGES.rst:143
#: 0f88fd65e349426396cb3c052bd83db1
msgid "Fix the OIDC feature detection"
msgstr ""
#: ../../CHANGES.rst:146
#: 9bd6a349d9d9490ca91a4f56d46b0078
msgid "[0.0.43] - 2024-03-29"
msgstr ""
#: ../../CHANGES.rst:148
#: 11358334470d4f3bb392389cf9748f48
msgid "🚨Configuration files must be updated.🚨"
msgstr ""
#: ../../CHANGES.rst:153
#: 33ac5da8d5a1410997fd6155fa994f3d
msgid "Add `created` and `last_modified` datetime for all models"
msgstr ""
#: ../../CHANGES.rst:154
#: c5ed8ff0b9544920a0fb9a99488d6d0b
msgid "Sitemap to the documentation :pr:`169`"
msgstr ""
#: ../../CHANGES.rst:155
#: 3fc68ed436e9488a87dab37f5bfcb326
msgid "Configuration management with pydantic-settings :issue:`138` :pr:`170`"
msgstr ""
#: ../../CHANGES.rst:160
#: e7cd01ae7a064316b55271464c73cdbb
msgid "Use default python logging configuration format. :issue:`188` :pr:`165`"
msgstr ""
#: ../../CHANGES.rst:161
#: f8080d1def124e02a5ebd401743bcc53
msgid "Bump to htmx 1.99.11 :pr:`166`"
msgstr ""
#: ../../CHANGES.rst:162
#: 76e9e2d0d2de4f39a3f6e0408f91b393
msgid "Use the standard tomllib python module instead of `toml` starting from python 3.11 :pr:`167`"
msgstr ""
#: ../../CHANGES.rst:163
#: 72c0df8635b84899b60dbb2d65aaf1f6
msgid "Use shibuya as the documentation theme :pr:`168`"
msgstr ""
#: ../../CHANGES.rst:166
#: 412f31b588a24d38908f57d0ce04f22c
msgid "[0.0.42] - 2023-12-29"
msgstr ""
#: ../../CHANGES.rst:171
#: 0db77ffe1665459c916b8cff8ea6fc17
msgid "Avoid to fail on imports if ``cryptography`` is missing."
msgstr ""
#: ../../CHANGES.rst:174
#: 83e78090be5f4b408da07f6bd3214e08
msgid "[0.0.41] - 2023-12-25"
msgstr ""
#: ../../CHANGES.rst:179
#: cd301be9e1344aa6ba52861605f2752e
msgid "OIDC `prompt=create` support. :issue:`185` :pr:`164`"
msgstr ""
#: ../../CHANGES.rst:184
#: 8edd4079d06045c58f5dd79b88abb9c1
msgid "Correctly set up Client audience during OIDC dynamic registration."
msgstr ""
#: ../../CHANGES.rst:185
#: 7f3a5c2a265e400b86e4e7d7114702f1
msgid "``post_logout_redirect_uris`` was ignored during OIDC dynamic registration."
msgstr ""
#: ../../CHANGES.rst:186
#: 4deda78d230841f7a8c54af66d2338a9
msgid "Group field error prevented the registration form validation."
msgstr ""
#: ../../CHANGES.rst:189
#: 1608e0d53771494eaa24bd709cee852a
msgid "[0.0.40] - 2023-12-22"
msgstr ""
#: ../../CHANGES.rst:194
#: 17f8d278ee504c86b62b04a6f6c82d57
msgid "``THEME`` can be a relative path"
msgstr ""
#: ../../CHANGES.rst:197
#: f76c25c375504e1d9595c39a74f0596f
msgid "[0.0.39] - 2023-12-15"
msgstr ""
#: ../../CHANGES.rst:202
#: ddaa080da0944c8eba445e035d9bbeee
msgid "Crash when no ACL were defined"
msgstr ""
#: ../../CHANGES.rst:203
#: 96df0449be4a45d88e16244d6d67524d
msgid "OIDC Userinfo endpoint is also available in POST"
msgstr ""
#: ../../CHANGES.rst:204
#: 85178af1d47b4994b59cdc3fe012cd67
msgid "Fix redirection after password reset :issue:`159`"
msgstr ""
#: ../../CHANGES.rst:207
#: 8177fe55aa064e5da95528c84c136865
msgid "[0.0.38] - 2023-12-15"
msgstr ""
#: ../../CHANGES.rst:212
#: 9a79b773e59941fb8e77b7ac348d168a
msgid "Convert all the png in webp. :pr:`162`"
msgstr ""
#: ../../CHANGES.rst:213
#: 0fcf3cc59cdc49ba829f0c017026a353
msgid "Update to flask 3 :issue:`161` :pr:`163`"
msgstr ""
#: ../../CHANGES.rst:216
#: 7f12675bc88c462e8700ab4dcf575e1b
msgid "[0.0.37] - 2023-12-01"
msgstr ""
#: ../../CHANGES.rst:221
#: 285b8426823745eaaa2ea95a1c9a65c6
msgid "Handle 4xx and 5xx error codes with htmx. :issue:`171` :pr:`161`"
msgstr ""
#: ../../CHANGES.rst:224
#: bca127d497be434ba465b05314a3adb4
msgid "[0.0.36] - 2023-12-01"
msgstr ""
#: ../../CHANGES.rst:229
#: fe53a804255549689149c731033fcdbf
msgid "Avoid crashing when LDAP groups references unexisting users."
msgstr ""
#: ../../CHANGES.rst:230
#: 46a4aca17d94478793eb940b1253146d
msgid "Password reset and initialization mails were only sent to the preferred user email address."
msgstr ""
#: ../../CHANGES.rst:232
#: 72414136fedd43d48ab641e9a2ba5135
msgid "Password reset and initialization mails were not sent at all the user addresses if one email address could not be reached."
msgstr ""
#: ../../CHANGES.rst:234
#: f5e9a14265cc469b98047dda5a5940ae
msgid "Password comparison was too permissive on login."
msgstr ""
#: ../../CHANGES.rst:235
#: 96a3afb6e07e4265905bfff45f16fca1
msgid "Encrypt passwords in the SQL backend."
msgstr ""
#: ../../CHANGES.rst:238
#: d8b0b1f939ac4cfabfe856f124668efa
msgid "[0.0.35] - 2023-11-25"
msgstr ""
#: ../../CHANGES.rst:243
#: 4c4a1aaa53c84089bbdbacfdd7a93cd7
msgid "Refresh token grant supports other client authentication methods. :pr:`157`"
msgstr ""
#: ../../CHANGES.rst:244
#: d38a9d2c989f477b830453bb91a3ce30
msgid "Implement a SQLAlchemy backend. :issue:`30` :pr:`158`"
msgstr ""
#: ../../CHANGES.rst:249
#: e07fa26da7c04af284538253149c5c8e
msgid "Model attributes cardinality is closer to SCIM model. :pr:`155`"
msgstr ""
#: ../../CHANGES.rst:250
#: ac6b644acebb4bbb8144ee39178bb7e0
msgid "Bump to htmx 1.9.9 :pr:`159`"
msgstr ""
#: ../../CHANGES.rst:255
#: 36303be4013a4ab98ca76c352237b480
msgid "Disable HTMX boosting during the OIDC dance. :pr:`160`"
msgstr ""
#: ../../CHANGES.rst:258
#: c99e8701c9234a63bdd47ef72f94de9e
msgid "[0.0.34] - 2023-10-02"
msgstr ""
#: ../../CHANGES.rst:263
#: f47eb19208d840ed8759e38a8d22776c
msgid "Canaille installations without account lockabilty could not delete users. :pr:`153`"
msgstr ""
#: ../../CHANGES.rst:269
#: 9b398e268d54490a9837a541ae6acd11
msgid "If users register or authenticate during a OAuth Authorization phase, they get redirected back to that page afterwards. :issue:`168` :pr:`151`"
msgstr ""
#: ../../CHANGES.rst:272
#: 5ca22758e22842fd9eadaba370538cf3
msgid "flask-babel and pytz are now part of the `front` extras"
msgstr ""
#: ../../CHANGES.rst:273
#: 54883b5b1e4c4c82a6ff40eddec5d876
msgid "Bump to fomantic-ui 2.9.3 :pr:`152`"
msgstr ""
#: ../../CHANGES.rst:274
#: eeef63797d064f27a336fdae4df02eb2
msgid "Bump to htmx 1.9.6 :pr:`154`"
msgstr ""
#: ../../CHANGES.rst:275
#: 728d7adbfc804d69b74b855aa7a94506
msgid "Add support for python 3.12 :pr:`155`"
msgstr ""
#: ../../CHANGES.rst:278
#: 6e3906ced8b443b98f63ace838a7c6d7
msgid "[0.0.33] - 2023-08-26"
msgstr ""
#: ../../CHANGES.rst:283
#: e53d000ae77e40cd9e2424921f2a408b
msgid "OIDC jwks endpoint do not return empty kid claim"
msgstr ""
#: ../../CHANGES.rst:288
#: f9abbef1c06546c69c1cea00a196ba97
msgid "Documentation details on the canaille models."
msgstr ""
#: ../../CHANGES.rst:291
#: 6cf47b850381418993ea52a424e5b5d7
msgid "[0.0.32] - 2023-08-17"
msgstr ""
#: ../../CHANGES.rst:296
#: beae54bdce4542878dc63551a2b70c12
msgid "Additional inmemory backend :issue:`30` :pr:`149`"
msgstr ""
#: ../../CHANGES.rst:297
#: 9f9ba3da7310492ca4a75f838efacc32
msgid "Installation extras :issue:`167` :pr:`150`"
msgstr ""
#: ../../CHANGES.rst:300
#: 61e8ad0f797e40d2bf74c865be912ced
msgid "[0.0.31] - 2023-08-15"
msgstr ""
#: ../../CHANGES.rst:305
#: 0a701d5de457451c84ef900cc3fef867
msgid "Configuration option to disable the forced usage of OIDC nonce :pr:`143`"
msgstr ""
#: ../../CHANGES.rst:306
#: 09976b3b14dd47fcb0b95ac50ee964b9
msgid "Validate phone numbers with a regex :pr:`146`"
msgstr ""
#: ../../CHANGES.rst:307
#: f422b0b42b6b41b69437d02988f560aa
msgid "Email verification :issue:`41` :pr:`147`"
msgstr ""
#: ../../CHANGES.rst:308
#: c4949bfe2646408f88520bb34ab3ba7c
msgid "Account registration :issue:`55` :pr:`133` :pr:`148`"
msgstr ""
#: ../../CHANGES.rst:313
#: 222752c19a884c7c8e7526f6aae81387
msgid "The `check` command uses the default configuration values."
msgstr ""
#: ../../CHANGES.rst:318
#: 0295613b5cec412e8bbd5bd720e09665
msgid "Modals do not need use javascript at the moment. :issue:`158` :pr:`144`"
msgstr ""
#: ../../CHANGES.rst:321
#: 35f7f7fc88ab4085bc98cbda4c158655
msgid "[0.0.30] - 2023-07-06"
msgstr ""
#: ../../CHANGES.rst:323
#: 8497fb120e46418489f5966c89260726
msgid "🚨Configuration files must be updated.🚨 Check the new format with ``git diff 0.0.29 0.0.30 canaille/conf/config.sample.toml``"
msgstr ""
#: ../../CHANGES.rst:329
#: e3c929900cb94378ace985c675b00426
msgid "Configuration option to disable javascript :pr:`141`"
msgstr ""
#: ../../CHANGES.rst:334
#: 1654a3c769454610bad6c45c115842d9
msgid "Configuration ``USER_FILTER`` is parsed with jinja."
msgstr ""
#: ../../CHANGES.rst:335
#: 1d9fa53b5d924c899ab9a2de17293f28
msgid "Configuration use ``PRIVATE_KEY_FILE`` instead of ``PRIVATE_KEY`` and ``PUBLIC_KEY_FILE`` instead of ``PUBLIC_KEY``"
msgstr ""
#: ../../CHANGES.rst:338
#: a9ee235c196d4cc382336efdbfcbcd32
msgid "[0.0.29] - 2023-06-30"
msgstr ""
#: ../../CHANGES.rst:343
#: 7dc80b4f731d45ed82edfef699eea179
msgid "Disabled HTMX boosting on OIDC forms to avoid errors."
msgstr ""
#: ../../CHANGES.rst:346
#: 75d600b0d9cb4fe080fff1f600081680
msgid "[0.0.28] - 2023-06-30"
msgstr ""
#: ../../CHANGES.rst:351
#: 082f3fec66aa4026ae6b035f0d3930f0
msgid "A template variable was misnamed."
msgstr ""
#: ../../CHANGES.rst:354
#: 2d4a7bf5eb5b43e8bec63408fcf193f0
msgid "[0.0.27] - 2023-06-29"
msgstr ""
#: ../../CHANGES.rst:356
#: 131f26c6b3e8454c8daf2492788a1843
msgid "🚨Configuration files must be updated.🚨 Check the new format with ``git diff 0.0.26 0.0.27 canaille/conf/config.sample.toml``"
msgstr ""
#: ../../CHANGES.rst:362
#: c0a5ffd3ca674178b3f611def9fe24e1
msgid "Configuration entries can be loaded from files if the entry key has a *_FILE* suffix and the entry value is the path to the file. :issue:`134` :pr:`134`"
msgstr ""
#: ../../CHANGES.rst:364
#: 7cdfeadd260443ba93aa4316a058a132
msgid "Field list support. :issue:`115` :pr:`136`"
msgstr ""
#: ../../CHANGES.rst:365
#: 9f460259932a4e4fae39173cda01de2a
msgid "Pages are boosted with HTMX :issue:`144` :issue:`145` :pr:`137`"
msgstr ""
#: ../../CHANGES.rst:370
#: 400513d9b1dc4753be195a1dd668cc3b
msgid "Bump to jquery 3.7.0 :pr:`138`"
msgstr ""
#: ../../CHANGES.rst:375
#: c06348c1f8dd487889aadf81e232d5aa
msgid "Profile edition when the user RDN was not ``uid`` :issue:`148` :pr:`139`"
msgstr ""
#: ../../CHANGES.rst:380
#: af226ed2ac794de1b28df7b8346e9721
msgid "Stop support for python 3.7 :pr:`131`"
msgstr ""
#: ../../CHANGES.rst:383
#: 84673f0a17654b8b8e27a2a549b81593
msgid "[0.0.26] - 2023-06-03"
msgstr ""
#: ../../CHANGES.rst:388
#: 8b12e95f472e4feebf4f25a0c8c4aca7
msgid "Implemented account expiration based on OpenLDAP ppolicy overlay. Needs OpenLDAP 2.5+ :issue:`13` :pr:`118`"
msgstr ""
#: ../../CHANGES.rst:390
#: eac835587147487481476bc01c17ada9
msgid "Timezone configuration entry. :issue:`137` :pr:`130`"
msgstr ""
#: ../../CHANGES.rst:395
#: 15c83d445e564f4ba4e3a63e0be4d43b
msgid "Avoid setting ``None`` in JWT claims when they have no value."
msgstr ""
#: ../../CHANGES.rst:396
#: eaffa225744b4840a42da427162e2785
msgid "Display password recovery button on OIDC login page. :pr:`129`"
msgstr ""
#: ../../CHANGES.rst:399
#: addc305664094b5481aea4773d1e0fed
msgid "[0.0.25] - 2023-05-05"
msgstr ""
#: ../../CHANGES.rst:401
#: cfe53ed735fa4fc28795a364755afacc
msgid "🚨Configuration files must be updated.🚨 Check the new format with ``git diff 0.0.25 0.0.24 canaille/conf/config.sample.toml``"
msgstr ""
#: ../../CHANGES.rst:407
#: 3cb07e6c5be34134be6b573c5f576f3f
msgid "Renamed user model attributes to match SCIM naming convention. :pr:`123`"
msgstr ""
#: ../../CHANGES.rst:408
#: 40cafb901cfa48e2b60eb3c5aeb640ea
msgid "Moved OIDC related configuration entries in ``OIDC``"
msgstr ""
#: ../../CHANGES.rst:409
#: d7d52425e9ef4ffa888ecbb06496ec24
msgid "Moved ``LDAP`` configuration entry to ``BACKENDS.LDAP``"
msgstr ""
#: ../../CHANGES.rst:410
#: e024da00819b46b996d269415e8d171d
msgid "Bumped to htmx 1.9.0 :pr:`124`"
msgstr ""
#: ../../CHANGES.rst:411
#: 9d8b7a6a251043389403b53f9090e709
msgid "ACL filters are no more LDAP filters but user attribute mappings. :pr:`125`"
msgstr ""
#: ../../CHANGES.rst:412
#: 2c35b0cb84dd4334857ec96f44faeeeb
msgid "Bumped to htmx 1.9.2 :pr:`127`"
msgstr ""
#: ../../CHANGES.rst:417
#: 01e98f5b734046e5ad238fdf6c329b65
msgid "``OIDC.JWT.MAPPING`` configuration entry is really optional now."
msgstr ""
#: ../../CHANGES.rst:418
#: 58b8d01fb9ce4f8caf84c7d54867f8f3
msgid "Fixed empty model attributes registration :pr:`125`"
msgstr ""
#: ../../CHANGES.rst:419
#: 54425718a4fd43aba3c78e6762d5e9c4
msgid "Password initialization mails were not correctly sent. :pr:`128`"
msgstr ""
#: ../../CHANGES.rst:422
#: 301adcf1323a448db7436b7556b819c8
msgid "[0.0.24] - 2023-04-07"
msgstr ""
#: ../../CHANGES.rst:427
#: 0901c7eb5ef7455db93d0336cf16300b
msgid "Fixed avatar update. :pr:`122`"
msgstr ""
#: ../../CHANGES.rst:430
#: 11388c0443524dbc9baa843f713e82c7
msgid "[0.0.23] - 2023-04-05"
msgstr ""
#: ../../CHANGES.rst:435
#: 0c2bdb0a35b348309be8da2460dda465
msgid "Organization field. :pr:`116`"
msgstr ""
#: ../../CHANGES.rst:436
#: 52afa1e2c6814f9881128dedeec00414
msgid "ETag and Last-Modified headers on user photos. :pr:`116`"
msgstr ""
#: ../../CHANGES.rst:437
#: d7493b75d8284eadb201a0d1fba5dcbb
msgid "Dynamic form validation :pr:`120`"
msgstr ""
#: ../../CHANGES.rst:442
#: 8b45c11bf3864bbca2cb34e0a7a2d069
msgid "UX rework. Submenu addition. :pr:`114`"
msgstr ""
#: ../../CHANGES.rst:443
#: d8888dcbb64144c597042aec7db36e4d
msgid "Properly handle LDAP date timezones. :pr:`117`"
msgstr ""
#: ../../CHANGES.rst:448
#: abf36244db5b4f8cb0192e8a9ca322f9
msgid "CSRF protection on every forms. :pr:`119`"
msgstr ""
#: ../../CHANGES.rst:451
#: c685cf95e47e43e39eb275d9e7615973
msgid "[0.0.22] - 2023-03-13"
msgstr ""
#: ../../CHANGES.rst:455
#: 25623d11da5b4fd4be340036135cae8c
msgid "faker is not imported anymore when the `clean` command is called."
msgstr ""
#: ../../CHANGES.rst:458
#: d63a34b4a08b4537807f53540edcd101
msgid "[0.0.21] - 2023-03-12"
msgstr ""
#: ../../CHANGES.rst:463
#: 31fc708ea1be424eb6cc3145abb99d31
msgid "Display TOS and policy URI on the consent list page. :pr:`102`"
msgstr ""
#: ../../CHANGES.rst:464
#: af78e647f0424db38b885b41592c3370
msgid "Admin token deletion :pr:`100` :pr:`101`"
msgstr ""
#: ../../CHANGES.rst:465
#: f4d5fda7ea8e4c2ba7377125e2aefd5a
msgid "Revoked consents can be restored. :pr:`103`"
msgstr ""
#: ../../CHANGES.rst:466
#: 64879f34805f48f69bbf6f5012176265
msgid "Pre-consented clients are displayed in the user consent list, and their consents can be revoked. :issue:`69` :pr:`103`"
msgstr ""
#: ../../CHANGES.rst:468
#: b2f9b8bb74ff47daa8010a6472ce0c30
msgid "A ``populate`` command can be used to fill the database with random users generated with faker. :pr:`105`"
msgstr ""
#: ../../CHANGES.rst:470
#: b2b5fef1ac5c44178d2d2894645593f5
msgid "SMTP SSL support. :pr:`108`"
msgstr ""
#: ../../CHANGES.rst:471
#: ad6af1ee42184abd8ea3351628c1cac9
msgid "Server side pagination. :issue:`114` :pr:`111`"
msgstr ""
#: ../../CHANGES.rst:472
#: 4c3ef76329084cacb999daf99b1076fe
msgid "Department number support. :issue:`129`"
msgstr ""
#: ../../CHANGES.rst:473
#: 434a6690f72a4115ae3237559db0f2c4
msgid "Address edition support (but not in the OIDC claims yet) :pr:`112`"
msgstr ""
#: ../../CHANGES.rst:474
#: d930165b44bb4fe28a40469d96d4de65
msgid "Title edition support :pr:`113`"
msgstr ""
#: ../../CHANGES.rst:479
#: 49519ddcfb26488cb1803f9e59c03174
msgid "Client deletion also deletes related Consent, Token and AuthorizationCode objects. :issue:`126` :pr:`98`"
msgstr ""
#: ../../CHANGES.rst:485
#: 9591b382aab04b44bb72da8480fcf25f
msgid "Removed datatables."
msgstr ""
#: ../../CHANGES.rst:488
#: 47ffac05b2734f7599c60f70fe9326a4
msgid "[0.0.20] - 2023-01-28"
msgstr ""
#: ../../CHANGES.rst:493
#: 10d42ae681614ea488e6d07e75bb7cc7
msgid "Spanish translation. :pr:`85` :pr:`88`"
msgstr ""
#: ../../CHANGES.rst:494
#: 9891ff9d9ed34685aebfd5d3acc4bae1
msgid "Dedicated connectivity test email :pr:`89`"
msgstr ""
#: ../../CHANGES.rst:495
#: 80ce05f77ae74909890f9eb358b44c5a
msgid "Update to jquery 3.6.3 :pr:`90`"
msgstr ""
#: ../../CHANGES.rst:496
#: ff21da5bd61e4f0ab07afc31e56b73dc
msgid "Update to fomantic-ui 2.9.1 :pr:`90`"
msgstr ""
#: ../../CHANGES.rst:497
#: aca0aabe64db4f4db27f0ca9949b404e
msgid "Update to datatables 1.13.1 :pr:`90`"
msgstr ""
#: ../../CHANGES.rst:502
#: 88382a6314864edd81ec2353f1450de9
msgid "Fix typos and grammar errors. :pr:`84`"
msgstr ""
#: ../../CHANGES.rst:503
#: 6f56cda577ea46d98288f1585490bfe3
msgid "Fix wording and punctuations. :pr:`86`"
msgstr ""
#: ../../CHANGES.rst:504
#: ef731975e4e24d3eb3bafa2f59e71c21
msgid "Fix HTML lang tag :issue:`122` :pr:`87`"
msgstr ""
#: ../../CHANGES.rst:505
#: eff8d1037e2d4c29961afac8c1c4da52
msgid "Automatically trims the HTML translated strings. :pr:`91`"
msgstr ""
#: ../../CHANGES.rst:506
#: cf3bed5229a043939a25fc83821619f0
msgid "Fixed dynamic registration scope management. :issue:`123` :pr:`93`"
msgstr ""
#: ../../CHANGES.rst:509
#: 1bb3628281ec4cc18bb2eef33ec3f9e8
msgid "[0.0.19] - 2023-01-14"
msgstr ""
#: ../../CHANGES.rst:514
#: 8a630089323d42c782a476765cb05d21
msgid "Ensures the token `expires_in` claim and the `access_token` `exp` claim have the same value. :pr:`83`"
msgstr ""
#: ../../CHANGES.rst:518
#: 7ce903b7fb5d49bda0fcc61d112d9cb7
msgid "[0.0.18] - 2022-12-28"
msgstr ""
#: ../../CHANGES.rst:523
#: eb598fdbf703465986707e080da6827a
msgid "OIDC end_session was not returning the ``state`` parameter in the ``post_logout_redirect_uri`` :pr:`82`"
msgstr ""
#: ../../CHANGES.rst:527
#: 34a5a8d6d7e340c39fbd2851284a276d
msgid "[0.0.17] - 2022-12-26"
msgstr ""
#: ../../CHANGES.rst:532
#: cdd95cfd920948abb2984275e8cf87d3
msgid "Fixed group deletion button. :pr:`80`"
msgstr ""
#: ../../CHANGES.rst:533
#: 1ce782b5fdc64ea4952ad1de9bec9af8
msgid "Fixed post requests in oidc clients views. :pr:`81`"
msgstr ""
#: ../../CHANGES.rst:536
#: b19cb6e6a9234875bb24b074d6e32fa8
msgid "[0.0.16] - 2022-12-15"
msgstr ""
#: ../../CHANGES.rst:541
#: 4026b49aaec14d04a1b9c94c62dba1f7
msgid "Fixed LDAP operational attributes handling."
msgstr ""
#: ../../CHANGES.rst:544
#: 82d7e4549e994e9f9a269601d1b31186
msgid "[0.0.15] - 2022-12-15"
msgstr ""
#: ../../CHANGES.rst:549
#: 7a91366f4d7c4644a253118355c864e6
msgid "User can chose their favourite display name. :pr:`77`"
msgstr ""
#: ../../CHANGES.rst:550
#: c3c588c0740443209e5d30dd9e4b63e7
msgid "Bumped to authlib 1.2. :pr:`78`"
msgstr ""
#: ../../CHANGES.rst:551
#: e52e34bd7e8a45cb8c3440bb94e71328
msgid "Implemented RFC7592 OAuth 2.0 Dynamic Client Registration Management Protocol :pr:`79`"
msgstr ""
#: ../../CHANGES.rst:553
#: b048668f98924027963eb5fa4759651f
msgid "Added ``nonce`` to the ``claims_supported`` server metadata list."
msgstr ""
#: ../../CHANGES.rst:556
#: 7ad90b4df3dc4bcdad973cca13ca9062
msgid "[0.0.14] - 2022-11-29"
msgstr ""
#: ../../CHANGES.rst:560
#: 664ba7b255d94ffcae4c68c5f332f019
msgid "Fixed translation mo files packaging."
msgstr ""
#: ../../CHANGES.rst:563
#: cb4f5961889c489f95a63f7c5f191724
msgid "[0.0.13] - 2022-11-21"
msgstr ""
#: ../../CHANGES.rst:568
#: c973b03b1f1647d98a55cac09ff4a241
msgid "Fixed a bug on the contacts field in the admin client form following the LDAP schema update of 0.0.12"
msgstr ""
#: ../../CHANGES.rst:570
#: a91b692f8ae3406cbbee8bee881bb31b
msgid "Fixed a bug happening during RP initiated logout on clients without `post_logout_redirect_uri` defined."
msgstr ""
#: ../../CHANGES.rst:572
#: 1475c8ca3ada44bf95bff4eaa5402da4
msgid "Gitlab CI fix. :pr:`64`"
msgstr ""
#: ../../CHANGES.rst:573
#: 4a86a86df8f74804b63df8facf898bbc
msgid "Fixed `client_secret` display on the client administration page. :pr:`65`"
msgstr ""
#: ../../CHANGES.rst:574
#: 05ff5ac4d43041d99bc9801914626146
msgid "Fixed non-square logo CSS. :pr:`67`"
msgstr ""
#: ../../CHANGES.rst:575
#: 0cf118c440984c16bcd3b74fc7658d64
msgid "Fixed schema path on installation. :pr:`68`"
msgstr ""
#: ../../CHANGES.rst:576
#: 1655349340a84da0a86f706168109afa
msgid "Fixed RFC7591 ``software_statement`` claim support. :pr:`70`"
msgstr ""
#: ../../CHANGES.rst:577
#: 1762cb46c3e24b9bb642d9461bc511f2
msgid "Fixed client preconsent disabling. :pr:`72`"
msgstr ""
#: ../../CHANGES.rst:582
#: 5731227ecd8046408abefb000ea360fe
msgid "Python 3.11 support. :pr:`61`"
msgstr ""
#: ../../CHANGES.rst:583
#: 184a123e682c4ec9bc45b936911c6acf
msgid "apparmor slapd configuration instructions in CONTRIBUTING.rst :pr:`66`"
msgstr ""
#: ../../CHANGES.rst:584
#: 4daf2684781545aa96f935a1858f2c3e
msgid "``preferredLanguage`` attribute support. :pr:`75`"
msgstr ""
#: ../../CHANGES.rst:589
#: 251bc4ce0edc47839f696c9825ca0c43
msgid "Replaced the use of the deprecated `FLASK_ENV` environment variable by `FLASK_DEBUG`."
msgstr ""
#: ../../CHANGES.rst:591
#: 5830f58321214ac58998c8d20106e9d2
msgid "Dynamically generate the server metadata. Users won't have to copy and manually edit ``oauth-authorizationserver.json`` and ``openid-configuration.json``. :pr:`71`"
msgstr ""
#: ../../CHANGES.rst:594
#: 05b9d38cee1148e4baec3a188e7f75ac
msgid "The `FROM_ADDR` configuration option is not mandatory anymore. :pr:`73`"
msgstr ""
#: ../../CHANGES.rst:595
#: 04bda2d6ee5546c29707443f2a7a39b4
msgid "The `JWT.ISS` configuration option is not mandatory anymore. :pr:`74`"
msgstr ""
#: ../../CHANGES.rst:598
#: 05081a69d8af4084a61ee02ec11581c0
msgid "[0.0.12] - 2022-10-24"
msgstr ""
#: ../../CHANGES.rst:603
#: 83d06351d66349b9b57fc8db923e9a5c
msgid "Basic WebFinger endpoint. :pr:`59`"
msgstr ""
#: ../../CHANGES.rst:604
#: 1b70c118e9d449bea624c26f24030e0c
msgid "Bumped to FomanticUI 2.9.0 00ffffee"
msgstr ""
#: ../../CHANGES.rst:605
#: 88662a0575d342f89102c38df931fa42
msgid "Implemented Dynamic Client Registration :pr:`60`"
msgstr ""
#: ../../CHANGES.rst:608
#: e6c3c80259be4e9293d0fcadeafd6033
msgid "[0.0.11] - 2022-08-11"
msgstr ""
#: ../../CHANGES.rst:613
#: 57c516c14a5e497bb8e13783ab9f42e6
msgid "Default theme has a dark variant. :pr:`57`"
msgstr ""
#: ../../CHANGES.rst:618
#: bc085ca856774801b82edcaf328b0e1f
msgid "Fixed missing ``canaille`` binary. :pr:`58`"
msgstr ""
#: ../../CHANGES.rst:621
#: f80c6ab803b244eab18e4aacccddeee1
msgid "[0.0.10] - 2022-07-07"
msgstr ""
#: ../../CHANGES.rst:626
#: d9e4b647949749a49bbc7343242b9b41
msgid "Online demo. :pr:`55`"
msgstr ""
#: ../../CHANGES.rst:627
#: fb7efb3fe5b7456e823bbf848c007896
msgid "The consent page was displaying scopes not supported by clients. :pr:`56`"
msgstr ""
#: ../../CHANGES.rst:628
#: fca7e3fb7b814e37b3ba80d19b3620b6
msgid "Fixed end session when user are already disconnected."
msgstr ""
#: ../../CHANGES.rst:631
#: 6cd8971baffc448f8189240cc374230a
msgid "[0.0.9] - 2022-06-05"
msgstr ""
#: ../../CHANGES.rst:636
#: 03ffc28964ef4b2a9cc0c910005d9979
msgid "``DISABLE_PASSWORD_RESET`` configuration option to disable password recovery. :pr:`46`"
msgstr ""
#: ../../CHANGES.rst:637
#: 77f1cd9392c0410491ad63481e8a2e8c
msgid "``edit_self`` ACL permission to control user self edition. :pr:`47`"
msgstr ""
#: ../../CHANGES.rst:638
#: 6ca2d27bbd27411b8c7155b57c27731a
msgid "Implemented RP-initiated logout :pr:`54`"
msgstr ""
#: ../../CHANGES.rst:643
#: 95719f2ea2b04cadb7cd1630d6d49de6
msgid "Bumped to authlib 1 :pr:`48`"
msgstr ""
#: ../../CHANGES.rst:644
#: 01a07986d875439b9276e4d0de60e339
msgid "documentation improvements :pr:`50`"
msgstr ""
#: ../../CHANGES.rst:645
#: a2b5f7c068ba4dc3a911965618c22cd8
msgid "use poetry instead of setuptools :pr:`51`"
msgstr ""
#: ../../CHANGES.rst:646
#: 920f0d2bce9f4f3d85c74bfef8c885a4
msgid "additional nonce tests :pr:`52`"
msgstr ""
#: ../../CHANGES.rst:650
#: 8ba476078ac4416d95a411a1b4d1976e
msgid "``HIDE_INVALID_LOGIN`` behavior and default value."
msgstr ""
#: ../../CHANGES.rst:651
#: 07fc00fb5c7e4fa68dee7bff41a07844
msgid "mo files are not versioned anymore :pr:`49` :pr:`53`"
msgstr ""
#: ../../CHANGES.rst:654
#: 7409c517a40242758fb842e3c9a6979e
msgid "[0.0.8] - 2022-03-15"
msgstr ""
#: ../../CHANGES.rst:659
#: 19d18c6e16584de6bc806ec34ef82058
msgid "Fixed dependencies"
msgstr ""
#: ../../CHANGES.rst:662
#: 9075246858474ee49863fad1312bff7c
msgid "[0.0.7] - 2022-03-15"
msgstr ""
#: ../../CHANGES.rst:667
#: 50597942f5ff417381901c71bf212921
msgid "Fixed spaces and escaped special char in ldap cn/dn :pr:`43`"
msgstr ""
#: ../../CHANGES.rst:670
#: 265c9312eadc4367a5fad31823c13be8
msgid "[0.0.6] - 2022-03-08"
msgstr ""
#: ../../CHANGES.rst:675
#: 74bb45783f604adab39a6daa8a68c07b
msgid "Access token are JWT. :pr:`38`"
msgstr ""
#: ../../CHANGES.rst:680
#: 7c78939d39714062bb566b06eed6322a
msgid "Default groups on invitations :pr:`41`"
msgstr ""
#: ../../CHANGES.rst:681
#: 3ab0b04f916146a6ba07569fcbf80f06
msgid "Schemas are shipped within the canaille package :pr:`42`"
msgstr ""
#: ../../CHANGES.rst:684
#: 404fe378c656443e9a940effffda0d9b
msgid "[0.0.5] - 2022-02-17"
msgstr ""
#: ../../CHANGES.rst:689
#: 243745dfae5d420fa946947187ef45bf
msgid "LDAP model objects have new identifiers :pr:`37`"
msgstr ""
#: ../../CHANGES.rst:694
#: f6239bf49b6145baa47891fece92dbfb
msgid "Admin menu dropdown display :pr:`39`"
msgstr ""
#: ../../CHANGES.rst:695
#: b9eab772697f40f1be8dc5c3f49f7b3e
msgid "`GROUP_ID_ATTRIBUTE` configuration typo :pr:`40`"
msgstr ""
#: ../../CHANGES.rst:698
#: 6679140780cf46f8b2cb119fc729a4c4
msgid "[0.0.4] - 2022-02-16"
msgstr ""
#: ../../CHANGES.rst:703
#: 28738ebc19fd41289eebbc340cb22ae5
msgid "Client preauthorization :pr:`11`"
msgstr ""
#: ../../CHANGES.rst:704
#: d93800386a8a45bc8954d9a2b799bd2e
msgid "LDAP permissions check with the check command :pr:`12`"
msgstr ""
#: ../../CHANGES.rst:705
#: 48b173e7814447329956ae5325cbe4a9
msgid "Update consents when a scope required is larger than the scope of an already given consent :pr:`13`"
msgstr ""
#: ../../CHANGES.rst:707
#: 2a22e4ebf75d488b86579bf9245a7918
msgid "Theme customization :pr:`15`"
msgstr ""
#: ../../CHANGES.rst:708
#: 4ab0ce6231e34f43847ca9c52f0e8a00
msgid "Logging configuration :pr:`16`"
msgstr ""
#: ../../CHANGES.rst:709
#: 0adf2f9e1fe840559a89d27bba714be6
msgid "Installation command :pr:`17`"
msgstr ""
#: ../../CHANGES.rst:710
#: e48cd76fc5f54e0985a73480181de48e
msgid "Invitation links :pr:`18`"
msgstr ""
#: ../../CHANGES.rst:711
#: 8523a2c6487045ee9daf4fe03f1b1864
msgid "Advanced permissions :pr:`20`"
msgstr ""
#: ../../CHANGES.rst:712
#: 2cbc27b2a4e44ff7a84bd225de7812aa
msgid "An option to not use OIDC :pr:`23`"
msgstr ""
#: ../../CHANGES.rst:713
#: 6150ad67b8c647cf8abe23fbd5bd1a3c
msgid "Disable some features when no SMTP server is configured :pr:`24`"
msgstr ""
#: ../../CHANGES.rst:714
#: 1fda569eaea34091a33c2abb6baae3c7
msgid "Login placeholder dynamically generated according to the configuration :pr:`25`"
msgstr ""
#: ../../CHANGES.rst:715
#: 72aa5848b59040108136006daaec2101
msgid "Added an option to tune object IDs :pr:`26`"
msgstr ""
#: ../../CHANGES.rst:716
#: 2990ba053f114121be6ea682c14d6adc
msgid "Avatar support :pr:`27`"
msgstr ""
#: ../../CHANGES.rst:717
#: 90a86eb3918d41e0a6cbe3c45efb742f
msgid "Dynamical and configurable JWT claims :pr:`28`"
msgstr ""
#: ../../CHANGES.rst:718
#: d382d05f220d4536aeed6f7b8093e812
msgid "UI improvements :pr:`29`"
msgstr ""
#: ../../CHANGES.rst:719
#: 495f574fb38d421290e3e7dfb6c5debe
msgid "Invitation links expiration :pr:`30`"
msgstr ""
#: ../../CHANGES.rst:720
#: fb3f02b5847e4b97a43fa5fbb31bb2d0
msgid "Invitees can choose their IDs :pr:`31`"
msgstr ""
#: ../../CHANGES.rst:721
#: 7bb61e62ab3845dd81fd927761bb3301
msgid "LDAP backend refactoring :pr:`35`"
msgstr ""
#: ../../CHANGES.rst:726
#: e166b0bf05c546a8a93653e1085db081
msgid "Fixed ghost members in a group :pr:`14`"
msgstr ""
#: ../../CHANGES.rst:727
#: 3996da1c77e7442a9576d3e98db2e88c
msgid "Fixed email sender names :pr:`19`"
msgstr ""
#: ../../CHANGES.rst:728
#: 4d211784dc8a45a58fc3fd0e242e9c50
msgid "Fixed filter being not escaped :pr:`21`"
msgstr ""
#: ../../CHANGES.rst:729
#: 7c75824660e5452aa129914f3e8cf70e
msgid "Demo script good practices :pr:`32`"
msgstr ""
#: ../../CHANGES.rst:730
#: fbfcb0d4f1294b58984b4511b74c7bb8
msgid "Binary path for Debian :pr:`33`"
msgstr ""
#: ../../CHANGES.rst:731
#: 53e781db9c264064976ab2f2264595bc
msgid "Last name was not mandatory in the forms while this was mandatory in the LDAP server :pr:`34`"
msgstr ""
#: ../../CHANGES.rst:733
#: 877309cbeef3453ea72937ff59a4e190
msgid "Spelling typos :pr:`36`"
msgstr ""
#: ../../CHANGES.rst:736
#: a0810d6200ff40e7aaab87b0fd4c5b1c
msgid "[0.0.3] - 2021-10-13"
msgstr ""
#: ../../CHANGES.rst:741
#: b25d2d17718a4da0a50596da63a80790
msgid "Two-steps sign-in :issue:`49`"
msgstr ""
#: ../../CHANGES.rst:742
#: 16af3b95f59249b4b7ab0604de8ff57b
msgid "Tokens can have several audiences. :issue:`62` :pr:`9`"
msgstr ""
#: ../../CHANGES.rst:743
#: a6cd22462a9a4c9dba4d3423ae8af46c
msgid "Configuration check command. :issue:`66` :pr:`8`"
msgstr ""
#: ../../CHANGES.rst:744
#: effde2fb59c34a4e93c948bbd84f8625
msgid "Groups management. :issue:`12` :pr:`6`"
msgstr ""
#: ../../CHANGES.rst:749
#: e267aaaa01164e30ad004e0db2c9e953
msgid "Introspection access bugfix. :issue:`63` :pr:`10`"
msgstr ""
#: ../../CHANGES.rst:750
#: d33d63ae3afe491d96e56180999e8479
msgid "Introspection sub claim. :issue:`64` :pr:`7`"
msgstr ""
#: ../../CHANGES.rst:753
#: ac2acd0f69b04804b20b7c20ab3cfd7d
msgid "[0.0.2] - 2021-01-06"
msgstr ""
#: ../../CHANGES.rst:758
#: 98e7bceb7233465eaaaf0c2605f8d283
msgid "Login page is responsive. :issue:`1`"
msgstr ""
#: ../../CHANGES.rst:759
#: 2d37025a8dc543fb9e3a95ccc4f7592e
msgid "Adapt mobile keyboards to login page fields. :issue:`2`"
msgstr ""
#: ../../CHANGES.rst:760
#: 638c79954a124360b4bf7353fade3dc3
msgid "Password recovery interface. :issue:`3`"
msgstr ""
#: ../../CHANGES.rst:761
#: 2c6d9b46b9a74b1b9348c1cceb97847d
msgid "User profile interface. :issue:`4`"
msgstr ""
#: ../../CHANGES.rst:762
#: 2873b90329a34f46828dfb0ed02780d8
msgid "Renamed the project *canaille*. :issue:`5`"
msgstr ""
#: ../../CHANGES.rst:763
#: 628bd6758ae74f3693a18cedaca47a71
msgid "Command to remove old tokens. :issue:`17`"
msgstr ""
#: ../../CHANGES.rst:764
#: 5e92758f84a8435b92f659ce415b2c98
msgid "Improved password recovery email. :issue:`14` :issue:`26`"
msgstr ""
#: ../../CHANGES.rst:765
#: 233732a2490b43d285a83e241b0dd9de
msgid "Use flask `SERVER_NAME` configuration variable instead of `URL`. :issue:`24`"
msgstr ""
#: ../../CHANGES.rst:766
#: 329ff5fb95e3449ebb4e6f992211aa03
msgid "Improved consents page. :issue:`27`"
msgstr ""
#: ../../CHANGES.rst:767
#: 4937c978609442d7ab89f8b4c65e536f
msgid "Admin user page. :issue:`8`"
msgstr ""
#: ../../CHANGES.rst:768
#: 8eb4d59649cc41e68728dffbd6c347f4
msgid "Project logo. :pr:`29`"
msgstr ""
#: ../../CHANGES.rst:769
#: 25d6314cfb974a908d408f72f9c34452
msgid "User account self-deletion can be enabled in the configuration with `SELF_DELETION`. :issue:`35`"
msgstr ""
#: ../../CHANGES.rst:770
#: f5e58832ecca4755b6ff543105e451a4
msgid "Admins can impersonate users. :issue:`39`"
msgstr ""
#: ../../CHANGES.rst:771
#: 3e5148fff5304784be64879d67c3dc6f
msgid "Forgotten page UX improvement. :pr:`43`"
msgstr ""
#: ../../CHANGES.rst:772
#: b515e759936b453ca7a329c0b5dfef04
msgid "Admins can remove clients. :pr:`45`"
msgstr ""
#: ../../CHANGES.rst:773
#: c8733f9bd02d49ebb5878ca7cd12c9ce
msgid "Option `HIDE_INVALID_LOGIN` that can be unactivated to let the user know if the login he attempt to sign in with exists or not. :pr:`48`"
msgstr ""
#: ../../CHANGES.rst:775
#: e217efed56d94b52a33bd7529710e544
msgid "Password initialization mail. :pr:`51`"
msgstr ""
#: ../../CHANGES.rst:780
#: 38b3bf4f13be473189acfdf51c885b60
msgid "Form translations. :issue:`19` :issue:`23`"
msgstr ""
#: ../../CHANGES.rst:781
#: 21d73002dfde40469a6954ba1f3af488
msgid "Avoid to use Google Fonts. :issue:`21`"
msgstr ""
#: ../../CHANGES.rst:786
#: da8460512c19411188cf666741f1ae84
msgid "'My tokens' page. :issue:`22`"
msgstr ""
#: ../../CHANGES.rst:789
#: cfdc703525ef4404b81a134fc7c87ea8
msgid "[0.0.1] - 2020-10-21"
msgstr ""
#: ../../CHANGES.rst:794
#: e59159518b3a4358824f7d8414aa671b
msgid "Initial release."
msgstr ""
#: ../../CONTRIBUTING.rst:2
#: db9f3c148acb45cda676a534529e8589
msgid "Contributions"
msgstr ""
#: ../../CONTRIBUTING.rst:4
#: ea0fa8d3ac0d4799a10afd6f37e05d41
msgid "Contributions are welcome!"
msgstr ""
#: ../../CONTRIBUTING.rst:6
#: ba17c0c13c114915adc43e5639bf088c
msgid "The repository is hosted at `gitlab.com/yaal/canaille <https://gitlab.com/yaal/canaille>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:9
#: 701cbef5f1f547729633a993e3622c09
msgid "Discuss"
msgstr ""
#: ../../CONTRIBUTING.rst:11
#: 3d3467217204457eae495ce9c7597a30
msgid "If you want to implement a feature or a bugfix, please start by discussing it with us on the `bugtracker <https://gitlab.com/yaal/canaille/-/issues>`_ or the `matrix room <https://matrix.to/#/#canaille-discuss:yaal.coop>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:16
#: c88320c4d0d34620b655788e1c9fa658
msgid "Development environment"
msgstr ""
#: ../../CONTRIBUTING.rst:18
#: d9611e56c0f04f4099d6abb8bc2be28d
msgid "You can either run the demo locally or with Docker."
msgstr ""
#: ../../CONTRIBUTING.rst:20
#: 16ed6d496d4a451382ea864560d8fe9d
msgid "The only tool required for local development is `uv`. Make sure to have uv `installed on your computer <https://docs.astral.sh/uv/getting-started/installation/>`_ to be able to hack Canaille."
msgstr ""
#: ../../CONTRIBUTING.rst:24
#: 5ec56d5524574bca8128f6dac3176d0e
msgid "Initialize your development environment with: - ``uv sync --extra front --extra oidc`` to have a minimal working development environment. This will allow you to run the tests with ``uv pytest --backend memory``. - ``uv sync --extra front --extra oidc --extra sqlite`` to have a minimal working development environment with SQLite backend support. This will allow you to run the tests with ``uv pytest --backend sql``. - ``uv sync --extra front --extra oidc --extra ldap`` to have a minimal working development environment with LDAP backend support. This will allow you to run the tests with ``uv pytest --backend ldap``. - ``uv sync --all-extras`` if you want to have everything at your fingertips. Note that it may compile some Python dependencies that would expect things to be installed on your system; Some dependencies of Canaille might need to be compiled, so you probably want to check that `GCC` and `cargo` are available on your computer."
msgstr ""
#: ../../CONTRIBUTING.rst:31
#: 4d99057f1b0b42048a0a0ea8d094182a
msgid "After having launched the demo you have access to several services:"
msgstr ""
#: ../../CONTRIBUTING.rst:33
#: 7c17294c7b994de58363e4e72838185c
msgid "A canaille server at `localhost:5000 <http://localhost:5000>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:34
#: e91a134548c54960b39cdf0e58390b1d
msgid "A dummy client at `localhost:5001 <http://localhost:5001>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:35
#: 83c30705c35e4f62b2a2a284b08c8c2b
msgid "Another dummy client at `localhost:5002 <http://localhost:5002>`_"
msgstr ""
#: ../../CONTRIBUTING.rst:37
#: 2cb674d059a04dee9b746a7baaeecd17
msgid "The canaille server has some default users:"
msgstr ""
#: ../../CONTRIBUTING.rst:39
#: 2ac5d11cb40b4bffbc127225b286ccd9
msgid "A regular user which login and password are **user**;"
msgstr ""
#: ../../CONTRIBUTING.rst:40
#: 9646c01bc0e04c4792ff402b86595705
msgid "A moderator user which login and password are **moderator**;"
msgstr ""
#: ../../CONTRIBUTING.rst:41
#: 7b5a9e12d296447aaca3f29ea4be3f47
msgid "An admin user which admin and password are **admin**;"
msgstr ""
#: ../../CONTRIBUTING.rst:42
#: 3dbee7f7f26a43be90d535679c0a66e1
msgid "A new user which login is **james**. This user has no password yet, and his first attempt to log-in would result in sending a password initialization email (if a smtp server is configured)."
msgstr ""
#: ../development/specifications.rst:62
#: ../../CONTRIBUTING.rst:47
#: 6a80df408d77487e873a79468c27a761
#: 6ad725c101e64176a7848199cc032cea
msgid "Backends"
msgstr ""
#: ../../CONTRIBUTING.rst:49
#: ed793c84780c4431b4a0f5174b77e863
msgid "Canaille comes with several backends:"
msgstr ""
#: ../../CONTRIBUTING.rst:51
#: 61e91cbb3e1b449d8c578142e0745e64
msgid "a lightweight test purpose `memory` backend"
msgstr ""
#: ../../CONTRIBUTING.rst:52
#: e167dd64b4f0429890295f6cd030e35f
msgid "a `sql` backend, based on sqlalchemy"
msgstr ""
#: ../../CONTRIBUTING.rst:53
#: 1a65f2eac34342be8835945125ede8a6
msgid "a production-ready `LDAP` backend"
msgstr ""
#: ../../CONTRIBUTING.rst:56
#: 409d19a554034d76ba2135fe2e1a740c
msgid "Docker environment"
msgstr ""
#: ../../CONTRIBUTING.rst:58
#: fdeee3e754e843eba8b76ad705e60587
msgid "If you want to develop with docker, your browser needs to be able to reach the `canaille` container. The docker-compose file exposes the right ports, but front requests are from outside the docker network: the `canaille` url that makes sense for docker, points nowhere from your browser. As exposed ports are on `localhost`, you need to tell your computer that `canaille` url means `localhost`."
msgstr ""
#: ../../CONTRIBUTING.rst:63
#: e30b205d85524074aeeb5a7d13c26965
msgid "To do that, you can add the following line to your `/etc/hosts`:"
msgstr ""
#: ../../CONTRIBUTING.rst:69
#: d7a9e2ab1a734dfd93cfadb72e9d9561
msgid "To launch containers, use:"
msgstr ""
#: ../../CONTRIBUTING.rst:84
#: 99a2e010018c4ab18f689adbd17949d2
msgid "Local environment"
msgstr ""
#: ../../CONTRIBUTING.rst:98
#: 4c63d4d9d6bc4be79415a7f0a921f3e8
msgid "If you want to run the demo locally with the LDAP backend, you need to have `OpenLDAP <https://www.openldap.org/>`_ installed on your system. It is generally shipped under the ``slapd`` or ``openldap`` package name."
msgstr ""
#: ../../CONTRIBUTING.rst:103
#: b6350782b583407f804ee9a125cc1f4c
msgid "On Debian or Ubuntu systems, the OpenLDAP `slapd` binary usage might be restricted by apparmor, and thus makes the tests and the demo fail. This can be mitigated by removing apparmor restrictions on `slapd`."
msgstr ""
#: ../../CONTRIBUTING.rst:113
#: ddfc0afccdf849bfacf69a734948945c
msgid "Populate the database"
msgstr ""
#: ../../CONTRIBUTING.rst:115
#: 0d809af195c54c1db4a049349ec0701b
msgid "The demo database comes populated with some random users and groups. If you need more, you can generate users and groups with the ``populate`` command:"
msgstr ""
#: ../../CONTRIBUTING.rst:126
#: 191e9f1df4d845ccab01dcb93de8d944
msgid "Adapt to use either the `ldap` or the `sql` configuration file. Note that this will not work with the memory backend."
msgstr ""
#: ../../CONTRIBUTING.rst:129
#: e15be9bc7ad44cf5852e7b819f3083f0
msgid "Unit tests"
msgstr ""
#: ../../CONTRIBUTING.rst:131
#: 6db086cc47f34d91bd3d33524b2a64a1
msgid "To run the tests, you just can run `uv run pytest` and/or `uv run tox` to test all the supported python environments. Everything must be green before patches get merged."
msgstr ""
#: ../../CONTRIBUTING.rst:134
#: 00e18c0ced044c949ee1a18d593da4d2
msgid "To test a specific backend you can pass ``--backend memory``, ``--backend sql`` or ``--backend ldap`` to pytest and tox."
msgstr ""
#: ../../CONTRIBUTING.rst:136
#: 41a97534fd4640bd9586f352647f57e6
msgid "The test coverage is 100%, patches won't be accepted if not entirely covered. You can check the test coverage with ``uv run pytest --cov --cov-report=html`` or ``uv run tox -e coverage -- --cov-report=html``. You can check the HTML coverage report in the newly created `htmlcov` directory."
msgstr ""
#: ../../CONTRIBUTING.rst:141
#: 8f210b646ca84be2b83b9509b35e3f39
msgid "Code style"
msgstr ""
#: ../../CONTRIBUTING.rst:143
#: e28cd3b679db45d4a4dee24039a28335
msgid "We use `ruff <https://docs.astral.sh/ruff/>`_ along with other tools to format our code. Please run ``uv run tox -e style`` on your patches before submitting them. In order to perform a style check and correction at each commit you can use our `pre-commit <https://pre-commit.com/>`_ configuration with ``uv run pre-commit install``."
msgstr ""
#: ../../CONTRIBUTING.rst:149
#: 1213a35a573741f487d16ab7f3017048
msgid "Front"
msgstr ""
#: ../../CONTRIBUTING.rst:151
#: ee73e266b48643f3b0d811fc3dba45de
msgid "The interface is built upon the `Fomantic UI <https://fomantic-ui.com/>`_ CSS framework. The dynamical parts of the interface use `htmx <https://htmx.org/>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:154
#: f5998a63a3a8473ebdace062b9e4125f
msgid "Using Javascript in the interface is tolerated, but the whole website MUST be accessible for browsers without Javascript support, and without any feature loss."
msgstr ""
#: ../../CONTRIBUTING.rst:156
#: 156c5f0058a44a83a5ef7fc0276a0e79
msgid "Because of Fomantic UI we have a dependency to jQuery, however new contributions should not depend on jQuery at all. See the `related issue <https://gitlab.com/yaal/canaille/-/issues/130>`_."
msgstr ""
#: ../../CONTRIBUTING.rst:161
#: d2222852829b41e39d47b5ee4e2f35da
msgid "Documentation"
msgstr ""
#: ../../CONTRIBUTING.rst:163
#: 56ec493dc9c54b30ae012bce43edc8ac
msgid "The documentation is generated when the tests run:"
msgstr ""
#: ../../CONTRIBUTING.rst:169
#: c724f6040e8e41dfaa0bd61783b3f75e
msgid "You can also run sphinx by hand, that should be faster since it avoids the tox environment initialization:"
msgstr ""
#: ../../CONTRIBUTING.rst:175
#: c870557153b74096afeabcfb31d16a6d
msgid "The generated documentation is located at ``build/sphinx/html``."
msgstr ""
#: ../../CONTRIBUTING.rst:178
#: 69fc6bf00fe54884879b2d2a41877f66
msgid "Code translation"
msgstr ""
#: ../../canaille/translations/README.rst:1
#: cc50847556774dac9ce087a24bae715d
msgid "Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../../canaille/translations/README.rst:3
#: 3d831a3a927d456f834248caaef471aa
msgid "The following commands are there as documentation, only the message extraction is needed for contributors. All the other steps are automatically done with Weblate."
msgstr ""
#: ../../canaille/translations/README.rst:8
#: ../locales/readme.rst:7
#: e5788bab9bea4b62896cea4130da2b22
#: 78bc50b888bb49aeadc7a04a79426545
msgid "Message extraction"
msgstr ""
#: ../../canaille/translations/README.rst:10
#: ../locales/readme.rst:9
#: cdf33fd9d8ba4540aa843a236a424596
#: 2c8e0e2054654b20a3b49db40f60601d
msgid "After you have edited translatable strings, you should extract the messages with:"
msgstr ""
#: ../../canaille/translations/README.rst:17
#: ../locales/readme.rst:16
#: 98d3fdec177b4519bd4d9efcd5cd827c
#: 1555b90dada547ce9112c0d5664c618f
msgid "Language addition"
msgstr ""
#: ../../canaille/translations/README.rst:19
#: ../locales/readme.rst:18
#: 32f431c9d9f9418292e69d27236af062
#: 762c9254a1b04b71aeb43923910b130e
msgid "You can add a new language manually with the following command, however this should not be needed as Weblate takes car of this:"
msgstr ""
#: ../../canaille/translations/README.rst:26
#: 797cc0492f974a1e806df493b216c5f8
msgid "Catalog update"
msgstr ""
#: ../../canaille/translations/README.rst:28
#: a40f65b9a07e48d88f88e08096d31299
msgid "You can update the catalogs with the following command, however this should not be needed as Weblate automatically update language catalogs when it detects new strings or when someone translate some existing strings. Weblate pushes happen every 24h."
msgstr ""
#: ../../canaille/translations/README.rst:36
#: c3f0a5e6753c4c21ab3997c39d57800f
msgid "Catalog compilation"
msgstr ""
#: ../../canaille/translations/README.rst:38
#: 614a641d465649e7a779a9d4ef49cbd9
msgid "You can compile the catalogs with the following command, however this should not be needed as catalogs are automatically compiled before running the unit tests, before launching the demo and before compiling the Canaille python package:"
msgstr ""
#: ../../CONTRIBUTING.rst:184
#: add6d5220923488a82e49359ce7a0d55
msgid "Documentation translation"
msgstr ""
#: ../locales/readme.rst:1
#: a2cfb06dfde7462fb3382c20183342a0
msgid "Documentation translation Translations are done with `Weblate <https://hosted.weblate.org/projects/canaille/canaille>`_."
msgstr ""
#: ../locales/readme.rst:4
#: 113485680b744151a4e88e903b33f63c
msgid "The following commands are there as documentation, only the message extraction and the language addition is needed for contributors."
msgstr ""
#: ../locales/readme.rst:25
#: e4baf07e2a99407a8a96e0574a012091
msgid "Build the documentation in another language"
msgstr ""
#: ../../CONTRIBUTING.rst:189
#: 515603cf888740aa9a3dd3dd230e3352
msgid "Publish a new release"
msgstr ""
#: ../../CONTRIBUTING.rst:191
#: e657f8e780dd4674a90bf0dde7decbe1
msgid "Check that dependencies are up to date with ``uv sync --all-extras --upgrade`` and update dependencies accordingly in separated commits;"
msgstr ""
#: ../../CONTRIBUTING.rst:192
#: 391ef00613ed4d8ca5538c617ed4e9ac
msgid "Check that tests are still green for every supported python version, and that coverage is still at 100%, by running ``uv run tox``;"
msgstr ""
#: ../../CONTRIBUTING.rst:193
#: 57694c4f22574e50bff25cab27182f2d
msgid "Check that the demo environments are still working, both the local and the Docker one;"
msgstr ""
#: ../../CONTRIBUTING.rst:194
#: 3c03facaea6646948faf4531c2474b8f
msgid "Check that the :ref:`development/changelog:Release notes` section is correctly filled up;"
msgstr ""
#: ../../CONTRIBUTING.rst:195
#: ab7667b315734c5b9a4222006d86b173
msgid "Increase the version number in ``pyproject.toml``;"
msgstr ""
#: ../../CONTRIBUTING.rst:196
#: d65334bb5a78403eab57f3b17995ca3f
msgid "Commit with ``git commit``;"
msgstr ""
#: ../../CONTRIBUTING.rst:197
#: dee8dcd9aa344228b9f5cd8b9142a630
msgid "Build with ``uv build``;"
msgstr ""
#: ../../CONTRIBUTING.rst:198
#: 7782721ef59e4196aca0b8e3b4eee781
msgid "Publish on test PyPI with ``uv publish --publish-url https://test.pypi.org/legacy/``;"
msgstr ""
#: ../../CONTRIBUTING.rst:199
#: 1c23cb30798d4f06a418c61e6c7a998f
msgid "Install the test package somewhere with ``pip install --extra-index-url https://test.pypi.org/simple --upgrade canaille``. Check that everything looks fine;"
msgstr ""
#: ../../CONTRIBUTING.rst:200
#: 14eccb7318524fb2af7e0d75bdb59e19
msgid "Publish on production PyPI ``uv publish``;"
msgstr ""
#: ../../CONTRIBUTING.rst:201
#: 7776d49a05bc4399a09fa9ff7a08fc65
msgid "Tag the commit with ``git tag XX.YY.ZZ``;"
msgstr ""
#: ../../CONTRIBUTING.rst:202
#: 69b763c261ce43478f815696e7762162
msgid "Push the release commit and the new tag on the repository with ``git push --tags``."
msgstr ""
#: ../development/index.rst:2
#: 06473fb59658463eac64f549d1978fed
msgid "Development"
msgstr ""
#: ../development/specifications.rst:2
#: 2383ea673b75451188733db5862b135b
msgid "Specifications"
msgstr ""
#: ../development/specifications.rst:4
#: 2ef6b8c589164db4bc70d90e406547f4
msgid "This page details which specifications are implemented in Canaille, and compares Canaille with other well-known identity providers."
msgstr ""
#: ../development/specifications.rst:7
#: ce5d7ed671a84146a75c86236a435bcb
msgid "State of the specs in Canaille"
msgstr ""
#: ../development/specifications.rst:10
#: e1579bc3332e4a63b0aac21055d366ea
msgid "OAuth2"
msgstr ""
#: ../development/specifications.rst:12
#: bce2b9f1363a4897b649cbf8b1ab312f
msgid "✅ `RFC6749: OAuth 2.0 Framework <https://tools.ietf.org/html/rfc6749>`_"
msgstr ""
#: ../development/specifications.rst:13
#: 0f16ff4617e249448a680965b8e27053
msgid "✅ `RFC6750: OAuth 2.0 Bearer Tokens <https://tools.ietf.org/html/rfc6750>`_"
msgstr ""
#: ../development/specifications.rst:14
#: a872f28da388479784536ba3a86e19b6
msgid "✅ `RFC7009: OAuth 2.0 Token Revocation <https://tools.ietf.org/html/rfc7009>`_"
msgstr ""
#: ../development/specifications.rst:15
#: 94e2bc5630a44815b4c93c4e807778cb
msgid "❌ `RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <https://tools.ietf.org/html/rfc7523>`_"
msgstr ""
#: ../development/specifications.rst:16
#: 76e315ea5f684fb79290e26d57859f7e
msgid "✅ `RFC7591: OAuth 2.0 Dynamic Client Registration Protocol <https://tools.ietf.org/html/rfc7591>`_"
msgstr ""
#: ../development/specifications.rst:17
#: 9eae7bb9c29847a8a5a3eb28789e46b1
msgid "✅ `RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol <https://tools.ietf.org/html/rfc7592>`_"
msgstr ""
#: ../development/specifications.rst:18
#: 7f0334835508449085c14802ab6f72af
msgid "✅ `RFC7636: Proof Key for Code Exchange by OAuth Public Clients <https://tools.ietf.org/html/rfc7636>`_"
msgstr ""
#: ../development/specifications.rst:19
#: fbb4c383d63a46efb860728150f24ac4
msgid "✅ `RFC7662: OAuth 2.0 Token Introspection <https://tools.ietf.org/html/rfc7662>`_"
msgstr ""
#: ../development/specifications.rst:20
#: 653ac730c45d4631a1198df2fb4e2ec5
msgid "✅ `RFC8414: OAuth 2.0 Authorization Server Metadata <https://tools.ietf.org/html/rfc8414>`_"
msgstr ""
#: ../development/specifications.rst:21
#: c7d59a380e4a4de1b92c107f1b2c539b
msgid "❌ `RFC8428: OAuth 2.0 Device Authorization Grant <https://tools.ietf.org/html/rfc8428>`_"
msgstr ""
#: ../development/specifications.rst:22
#: c075e766a7d446dd9c13344c3f86a2c2
msgid "❌ `RFC8693: OAuth 2.0 Token Exchange <https://tools.ietf.org/html/rfc8693>`_"
msgstr ""
#: ../development/specifications.rst:23
#: 28a936713f9948b6a3764a19c027f6bb
msgid "❌ `RFC8705: OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens <https://tools.ietf.org/html/rfc8705>`_"
msgstr ""
#: ../development/specifications.rst:24
#: e6919e11c0e947d1b6e423a655a74d5a
msgid "❌ `RFC8707: Resource Indicators for OAuth 2.0 <https://tools.ietf.org/html/rfc8707>`_"
msgstr ""
#: ../development/specifications.rst:25
#: dcf39ac39c8c4504aa5286585795a804
msgid "❌ `RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens <https://tools.ietf.org/html/rfc9068>`_"
msgstr ""
#: ../development/specifications.rst:26
#: e9c618050694440babc431d81eaea941
msgid "❌ `RFC9101: OAuth 2.0 JWT-Secured Authorization Request (JAR) <https://tools.ietf.org/html/rfc9101>`_"
msgstr ""
#: ../development/specifications.rst:27
#: 5245d41ffe9e4ed5a05bf5dff10724cc
msgid "❌ `RFC9126: OAuth 2.0 Pushed Authorization Requests <https://tools.ietf.org/html/rfc9126>`_"
msgstr ""
#: ../development/specifications.rst:28
#: e82805a9bb934a61a36bff17697d6119
msgid "❌ `RFC9207: OAuth 2.0 Authorization Server Issuer Identification <https://tools.ietf.org/html/rfc9207>`_"
msgstr ""
#: ../development/specifications.rst:29
#: 13d5af1c63134be28a9c8f12925952f9
msgid "❌ `RFC9394: OAuth 2.0 Rich Authorization Requests <https://www.rfc-editor.org/rfc/rfc9396.html>`_"
msgstr ""
#: ../development/specifications.rst:30
#: e2440df8c0bc43a393e9f29fb658c080
msgid "❌ `OAuth2 Multiple Response Types <https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:31
#: aceb377eee7f4b8d813edd4d649eea45
msgid "❌ `OAuth2 Form Post Response Mode <https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:34
#: 536cc3c67db14ed4a20bd172e2f02c2d
msgid "OpenID Connect"
msgstr ""
#: ../development/specifications.rst:36
#: 501bfe9938d44b21bc9a29e3ee3f1ccd
msgid "✅ `OpenID Connect Core <https://openid.net/specs/openid-connect-core-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:37
#: 940a4a7b20da4c57ab910c3952941bab
msgid "✅ `OpenID Connect Discovery <https://openid.net/specs/openid-connect-discovery-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:38
#: e9243ed2cb5843debd7864bacd3615bf
msgid "✅ `OpenID Connect Dynamic Client Registration <https://openid.net/specs/openid-connect-registration-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:39
#: 260e55b2265f449da141e7b231859956
msgid "✅ `OpenID Connect RP Initiated Logout <https://openid.net/specs/openid-connect-rpinitiated-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:40
#: 206d7fc552224c9ebbee3572273c82eb
msgid "❌ `OpenID Connect Session Management <https://openid.net/specs/openid-connect-session-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:41
#: 8c4191636e1a462b8c8078918a753008
msgid "❌ `OpenID Connect Front Channel Logout <https://openid.net/specs/openid-connect-frontchannel-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:42
#: 163e00dec72e474d89c739d92f25b42c
msgid "❌ `OpenID Connect Back Channel Logout <https://openid.net/specs/openid-connect-backchannel-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:43
#: debeca055bdc4633b649b5fd9baf4346
msgid "❌ `OpenID Connect Back Channel Authentication Flow <https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:44
#: 96e17c4d073f403889ba175279c8a621
msgid "❌ `OpenID Connect Core Error Code unmet_authentication_requirements <https://openid.net/specs/openid-connect-unmet-authentication-requirements-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:45
#: f3d5d91958dc4dea9b3a3e359c2e8ace
msgid "✅ `Initiating User Registration via OpenID Connect 1.0 <https://openid.net/specs/openid-connect-prompt-create-1_0.html>`_"
msgstr ""
#: ../development/specifications.rst:48
#: ../development/specifications.rst:64
#: 3d08369fd6424b71b7a1714928df5b24
#: ec31988387b144b5a71a8ff448bd57cf
msgid "SCIM"
msgstr ""
#: ../development/specifications.rst:50
#: 55efb939c7424dd7b0a458e4536a9a56
msgid "❌ `RFC7642: System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements <https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../development/specifications.rst:51
#: 0777963266124280b73cd65111298a6b
msgid "❌ `RFC7643: System for Cross-domain Identity Management: Core Schema <https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../development/specifications.rst:52
#: 1413af49b35e43f394a69a91a9fb9254
msgid "❌ `RFC7644: System for Cross-domain Identity Management: Protocol <https://www.rfc-editor.org/rfc/rfc7642>`_"
msgstr ""
#: ../development/specifications.rst:55
#: 958bc79cc19548f5bfee6e20a9f4971d
msgid "Comparison with other providers"
msgstr ""
#: ../development/specifications.rst:57
#: aad219093f2243f68e8678886460e50f
msgid "Here is a feature comparison with other OpenID Connect server software."
msgstr ""
#: ../development/specifications.rst:59
#: 74f4c92786fb42cc8c9865d6791e8f2e
msgid "Canaille voluntarily only implements the OpenID Connect protocol to keep its codebase simple."
msgstr ""
#: ../development/specifications.rst:62
#: 28474b61dca1437a8ba4d9e8fbc4fafe
msgid "Software"
msgstr ""
#: ../development/specifications.rst:62
#: 90e531639a8048ad836cb2510bb4b4a1
msgid "Project"
msgstr ""
#: ../development/specifications.rst:62
#: 2016be5359144e6fac7ae582cdfb3095
msgid "Protocols implementations"
msgstr ""
#: ../development/specifications.rst:64
#: b15c641b913b4ac9a29ea3308555e9c9
msgid "FLOSS"
msgstr ""
#: ../development/specifications.rst:64
#: 73626dca03614498bf386d2b3bfc9123
msgid "Language"
msgstr ""
#: ../development/specifications.rst:64
#: c29f145e63714ccaa8a03cca4e3f22f4
msgid "LOC"
msgstr ""
#: ../development/specifications.rst:64
#: 23ca5dbb097e4839a136bb799bf80f55
msgid "OIDC"
msgstr ""
#: ../development/specifications.rst:64
#: 11ecae1c29784130b88825b48252f35c
msgid "SAML"
msgstr ""
#: ../development/specifications.rst:64
#: f08202ef5e9b483a80b28050363813e7
msgid "CAS"
msgstr ""
#: ../development/specifications.rst:64
#: c15a06d0987b4617b1a27f63c6ea8bbb
msgid "LDAP"
msgstr ""
#: ../development/specifications.rst:64
#: 88d8a0776138423baadcac6030b6b58f
msgid "SQL"
msgstr ""
#: ../development/specifications.rst:66
#: 36b09d27feb3464a9390fefff5a7fe93
msgid "Canaille"
msgstr ""
#: ../development/specifications.rst:66
#: ../development/specifications.rst:68
#: ../development/specifications.rst:70
#: ../development/specifications.rst:72
#: ../development/specifications.rst:74
#: ../development/specifications.rst:76
#: ../development/specifications.rst:78
#: ../development/specifications.rst:80
#: ../development/specifications.rst:82
#: ../development/specifications.rst:84
#: ../development/specifications.rst:86
#: ../development/specifications.rst:88
#: 0f4aa33ba6584e98a9eaa297d0c94bb0
#: fadd2afadd834cedbd90bb5bb9a9014b
#: 43eebe1b471c4101a0c92ea3b2a581f5
#: d271fc21b16c4ffcbe345c6468f2b0a9
#: e8ba0239a4b749e7a25fb8c635f589e7
#: 1e47f1133b4e4a0e9c831cd5e1a13698
#: 9805c61499404f379aa38b4b66c11b39
#: 35600f8ae23c41fcac1e4cedaf78db99
#: e33c8e80263d4fbfab0ff58fc214cb8f
#: 58988f1bd01f49bcb8a3bfe088ed011b
#: 8766d871a0274f0b971c264c78120d26
#: 349c74fb53ea407d84d2956ccdbc46fa
#: 6cb5dea79610432e9dfdea8c2c626097
#: 9bfd6602bb454ea39e137608d521e34b
#: 454f0ee660ee499283215360375fb802
#: 1c6ed99217124047bb586e7a891759db
#: 2c9b0c967eec4506bfcd5dbbf52afb38
#: 7dbecc531d094e4484f22e5060f83a37
#: 77a7e78473cc48099cbd2d1ffe9428f2
#: c74de60c04914a7f9e2c06e43bbe7781
#: 14417de9256e420ead7cef2967be4a6d
#: 2ab94593a8e9419492ec2920eda40d75
#: a439c4a58ee84802b941c9286bd22bbf
#: 0a50f3e6a3e14a5ca080519a2387f1a8
#: 6e21519d3fe840b1a8511a46ea29feb0
#: e257e70630c746189e0f3dcbe80680ad
#: 1b7eb2933228484ba7be3939e85199bb
#: fbe1ad750c384be994f6785667e04d64
#: b8e790defcfd4060831916e10e35eb51
#: 596178c6b8d14a7393e0bbed037c744f
#: 4c78c1fffa8b4568ab0d592a101f960f
#: 5c8f704976a94119a86e8699f0a4e81f
#: 2d8ea8069a934b38ab843b8a5f973a39
#: 7befcce958644063930aa1408d04e00f
#: 765ee0d0ceec4a0eb9cfe961c9f58d39
#: 7a7f0093c2c84333b30b2812477b47b1
#: 0f611501e77e4cb29d60d5c669f1e24b
#: 9444fb2a3e0740dd9d5ec6a5f2a616d2
#: 092db271989440aa80041a75259a11f4
#: 5caa2e5cb2c941128d3693c1cbc24002
#: 4e8ed6d107234a949ffeb1030a62936d
#: a5079ead19194736849e33ae37800cde
#: caf9f4e107af45fc81a8805315b76ba2
#: a0f1e032b5b649db88c6d424e0201c77
#: e33c9d06ce5e474c9e52b4d92a3e9667
#: 86593813ccdb456ebd0d83b27eeb01cf
#: 8f8b3d4f54864fa48122dc593a86518c
#: d4498551e8d94e2a9eec0b40ef44a7f7
#: cfa66105b6d34120918736d616c1a03e
#: df7e4d13d307478da90f47c6a25967f2
#: 3028033c8ed04f13ac3bc5d429512376
#: c534146a75ab423b9dd3eeaec1086f86
#: a531b5e1ae8d4f08b3ab64fb41b95eac
#: 0f0ed37cd7f1417ea714b6a26e0aa821
#: 2f74de566e7f4bb6953d723937fdcfbb
#: d2402eff2aa54c4ba72167030aad1624
#: 2de2fb6bb0ac465185d04c363810a287
#: 8c9f23f2ec144bc091870e216866bfd5
#: 778477d68681415cb697a3f5fbecb407
#: d4f477480a384c0fa7cc6e04c24fdb0c
#: 300ec52ae51f48118892ad89eaae110c
#: d764f65e2aa64f8abc37a03e435864eb
#: deddbee4686d4593bd8f25a94403c496
msgid "✅"
msgstr ""
#: ../development/specifications.rst:66
#: ../development/specifications.rst:72
#: ../development/specifications.rst:74
#: 01dff9df020340d3b54406638f8ade39
#: 9b3140d0523c4308bc9134ef0b429d2c
#: 4b1e5e8fc53c45d78490dc275918de15
msgid "Python"
msgstr ""
#: ../development/specifications.rst:66
#: 96c10219b0b14aa19ce8a108a7ae7535
msgid "10k"
msgstr ""
#: ../development/specifications.rst:66
#: ../development/specifications.rst:68
#: ../development/specifications.rst:70
#: ../development/specifications.rst:72
#: ../development/specifications.rst:74
#: ../development/specifications.rst:76
#: ../development/specifications.rst:78
#: ../development/specifications.rst:82
#: ../development/specifications.rst:86
#: ../development/specifications.rst:88
#: 3ebd793a1a814a59ac86d95ac10d5df2
#: c5f6dca104ff4b96b3e2efd62193fe07
#: 90a7b98bef2444de873bccf36b6945fe
#: d50482bdbeaf4df3a1e96da071973245
#: c9b9adb75109471296e228d204cba052
#: 46582f2fe84c49cd8c0cb4c8aadc9901
#: be741254f47f40a3a8184bc4e9d1da25
#: dd27269b4d13497db74735e450ebca2f
#: 9eadd8b5840940bb87c3549722814f48
#: 3608cbf9d76e443187d5aa737fbad466
#: 15fa182a79c14d169755cec6b57208e2
#: 62636f44d520479ab343eff200e99fa1
#: ae0edbc27c7f49b3bea30ed31fbe1911
#: eb691511657747a499a83d4fa93e5e82
#: 54c00360d6eb4809a8109defc6b2b87b
#: 8fdc4d649f4a4e6e8dc05bb9d04d87b9
#: dfd6b6d189254825bb6ef6a6d7e8aeb2
#: 7457ad39b3694ed6b9f55e066e84368b
#: 27fa0f65ca344c619c008634c795839c
msgid "❌"
msgstr ""
#: ../development/specifications.rst:68
#: 176177908d034923b2aee29868ef6796
msgid "`Auth0`_"
msgstr ""
#: ../development/specifications.rst:68
#: ../development/specifications.rst:78
#: ../development/specifications.rst:80
#: ../development/specifications.rst:88
#: 34ea26174ce84747a3098db253c053d2
#: 2197b1423cf24880bd48984365df26ca
#: 343c98b7aae64c4b9b13401296895ea2
#: 0aed1e6f1ed140fcaa16586bfe983023
#: 437f53f33fe94e928888c9611c8e96e3
#: ca5b6032265d45c9b26dc476f4631586
#: cda04abd7d0f49598c1e5847a0e46893
#: c9771ac23ed44441bd5bb7f6634ede8d
#: 522c4a868dc84cf3b0d349a7b83e1044
msgid "❔"
msgstr ""
#: ../development/specifications.rst:70
#: 3de4a343d96b4a699f2b3a28ebfbb76f
msgid "`Authelia`_"
msgstr ""
#: ../development/specifications.rst:70
#: ../development/specifications.rst:82
#: b0f9a8ac302047428af718460e7e46d6
#: 40010ae725194f3799a9740e20c4ae84
msgid "Go"
msgstr ""
#: ../development/specifications.rst:70
#: ../development/specifications.rst:82
#: 3b23b5c9fc4242d4af838dfdeba90474
#: bb830e5335294f36ba951698d814e713
msgid "50k"
msgstr ""
#: ../development/specifications.rst:72
#: 93151babd6a84e208a8cb864acb445a0
msgid "`Authentic2`_"
msgstr ""
#: ../development/specifications.rst:72
#: 7d26a37f8f2d490ca5c464422d2da857
msgid "65k"
msgstr ""
#: ../development/specifications.rst:74
#: c79b04fe99584a4183258a9bb56afff6
msgid "`Authentik`_"
msgstr ""
#: ../development/specifications.rst:74
#: 34c65fd0b72146b1bdb2392653fbd7bf
msgid "55k"
msgstr ""
#: ../development/specifications.rst:76
#: 2dd361f5df204f2197da5976329b8bee
msgid "`CAS`_"
msgstr ""
#: ../development/specifications.rst:76
#: ../development/specifications.rst:80
#: ../development/specifications.rst:84
#: d1431df43a0844e592a30e479cb711d7
#: 4e12564f864e4fcca5c59a70971b197e
#: 0e395d011cea454080b706263976c5a8
msgid "Java"
msgstr ""
#: ../development/specifications.rst:76
#: 3c237a5d63994ccabf80d364775f6bd2
msgid "360k"
msgstr ""
#: ../development/specifications.rst:78
#: 1a3be2d069ee4442b7fa71ac5cb4c245
msgid "`Connect2id`_"
msgstr ""
#: ../development/specifications.rst:80
#: 8cb2733860b640ae9bcd9aa2b972f8c1
msgid "`Gluu`_"
msgstr ""
#: ../development/specifications.rst:82
#: 55764f0dc4bd4f9195fd8a68024f9ccf
msgid "`Hydra`_"
msgstr ""
#: ../development/specifications.rst:84
#: 7532697da47043a9995922fd436fac5d
msgid "`Keycloak`_"
msgstr ""
#: ../development/specifications.rst:84
#: 38a63029234442cf8a45a3eaf5e4c5af
msgid "600k"
msgstr ""
#: ../development/specifications.rst:86
#: 6960f54d48a84e7389e1e733a107fc06
msgid "`LemonLDAP`_"
msgstr ""
#: ../development/specifications.rst:86
#: 12c8306ec42e41ca83f5ea529d87f797
msgid "Perl"
msgstr ""
#: ../development/specifications.rst:86
#: 5edc7bd6be844833a7c456f9bec02b10
msgid "130k"
msgstr ""
#: ../development/specifications.rst:88
#: beae02477d7d4c768d483db955ebd314
msgid "`Okta`_"
msgstr ""