mdb-engine 0.3.0__py3-none-any.whl → 0.3.1__py3-none-any.whl

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.
mdb_engine/__init__.py CHANGED
@@ -81,8 +81,7 @@ from .repositories import Entity, MongoRepository, Repository, UnitOfWork
81
81
  # Utilities
82
82
  from .utils import clean_mongo_doc, clean_mongo_docs
83
83
 
84
- __version__ = "0.3.0" # Minor version bump: Multi-app mounting, SSO improvements,
85
- # and exception handling fixes
84
+ __version__ = "0.3.1" # Patch version bump: Fix public route matching for mounted apps
86
85
 
87
86
  __all__ = [
88
87
  # Core Engine
@@ -82,6 +82,22 @@ def _compute_fingerprint(request: Request) -> str:
82
82
  return hashlib.sha256(fingerprint_string.encode()).hexdigest()
83
83
 
84
84
 
85
+ def _get_request_path(request: Request) -> str:
86
+ """
87
+ Get the request path relative to the mount point.
88
+
89
+ For mounted apps (via create_multi_app), use request.scope["path"] which
90
+ contains the path relative to the mount point. For non-mounted apps,
91
+ fall back to request.url.path.
92
+
93
+ This ensures public routes in manifests (which are relative paths like "/")
94
+ match correctly when apps are mounted at prefixes like "/auth-hub".
95
+ """
96
+ # Use scope["path"] which is relative to mount point for mounted apps
97
+ # Fall back to url.path for non-mounted apps
98
+ return request.scope.get("path", request.url.path)
99
+
100
+
85
101
  class SharedAuthMiddleware(BaseHTTPMiddleware):
86
102
  """
87
103
  Middleware for shared authentication across multi-app deployments.
@@ -169,7 +185,7 @@ class SharedAuthMiddleware(BaseHTTPMiddleware):
169
185
  # However, for Lazy middleware, we want to skip if not initialized yet
170
186
  return await call_next(request)
171
187
 
172
- is_public = self._is_public_route(request.url.path)
188
+ is_public = self._is_public_route(_get_request_path(request))
173
189
 
174
190
  # Extract token from cookie or header
175
191
  token = self._extract_token(request)
@@ -522,7 +538,7 @@ def _create_lazy_middleware_class(
522
538
  )
523
539
  return await call_next(request)
524
540
 
525
- is_public = _is_public_route_helper(request.url.path, self._public_routes)
541
+ is_public = _is_public_route_helper(_get_request_path(request), self._public_routes)
526
542
  token = _extract_token_helper(
527
543
  request, self._cookie_name, self._header_name, self._header_prefix
528
544
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdb-engine
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: MongoDB Engine
5
5
  Home-page: https://github.com/ranfysvalle02/mdb-engine
6
6
  Author: Fabian Valle
@@ -1,5 +1,5 @@
1
1
  mdb_engine/README.md,sha256=T3EFGcPopY9LslYW3lxgG3hohWkAOmBNbYG0FDMUJiY,3502
2
- mdb_engine/__init__.py,sha256=MUAh3xwHgMQZ9FyYIfDnOwiUficDQbkZ3sBb43v-U64,3189
2
+ mdb_engine/__init__.py,sha256=hyAHO2lyogYrvCIKKoTLuaReM3g0f7gygVUbg2Iht5k,3163
3
3
  mdb_engine/config.py,sha256=DTAyxfKB8ogyI0v5QR9Y-SJOgXQr_eDBCKxNBSqEyLc,7269
4
4
  mdb_engine/constants.py,sha256=eaotvW57TVOg7rRbLziGrVNoP7adgw_G9iVByHezc_A,7837
5
5
  mdb_engine/dependencies.py,sha256=MJuYQhZ9ZGzXlip1ha5zba9Rvn04HDPWahJFJH81Q2s,14107
@@ -26,7 +26,7 @@ mdb_engine/auth/provider.py,sha256=FOSHn-jp4VYtxvmjnzho5kH6y-xDKWbcKUorYRRl1C4,2
26
26
  mdb_engine/auth/rate_limiter.py,sha256=l3EYZE1Kz9yVfZwNrKq_1AgdD7GXB1WOLSqqGQVSSgA,15808
27
27
  mdb_engine/auth/restrictions.py,sha256=tOyQBO_w0bK9zmTsOPZf9cbvh4oITvpNfSxIXt-XrcU,8824
28
28
  mdb_engine/auth/session_manager.py,sha256=ywWJjTarm-obgJ3zO3s-1cdqEYe0XrozlY00q_yMJ8I,15396
29
- mdb_engine/auth/shared_middleware.py,sha256=3lvm6aC0W_7ECvno_Mj3eu_93DZ--JiXhZ9hte8tvhM,30480
29
+ mdb_engine/auth/shared_middleware.py,sha256=ZyGjv3cQ5pLeFBKrW4X2W11e0-ZsuOhJaWvGAQ7I2Kw,31137
30
30
  mdb_engine/auth/shared_users.py,sha256=25OBks4VRHaYZW7R61vnplV7wmr7RRpDctSgnej_nxc,26773
31
31
  mdb_engine/auth/token_lifecycle.py,sha256=Q9S1X2Y6W7Ckt5PvyYXswBRh2Tg9DGpyRv_3Xve7VYQ,6708
32
32
  mdb_engine/auth/token_store.py,sha256=-B8j5RH5YEoKsswF4rnMoI51BaxMe4icke3kuehXmcI,9121
@@ -89,9 +89,9 @@ mdb_engine/routing/__init__.py,sha256=reupjHi_RTc2ZBA4AH5XzobAmqy4EQIsfSUcTkFknU
89
89
  mdb_engine/routing/websockets.py,sha256=3X4OjQv_Nln4UmeifJky0gFhMG8A6alR77I8g1iIOLY,29311
90
90
  mdb_engine/utils/__init__.py,sha256=lDxQSGqkV4fVw5TWIk6FA6_eey_ZnEtMY0fir3cpAe8,236
91
91
  mdb_engine/utils/mongo.py,sha256=Oqtv4tQdpiiZzrilGLEYQPo8Vmh8WsTQypxQs8Of53s,3369
92
- mdb_engine-0.3.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
93
- mdb_engine-0.3.0.dist-info/METADATA,sha256=yifqmZSH5TBouzzOqnelCgGXlnMMqmNgTjRl7SXzk5g,15810
94
- mdb_engine-0.3.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
95
- mdb_engine-0.3.0.dist-info/entry_points.txt,sha256=INCbYdFbBzJalwPwxliEzLmPfR57IvQ7RAXG_pn8cL8,48
96
- mdb_engine-0.3.0.dist-info/top_level.txt,sha256=PH0UEBwTtgkm2vWvC9He_EOMn7hVn_Wg_Jyc0SmeO8k,11
97
- mdb_engine-0.3.0.dist-info/RECORD,,
92
+ mdb_engine-0.3.1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
93
+ mdb_engine-0.3.1.dist-info/METADATA,sha256=Zxjb2zcIkgk4-eUJbWv0nDs9OMKpeJuiANzINiQkMAw,15810
94
+ mdb_engine-0.3.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
95
+ mdb_engine-0.3.1.dist-info/entry_points.txt,sha256=INCbYdFbBzJalwPwxliEzLmPfR57IvQ7RAXG_pn8cL8,48
96
+ mdb_engine-0.3.1.dist-info/top_level.txt,sha256=PH0UEBwTtgkm2vWvC9He_EOMn7hVn_Wg_Jyc0SmeO8k,11
97
+ mdb_engine-0.3.1.dist-info/RECORD,,