tigrbl_auth 0.3.2.dev7__tar.gz → 0.3.2.dev8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/PKG-INFO +1 -1
  2. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/pyproject.toml +1 -1
  3. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/adapters/auth_context.py +1 -1
  4. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/adapters/local_adapter.py +1 -1
  5. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/adapters/remote_adapter.py +1 -1
  6. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/app.py +1 -1
  7. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/backends.py +1 -1
  8. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/crypto.py +1 -1
  9. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/db.py +1 -1
  10. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/fastapi_deps.py +1 -1
  11. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/jwtoken.py +1 -1
  12. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/oidc_discovery.py +1 -1
  13. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/oidc_id_token.py +1 -1
  14. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/oidc_userinfo.py +2 -2
  15. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/__init__.py +1 -1
  16. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/api_key.py +1 -1
  17. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/auth_code.py +1 -1
  18. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/auth_session.py +1 -1
  19. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/client.py +1 -1
  20. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/device_code.py +1 -1
  21. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/pushed_authorization_request.py +1 -1
  22. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/revoked_token.py +1 -1
  23. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/service.py +1 -1
  24. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/service_key.py +1 -1
  25. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/tenant.py +1 -1
  26. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/orm/user.py +2 -2
  27. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc6749_token.py +1 -1
  28. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc6750.py +1 -1
  29. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7009.py +1 -1
  30. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7515.py +1 -1
  31. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7516.py +1 -1
  32. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7662_introspection.py +1 -1
  33. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8037.py +1 -1
  34. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8414.py +1 -1
  35. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8628.py +1 -1
  36. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8693.py +1 -1
  37. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8932.py +1 -1
  38. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc9101.py +1 -1
  39. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc9396.py +1 -1
  40. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc9449_dpop.py +2 -2
  41. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/auth_flows.py +1 -1
  42. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/authz/__init__.py +1 -1
  43. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/authz/oidc.py +14 -9
  44. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/schemas.py +1 -1
  45. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/shared.py +1 -1
  46. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/surface.py +1 -1
  47. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/runtime_cfg.py +1 -1
  48. {tigrbl_auth-0.3.2.dev7/tigrbl_auth/deps → tigrbl_auth-0.3.2.dev8/tigrbl_auth/vendor}/tigrbl.py +1 -1
  49. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/LICENSE +0 -0
  50. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/README.md +0 -0
  51. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/__init__.py +0 -0
  52. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/adapters/__init__.py +0 -0
  53. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/errors.py +0 -0
  54. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/principal_ctx.py +0 -0
  55. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/__init__.py +0 -0
  56. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc6749.py +0 -0
  57. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7517.py +0 -0
  58. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7518.py +0 -0
  59. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7519.py +0 -0
  60. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7520.py +0 -0
  61. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7521.py +0 -0
  62. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7523.py +0 -0
  63. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7591.py +0 -0
  64. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7592.py +0 -0
  65. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7636_pkce.py +0 -0
  66. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7638.py +0 -0
  67. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7662.py +0 -0
  68. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7800.py +0 -0
  69. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc7952.py +0 -0
  70. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8176.py +0 -0
  71. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8252.py +0 -0
  72. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8291.py +0 -0
  73. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8414_metadata.py +0 -0
  74. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8523.py +0 -0
  75. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8705.py +0 -0
  76. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8707.py +0 -0
  77. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8725.py +0 -0
  78. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc8812.py +0 -0
  79. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc9068.py +0 -0
  80. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc9126.py +0 -0
  81. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/rfc/rfc9207.py +0 -0
  82. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/routers/__init__.py +0 -0
  83. {tigrbl_auth-0.3.2.dev7 → tigrbl_auth-0.3.2.dev8}/tigrbl_auth/typing.py +0 -0
  84. {tigrbl_auth-0.3.2.dev7/tigrbl_auth/deps → tigrbl_auth-0.3.2.dev8/tigrbl_auth/vendor}/__init__.py +0 -0
  85. {tigrbl_auth-0.3.2.dev7/tigrbl_auth/deps → tigrbl_auth-0.3.2.dev8/tigrbl_auth/vendor}/fastapi.py +0 -0
  86. {tigrbl_auth-0.3.2.dev7/tigrbl_auth/deps → tigrbl_auth-0.3.2.dev8/tigrbl_auth/vendor}/pydantic.py +0 -0
  87. {tigrbl_auth-0.3.2.dev7/tigrbl_auth/deps → tigrbl_auth-0.3.2.dev8/tigrbl_auth/vendor}/sqlalchemy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl_auth
