Skip to content

Commit dfefec9

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/async
2 parents ab81167 + 44c78e1 commit dfefec9

File tree

9 files changed

+676
-23
lines changed

9 files changed

+676
-23
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
fail-fast: false
2121
matrix:
2222
py:
23+
- "3.13"
2324
- "3.12"
2425
- "3.11"
2526
- "3.10"

.gitleaksignore

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
04146e7a83d6212e407c5a46008324d646878fc1:tests/test_auth.py:jwt:257
2+
1c0c3ca7205fa8fa481b2bc90933d7d1f0400253:tests/test_descope_client.py:jwt:563
3+
1c0c3ca7205fa8fa481b2bc90933d7d1f0400253:tests/test_descope_client.py:jwt:571
4+
3ce967512fed2bae5e89dc9ff973e67ff9bc3084:tests/test_password.py:jwt:167
5+
3ce967512fed2bae5e89dc9ff973e67ff9bc3084:tests/test_password.py:jwt:313
6+
3ce967512fed2bae5e89dc9ff973e67ff9bc3084:tests/test_password.py:jwt:87
7+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:122
8+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:178
9+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:248
10+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:249
11+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:250
12+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:266
13+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_descope_client.py:jwt:267
14+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_magiclink.py:jwt:341
15+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_magiclink.py:jwt:356
16+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_otp.py:jwt:246
17+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_webauthn.py:jwt:127
18+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_webauthn.py:jwt:220
19+
602af9d1f4ce24799cfdcb06fc76eaedb39ba31c:tests/test_webauthn.py:jwt:326
20+
621149e12da145ea6c65ca5a0246ce5f93f9124e:tests/test_magiclink.py:jwt:253
21+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:606
22+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:607
23+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:632
24+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:648
25+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:649
26+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:723
27+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:724
28+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:742
29+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:779
30+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:780
31+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:781
32+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:796
33+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:797
34+
66ec16354a25b8d8d22de85ed823c5151fda0940:tests/test_auth.py:jwt:814
35+
6d4b1f4dbcbef45e4a5bdce952d8bc2bf5a8dd72:tests/test_enchantedlink.py:jwt:246
36+
6d4b1f4dbcbef45e4a5bdce952d8bc2bf5a8dd72:tests/test_enchantedlink.py:jwt:261
37+
71ba33c612675bd34fa7830c6b884f1f01efda9b:tests/test_oauth.py:jwt:102
38+
71ba33c612675bd34fa7830c6b884f1f01efda9b:tests/test_saml.py:jwt:84
39+
84adfdb469398f4b2263d0e57f8a16389227629d:tests/test_totp.py:jwt:106
40+
8e5937752bd25ae682e56f9f8e31ee537ea5479d:tests/test_auth.py:jwt:285
41+
8e5937752bd25ae682e56f9f8e31ee537ea5479d:tests/test_auth.py:jwt:312
42+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:152
43+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:153
44+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:174
45+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:211
46+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:212
47+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:213
48+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:228
49+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:229
50+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:76
51+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:77
52+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_descope_client.py:jwt:78
53+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_exchanger.py:jwt:45
54+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_magiclink.py:jwt:339
55+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_magiclink.py:jwt:351
56+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_otp.py:jwt:245
57+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_totp.py:jwt:109
58+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_totp.py:jwt:85
59+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_webauthn.py:jwt:127
60+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_webauthn.py:jwt:212
61+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_webauthn.py:jwt:230
62+
910e8e7d14b8c53e566a06c55abfb04b5a16cb72:tests/test_webauthn.py:jwt:318
63+
a753d819979a4864cf4df0226fa9c9a5d06424c9:tests/test_password.py:jwt:399
64+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:385
65+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:402
66+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:403
67+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:404
68+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:478
69+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:479
70+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:497
71+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:534
72+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:535
73+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:549
74+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:550
75+
a76d544894ddac33781df1f9d7e73de4200d177f:tests/test_auth.py:jwt:567
76+
ad14b0225444f72e8c46527d10acfd19dd6e9352:tests/test_oauth.py:jwt:137
77+
ad14b0225444f72e8c46527d10acfd19dd6e9352:tests/test_saml.py:jwt:131
78+
ad14b0225444f72e8c46527d10acfd19dd6e9352:tests/test_totp.py:jwt:87
79+
ad14b0225444f72e8c46527d10acfd19dd6e9352:tests/test_webauthn.py:jwt:317
80+
ad14b0225444f72e8c46527d10acfd19dd6e9352:tests/test_webauthn.py:jwt:483
81+
bc5a7d8928ba27f9eeb2e0e5ddfe925eb5fda5a7:tests/test_sso.py:jwt:128
82+
e5d19171d5d9e188f1d99369b408388c1032583f:tests/test_descope_client.py:jwt:700
83+
e7f5ad4253ad82236a5cff5f8c06878bfb190b00:tests/test_descope_client.py:jwt:171
84+
e7f5ad4253ad82236a5cff5f8c06878bfb190b00:tests/test_descope_client.py:jwt:185
85+
e7f5ad4253ad82236a5cff5f8c06878bfb190b00:tests/test_descope_client.py:jwt:197
86+
ece761372c78a9ad8a57da5f6d13431d298a99db:tests/test_auth.py:jwt:562
87+
f3ec873c83a7067a1226d8b712b756b1b599fb3b:tests/test_descope_client.py:jwt:519

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ repos:
5252
- id: tox-ini-fmt
5353
args: ["-p", "type"]
5454
- repo: https://github.com/gitleaks/gitleaks
55-
rev: v8.27.0
55+
rev: v8.27.2
5656
hooks:
5757
- id: gitleaks
5858
- repo: local

