mdb-engine 0.4.0__tar.gz → 0.4.1__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 (104) hide show
  1. {mdb_engine-0.4.0/mdb_engine.egg-info → mdb_engine-0.4.1}/PKG-INFO +1 -1
  2. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/__init__.py +1 -1
  3. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/shared_middleware.py +25 -6
  4. {mdb_engine-0.4.0 → mdb_engine-0.4.1/mdb_engine.egg-info}/PKG-INFO +1 -1
  5. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/pyproject.toml +1 -1
  6. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/setup.py +1 -1
  7. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/LICENSE +0 -0
  8. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/MANIFEST.in +0 -0
  9. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/README.md +0 -0
  10. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/README.md +0 -0
  11. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/ARCHITECTURE.md +0 -0
  12. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/README.md +0 -0
  13. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/__init__.py +0 -0
  14. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/audit.py +0 -0
  15. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/base.py +0 -0
  16. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/casbin_factory.py +0 -0
  17. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/casbin_models.py +0 -0
  18. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/config_defaults.py +0 -0
  19. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/config_helpers.py +0 -0
  20. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/cookie_utils.py +0 -0
  21. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/csrf.py +0 -0
  22. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/decorators.py +0 -0
  23. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/dependencies.py +0 -0
  24. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/helpers.py +0 -0
  25. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/integration.py +0 -0
  26. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/jwt.py +0 -0
  27. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/middleware.py +0 -0
  28. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/oso_factory.py +0 -0
  29. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/provider.py +0 -0
  30. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/rate_limiter.py +0 -0
  31. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/restrictions.py +0 -0
  32. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/session_manager.py +0 -0
  33. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/shared_users.py +0 -0
  34. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/token_lifecycle.py +0 -0
  35. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/token_store.py +0 -0
  36. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/users.py +0 -0
  37. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/auth/utils.py +0 -0
  38. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/__init__.py +0 -0
  39. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/commands/__init__.py +0 -0
  40. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/commands/generate.py +0 -0
  41. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/commands/migrate.py +0 -0
  42. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/commands/show.py +0 -0
  43. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/commands/validate.py +0 -0
  44. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/main.py +0 -0
  45. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/cli/utils.py +0 -0
  46. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/config.py +0 -0
  47. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/constants.py +0 -0
  48. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/README.md +0 -0
  49. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/__init__.py +0 -0
  50. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/app_registration.py +0 -0
  51. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/app_secrets.py +0 -0
  52. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/connection.py +0 -0
  53. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/encryption.py +0 -0
  54. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/engine.py +0 -0
  55. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/index_management.py +0 -0
  56. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/manifest.py +0 -0
  57. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/ray_integration.py +0 -0
  58. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/seeding.py +0 -0
  59. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/service_initialization.py +0 -0
  60. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/core/types.py +0 -0
  61. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/README.md +0 -0
  62. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/__init__.py +0 -0
  63. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/abstraction.py +0 -0
  64. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/connection.py +0 -0
  65. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/query_validator.py +0 -0
  66. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/resource_limiter.py +0 -0
  67. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/database/scoped_wrapper.py +0 -0
  68. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/dependencies.py +0 -0
  69. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/di/__init__.py +0 -0
  70. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/di/container.py +0 -0
  71. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/di/providers.py +0 -0
  72. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/di/scopes.py +0 -0
  73. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/embeddings/README.md +0 -0
  74. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/embeddings/__init__.py +0 -0
  75. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/embeddings/dependencies.py +0 -0
  76. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/embeddings/service.py +0 -0
  77. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/exceptions.py +0 -0
  78. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/indexes/README.md +0 -0
  79. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/indexes/__init__.py +0 -0
  80. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/indexes/helpers.py +0 -0
  81. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/indexes/manager.py +0 -0
  82. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/memory/README.md +0 -0
  83. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/memory/__init__.py +0 -0
  84. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/memory/service.py +0 -0
  85. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/observability/README.md +0 -0
  86. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/observability/__init__.py +0 -0
  87. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/observability/health.py +0 -0
  88. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/observability/logging.py +0 -0
  89. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/observability/metrics.py +0 -0
  90. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/repositories/__init__.py +0 -0
  91. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/repositories/base.py +0 -0
  92. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/repositories/mongo.py +0 -0
  93. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/repositories/unit_of_work.py +0 -0
  94. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/routing/README.md +0 -0
  95. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/routing/__init__.py +0 -0
  96. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/routing/websockets.py +0 -0
  97. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/utils/__init__.py +0 -0
  98. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine/utils/mongo.py +0 -0
  99. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine.egg-info/SOURCES.txt +0 -0
  100. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine.egg-info/dependency_links.txt +0 -0
  101. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine.egg-info/entry_points.txt +0 -0
  102. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine.egg-info/requires.txt +0 -0
  103. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/mdb_engine.egg-info/top_level.txt +0 -0
  104. {mdb_engine-0.4.0 → mdb_engine-0.4.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdb-engine
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: MongoDB Engine
5
5
  Home-page: https://github.com/ranfysvalle02/mdb-engine
6
6
  Author: Fabian Valle
@@ -81,7 +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.4.0" # Minor version bump: Major multi-app improvements (12 new features)
84
+ __version__ = "0.4.1" # Patch version: Bug fixes for path prefix handling and test improvements
85
85
 
86
86
  __all__ = [
87
87
  # Core Engine
@@ -86,16 +86,35 @@ def _get_request_path(request: Request) -> str:
86
86
  """
87
87
  Get the request path relative to the mount point.
88
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.
89
+ For mounted apps (via create_multi_app), strips the path prefix from
90
+ request.url.path using request.state.app_base_path. For non-mounted apps,
91
+ uses request.scope["path"] if available, otherwise falls back to request.url.path.
92
92
 
93
93
  This ensures public routes in manifests (which are relative paths like "/")
94
94
  match correctly when apps are mounted at prefixes like "/auth-hub".
95
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)
96
+ # Check if this is a mounted app with a path prefix
97
+ app_base_path = getattr(request.state, "app_base_path", None)
98
+ # Ensure app_base_path is a string (not a MagicMock in tests)
99
+ if app_base_path and isinstance(app_base_path, str):
100
+ # Ensure request.url.path is a string before calling startswith
101
+ url_path = str(request.url.path) if hasattr(request.url, "path") else None
102
+ if url_path and url_path.startswith(app_base_path):
103
+ # Strip the path prefix to get relative path
104
+ relative_path = url_path[len(app_base_path) :]
105
+ # Ensure path starts with / (handle case where prefix is entire path)
106
+ return relative_path if relative_path else "/"
107
+
108
+ # Fall back to scope["path"] for mounted apps (if available)
109
+ # This handles cases where Starlette/FastAPI sets it correctly
110
+ if "path" in request.scope:
111
+ return request.scope["path"]
112
+
113
+ # Default to url.path for non-mounted apps
114
+ # Ensure we return a string
115
+ if hasattr(request.url, "path"):
116
+ return str(request.url.path)
117
+ return "/"
99
118
 
100
119
 
101
120
  class SharedAuthMiddleware(BaseHTTPMiddleware):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdb-engine
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: MongoDB Engine
5
5
  Home-page: https://github.com/ranfysvalle02/mdb-engine
6
6
  Author: Fabian Valle
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mdb-engine"
7
- version = "0.4.0"
7
+ version = "0.4.1"
8
8
  description = "MongoDB Engine"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -14,7 +14,7 @@ if readme_file.exists():
14
14
 
15
15
  setup(
16
16
  name="mdb-engine",
17
- version="0.4.0",
17
+ version="0.4.1",
18
18
  description="MongoDB Engine",
19
19
  long_description=long_description,
20
20
  long_description_content_type="text/markdown",
File without changes
File without changes
File without changes
File without changes