3
- Version: 0.3.2.dev7
3
+ Version: 0.3.2.dev8
4
4
  Summary: A Tigrbl Multi‑tenant OpenID‑Connect / OAuth2 Identity‑Provider server by Swarmauri.
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl_auth"
3
- version = "0.3.2.dev7"
3
+ version = "0.3.2.dev8"
4
4
  description = "A Tigrbl Multi‑tenant OpenID‑Connect / OAuth2 Identity‑Provider server by Swarmauri."
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from tigrbl_auth.deps import Request, TIGRBL_AUTH_CONTEXT_ATTR
3
+ from tigrbl_auth.vendor import Request, TIGRBL_AUTH_CONTEXT_ATTR
4
4
 
5
5
 
6
6
  def set_auth_context(request: Request, principal: dict | None) -> None:
@@ -14,7 +14,7 @@ Usage
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
- from tigrbl_auth.deps import AuthNProvider, Request
17
+ from tigrbl_auth.vendor import AuthNProvider, Request
18
18
  from ..fastapi_deps import get_principal
19
19
  from ..principal_ctx import principal_var # noqa: F401 # ensure ContextVar is initialised
20
20
  from .auth_context import set_auth_context
@@ -5,7 +5,7 @@ import time
5
5
  from typing import Final
6
6
 
7
7
  import httpx
