Merge branch 'master' into version-2021.4
This commit is contained in:
commit
7a562fe8c0
104
Pipfile.lock
generated
104
Pipfile.lock
generated
|
@ -56,7 +56,6 @@
|
|||
"sha256:f881853d2643a29e643609da57b96d5f9c9b93f62429dcc1cbb413c7d07f0e1a",
|
||||
"sha256:fe60131d21b31fd1a14bd43e6bb88256f69dfc3188b3a89d736d6c71ed43ec95"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.7.4.post0"
|
||||
},
|
||||
"aioredis": {
|
||||
|
@ -71,7 +70,6 @@
|
|||
"sha256:03e16e94f2b34c31f8bf1206d8ddd3ccaa4c315f7f6a1879b7b1210d229568c2",
|
||||
"sha256:493a2ac6788ce270a2f6a765b017299f60c1998f5a8617908ee9be082f7300fb"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==5.0.6"
|
||||
},
|
||||
"asgiref": {
|
||||
|
@ -79,7 +77,6 @@
|
|||
"sha256:92906c611ce6c967347bbfea733f13d6313901d54dcca88195eaeb52b2a8e8ee",
|
||||
"sha256:d1216dfbdfb63826470995d31caed36225dcaf34f182e0fa257a4dd9e86f1b78"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.3.4"
|
||||
},
|
||||
"async-timeout": {
|
||||
|
@ -87,7 +84,6 @@
|
|||
"sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f",
|
||||
"sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"
|
||||
],
|
||||
"markers": "python_full_version >= '3.5.3'",
|
||||
"version": "==3.0.1"
|
||||
},
|
||||
"attrs": {
|
||||
|
@ -95,7 +91,6 @@
|
|||
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
|
||||
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==20.3.0"
|
||||
},
|
||||
"autobahn": {
|
||||
|
@ -103,7 +98,6 @@
|
|||
"sha256:9195df8af03b0ff29ccd4b7f5abbde957ee90273465942205f9a1bad6c3f07ac",
|
||||
"sha256:e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==21.3.1"
|
||||
},
|
||||
"automat": {
|
||||
|
@ -122,28 +116,23 @@
|
|||
},
|
||||
"boto3": {
|
||||
"hashes": [
|
||||
"sha256:d5ef160442925f5944e4cde88589f0f195f6c284f05613114fc6bbc35e342fa7",
|
||||
"sha256:df5912350e092e795f72d8047a44d3f5af9690317acfe48147b9853a2f89b304",
|
||||
"sha256:a482135c30fa07eaf4370314dd0fb49117222a266d0423b2075aed3835ed1f04",
|
||||
"sha256:e86c15049dc07cb67e8b466795f004f1f23c1acf078d47283cd5e4a692a5aa37"
|
||||
"sha256:f7447d84c3e1381bb3cc61ceb360dab47e91ebd133725dbd6d98946f11e234d3"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.17.49"
|
||||
"version": "==1.17.50"
|
||||
},
|
||||
"botocore": {
|
||||
"hashes": [
|
||||
"sha256:6a672ba41dd00e5c1c1824ca8143d180d88de8736d78c0b1f96b8d3cb0466561",
|
||||
"sha256:f7f103fa0651c69dd360c7d0ecd874854303de5cc0869e0cbc2818a52baacc69"
|
||||
"sha256:a621a4bf60a1197c7ebd8ed0badac8282e36e0cee7241831a099200983ff7c49",
|
||||
"sha256:f6c2bfae21eaa4e4f75fc5f48b22b16831356755bfb58516219ee11d74070220"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
||||
"version": "==1.20.49"
|
||||
"version": "==1.20.50"
|
||||
},
|
||||
"cachetools": {
|
||||
"hashes": [
|
||||
"sha256:1d9d5f567be80f7c07d765e21b814326d78c61eb0c3a637dffc0e5d1796cb2e2",
|
||||
"sha256:f469e29e7aa4cff64d8de4aad95ce76de8ea1125a16c68e0d93f65c3c3dc92e9"
|
||||
],
|
||||
"markers": "python_version ~= '3.5'",
|
||||
"version": "==4.2.1"
|
||||
},
|
||||
"cbor2": {
|
||||
|
@ -230,7 +219,6 @@
|
|||
"sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
|
||||
"sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==4.0.0"
|
||||
},
|
||||
"click": {
|
||||
|
@ -238,7 +226,6 @@
|
|||
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
|
||||
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==7.1.2"
|
||||
},
|
||||
"click-didyoumean": {
|
||||
|
@ -312,7 +299,6 @@
|
|||
"sha256:76ffae916ba3aa66b46996c14fa713e46004788167a4873d647544e750e0e99f",
|
||||
"sha256:a9af943c79717bc52fe64a3c236ae5d3adccc8b5be19c881b442d2c3db233393"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.2"
|
||||
},
|
||||
"defusedxml": {
|
||||
|
@ -438,7 +424,6 @@
|
|||
"hashes": [
|
||||
"sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.18.2"
|
||||
},
|
||||
"geoip2": {
|
||||
|
@ -454,7 +439,6 @@
|
|||
"sha256:186fe2564634d67fbbb64f3daf8bc8c9cecbb2a7f535ed1a8a71795e50db8d87",
|
||||
"sha256:70b39558712826e41f65e5f05a8d879361deaf84df8883e5dd0ec3d0da6ab66e"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
||||
"version": "==1.28.1"
|
||||
},
|
||||
"gunicorn": {
|
||||
|
@ -469,7 +453,6 @@
|
|||
"sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6",
|
||||
"sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.12.0"
|
||||
},
|
||||
"hiredis": {
|
||||
|
@ -516,7 +499,6 @@
|
|||
"sha256:f52010e0a44e3d8530437e7da38d11fb822acfb0d5b12e9cd5ba655509937ca0",
|
||||
"sha256:f8196f739092a78e4f6b1b2172679ed3343c39c61a3e9d722ce6fcf1dac2824a"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.0.0"
|
||||
},
|
||||
"httptools": {
|
||||
|
@ -562,7 +544,6 @@
|
|||
"sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417",
|
||||
"sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==0.5.1"
|
||||
},
|
||||
"itypes": {
|
||||
|
@ -577,7 +558,6 @@
|
|||
"sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419",
|
||||
"sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==2.11.3"
|
||||
},
|
||||
"jmespath": {
|
||||
|
@ -585,7 +565,6 @@
|
|||
"sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9",
|
||||
"sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.10.0"
|
||||
},
|
||||
"jsonschema": {
|
||||
|
@ -600,7 +579,6 @@
|
|||
"sha256:6dc509178ac4269b0e66ab4881f70a2035c33d3a622e20585f965986a5182006",
|
||||
"sha256:f4965fba0a4718d47d470beeb5d6446e3357a62402b16c510b6a2f251e05ac3c"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==5.0.2"
|
||||
},
|
||||
"kubernetes": {
|
||||
|
@ -613,9 +591,6 @@
|
|||
},
|
||||
"ldap3": {
|
||||
"hashes": [
|
||||
"sha256:afc6fc0d01f02af82cd7bfabd3bbfd5dc96a6ae91e97db0a2dab8a0f1b436056",
|
||||
"sha256:8c949edbad2be8a03e719ba48bd6779f327ec156929562814b3e84ab56889c8c",
|
||||
"sha256:4139c91f0eef9782df7b77c8cbc6243086affcb6a8a249b768a9658438e5da59",
|
||||
"sha256:18c3ee656a6775b9b0d60f7c6c5b094d878d1d90fc03d56731039f0a4b546a91",
|
||||
"sha256:c1df41d89459be6f304e0ceec4b00fdea533dbbcd83c802b1272dcdb94620b57"
|
||||
],
|
||||
|
@ -719,14 +694,12 @@
|
|||
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be",
|
||||
"sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"maxminddb": {
|
||||
"hashes": [
|
||||
"sha256:47e86a084dd814fac88c99ea34ba3278a74bc9de5a25f4b815b608798747c7dc"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.0.3"
|
||||
},
|
||||
"msgpack": {
|
||||
|
@ -802,7 +775,6 @@
|
|||
"sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281",
|
||||
"sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==5.1.0"
|
||||
},
|
||||
"oauthlib": {
|
||||
|
@ -810,7 +782,6 @@
|
|||
"sha256:bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889",
|
||||
"sha256:df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==3.1.0"
|
||||
},
|
||||
"packaging": {
|
||||
|
@ -826,7 +797,6 @@
|
|||
"sha256:030e4f9df5f53db2292eec37c6255957eb76168c6f974e4176c711cf91ed34aa",
|
||||
"sha256:b6c5a9643e3545bcbfd9451766cbaa5d9c67e7303c7bc32c750b6fa70ecb107d"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.10.1"
|
||||
},
|
||||
"prompt-toolkit": {
|
||||
|
@ -834,7 +804,6 @@
|
|||
"sha256:bf00f22079f5fadc949f42ae8ff7f05702826a97059ffcc6281036ad40ac6f04",
|
||||
"sha256:e1b4f11b9336a28fa11810bc623c357420f69dfdb6d2dac41ca2c21a55c033bc"
|
||||
],
|
||||
"markers": "python_full_version >= '3.6.1'",
|
||||
"version": "==3.0.18"
|
||||
},
|
||||
"psycopg2-binary": {
|
||||
|
@ -880,37 +849,15 @@
|
|||
},
|
||||
"pyasn1": {
|
||||
"hashes": [
|
||||
"sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf",
|
||||
"sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00",
|
||||
"sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86",
|
||||
"sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba",
|
||||
"sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2",
|
||||
"sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576",
|
||||
"sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12",
|
||||
"sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359",
|
||||
"sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776",
|
||||
"sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7",
|
||||
"sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3",
|
||||
"sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8",
|
||||
"sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"
|
||||
"sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d",
|
||||
"sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"
|
||||
],
|
||||
"version": "==0.4.8"
|
||||
},
|
||||
"pyasn1-modules": {
|
||||
"hashes": [
|
||||
"sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d",
|
||||
"sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4",
|
||||
"sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45",
|
||||
"sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405",
|
||||
"sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74",
|
||||
"sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8",
|
||||
"sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb",
|
||||
"sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811",
|
||||
"sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0",
|
||||
"sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed",
|
||||
"sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e",
|
||||
"sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199",
|
||||
"sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd"
|
||||
"sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74"
|
||||
],
|
||||
"version": "==0.2.8"
|
||||
},
|
||||
|
@ -919,7 +866,6 @@
|
|||
"sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0",
|
||||
"sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.20"
|
||||
},
|
||||
"pycryptodome": {
|
||||
|
@ -991,7 +937,6 @@
|
|||
"sha256:f933ecf4cb736c7af60a6a533db2bf569717f2318b265f92907acff1db43bc34",
|
||||
"sha256:fc9c55dc1ed57db76595f2d19a479fc1c3a1be2c9da8de798a93d286c5f65f38"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==3.10.1"
|
||||
},
|
||||
"pyhamcrest": {
|
||||
|
@ -999,7 +944,6 @@
|
|||
"sha256:412e00137858f04bde0729913874a48485665f2d36fe9ee449f26be864af9316",
|
||||
"sha256:7ead136e03655af85069b6f47b23eb7c3e5c221aa9f022a4fbb499f5b7308f29"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==2.0.2"
|
||||
},
|
||||
"pyjwkest": {
|
||||
|
@ -1021,14 +965,12 @@
|
|||
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
|
||||
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.4.7"
|
||||
},
|
||||
"pyrsistent": {
|
||||
"hashes": [
|
||||
"sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==0.17.3"
|
||||
},
|
||||
"python-dateutil": {
|
||||
|
@ -1036,7 +978,6 @@
|
|||
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
|
||||
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.8.1"
|
||||
},
|
||||
"python-dotenv": {
|
||||
|
@ -1093,7 +1034,6 @@
|
|||
"sha256:0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2",
|
||||
"sha256:432b788c4530cfe16d8d943a09d40ca6c16149727e4afe8c2c9d5580c59d9f24"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==3.5.3"
|
||||
},
|
||||
"requests": {
|
||||
|
@ -1101,13 +1041,11 @@
|
|||
"sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804",
|
||||
"sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==2.25.1"
|
||||
},
|
||||
"requests-oauthlib": {
|
||||
"hashes": [
|
||||
"sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d",
|
||||
"sha256:fa6c47b933f01060936d87ae9327fead68768b69c6c9ea2109c48be30f2d4dbc",
|
||||
"sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a"
|
||||
],
|
||||
"index": "pypi",
|
||||
|
@ -1126,7 +1064,6 @@
|
|||
"sha256:44bc6b54fddd45e4bc0619059196679f9e8b79c027f4131bb072e6a22f4d5e28",
|
||||
"sha256:ac79fb25f5476e8e9ed1c53b8a2286d2c3f5dde49eb37dbcee5c7eb6a8415a22"
|
||||
],
|
||||
"markers": "python_version >= '3'",
|
||||
"version": "==0.17.4"
|
||||
},
|
||||
"ruamel.yaml.clib": {
|
||||
|
@ -1163,7 +1100,7 @@
|
|||
"sha256:e9f7d1d8c26a6a12c23421061f9022bb62704e38211fe375c645485f38df34a2",
|
||||
"sha256:f6061a31880c1ed6b6ce341215336e2f3d0c1deccd84957b6fa8ca474b41e89f"
|
||||
],
|
||||
"markers": "python_version < '3.10' and platform_python_implementation == 'CPython'",
|
||||
"markers": "platform_python_implementation == 'CPython' and python_version < '3.10'",
|
||||
"version": "==0.2.2"
|
||||
},
|
||||
"s3transfer": {
|
||||
|
@ -1194,7 +1131,6 @@
|
|||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"sqlparse": {
|
||||
|
@ -1202,7 +1138,6 @@
|
|||
"sha256:017cde379adbd6a1f15a61873f43e8274179378e95ef3fede90b5aa64d304ed0",
|
||||
"sha256:0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==0.4.1"
|
||||
},
|
||||
"structlog": {
|
||||
|
@ -1258,7 +1193,6 @@
|
|||
"sha256:7d6f89745680233f1c4db9ddb748df5e88d2a7a37962be174c0fd04c8dba1dc8",
|
||||
"sha256:c16b55f9a67b2419cfdf8846576e2ec9ba94fe6978a83080c352a80db31c93fb"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==21.2.1"
|
||||
},
|
||||
"typing-extensions": {
|
||||
|
@ -1274,7 +1208,6 @@
|
|||
"sha256:07620c3f3f8eed1f12600845892b0e036a2420acf513c53f7de0abd911a5894f",
|
||||
"sha256:5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==3.0.1"
|
||||
},
|
||||
"urllib3": {
|
||||
|
@ -1319,7 +1252,6 @@
|
|||
"sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30",
|
||||
"sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==5.0.0"
|
||||
},
|
||||
"watchgod": {
|
||||
|
@ -1349,7 +1281,6 @@
|
|||
"sha256:44b5df8f08c74c3d82d28100fdc81f4536809ce98a17f0757557813275fbb663",
|
||||
"sha256:63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.58.0"
|
||||
},
|
||||
"websockets": {
|
||||
|
@ -1438,7 +1369,6 @@
|
|||
"sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a",
|
||||
"sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.6.3"
|
||||
},
|
||||
"zope.interface": {
|
||||
|
@ -1495,7 +1425,6 @@
|
|||
"sha256:fa939c2e2468142c9773443d4038e7c915b0cc1b670d3c9192bdc503f7ea73e9",
|
||||
"sha256:fcc5c1f95102989d2e116ffc8467963554ce89f30a65a3ea86a4d06849c498d8"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==5.3.0"
|
||||
}
|
||||
},
|
||||
|
@ -1512,7 +1441,6 @@
|
|||
"sha256:ad63b8552c70939568966811a088ef0bc880f99a24a00834abd0e3681b514f91",
|
||||
"sha256:bea3f32799fbb8581f58431c12591bc20ce11cbc90ad82e2ea5717d94f2080d5"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.5.3"
|
||||
},
|
||||
"attrs": {
|
||||
|
@ -1520,7 +1448,6 @@
|
|||
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
|
||||
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==20.3.0"
|
||||
},
|
||||
"bandit": {
|
||||
|
@ -1551,7 +1478,6 @@
|
|||
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
|
||||
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==7.1.2"
|
||||
},
|
||||
"colorama": {
|
||||
|
@ -1625,7 +1551,6 @@
|
|||
"sha256:6c4cc71933456991da20917998acbe6cf4fb41eeaab7d6d67fbc05ecd4c865b0",
|
||||
"sha256:96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"
|
||||
],
|
||||
"markers": "python_version >= '3.4'",
|
||||
"version": "==4.0.7"
|
||||
},
|
||||
"gitpython": {
|
||||
|
@ -1633,7 +1558,6 @@
|
|||
"sha256:3283ae2fba31c913d857e12e5ba5f9a7772bbc064ae2bb09efafa71b0dd4939b",
|
||||
"sha256:be27633e7509e58391f10207cd32b2a6cf5b908f92d9cd30da2e514e1137af61"
|
||||
],
|
||||
"markers": "python_version >= '3.4'",
|
||||
"version": "==3.1.14"
|
||||
},
|
||||
"iniconfig": {
|
||||
|
@ -1648,7 +1572,6 @@
|
|||
"sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6",
|
||||
"sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"
|
||||
],
|
||||
"markers": "python_version >= '3.6' and python_version < '4.0'",
|
||||
"version": "==5.8.0"
|
||||
},
|
||||
"lazy-object-proxy": {
|
||||
|
@ -1676,7 +1599,6 @@
|
|||
"sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93",
|
||||
"sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
||||
"version": "==1.6.0"
|
||||
},
|
||||
"mccabe": {
|
||||
|
@ -1713,7 +1635,6 @@
|
|||
"sha256:5fad80b613c402d5b7df7bd84812548b2a61e9977387a80a5fc5c396492b13c9",
|
||||
"sha256:b236cde0ac9a6aedd5e3c34517b423cd4fd97ef723849da6b0d2231142d89c00"
|
||||
],
|
||||
"markers": "python_version >= '2.6'",
|
||||
"version": "==5.5.1"
|
||||
},
|
||||
"pluggy": {
|
||||
|
@ -1721,7 +1642,6 @@
|
|||
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
|
||||
"sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.13.1"
|
||||
},
|
||||
"py": {
|
||||
|
@ -1729,7 +1649,6 @@
|
|||
"sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3",
|
||||
"sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.10.0"
|
||||
},
|
||||
"pylint": {
|
||||
|
@ -1760,7 +1679,6 @@
|
|||
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
|
||||
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.4.7"
|
||||
},
|
||||
"pytest": {
|
||||
|
@ -1873,7 +1791,6 @@
|
|||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"smmap": {
|
||||
|
@ -1881,7 +1798,6 @@
|
|||
"sha256:7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182",
|
||||
"sha256:a9a7479e4c572e2e775c404dcd3080c8dc49f39918c2cf74913d30c4c478e3c2"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==4.0.0"
|
||||
},
|
||||
"stevedore": {
|
||||
|
@ -1889,7 +1805,6 @@
|
|||
"sha256:3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee",
|
||||
"sha256:50d7b78fbaf0d04cd62411188fa7eedcb03eb7f4c4b37005615ceebe582aa82a"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.3.0"
|
||||
},
|
||||
"toml": {
|
||||
|
@ -1897,7 +1812,6 @@
|
|||
"sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
|
||||
"sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==0.10.2"
|
||||
},
|
||||
"typed-ast": {
|
||||
|
|
|
@ -6,7 +6,7 @@ from drf_yasg.utils import swagger_auto_schema
|
|||
from packaging.version import parse
|
||||
from rest_framework.fields import SerializerMethodField
|
||||
from rest_framework.mixins import ListModelMixin
|
||||
from rest_framework.permissions import IsAdminUser
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.viewsets import GenericViewSet
|
||||
|
@ -50,7 +50,9 @@ class VersionSerializer(PassiveSerializer):
|
|||
class VersionViewSet(ListModelMixin, GenericViewSet):
|
||||
"""Get running and latest version."""
|
||||
|
||||
permission_classes = [IsAdminUser]
|
||||
permission_classes = [IsAuthenticated]
|
||||
pagination_class = None
|
||||
filter_backends = []
|
||||
|
||||
def get_queryset(self): # pragma: no cover
|
||||
return None
|
||||
|
|
|
@ -10,29 +10,29 @@ from structlog.stdlib import get_logger
|
|||
from authentik.core.models import Token, TokenIntents, User
|
||||
|
||||
LOGGER = get_logger()
|
||||
X_AUTHENTIK_PREVENT_BASIC_HEADER = "HTTP_X_AUTHENTIK_PREVENT_BASIC"
|
||||
|
||||
|
||||
def token_from_header(raw_header: bytes) -> Optional[Token]:
|
||||
"""raw_header in the Format of `Basic dGVzdDp0ZXN0`"""
|
||||
auth_credentials = raw_header.decode()
|
||||
# Accept headers with Type format and without
|
||||
if " " in auth_credentials:
|
||||
auth_type, auth_credentials = auth_credentials.split()
|
||||
if auth_type.lower() != "basic":
|
||||
LOGGER.debug(
|
||||
"Unsupported authentication type, denying", type=auth_type.lower()
|
||||
)
|
||||
return None
|
||||
try:
|
||||
auth_credentials = b64decode(auth_credentials.encode()).decode()
|
||||
except (UnicodeDecodeError, Error):
|
||||
if " " not in auth_credentials:
|
||||
return None
|
||||
# Accept credentials with username and without
|
||||
if ":" in auth_credentials:
|
||||
_, password = auth_credentials.split(":")
|
||||
else:
|
||||
password = auth_credentials
|
||||
auth_type, auth_credentials = auth_credentials.split()
|
||||
if auth_type.lower() not in ["basic", "bearer"]:
|
||||
LOGGER.debug("Unsupported authentication type, denying", type=auth_type.lower())
|
||||
return None
|
||||
password = auth_credentials
|
||||
if auth_type.lower() == "basic":
|
||||
try:
|
||||
auth_credentials = b64decode(auth_credentials.encode()).decode()
|
||||
except (UnicodeDecodeError, Error):
|
||||
return None
|
||||
# Accept credentials with username and without
|
||||
if ":" in auth_credentials:
|
||||
_, password = auth_credentials.split(":")
|
||||
else:
|
||||
password = auth_credentials
|
||||
if password == "": # nosec
|
||||
return None
|
||||
tokens = Token.filter_not_expired(key=password, intent=TokenIntents.INTENT_API)
|
||||
|
@ -43,10 +43,10 @@ def token_from_header(raw_header: bytes) -> Optional[Token]:
|
|||
|
||||
|
||||
class AuthentikTokenAuthentication(BaseAuthentication):
|
||||
"""Token-based authentication using HTTP Basic authentication"""
|
||||
"""Token-based authentication using HTTP Bearer authentication"""
|
||||
|
||||
def authenticate(self, request: Request) -> Union[tuple[User, Any], None]:
|
||||
"""Token-based authentication using HTTP Basic authentication"""
|
||||
"""Token-based authentication using HTTP Bearer authentication"""
|
||||
auth = get_authorization_header(request)
|
||||
|
||||
token = token_from_header(auth)
|
||||
|
@ -56,6 +56,4 @@ class AuthentikTokenAuthentication(BaseAuthentication):
|
|||
return (token.user, None)
|
||||
|
||||
def authenticate_header(self, request: Request) -> str:
|
||||
if X_AUTHENTIK_PREVENT_BASIC_HEADER in request._request.META:
|
||||
return ""
|
||||
return 'Basic realm="authentik"'
|
||||
return "Bearer"
|
||||
|
|
|
@ -11,7 +11,7 @@ from authentik.core.models import Token, TokenIntents
|
|||
class TestAPIAuth(TestCase):
|
||||
"""Test API Authentication"""
|
||||
|
||||
def test_valid(self):
|
||||
def test_valid_basic(self):
|
||||
"""Test valid token"""
|
||||
token = Token.objects.create(
|
||||
intent=TokenIntents.INTENT_API, user=get_anonymous_user()
|
||||
|
@ -19,6 +19,13 @@ class TestAPIAuth(TestCase):
|
|||
auth = b64encode(f":{token.key}".encode()).decode()
|
||||
self.assertEqual(token_from_header(f"Basic {auth}".encode()), token)
|
||||
|
||||
def test_valid_bearer(self):
|
||||
"""Test valid token"""
|
||||
token = Token.objects.create(
|
||||
intent=TokenIntents.INTENT_API, user=get_anonymous_user()
|
||||
)
|
||||
self.assertEqual(token_from_header(f"Bearer {token.key}".encode()), token)
|
||||
|
||||
def test_invalid_type(self):
|
||||
"""Test invalid type"""
|
||||
self.assertIsNone(token_from_header("foo bar".encode()))
|
||||
|
|
|
@ -143,7 +143,7 @@ SWAGGER_SETTINGS = {
|
|||
"authentik.api.pagination_schema.PaginationInspector",
|
||||
],
|
||||
"SECURITY_DEFINITIONS": {
|
||||
"token": {"type": "apiKey", "name": "Authorization", "in": "header"}
|
||||
"Bearer": {"type": "apiKey", "name": "Authorization", "in": "header"}
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ class EmailStageViewSet(ModelViewSet):
|
|||
queryset = EmailStage.objects.all()
|
||||
serializer_class = EmailStageSerializer
|
||||
|
||||
# TODO: Validate connection settings when use_global_settings is unchecked
|
||||
@swagger_auto_schema(responses={200: TypeCreateSerializer(many=True)})
|
||||
@action(detail=False, pagination_class=None, filter_backends=[])
|
||||
def templates(self, request: Request) -> Response:
|
||||
|
|
|
@ -2,7 +2,6 @@ package ak
|
|||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
@ -20,7 +19,7 @@ func (ac *APIController) initWS(pbURL url.URL, outpostUUID strfmt.UUID) {
|
|||
pathTemplate := "%s://%s/ws/outpost/%s/"
|
||||
scheme := strings.ReplaceAll(pbURL.Scheme, "http", "ws")
|
||||
|
||||
authHeader := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("Basic :%s", ac.token)))
|
||||
authHeader := fmt.Sprintf("Bearer %s", ac.token)
|
||||
|
||||
header := http.Header{
|
||||
"Authorization": []string{authHeader},
|
||||
|
|
26
swagger.yaml
26
swagger.yaml
|
@ -13,12 +13,12 @@ consumes:
|
|||
produces:
|
||||
- application/json
|
||||
securityDefinitions:
|
||||
token:
|
||||
Bearer:
|
||||
type: apiKey
|
||||
name: Authorization
|
||||
in: header
|
||||
security:
|
||||
- token: []
|
||||
- Bearer: []
|
||||
paths:
|
||||
/admin/apps/:
|
||||
get:
|
||||
|
@ -131,27 +131,7 @@ paths:
|
|||
get:
|
||||
operationId: admin_version_list
|
||||
description: Get running and latest version.
|
||||
parameters:
|
||||
- name: ordering
|
||||
in: query
|
||||
description: Which field to use when ordering the results.
|
||||
required: false
|
||||
type: string
|
||||
- name: search
|
||||
in: query
|
||||
description: A search term.
|
||||
required: false
|
||||
type: string
|
||||
- name: page
|
||||
in: query
|
||||
description: Page Index
|
||||
required: false
|
||||
type: integer
|
||||
- name: page_size
|
||||
in: query
|
||||
description: Page Size
|
||||
required: false
|
||||
type: integer
|
||||
parameters: []
|
||||
responses:
|
||||
'200':
|
||||
description: ''
|
||||
|
|
120
web/package-lock.json
generated
120
web/package-lock.json
generated
|
@ -2084,12 +2084,12 @@
|
|||
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.21.0.tgz",
|
||||
"integrity": "sha512-FPUyCPKZbVGexmbCFI3EQHzCZdy2/5f+jv6k2EDljGdXSRc0cKvbndd2nHZkSLqCNOPk0jB6lGzwIkglXcYVsQ==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz",
|
||||
"integrity": "sha512-U8SP9VOs275iDXaL08Ln1Fa/wLXfj5aTr/1c0t0j6CdbOnxh+TruXu1p4I0NAvdPBQgoPjHsgKn28mOi0FzfoA==",
|
||||
"requires": {
|
||||
"@typescript-eslint/experimental-utils": "4.21.0",
|
||||
"@typescript-eslint/scope-manager": "4.21.0",
|
||||
"@typescript-eslint/experimental-utils": "4.22.0",
|
||||
"@typescript-eslint/scope-manager": "4.22.0",
|
||||
"debug": "^4.1.1",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"lodash": "^4.17.15",
|
||||
|
@ -2099,50 +2099,102 @@
|
|||
}
|
||||
},
|
||||
"@typescript-eslint/experimental-utils": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.21.0.tgz",
|
||||
"integrity": "sha512-cEbgosW/tUFvKmkg3cU7LBoZhvUs+ZPVM9alb25XvR0dal4qHL3SiUqHNrzoWSxaXA9gsifrYrS1xdDV6w/gIA==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.0.tgz",
|
||||
"integrity": "sha512-xJXHHl6TuAxB5AWiVrGhvbGL8/hbiCQ8FiWwObO3r0fnvBdrbWEDy1hlvGQOAWc6qsCWuWMKdVWlLAEMpxnddg==",
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.3",
|
||||
"@typescript-eslint/scope-manager": "4.21.0",
|
||||
"@typescript-eslint/types": "4.21.0",
|
||||
"@typescript-eslint/typescript-estree": "4.21.0",
|
||||
"@typescript-eslint/scope-manager": "4.22.0",
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"@typescript-eslint/typescript-estree": "4.22.0",
|
||||
"eslint-scope": "^5.0.0",
|
||||
"eslint-utils": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/parser": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.21.0.tgz",
|
||||
"integrity": "sha512-eyNf7QmE5O/l1smaQgN0Lj2M/1jOuNg2NrBm1dqqQN0sVngTLyw8tdCbih96ixlhbF1oINoN8fDCyEH9SjLeIA==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.0.tgz",
|
||||
"integrity": "sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==",
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "4.21.0",
|
||||
"@typescript-eslint/types": "4.21.0",
|
||||
"@typescript-eslint/typescript-estree": "4.21.0",
|
||||
"@typescript-eslint/scope-manager": "4.22.0",
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"@typescript-eslint/typescript-estree": "4.22.0",
|
||||
"debug": "^4.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz",
|
||||
"integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==",
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"@typescript-eslint/visitor-keys": "4.22.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz",
|
||||
"integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA=="
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz",
|
||||
"integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==",
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"@typescript-eslint/visitor-keys": "4.22.0",
|
||||
"debug": "^4.1.1",
|
||||
"globby": "^11.0.1",
|
||||
"is-glob": "^4.0.1",
|
||||
"semver": "^7.3.2",
|
||||
"tsutils": "^3.17.1"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz",
|
||||
"integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==",
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"eslint-visitor-keys": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"globby": {
|
||||
"version": "11.0.3",
|
||||
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
|
||||
"integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
|
||||
"requires": {
|
||||
"array-union": "^2.1.0",
|
||||
"dir-glob": "^3.0.1",
|
||||
"fast-glob": "^3.1.1",
|
||||
"ignore": "^5.1.4",
|
||||
"merge2": "^1.3.0",
|
||||
"slash": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.21.0.tgz",
|
||||
"integrity": "sha512-kfOjF0w1Ix7+a5T1knOw00f7uAP9Gx44+OEsNQi0PvvTPLYeXJlsCJ4tYnDj5PQEYfpcgOH5yBlw7K+UEI9Agw==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.0.tgz",
|
||||
"integrity": "sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==",
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "4.21.0",
|
||||
"@typescript-eslint/visitor-keys": "4.21.0"
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"@typescript-eslint/visitor-keys": "4.22.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.21.0.tgz",
|
||||
"integrity": "sha512-+OQaupjGVVc8iXbt6M1oZMwyKQNehAfLYJJ3SdvnofK2qcjfor9pEM62rVjBknhowTkh+2HF+/KdRAc/wGBN2w=="
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.0.tgz",
|
||||
"integrity": "sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA=="
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.21.0.tgz",
|
||||
"integrity": "sha512-ZD3M7yLaVGVYLw4nkkoGKumb7Rog7QID9YOWobFDMQKNl+vPxqVIW/uDk+MDeGc+OHcoG2nJ2HphwiPNajKw3w==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.0.tgz",
|
||||
"integrity": "sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==",
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "4.21.0",
|
||||
"@typescript-eslint/visitor-keys": "4.21.0",
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"@typescript-eslint/visitor-keys": "4.22.0",
|
||||
"debug": "^4.1.1",
|
||||
"globby": "^11.0.1",
|
||||
"is-glob": "^4.0.1",
|
||||
|
@ -2166,11 +2218,11 @@
|
|||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.21.0.tgz",
|
||||
"integrity": "sha512-dH22dROWGi5Z6p+Igc8bLVLmwy7vEe8r+8c+raPQU0LxgogPUrRAtRGtvBWmlr9waTu3n+QLt/qrS/hWzk1x5w==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.0.tgz",
|
||||
"integrity": "sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==",
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "4.21.0",
|
||||
"@typescript-eslint/types": "4.22.0",
|
||||
"eslint-visitor-keys": "^2.0.0"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -55,8 +55,8 @@
|
|||
"@types/chart.js": "^2.9.32",
|
||||
"@types/codemirror": "0.0.108",
|
||||
"@types/grecaptcha": "^3.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "^4.21.0",
|
||||
"@typescript-eslint/parser": "^4.21.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.22.0",
|
||||
"@typescript-eslint/parser": "^4.22.0",
|
||||
"authentik-api": "file:api",
|
||||
"babel-plugin-macros": "^3.0.1",
|
||||
"base64-js": "^1.5.1",
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
import * as Sentry from "@sentry/browser";
|
||||
import { Integrations } from "@sentry/tracing";
|
||||
import { VERSION } from "../constants";
|
||||
import { SentryIgnoredError } from "../common/errors";
|
||||
import { Config, Configuration, Middleware, ResponseContext, RootApi } from "authentik-api";
|
||||
import { Configuration, Middleware, ResponseContext } from "authentik-api";
|
||||
import { getCookie } from "../utils";
|
||||
import { API_DRAWER_MIDDLEWARE } from "../elements/notifications/APIDrawer";
|
||||
import { MessageMiddleware } from "../elements/messages/Middleware";
|
||||
|
@ -13,13 +9,13 @@ export class LoggingMiddleware implements Middleware {
|
|||
console.debug(`authentik/api: ${context.response.status} ${context.init.method} ${context.url}`);
|
||||
return Promise.resolve(context.response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const DEFAULT_CONFIG = new Configuration({
|
||||
basePath: "/api/v2beta",
|
||||
headers: {
|
||||
"X-CSRFToken": getCookie("authentik_csrf"),
|
||||
"X-Authentik-Prevent-Basic": "true"
|
||||
},
|
||||
middleware: [
|
||||
API_DRAWER_MIDDLEWARE,
|
||||
|
@ -27,27 +23,3 @@ export const DEFAULT_CONFIG = new Configuration({
|
|||
new LoggingMiddleware(),
|
||||
],
|
||||
});
|
||||
|
||||
export function configureSentry(): Promise<Config> {
|
||||
return new RootApi(DEFAULT_CONFIG).rootConfigList().then((config) => {
|
||||
if (config.errorReportingEnabled) {
|
||||
Sentry.init({
|
||||
dsn: "https://a579bb09306d4f8b8d8847c052d3a1d3@sentry.beryju.org/8",
|
||||
release: `authentik@${VERSION}`,
|
||||
integrations: [
|
||||
new Integrations.BrowserTracing(),
|
||||
],
|
||||
tracesSampleRate: 0.6,
|
||||
environment: config.errorReportingEnvironment,
|
||||
beforeSend(event: Sentry.Event, hint: Sentry.EventHint) {
|
||||
if (hint.originalException instanceof SentryIgnoredError) {
|
||||
return null;
|
||||
}
|
||||
return event;
|
||||
},
|
||||
});
|
||||
console.debug("authentik/config: Sentry enabled.");
|
||||
}
|
||||
return config;
|
||||
});
|
||||
}
|
||||
|
|
50
web/src/api/Sentry.ts
Normal file
50
web/src/api/Sentry.ts
Normal file
|
@ -0,0 +1,50 @@
|
|||
import * as Sentry from "@sentry/browser";
|
||||
import { Integrations } from "@sentry/tracing";
|
||||
import { VERSION } from "../constants";
|
||||
import { SentryIgnoredError } from "../common/errors";
|
||||
import { Config, RootApi } from "authentik-api";
|
||||
import { me } from "./Users";
|
||||
import { DEFAULT_CONFIG } from "./Config";
|
||||
|
||||
export function configureSentry(): Promise<Config> {
|
||||
return new RootApi(DEFAULT_CONFIG).rootConfigList().then((config) => {
|
||||
if (config.errorReportingEnabled) {
|
||||
Sentry.init({
|
||||
dsn: "https://a579bb09306d4f8b8d8847c052d3a1d3@sentry.beryju.org/8",
|
||||
release: `authentik@${VERSION}`,
|
||||
integrations: [
|
||||
new Integrations.BrowserTracing({
|
||||
tracingOrigins: [window.location.host, "localhost"],
|
||||
}),
|
||||
],
|
||||
tracesSampleRate: 0.6,
|
||||
environment: config.errorReportingEnvironment,
|
||||
beforeSend(event: Sentry.Event, hint: Sentry.EventHint) {
|
||||
if (hint.originalException instanceof SentryIgnoredError) {
|
||||
return null;
|
||||
}
|
||||
if (event.exception) {
|
||||
me().then(user => {
|
||||
Sentry.showReportDialog({
|
||||
eventId: event.event_id,
|
||||
user: {
|
||||
email: user.user.email,
|
||||
name: user.user.name,
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
return event;
|
||||
},
|
||||
});
|
||||
console.debug("authentik/config: Sentry enabled.");
|
||||
if (config.errorReportingSendPii) {
|
||||
me().then(user => {
|
||||
Sentry.setUser({ email: user.user.email });
|
||||
console.debug("authentik/config: Sentry with PII enabled.");
|
||||
});
|
||||
}
|
||||
}
|
||||
return config;
|
||||
});
|
||||
}
|
|
@ -47,6 +47,9 @@ export class PageHeader extends LitElement {
|
|||
}
|
||||
.pf-c-page__main-section {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
img.pf-icon {
|
||||
max-height: 24px;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { css, CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
|
||||
import PFPage from "@patternfly/patternfly/components/Page/page.css";
|
||||
import PFGlobal from "@patternfly/patternfly/patternfly-base.css";
|
||||
import { configureSentry } from "../../api/Config";
|
||||
import { configureSentry } from "../../api/Sentry";
|
||||
import { Config } from "authentik-api";
|
||||
import { ifDefined } from "lit-html/directives/if-defined";
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ import { css, CSSResult, html, LitElement, property, TemplateResult } from "lit-
|
|||
import { SidebarItem } from "../elements/sidebar/Sidebar";
|
||||
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
||||
import PFPage from "@patternfly/patternfly/components/Page/page.css";
|
||||
import PFSkipToContent from "@patternfly/patternfly/components/SkipToContent/skip-to-content.css";
|
||||
import PFButton from "@patternfly/patternfly/components/Button/button.css";
|
||||
import PFDrawer from "@patternfly/patternfly/components/Drawer/drawer.css";
|
||||
|
||||
|
@ -13,7 +12,9 @@ import "../elements/Banner";
|
|||
import { until } from "lit-html/directives/until";
|
||||
import { me } from "../api/Users";
|
||||
import { t } from "@lingui/macro";
|
||||
import { EVENT_NOTIFICATION_TOGGLE, EVENT_SIDEBAR_TOGGLE } from "../constants";
|
||||
import { EVENT_NOTIFICATION_TOGGLE, EVENT_SIDEBAR_TOGGLE, VERSION } from "../constants";
|
||||
import { AdminApi } from "authentik-api";
|
||||
import { DEFAULT_CONFIG } from "../api/Config";
|
||||
|
||||
export abstract class Interface extends LitElement {
|
||||
@property({type: Boolean})
|
||||
|
@ -25,7 +26,7 @@ export abstract class Interface extends LitElement {
|
|||
abstract get sidebar(): SidebarItem[];
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return [PFBase, PFPage, PFSkipToContent, PFButton, PFDrawer, css`
|
||||
return [PFBase, PFPage, PFButton, PFDrawer, css`
|
||||
.pf-c-page__main, .pf-c-drawer__content, .pf-c-page__drawer {
|
||||
z-index: auto !important;
|
||||
}
|
||||
|
@ -48,6 +49,17 @@ export abstract class Interface extends LitElement {
|
|||
|
||||
render(): TemplateResult {
|
||||
return html`
|
||||
${until(new AdminApi(DEFAULT_CONFIG).adminVersionList().then(version => {
|
||||
if (version.versionCurrent !== VERSION) {
|
||||
return html`<ak-banner>
|
||||
${t`A newer version of the frontend is available.`}
|
||||
<button @click=${() => { window.location.reload(); }}>
|
||||
${t`Reload`}
|
||||
</button>
|
||||
</ak-banner>`;
|
||||
}
|
||||
return html``;
|
||||
}))}
|
||||
${until(me().then((u) => {
|
||||
if (u.original) {
|
||||
return html`<ak-banner>
|
||||
|
|
|
@ -25,6 +25,10 @@ msgstr "6 digits, widely compatible"
|
|||
msgid "8 digits, not compatible with apps like Google Authenticator"
|
||||
msgstr "8 digits, not compatible with apps like Google Authenticator"
|
||||
|
||||
#: src/interfaces/Interface.ts:50
|
||||
msgid "A newer version of the frontend is available."
|
||||
msgstr "A newer version of the frontend is available."
|
||||
|
||||
#: src/pages/policies/dummy/DummyPolicyForm.ts:53
|
||||
msgid "A policy used for testing. Always returns the same result as specified below after waiting a random duration."
|
||||
msgstr "A policy used for testing. Always returns the same result as specified below after waiting a random duration."
|
||||
|
@ -462,7 +466,7 @@ msgstr "Change password"
|
|||
msgid "Change your password"
|
||||
msgstr "Change your password"
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:119
|
||||
#: src/pages/applications/ApplicationViewPage.ts:123
|
||||
#: src/pages/flows/FlowViewPage.ts:110
|
||||
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:136
|
||||
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:135
|
||||
|
@ -1011,8 +1015,8 @@ msgid "Each provider has a different issuer, based on the application slug."
|
|||
msgstr "Each provider has a different issuer, based on the application slug."
|
||||
|
||||
#: src/pages/applications/ApplicationListPage.ts:94
|
||||
#: src/pages/applications/ApplicationViewPage.ts:95
|
||||
#: src/pages/applications/ApplicationViewPage.ts:109
|
||||
#: src/pages/applications/ApplicationViewPage.ts:91
|
||||
#: src/pages/applications/ApplicationViewPage.ts:105
|
||||
#: src/pages/crypto/CertificateKeyPairListPage.ts:74
|
||||
#: src/pages/events/RuleListPage.ts:70
|
||||
#: src/pages/events/TransportListPage.ts:74
|
||||
|
@ -1390,7 +1394,7 @@ msgstr "Form didn't return a promise for submitting"
|
|||
msgid "Friendly Name"
|
||||
msgstr "Friendly Name"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:109
|
||||
#: src/pages/stages/email/EmailStageForm.ts:107
|
||||
msgid "From address"
|
||||
msgstr "From address"
|
||||
|
||||
|
@ -1676,7 +1680,7 @@ msgstr "Library"
|
|||
#: src/flows/stages/identification/IdentificationStage.ts:134
|
||||
#: src/flows/stages/password/PasswordStage.ts:31
|
||||
#: src/flows/stages/prompt/PromptStage.ts:126
|
||||
#: src/pages/applications/ApplicationViewPage.ts:60
|
||||
#: src/pages/applications/ApplicationViewPage.ts:54
|
||||
#: src/pages/user-settings/UserDetailsPage.ts:38
|
||||
#: src/utils.ts:40
|
||||
msgid "Loading"
|
||||
|
@ -1724,7 +1728,7 @@ msgstr "Loading"
|
|||
#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts:90
|
||||
#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts:96
|
||||
#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts:131
|
||||
#: src/pages/stages/email/EmailStageForm.ts:172
|
||||
#: src/pages/stages/email/EmailStageForm.ts:170
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:120
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:138
|
||||
#: src/pages/stages/password/PasswordStageForm.ts:106
|
||||
|
@ -1756,7 +1760,7 @@ msgid "Logins"
|
|||
msgstr "Logins"
|
||||
|
||||
#: src/pages/admin-overview/AdminOverviewPage.ts:40
|
||||
#: src/pages/applications/ApplicationViewPage.ts:68
|
||||
#: src/pages/applications/ApplicationViewPage.ts:115
|
||||
msgid "Logins over the last 24 hours"
|
||||
msgstr "Logins over the last 24 hours"
|
||||
|
||||
|
@ -1896,7 +1900,7 @@ msgstr "Monitor"
|
|||
#: src/pages/stages/consent/ConsentStageForm.ts:57
|
||||
#: src/pages/stages/deny/DenyStageForm.ts:54
|
||||
#: src/pages/stages/dummy/DummyStageForm.ts:54
|
||||
#: src/pages/stages/email/EmailStageForm.ts:124
|
||||
#: src/pages/stages/email/EmailStageForm.ts:122
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:63
|
||||
#: src/pages/stages/invitation/InvitationStageForm.ts:56
|
||||
#: src/pages/stages/password/PasswordStageForm.ts:63
|
||||
|
@ -2185,7 +2189,7 @@ msgid "Outposts are deployments of authentik components to support different env
|
|||
msgstr "Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies."
|
||||
|
||||
#: src/interfaces/AdminInterface.ts:17
|
||||
#: src/pages/applications/ApplicationViewPage.ts:65
|
||||
#: src/pages/applications/ApplicationViewPage.ts:59
|
||||
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:65
|
||||
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:56
|
||||
#: src/pages/providers/saml/SAMLProviderViewPage.ts:58
|
||||
|
@ -2265,7 +2269,7 @@ msgstr "Policy"
|
|||
msgid "Policy / User / Group"
|
||||
msgstr "Policy / User / Group"
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:130
|
||||
#: src/pages/applications/ApplicationViewPage.ts:134
|
||||
#: src/pages/flows/FlowViewPage.ts:101
|
||||
#: src/pages/sources/oauth/OAuthSourceViewPage.ts:143
|
||||
#: src/pages/sources/saml/SAMLSourceViewPage.ts:150
|
||||
|
@ -2277,6 +2281,7 @@ msgid "Policy binding"
|
|||
msgstr "Policy binding"
|
||||
|
||||
#: src/pages/applications/ApplicationForm.ts:141
|
||||
#: src/pages/applications/ApplicationViewPage.ts:81
|
||||
#: src/pages/flows/FlowForm.ts:101
|
||||
#: src/pages/flows/StageBindingForm.ts:136
|
||||
msgid "Policy engine mode"
|
||||
|
@ -2384,7 +2389,7 @@ msgstr "Provide support for protocols like SAML and OAuth to assigned applicatio
|
|||
#: src/elements/oauth/UserRefreshList.ts:29
|
||||
#: src/pages/applications/ApplicationForm.ts:100
|
||||
#: src/pages/applications/ApplicationListPage.ts:59
|
||||
#: src/pages/applications/ApplicationViewPage.ts:82
|
||||
#: src/pages/applications/ApplicationViewPage.ts:68
|
||||
#: src/pages/providers/ProviderListPage.ts:34
|
||||
msgid "Provider"
|
||||
msgstr "Provider"
|
||||
|
@ -2498,11 +2503,15 @@ msgstr "Register device"
|
|||
msgid "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression."
|
||||
msgstr "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression."
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:76
|
||||
#: src/pages/applications/ApplicationViewPage.ts:62
|
||||
#: src/pages/flows/FlowViewPage.ts:64
|
||||
msgid "Related"
|
||||
msgstr "Related"
|
||||
|
||||
#: src/interfaces/Interface.ts:52
|
||||
msgid "Reload"
|
||||
msgstr "Reload"
|
||||
|
||||
#: src/pages/stages/user_logout/UserLogoutStageForm.ts:51
|
||||
msgid "Remove the user from the current session."
|
||||
msgstr "Remove the user from the current session."
|
||||
|
@ -2598,7 +2607,7 @@ msgstr "SLO URL"
|
|||
msgid "SMTP Host"
|
||||
msgstr "SMTP Host"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:80
|
||||
#: src/pages/stages/email/EmailStageForm.ts:79
|
||||
msgid "SMTP Password"
|
||||
msgstr "SMTP Password"
|
||||
|
||||
|
@ -2863,7 +2872,7 @@ msgstr "Stage used to validate any authenticator. This stage should be used duri
|
|||
#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts:71
|
||||
#: src/pages/stages/captcha/CaptchaStageForm.ts:62
|
||||
#: src/pages/stages/consent/ConsentStageForm.ts:64
|
||||
#: src/pages/stages/email/EmailStageForm.ts:131
|
||||
#: src/pages/stages/email/EmailStageForm.ts:129
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:70
|
||||
#: src/pages/stages/invitation/InvitationStageForm.ts:63
|
||||
#: src/pages/stages/password/PasswordStageForm.ts:70
|
||||
|
@ -2914,11 +2923,11 @@ msgstr "Status: Disabled"
|
|||
msgid "Status: Enabled"
|
||||
msgstr "Status: Enabled"
|
||||
|
||||
#: src/interfaces/Interface.ts:51
|
||||
#: src/interfaces/Interface.ts:63
|
||||
msgid "Stop impersonation"
|
||||
msgstr "Stop impersonation"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:154
|
||||
#: src/pages/stages/email/EmailStageForm.ts:152
|
||||
msgid "Subject"
|
||||
msgstr "Subject"
|
||||
|
||||
|
@ -3253,7 +3262,7 @@ msgstr "Task finished with errors"
|
|||
msgid "Task finished with warnings"
|
||||
msgstr "Task finished with warnings"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:160
|
||||
#: src/pages/stages/email/EmailStageForm.ts:158
|
||||
msgid "Template"
|
||||
msgstr "Template"
|
||||
|
||||
|
@ -3297,7 +3306,7 @@ msgstr ""
|
|||
msgid "These policies control when this stage will be applied to the flow."
|
||||
msgstr "These policies control when this stage will be applied to the flow."
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:132
|
||||
#: src/pages/applications/ApplicationViewPage.ts:136
|
||||
msgid "These policies control which users can access this application."
|
||||
msgstr "These policies control which users can access this application."
|
||||
|
||||
|
@ -3322,7 +3331,7 @@ msgstr "This stage checks the user's current session against the Google reCaptch
|
|||
msgid "Threshold"
|
||||
msgstr "Threshold"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:151
|
||||
#: src/pages/stages/email/EmailStageForm.ts:149
|
||||
msgid "Time in minutes the token sent is valid."
|
||||
msgstr "Time in minutes the token sent is valid."
|
||||
|
||||
|
@ -3336,7 +3345,7 @@ msgstr "Time-based One-Time Passwords"
|
|||
|
||||
#: src/pages/policies/BoundPoliciesList.ts:39
|
||||
#: src/pages/policies/PolicyBindingForm.ts:209
|
||||
#: src/pages/stages/email/EmailStageForm.ts:103
|
||||
#: src/pages/stages/email/EmailStageForm.ts:101
|
||||
msgid "Timeout"
|
||||
msgstr "Timeout"
|
||||
|
||||
|
@ -3358,7 +3367,7 @@ msgstr "Token URL"
|
|||
msgid "Token count"
|
||||
msgstr "Token count"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:147
|
||||
#: src/pages/stages/email/EmailStageForm.ts:145
|
||||
msgid "Token expiry"
|
||||
msgstr "Token expiry"
|
||||
|
||||
|
@ -3450,7 +3459,7 @@ msgid "Up-to-date!"
|
|||
msgstr "Up-to-date!"
|
||||
|
||||
#: src/pages/applications/ApplicationListPage.ts:86
|
||||
#: src/pages/applications/ApplicationViewPage.ts:101
|
||||
#: src/pages/applications/ApplicationViewPage.ts:97
|
||||
#: src/pages/crypto/CertificateKeyPairListPage.ts:66
|
||||
#: src/pages/events/RuleListPage.ts:62
|
||||
#: src/pages/events/TransportListPage.ts:66
|
||||
|
@ -3488,7 +3497,7 @@ msgid "Update"
|
|||
msgstr "Update"
|
||||
|
||||
#: src/pages/applications/ApplicationListPage.ts:89
|
||||
#: src/pages/applications/ApplicationViewPage.ts:104
|
||||
#: src/pages/applications/ApplicationViewPage.ts:100
|
||||
msgid "Update Application"
|
||||
msgstr "Update Application"
|
||||
|
||||
|
@ -3579,11 +3588,11 @@ msgstr "Update details"
|
|||
msgid "Update {0}"
|
||||
msgstr "Update {0}"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:98
|
||||
#: src/pages/stages/email/EmailStageForm.ts:96
|
||||
msgid "Use SSL"
|
||||
msgstr "Use SSL"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:90
|
||||
#: src/pages/stages/email/EmailStageForm.ts:88
|
||||
msgid "Use TLS"
|
||||
msgstr "Use TLS"
|
||||
|
||||
|
@ -3595,7 +3604,7 @@ msgstr "Use a code-based authenticator."
|
|||
msgid "Use a security key to prove your identity."
|
||||
msgstr "Use a security key to prove your identity."
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:141
|
||||
#: src/pages/stages/email/EmailStageForm.ts:139
|
||||
msgid "Use global settings"
|
||||
msgstr "Use global settings"
|
||||
|
||||
|
@ -3722,7 +3731,7 @@ msgstr "Validity days"
|
|||
msgid "Verification Certificate"
|
||||
msgstr "Verification Certificate"
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:121
|
||||
#: src/pages/stages/email/EmailStageForm.ts:119
|
||||
msgid "Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity."
|
||||
msgstr "Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity."
|
||||
|
||||
|
@ -3795,7 +3804,7 @@ msgstr "Webhook URL"
|
|||
msgid "When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown."
|
||||
msgstr "When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown."
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:144
|
||||
#: src/pages/stages/email/EmailStageForm.ts:142
|
||||
msgid "When enabled, global Email connection settings will be used and connection settings below will be ignored."
|
||||
msgstr "When enabled, global Email connection settings will be used and connection settings below will be ignored."
|
||||
|
||||
|
@ -3854,7 +3863,7 @@ msgstr "X509 Subject"
|
|||
msgid "Yes"
|
||||
msgstr "Yes"
|
||||
|
||||
#: src/interfaces/Interface.ts:49
|
||||
#: src/interfaces/Interface.ts:61
|
||||
msgid "You're currently impersonating {0}."
|
||||
msgstr "You're currently impersonating {0}."
|
||||
|
||||
|
|
|
@ -25,6 +25,10 @@ msgstr ""
|
|||
msgid "8 digits, not compatible with apps like Google Authenticator"
|
||||
msgstr ""
|
||||
|
||||
#: src/interfaces/Interface.ts:50
|
||||
msgid "A newer version of the frontend is available."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/policies/dummy/DummyPolicyForm.ts:53
|
||||
msgid "A policy used for testing. Always returns the same result as specified below after waiting a random duration."
|
||||
msgstr ""
|
||||
|
@ -458,7 +462,7 @@ msgstr ""
|
|||
msgid "Change your password"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:119
|
||||
#: src/pages/applications/ApplicationViewPage.ts:123
|
||||
#: src/pages/flows/FlowViewPage.ts:110
|
||||
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:136
|
||||
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:135
|
||||
|
@ -1003,8 +1007,8 @@ msgid "Each provider has a different issuer, based on the application slug."
|
|||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationListPage.ts:94
|
||||
#: src/pages/applications/ApplicationViewPage.ts:95
|
||||
#: src/pages/applications/ApplicationViewPage.ts:109
|
||||
#: src/pages/applications/ApplicationViewPage.ts:91
|
||||
#: src/pages/applications/ApplicationViewPage.ts:105
|
||||
#: src/pages/crypto/CertificateKeyPairListPage.ts:74
|
||||
#: src/pages/events/RuleListPage.ts:70
|
||||
#: src/pages/events/TransportListPage.ts:74
|
||||
|
@ -1382,7 +1386,7 @@ msgstr ""
|
|||
msgid "Friendly Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:109
|
||||
#: src/pages/stages/email/EmailStageForm.ts:107
|
||||
msgid "From address"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1668,7 +1672,7 @@ msgstr ""
|
|||
#: src/flows/stages/identification/IdentificationStage.ts:134
|
||||
#: src/flows/stages/password/PasswordStage.ts:31
|
||||
#: src/flows/stages/prompt/PromptStage.ts:126
|
||||
#: src/pages/applications/ApplicationViewPage.ts:60
|
||||
#: src/pages/applications/ApplicationViewPage.ts:54
|
||||
#: src/pages/user-settings/UserDetailsPage.ts:38
|
||||
#: src/utils.ts:40
|
||||
msgid "Loading"
|
||||
|
@ -1716,7 +1720,7 @@ msgstr ""
|
|||
#: src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts:90
|
||||
#: src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts:96
|
||||
#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts:131
|
||||
#: src/pages/stages/email/EmailStageForm.ts:172
|
||||
#: src/pages/stages/email/EmailStageForm.ts:170
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:120
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:138
|
||||
#: src/pages/stages/password/PasswordStageForm.ts:106
|
||||
|
@ -1748,7 +1752,7 @@ msgid "Logins"
|
|||
msgstr ""
|
||||
|
||||
#: src/pages/admin-overview/AdminOverviewPage.ts:40
|
||||
#: src/pages/applications/ApplicationViewPage.ts:68
|
||||
#: src/pages/applications/ApplicationViewPage.ts:115
|
||||
msgid "Logins over the last 24 hours"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1888,7 +1892,7 @@ msgstr ""
|
|||
#: src/pages/stages/consent/ConsentStageForm.ts:57
|
||||
#: src/pages/stages/deny/DenyStageForm.ts:54
|
||||
#: src/pages/stages/dummy/DummyStageForm.ts:54
|
||||
#: src/pages/stages/email/EmailStageForm.ts:124
|
||||
#: src/pages/stages/email/EmailStageForm.ts:122
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:63
|
||||
#: src/pages/stages/invitation/InvitationStageForm.ts:56
|
||||
#: src/pages/stages/password/PasswordStageForm.ts:63
|
||||
|
@ -2177,7 +2181,7 @@ msgid "Outposts are deployments of authentik components to support different env
|
|||
msgstr ""
|
||||
|
||||
#: src/interfaces/AdminInterface.ts:17
|
||||
#: src/pages/applications/ApplicationViewPage.ts:65
|
||||
#: src/pages/applications/ApplicationViewPage.ts:59
|
||||
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:65
|
||||
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:56
|
||||
#: src/pages/providers/saml/SAMLProviderViewPage.ts:58
|
||||
|
@ -2257,7 +2261,7 @@ msgstr ""
|
|||
msgid "Policy / User / Group"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:130
|
||||
#: src/pages/applications/ApplicationViewPage.ts:134
|
||||
#: src/pages/flows/FlowViewPage.ts:101
|
||||
#: src/pages/sources/oauth/OAuthSourceViewPage.ts:143
|
||||
#: src/pages/sources/saml/SAMLSourceViewPage.ts:150
|
||||
|
@ -2269,6 +2273,7 @@ msgid "Policy binding"
|
|||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationForm.ts:141
|
||||
#: src/pages/applications/ApplicationViewPage.ts:81
|
||||
#: src/pages/flows/FlowForm.ts:101
|
||||
#: src/pages/flows/StageBindingForm.ts:136
|
||||
msgid "Policy engine mode"
|
||||
|
@ -2376,7 +2381,7 @@ msgstr ""
|
|||
#: src/elements/oauth/UserRefreshList.ts:29
|
||||
#: src/pages/applications/ApplicationForm.ts:100
|
||||
#: src/pages/applications/ApplicationListPage.ts:59
|
||||
#: src/pages/applications/ApplicationViewPage.ts:82
|
||||
#: src/pages/applications/ApplicationViewPage.ts:68
|
||||
#: src/pages/providers/ProviderListPage.ts:34
|
||||
msgid "Provider"
|
||||
msgstr ""
|
||||
|
@ -2490,11 +2495,15 @@ msgstr ""
|
|||
msgid "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:76
|
||||
#: src/pages/applications/ApplicationViewPage.ts:62
|
||||
#: src/pages/flows/FlowViewPage.ts:64
|
||||
msgid "Related"
|
||||
msgstr ""
|
||||
|
||||
#: src/interfaces/Interface.ts:52
|
||||
msgid "Reload"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/user_logout/UserLogoutStageForm.ts:51
|
||||
msgid "Remove the user from the current session."
|
||||
msgstr ""
|
||||
|
@ -2590,7 +2599,7 @@ msgstr ""
|
|||
msgid "SMTP Host"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:80
|
||||
#: src/pages/stages/email/EmailStageForm.ts:79
|
||||
msgid "SMTP Password"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2855,7 +2864,7 @@ msgstr ""
|
|||
#: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts:71
|
||||
#: src/pages/stages/captcha/CaptchaStageForm.ts:62
|
||||
#: src/pages/stages/consent/ConsentStageForm.ts:64
|
||||
#: src/pages/stages/email/EmailStageForm.ts:131
|
||||
#: src/pages/stages/email/EmailStageForm.ts:129
|
||||
#: src/pages/stages/identification/IdentificationStageForm.ts:70
|
||||
#: src/pages/stages/invitation/InvitationStageForm.ts:63
|
||||
#: src/pages/stages/password/PasswordStageForm.ts:70
|
||||
|
@ -2906,11 +2915,11 @@ msgstr ""
|
|||
msgid "Status: Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/interfaces/Interface.ts:51
|
||||
#: src/interfaces/Interface.ts:63
|
||||
msgid "Stop impersonation"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:154
|
||||
#: src/pages/stages/email/EmailStageForm.ts:152
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3245,7 +3254,7 @@ msgstr ""
|
|||
msgid "Task finished with warnings"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:160
|
||||
#: src/pages/stages/email/EmailStageForm.ts:158
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3287,7 +3296,7 @@ msgstr ""
|
|||
msgid "These policies control when this stage will be applied to the flow."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationViewPage.ts:132
|
||||
#: src/pages/applications/ApplicationViewPage.ts:136
|
||||
msgid "These policies control which users can access this application."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3312,7 +3321,7 @@ msgstr ""
|
|||
msgid "Threshold"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:151
|
||||
#: src/pages/stages/email/EmailStageForm.ts:149
|
||||
msgid "Time in minutes the token sent is valid."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3326,7 +3335,7 @@ msgstr ""
|
|||
|
||||
#: src/pages/policies/BoundPoliciesList.ts:39
|
||||
#: src/pages/policies/PolicyBindingForm.ts:209
|
||||
#: src/pages/stages/email/EmailStageForm.ts:103
|
||||
#: src/pages/stages/email/EmailStageForm.ts:101
|
||||
msgid "Timeout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3348,7 +3357,7 @@ msgstr ""
|
|||
msgid "Token count"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:147
|
||||
#: src/pages/stages/email/EmailStageForm.ts:145
|
||||
msgid "Token expiry"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3440,7 +3449,7 @@ msgid "Up-to-date!"
|
|||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationListPage.ts:86
|
||||
#: src/pages/applications/ApplicationViewPage.ts:101
|
||||
#: src/pages/applications/ApplicationViewPage.ts:97
|
||||
#: src/pages/crypto/CertificateKeyPairListPage.ts:66
|
||||
#: src/pages/events/RuleListPage.ts:62
|
||||
#: src/pages/events/TransportListPage.ts:66
|
||||
|
@ -3478,7 +3487,7 @@ msgid "Update"
|
|||
msgstr ""
|
||||
|
||||
#: src/pages/applications/ApplicationListPage.ts:89
|
||||
#: src/pages/applications/ApplicationViewPage.ts:104
|
||||
#: src/pages/applications/ApplicationViewPage.ts:100
|
||||
msgid "Update Application"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3569,11 +3578,11 @@ msgstr ""
|
|||
msgid "Update {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:98
|
||||
#: src/pages/stages/email/EmailStageForm.ts:96
|
||||
msgid "Use SSL"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:90
|
||||
#: src/pages/stages/email/EmailStageForm.ts:88
|
||||
msgid "Use TLS"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3585,7 +3594,7 @@ msgstr ""
|
|||
msgid "Use a security key to prove your identity."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:141
|
||||
#: src/pages/stages/email/EmailStageForm.ts:139
|
||||
msgid "Use global settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3712,7 +3721,7 @@ msgstr ""
|
|||
msgid "Verification Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:121
|
||||
#: src/pages/stages/email/EmailStageForm.ts:119
|
||||
msgid "Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3785,7 +3794,7 @@ msgstr ""
|
|||
msgid "When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/stages/email/EmailStageForm.ts:144
|
||||
#: src/pages/stages/email/EmailStageForm.ts:142
|
||||
msgid "When enabled, global Email connection settings will be used and connection settings below will be ignored."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3842,7 +3851,7 @@ msgstr ""
|
|||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: src/interfaces/Interface.ts:49
|
||||
#: src/interfaces/Interface.ts:61
|
||||
msgid "You're currently impersonating {0}."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import { AdminStatusCard, AdminStatus } from "./AdminStatusCard";
|
|||
export class VersionStatusCard extends AdminStatusCard<Version> {
|
||||
|
||||
getPrimaryValue(): Promise<Version> {
|
||||
return new AdminApi(DEFAULT_CONFIG).adminVersionList({});
|
||||
return new AdminApi(DEFAULT_CONFIG).adminVersionList();
|
||||
}
|
||||
|
||||
getStatus(value: Version): Promise<AdminStatus> {
|
||||
|
|
|
@ -71,16 +71,14 @@ export class EmailStageForm extends Form<EmailStage> {
|
|||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal
|
||||
label=${t`SMTP Username`}
|
||||
?required=${true}
|
||||
name="username">
|
||||
<input type="text" value="${ifDefined(this.stage?.username || "")}" class="pf-c-form-control" required>
|
||||
<input type="text" value="${ifDefined(this.stage?.username || "")}" class="pf-c-form-control">
|
||||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal
|
||||
label=${t`SMTP Password`}
|
||||
?required=${true}
|
||||
?writeOnly=${this.stage !== undefined}
|
||||
name="password">
|
||||
<input type="text" value="${ifDefined(this.stage?.password || "")}" class="pf-c-form-control" required>
|
||||
<input type="text" value="${ifDefined(this.stage?.password || "")}" class="pf-c-form-control">
|
||||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal name="useTls">
|
||||
<div class="pf-c-check">
|
||||
|
@ -92,7 +90,7 @@ export class EmailStageForm extends Form<EmailStage> {
|
|||
</ak-form-element-horizontal>
|
||||
<ak-form-element-horizontal name="useSsl">
|
||||
<div class="pf-c-check">
|
||||
<input type="checkbox" class="pf-c-check__input" ?checked=${first(this.stage?.useSsl, true)}>
|
||||
<input type="checkbox" class="pf-c-check__input" ?checked=${first(this.stage?.useSsl, false)}>
|
||||
<label class="pf-c-check__label">
|
||||
${t`Use SSL`}
|
||||
</label>
|
||||
|
|
|
@ -70,12 +70,6 @@ module.exports = {
|
|||
algolia: {
|
||||
apiKey: '1b60b8f630b127697cbe0d3b31841470',
|
||||
indexName: 'goauthentik',
|
||||
|
||||
// Optional: see doc section below
|
||||
contextualSearch: true,
|
||||
|
||||
// Optional: Algolia search parameters
|
||||
searchParameters: {},
|
||||
},
|
||||
},
|
||||
presets: [
|
||||
|
|
Reference in a new issue