mdb-engine 0.3.0__tar.gz → 0.4.0__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.
- {mdb_engine-0.3.0/mdb_engine.egg-info → mdb_engine-0.4.0}/PKG-INFO +1 -1
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/__init__.py +1 -2
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/shared_middleware.py +18 -2
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/engine.py +718 -35
- {mdb_engine-0.3.0 → mdb_engine-0.4.0/mdb_engine.egg-info}/PKG-INFO +1 -1
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/pyproject.toml +1 -1
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/setup.py +1 -1
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/LICENSE +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/MANIFEST.in +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/ARCHITECTURE.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/audit.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/base.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/casbin_factory.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/casbin_models.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/config_defaults.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/config_helpers.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/cookie_utils.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/csrf.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/decorators.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/dependencies.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/helpers.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/integration.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/jwt.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/middleware.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/oso_factory.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/provider.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/rate_limiter.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/restrictions.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/session_manager.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/shared_users.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/token_lifecycle.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/token_store.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/users.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/auth/utils.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/commands/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/commands/generate.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/commands/migrate.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/commands/show.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/commands/validate.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/main.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/cli/utils.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/config.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/constants.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/app_registration.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/app_secrets.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/connection.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/encryption.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/index_management.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/manifest.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/ray_integration.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/seeding.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/service_initialization.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/core/types.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/abstraction.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/connection.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/query_validator.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/resource_limiter.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/database/scoped_wrapper.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/dependencies.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/di/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/di/container.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/di/providers.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/di/scopes.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/embeddings/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/embeddings/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/embeddings/dependencies.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/embeddings/service.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/exceptions.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/indexes/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/indexes/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/indexes/helpers.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/indexes/manager.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/memory/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/memory/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/memory/service.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/observability/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/observability/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/observability/health.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/observability/logging.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/observability/metrics.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/repositories/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/repositories/base.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/repositories/mongo.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/repositories/unit_of_work.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/routing/README.md +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/routing/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/routing/websockets.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/utils/__init__.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine/utils/mongo.py +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine.egg-info/SOURCES.txt +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine.egg-info/dependency_links.txt +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine.egg-info/entry_points.txt +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine.egg-info/requires.txt +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/mdb_engine.egg-info/top_level.txt +0 -0
- {mdb_engine-0.3.0 → mdb_engine-0.4.0}/setup.cfg +0 -0
|
@@ -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.
|
|
85
|
-
# and exception handling fixes
|
|
84
|
+
__version__ = "0.4.0" # Minor version bump: Major multi-app improvements (12 new features)
|
|
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
|
|
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
|
|
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
|
)
|