8
- from tigrbl_auth.deps import (
8
+ from tigrbl_auth.vendor import (
9
9
  HTTPException,
10
10
  Request,
11
11
  Security,
@@ -15,7 +15,7 @@ Features
15
15
 
16
16
  from __future__ import annotations
17
17
 
18
- from tigrbl_auth.deps import TigrblApp
18
+ from tigrbl_auth.vendor import TigrblApp
19
19
  import inspect
20
20
 
21
21
  from .routers.surface import surface_api
@@ -26,7 +26,7 @@ from typing import Iterable, Optional
26
26
 
27
27
  from typing import TYPE_CHECKING
28
28
 
29
- from tigrbl_auth.deps import Select, or_, select, AsyncSession
29
+ from tigrbl_auth.vendor import Select, or_, select, AsyncSession
30
30
 
31
31
  from .crypto import verify_pw
32
32
  from .typing import Principal
@@ -14,7 +14,7 @@ from functools import lru_cache
14
14
  from typing import Tuple
15
15
 
16
16
  import bcrypt
17
- from .deps import FileKeyProvider, ExportPolicy, KeyAlg, KeyClass, KeySpec, KeyUse
17
+ from .vendor import FileKeyProvider, ExportPolicy, KeyAlg, KeyClass, KeySpec, KeyUse
18
18
 
19
19
  # ---------------------------------------------------------------------
20
20
  # Password hashing helpers
@@ -1,4 +1,4 @@
1
- from tigrbl_auth.deps import build_engine
1
+ from tigrbl_auth.vendor import build_engine
2
2
  from .runtime_cfg import settings
3
3
 
4
4
  if settings.pg_dsn_env or (settings.pg_host and settings.pg_db and settings.pg_user):
@@ -17,7 +17,7 @@ Both helpers are **framework-thin**: they translate `AuthError` raised by
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- from tigrbl_auth.deps import (
20
+ from tigrbl_auth.vendor import (
21
21
  Depends,
22
22
  Header,
23
23
  HTTPException,
@@ -12,7 +12,7 @@ from typing import Any, Dict, Iterable, Optional, Tuple
12
12
 
13
13
  from .errors import InvalidTokenError
14
14
 
15
- from .deps import (
15
+ from .vendor import (
16
16
  ExportPolicy,
17
17
  FileKeyProvider,
18
18
  JWTTokenService,
@@ -11,7 +11,7 @@ import json
11
11
  from functools import lru_cache
12
12
  from typing import Any
13
13
 
14
- from tigrbl_auth.deps import TigrblRouter, TigrblApp
14
+ from tigrbl_auth.vendor import TigrblRouter, TigrblApp
15
15
 
16
16
  from .rfc.rfc8414_metadata import ISSUER, JWKS_PATH
17
17
  from .runtime_cfg import settings
@@ -17,7 +17,7 @@ from datetime import timedelta
17
17
  from functools import lru_cache
18
18
  from typing import Any, Iterable, Mapping, Tuple
19
19
 
20
- from .deps import (
20
+ from .vendor import (
21
21
  ExportPolicy,
22
22
  FileKeyProvider,
23
23
  JWAAlg,
@@ -13,7 +13,7 @@ from __future__ import annotations
13
13
 
14
14
  import inspect
15
15
 
16
- from tigrbl_auth.deps import (
16
+ from tigrbl_auth.vendor import (
17
17
  TigrblRouter,
18
18
  TigrblApp,
19
19
  HTTPException,
@@ -26,7 +26,7 @@ from .fastapi_deps import get_current_principal
26
26
  from .jwtoken import JWTCoder, InvalidTokenError, _svc
27
27
  from .orm import User
28
28
  from .rfc.rfc6750 import extract_bearer_token
29
- from .deps import JWAAlg
29
+ from .vendor import JWAAlg
30
30
 
31
31
  api = TigrblRouter()
32
32
  router = api
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from tigrbl_auth.deps import Base
5
+ from tigrbl_auth.vendor import Base
6
6
 
7
7
  from ..runtime_cfg import settings
8
8
  from .api_key import ApiKey
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from tigrbl_auth.deps import (
5
+ from tigrbl_auth.vendor import (
6
6
  Created,
7
7
  GUIDPk,
8
8
  KeyDigest,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import datetime as dt
6
6
 
7
- from tigrbl_auth.deps import (
7
+ from tigrbl_auth.vendor import (
8
8
  Base,
9
9
  TenantColumn,
10
10
  Timestamped,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import datetime as dt
6
6
 
7
- from tigrbl_auth.deps import (
7
+ from tigrbl_auth.vendor import (
8
8
  Base,
9
9
  TenantColumn,
10
10
  Timestamped,
@@ -7,7 +7,7 @@ import uuid
7
7
  from typing import Final
8
8
  from urllib.parse import urlparse
9
9
 
10
- from tigrbl_auth.deps import (
10
+ from tigrbl_auth.vendor import (
11
11
  hook_ctx,
12
12
  op_ctx,
13
13
  ClientBase,
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import datetime as dt
6
6
  import uuid
7
7
 
8
- from tigrbl_auth.deps import (
8
+ from tigrbl_auth.vendor import (
9
9
  Base,
10
10
  Timestamped,
11
11
  S,
@@ -6,7 +6,7 @@ import datetime as dt
6
6
  import uuid
7
7
  from datetime import datetime, timedelta, timezone
8
8
 
9
- from tigrbl_auth.deps import (
9
+ from tigrbl_auth.vendor import (
10
10
  Base,
11
11
  Timestamped,
12
12
  S,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from tigrbl_auth.deps import (
5
+ from tigrbl_auth.vendor import (
6
6
  Base,
7
7
  Timestamped,
8
8
  S,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from tigrbl_auth.deps import (
5
+ from tigrbl_auth.vendor import (
6
6
  Base,
7
7
  GUIDPk,
8
8
  Timestamped,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from uuid import UUID
6
6
 
7
- from tigrbl_auth.deps import (
7
+ from tigrbl_auth.vendor import (
8
8
  ForeignKeySpec,
9
9
  Created,
10
10
  GUIDPk,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import uuid
6
6
 
7
- from tigrbl_auth.deps import (
7
+ from tigrbl_auth.vendor import (
8
8
  TenantBase,
9
9
  Bootstrappable,
10
10
  F,
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import uuid
6
6
  from typing import TYPE_CHECKING
7
7
 
8
- from tigrbl_auth.deps import (
8
+ from tigrbl_auth.vendor import (
9
9
  UserBase,
10
10
  hook_ctx,
11
11
  op_ctx,
@@ -111,7 +111,7 @@ class User(UserBase):
111
111
  from ..routers.shared import _require_tls
112
112
  from .auth_session import AuthSession
113
113
  from .tenant import Tenant
114
- from tigrbl_auth.deps import IntegrityError
114
+ from tigrbl_auth.vendor import IntegrityError
115
115
 
116
116
  request = ctx.get("request")
117
117
  _require_tls(request)
@@ -8,7 +8,7 @@ from typing import Any
8
8
  from uuid import UUID
9
9
 
10
10
  from tigrbl.security.dependencies import Depends as TigrblDepends
11
- from tigrbl_auth.deps import (
11
+ from tigrbl_auth.vendor import (
12
12
  TigrblRouter,
13
13
  AsyncSession,
14
14
  HTTPException,
@@ -11,7 +11,7 @@ See RFC 6750: https://www.rfc-editor.org/rfc/rfc6750
11
11
 
12
12
  from __future__ import annotations
13
13
 
14
- from tigrbl_auth.deps import Request
14
+ from tigrbl_auth.vendor import Request
15
15
  from typing import Final
16
16
 
17
17
  from ..runtime_cfg import settings
@@ -13,7 +13,7 @@ from urllib.parse import parse_qs
13
13
 
14
14
  from typing import Final, Set
15
15
 
16
- from tigrbl_auth.deps import TigrblRouter, TigrblApp, HTTPException, Request, status
16
+ from tigrbl_auth.vendor import TigrblRouter, TigrblApp, HTTPException, Request, status
17
17
 
18
18
  from ..runtime_cfg import settings
19
19
 
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from typing import Any, Final, Mapping
6
6
 
7
- from ..deps import JWAAlg, JwsSignerVerifier
7
+ from ..vendor import JWAAlg, JwsSignerVerifier
8
8
 
9
9
  from ..runtime_cfg import settings
10
10
 
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import base64
6
6
  from typing import Any, Final, Mapping
7
7
 
8
- from ..deps import JWAAlg, JweCrypto
8
+ from ..vendor import JWAAlg, JweCrypto
9
9
 
10
10
  from ..runtime_cfg import settings
11
11
 
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from urllib.parse import parse_qs
4
4
 
5
- from tigrbl_auth.deps import TigrblRouter, HTTPException, Request, status
5
+ from tigrbl_auth.vendor import TigrblRouter, HTTPException, Request, status
6
6
 
7
7
  from ..runtime_cfg import settings
8
8
  from ..routers.schemas import IntrospectOut
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import asyncio
6
6
  from typing import Any, Awaitable
7
7
 
8
- from ..deps import Ed25519EnvelopeSigner
8
+ from ..vendor import Ed25519EnvelopeSigner
9
9
  from ..runtime_cfg import settings
10
10
 
11
11
  try: # pragma: no cover - optional dependency
@@ -12,7 +12,7 @@ from __future__ import annotations
12
12
 
13
13
  from typing import Final
14
14
 
15
- from tigrbl_auth.deps import TigrblRouter, TigrblApp, HTTPException, status
15
+ from tigrbl_auth.vendor import TigrblRouter, TigrblApp, HTTPException, status
16
16
 
17
17
  from ..runtime_cfg import settings
18
18
  from ..oidc_discovery import (
@@ -15,7 +15,7 @@ import secrets
15
15
  import string
16
16
  from typing import Final, Literal, TYPE_CHECKING
17
17
 
18
- from tigrbl_auth.deps import BaseModel, hook_ctx
18
+ from tigrbl_auth.vendor import BaseModel, hook_ctx
19
19
  from typing import Any, Mapping
20
20
 
21
21
  from ..runtime_cfg import settings
@@ -12,7 +12,7 @@ from __future__ import annotations
12
12
  from typing import Any, Dict, List, Optional, Union
13
13
  from enum import Enum
14
14
  import warnings
15
- from tigrbl_auth.deps import (
15
+ from tigrbl_auth.vendor import (
16
16
  TigrblRouter,
17
17
  TigrblApp,
18
18
  Form,
@@ -14,7 +14,7 @@ from __future__ import annotations
14
14
 
15
15
 
16
16
  from typing import Any, Dict, List
17
- from tigrbl_auth.deps import TigrblRouter, HTTPException, status
17
+ from tigrbl_auth.vendor import TigrblRouter, HTTPException, status
18
18
 
19
19
  from ..runtime_cfg import settings
20
20
  from .rfc8414_metadata import ISSUER, JWKS_PATH
@@ -13,7 +13,7 @@ from typing import Any, Dict, Final, Iterable
13
13
  import json
14
14
  import warnings
15
15
 
16
- from ..deps import JWAAlg, JwsSignerVerifier
16
+ from ..vendor import JWAAlg, JwsSignerVerifier
17
17
 
18
18
  from .. import runtime_cfg
19
19
 
@@ -13,7 +13,7 @@ from __future__ import annotations
13
13
  from typing import Any, List
14
14
  import json
15
15
 
16
- from tigrbl_auth.deps import BaseModel, ValidationError
16
+ from tigrbl_auth.vendor import BaseModel, ValidationError
17
17
 
18
18
  from ..runtime_cfg import settings
19
19
 
@@ -11,7 +11,7 @@ import warnings
11
11
  from cryptography.hazmat.primitives.serialization import load_pem_public_key
12
12
  from cryptography.hazmat.primitives import serialization
13
13
  from swarmauri_signing_dpop import DpopSigner
14
- from ..deps import JWAAlg
14
+ from ..vendor import JWAAlg
15
15
 
16
16
  from ..runtime_cfg import settings
17
17
 
@@ -57,7 +57,7 @@ def makeProof(
57
57
  """Create a DPoP proof for *method* and *url* using *keyref*.
58
58
 
59
59
  ``keyref`` is the :class:`~swarmauri_core.crypto.types.KeyRef` returned by a
60
- Swarmauri key provider such as :class:`~tigrbl_auth.deps.LocalKeyProvider` or
60
+ Swarmauri key provider such as :class:`~tigrbl_auth.vendor.LocalKeyProvider` or
61
61
  ``InMemoryKeyProvider``. The private key material from the provider is
62
62
  passed to :class:`~swarmauri_signing_dpop.DpopSigner` for signing, avoiding
63
63
  direct usage of ``cryptography`` within this module.
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
  import secrets
5
5
 
6
6
  from tigrbl.security.dependencies import Depends as TigrblDepends
7
- from tigrbl_auth.deps import AsyncSession, HTTPException, JSONResponse, Request
7
+ from tigrbl_auth.vendor import AsyncSession, HTTPException, JSONResponse, Request
8
8
  from ..db import get_db
9
9
  from ..orm import AuthSession, User
10
10
  from ..routers.schemas import CredsIn, TokenPair
@@ -1,4 +1,4 @@
1
- from tigrbl_auth.deps import TigrblRouter
1
+ from tigrbl_auth.vendor import TigrblRouter
2
2
  from tigrbl_auth.rfc import rfc6749_token, rfc7662_introspection
3
3
 
4
4
  api = TigrblRouter()
@@ -7,7 +7,7 @@ from uuid import UUID, uuid4
7
7
  from urllib.parse import urlencode
8
8
 
9
9
  from tigrbl.security.dependencies import Depends as TigrblDepends
10
- from tigrbl_auth.deps import (
10
+ from tigrbl_auth.vendor import (
11
11
  HTTPException,
12
12
  Request,
13
13
  status,
@@ -61,15 +61,20 @@ async def authorize(
61
61
  prompt = prompt or request.query_params.get("prompt")
62
62
  login_hint = login_hint or request.query_params.get("login_hint")
63
63
  claims = claims or request.query_params.get("claims")
64
- if max_age is None:
64
+ max_age_raw = max_age
65
+ if max_age_raw is None:
65
66
  max_age_raw = request.query_params.get("max_age")
66
- if max_age_raw is not None:
67
- try:
68
- max_age = int(max_age_raw)
69
- except ValueError as exc:
70
- raise HTTPException(
71
- status.HTTP_400_BAD_REQUEST, {"error": "invalid_request"}
72
- ) from exc
67
+ if max_age_raw is not None:
68
+ try:
69
+ max_age = int(max_age_raw)
70
+ except (TypeError, ValueError) as exc:
71
+ raise HTTPException(
72
+ status.HTTP_400_BAD_REQUEST, {"error": "invalid_request"}
73
+ ) from exc
74
+ if max_age < 0:
75
+ raise HTTPException(
76
+ status.HTTP_400_BAD_REQUEST, {"error": "invalid_request"}
77
+ )
73
78
  rts = set(response_type.split())
74
79
  allowed = {"code", "token", "id_token"}
75
80
  if not rts or not rts.issubset(allowed):
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Literal, Optional
4
4
 
5
- from tigrbl_auth.deps import BaseModel, EmailStr, Field, constr
5
+ from tigrbl_auth.vendor import BaseModel, EmailStr, Field, constr
6
6
 
7
7
  from ..typing import StrUUID
8
8
 
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
 
4
- from tigrbl_auth.deps import HTTPException, Request, status
4
+ from tigrbl_auth.vendor import HTTPException, Request, status
5
5
 
6
6
  from ..jwtoken import JWTCoder
7
7
  from ..backends import PasswordBackend
@@ -25,7 +25,7 @@ Notes
25
25
 
26
26
  from __future__ import annotations
27
27
 
28
- from tigrbl_auth.deps import TigrblRouter
28
+ from tigrbl_auth.vendor import TigrblRouter
29
29
  from tigrbl_auth.orm import (
30
30
  Tenant,
31
31
  User,
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  from dotenv import load_dotenv
5
5
  from pydantic_settings import BaseSettings, SettingsConfigDict
6
- from tigrbl_auth.deps import Field
6
+ from tigrbl_auth.vendor import Field
7
7
  from typing import Optional
8
8
 
9
9
  # ─── Load environment variables from a .env file (if present) ─────────────────────
@@ -2,7 +2,7 @@ from tigrbl import TigrblApp, TigrblRouter, op_ctx, hook_ctx, engine_ctx
2
2
  from tigrbl.engine import HybridSession as AsyncSession, engine as build_engine
3
3
  from tigrbl.config.constants import TIGRBL_AUTH_CONTEXT_ATTR
4
4
  from tigrbl.types.authn_abc import AuthNProvider
5
- from tigrbl.column.storage_spec import ForeignKeySpec
5
+ from tigrbl._spec.storage_spec import ForeignKeySpec
6
6
  from tigrbl.orm.tables import (
7
7
  User as UserBase,
8
8
  Tenant as TenantBase,