.vscode/settings.json

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
{
22
"python.testing.pytestEnabled": true,
3-
"python.testing.pytestArgs": ["tests"],
3+
"python.testing.pytestArgs": [
4+
"tests"
5+
],
46
"flake8.importStrategy": "fromEnvironment",
57
"mypy-type-checker.importStrategy": "fromEnvironment",
68
"isort.importStrategy": "fromEnvironment",
79
"black-formatter.importStrategy": "fromEnvironment",
8-
"workbench.colorCustomizations": {
9-
"activityBar.background": "#4D1C3B",
10-
"titleBar.activeBackground": "#6B2752",
11-
"titleBar.activeForeground": "#FDF8FB"
12-
}
13-
}
10+
"workbench.colorCustomizations": { /* do not change please... */}
11+
}

descope/flask/__init__.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import uuid
55
from functools import wraps
66

7-
from flask import Response, _request_ctx_stack, redirect, request
7+
from flask import Response, redirect, request, g
88

99
from .. import (
1010
COOKIE_DATA_NAME,
@@ -143,7 +143,7 @@ def decorated(*args, **kwargs):
143143
return Response("Access denied", 401)
144144

145145
# Save the claims on the context execute the original API
146-
_request_ctx_stack.top.claims = jwt_response
146+
g.claims = jwt_response
147147
response = f(*args, **kwargs)
148148

149149
if jwt_response.get(COOKIE_DATA_NAME, None):
@@ -181,7 +181,7 @@ def decorated(*args, **kwargs):
181181
return Response("Unauthorized", 401)
182182

183183
# Save the claims on the context execute the original API
184-
_request_ctx_stack.top.claims = jwt_response
184+
g.claims = jwt_response
185185
response = f(*args, **kwargs)
186186

187187
set_cookie_on_response(
@@ -194,7 +194,6 @@ def decorated(*args, **kwargs):
194194
jwt_response[REFRESH_SESSION_TOKEN_NAME],
195195
jwt_response[COOKIE_DATA_NAME],
196196
)
197-
198197
return response
199198

200199
return decorated
@@ -224,7 +223,7 @@ def decorated(*args, **kwargs):
224223
return Response("Unauthorized", 401)
225224

226225
# Save the claims on the context execute the original API
227-
_request_ctx_stack.top.claims = jwt_response
226+
g.claims = jwt_response
228227
response = f(*args, **kwargs)
229228

230229
set_cookie_on_response(
@@ -267,7 +266,7 @@ def decorated(*args, **kwargs):
267266
return Response("Unauthorized", 401)
268267

269268
# Save the claims on the context execute the original API
270-
_request_ctx_stack.top.claims = jwt_response
269+
g.claims = jwt_response
271270
response = f(*args, **kwargs)
272271

273272
set_cookie_on_response(
@@ -310,7 +309,7 @@ def decorated(*args, **kwargs):
310309
return Response("Unauthorized", 401)
311310

312311
# Save the claims on the context execute the original API
313-
_request_ctx_stack.top.claims = jwt_response
312+
g.claims = jwt_response
314313
response = f(*args, **kwargs)
315314

316315
set_cookie_on_response(
@@ -400,7 +399,7 @@ def decorated(*args, **kwargs):
400399
return Response("Unauthorized", 401)
401400

402401
# Save the claims on the context execute the original API
403-
_request_ctx_stack.top.claims = jwt_response
402+
g.claims = jwt_response
404403
response = f(*args, **kwargs)
405404

406405
set_cookie_on_response(

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ classifiers = [
1919
"Programming Language :: Python :: 3.10",
2020
"Programming Language :: Python :: 3.11",
2121
"Programming Language :: Python :: 3.12",
22+
"Programming Language :: Python :: 3.13",
2223
"License :: OSI Approved :: MIT License",
2324
"Topic :: Software Development :: Libraries :: Python Modules",
2425
"Typing :: Typed",

requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,6 @@ urllib3==2.5.0; python_full_version >= "3.8.1" and python_version < "4.0" \
316316
Werkzeug==3.1.3; python_full_version >= "3.8.1" and python_version < "4.0" \
317317
--hash=sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e \
318318
--hash=sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746
319-
zipp==3.22.0; python_full_version >= "3.8.1" and python_version < "3.10" \
320-
--hash=sha256:dd2f28c3ce4bc67507bfd3781d21b7bb2be31103b51a4553ad7d90b84e57ace5 \
321-
--hash=sha256:fe208f65f2aca48b81f9e6fd8cf7b8b32c26375266b009b413d45306b6148343
319+
zipp==3.23.0; python_full_version >= "3.8.1" and python_version < "3.10" \
320+
--hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \
321+
--hash=sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166

0 commit comments

Comments
 (0)