mdb-engine 0.4.6__tar.gz → 0.4.8__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.6/mdb_engine.egg-info → mdb_engine-0.4.8}/PKG-INFO +1 -1
  2. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/__init__.py +2 -2
  3. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/engine.py +67 -0
  4. {mdb_engine-0.4.6 → mdb_engine-0.4.8/mdb_engine.egg-info}/PKG-INFO +1 -1
  5. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/pyproject.toml +1 -1
  6. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/setup.py +1 -1
  7. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/LICENSE +0 -0
  8. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/MANIFEST.in +0 -0
  9. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/README.md +0 -0
  10. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/README.md +0 -0
  11. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/ARCHITECTURE.md +0 -0
  12. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/README.md +0 -0
  13. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/__init__.py +0 -0
  14. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/audit.py +0 -0
  15. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/base.py +0 -0
  16. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/casbin_factory.py +0 -0
  17. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/casbin_models.py +0 -0
  18. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/config_defaults.py +0 -0
  19. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/config_helpers.py +0 -0
  20. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/cookie_utils.py +0 -0
  21. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/csrf.py +0 -0
  22. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/decorators.py +0 -0
  23. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/dependencies.py +0 -0
  24. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/helpers.py +0 -0
  25. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/integration.py +0 -0
  26. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/jwt.py +0 -0
  27. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/middleware.py +0 -0
  28. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/oso_factory.py +0 -0
  29. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/provider.py +0 -0
  30. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/rate_limiter.py +0 -0
  31. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/restrictions.py +0 -0
  32. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/session_manager.py +0 -0
  33. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/shared_middleware.py +0 -0
  34. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/shared_users.py +0 -0
  35. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/token_lifecycle.py +0 -0
  36. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/token_store.py +0 -0
  37. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/users.py +0 -0
  38. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/auth/utils.py +0 -0
  39. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/__init__.py +0 -0
  40. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/commands/__init__.py +0 -0
  41. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/commands/generate.py +0 -0
  42. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/commands/migrate.py +0 -0
  43. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/commands/show.py +0 -0
  44. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/commands/validate.py +0 -0
  45. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/main.py +0 -0
  46. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/cli/utils.py +0 -0
  47. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/config.py +0 -0
  48. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/constants.py +0 -0
  49. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/README.md +0 -0
  50. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/__init__.py +0 -0
  51. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/app_registration.py +0 -0
  52. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/app_secrets.py +0 -0
  53. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/connection.py +0 -0
  54. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/encryption.py +0 -0
  55. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/index_management.py +0 -0
  56. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/manifest.py +0 -0
  57. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/ray_integration.py +0 -0
  58. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/seeding.py +0 -0
  59. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/service_initialization.py +0 -0
  60. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/core/types.py +0 -0
  61. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/README.md +0 -0
  62. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/__init__.py +0 -0
  63. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/abstraction.py +0 -0
  64. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/connection.py +0 -0
  65. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/query_validator.py +0 -0
  66. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/resource_limiter.py +0 -0
  67. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/database/scoped_wrapper.py +0 -0
  68. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/dependencies.py +0 -0
  69. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/di/__init__.py +0 -0
  70. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/di/container.py +0 -0
  71. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/di/providers.py +0 -0
  72. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/di/scopes.py +0 -0
  73. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/embeddings/README.md +0 -0
  74. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/embeddings/__init__.py +0 -0
  75. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/embeddings/dependencies.py +0 -0
  76. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/embeddings/service.py +0 -0
  77. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/exceptions.py +0 -0
  78. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/indexes/README.md +0 -0
  79. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/indexes/__init__.py +0 -0
  80. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/indexes/helpers.py +0 -0
  81. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/indexes/manager.py +0 -0
  82. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/memory/README.md +0 -0
  83. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/memory/__init__.py +0 -0
  84. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/memory/service.py +0 -0
  85. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/observability/README.md +0 -0
  86. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/observability/__init__.py +0 -0
  87. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/observability/health.py +0 -0
  88. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/observability/logging.py +0 -0
  89. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/observability/metrics.py +0 -0
  90. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/repositories/__init__.py +0 -0
  91. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/repositories/base.py +0 -0
  92. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/repositories/mongo.py +0 -0
  93. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/repositories/unit_of_work.py +0 -0
  94. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/routing/README.md +0 -0
  95. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/routing/__init__.py +0 -0
  96. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/routing/websockets.py +0 -0
  97. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/utils/__init__.py +0 -0
  98. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine/utils/mongo.py +0 -0
  99. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine.egg-info/SOURCES.txt +0 -0
  100. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine.egg-info/dependency_links.txt +0 -0
  101. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine.egg-info/entry_points.txt +0 -0
  102. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine.egg-info/requires.txt +0 -0
  103. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/mdb_engine.egg-info/top_level.txt +0 -0
  104. {mdb_engine-0.4.6 → mdb_engine-0.4.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdb-engine
3
- Version: 0.4.6
3
+ Version: 0.4.8
4
4
  Summary: MongoDB Engine
5
5
  Home-page: https://github.com/ranfysvalle02/mdb-engine
6
6
  Author: Fabian Valle
@@ -82,8 +82,8 @@ from .repositories import Entity, MongoRepository, Repository, UnitOfWork
82
82
  from .utils import clean_mongo_doc, clean_mongo_docs
83
83
 
84
84
  __version__ = (
85
- "0.4.3" # Feature: Automatic route import for multi-app deployments
86
- # Routes from web.py/routes.py are now automatically imported when using create_multi_app()
85
+ "0.4.8" # Fix: WebSocket routes now work correctly with mounted apps
86
+ # WebSocket routes are registered on parent app with full mount path prefix
87
87
  )
88
88
 
89
89
  __all__ = [
@@ -2375,6 +2375,73 @@ class MongoDBEngine:
2375
2375
 
2376
2376
  # Mount child app at path prefix
2377
2377
  app.mount(path_prefix, child_app)
2378
+
2379
+ # CRITICAL FIX: Register WebSocket routes on parent app with full path
2380
+ # FastAPI's app.mount() doesn't handle WebSocket routes correctly,
2381
+ # so we need to register them on the parent app with the mount prefix
2382
+ # Get WebSocket config from manifest directly (app registration happens
2383
+ # asynchronously in lifespan, so config may not be available yet)
2384
+ websockets_config = app_manifest_data.get("websockets")
2385
+ if websockets_config:
2386
+ try:
2387
+ from fastapi import APIRouter
2388
+
2389
+ from ..routing.websockets import create_websocket_endpoint
2390
+
2391
+ for endpoint_name, endpoint_config in websockets_config.items():
2392
+ ws_path = endpoint_config.get("path", f"/{endpoint_name}")
2393
+ # Combine mount prefix with WebSocket path
2394
+ full_ws_path = f"{path_prefix.rstrip('/')}{ws_path}"
2395
+
2396
+ # Handle auth configuration
2397
+ auth_config = endpoint_config.get("auth", {})
2398
+ if isinstance(auth_config, dict) and "required" in auth_config:
2399
+ require_auth = auth_config.get("required", True)
2400
+ elif "require_auth" in endpoint_config:
2401
+ require_auth = endpoint_config.get("require_auth", True)
2402
+ else:
2403
+ # Use app's auth_policy if available
2404
+ if "auth_policy" in app_manifest_data:
2405
+ require_auth = app_manifest_data["auth_policy"].get(
2406
+ "required", True
2407
+ )
2408
+ else:
2409
+ require_auth = True
2410
+
2411
+ ping_interval = endpoint_config.get("ping_interval", 30)
2412
+
2413
+ # Create WebSocket handler
2414
+ # Use original path for handler (mount handled internally)
2415
+ handler = create_websocket_endpoint(
2416
+ app_slug=slug,
2417
+ path=ws_path,
2418
+ endpoint_name=endpoint_name,
2419
+ handler=None,
2420
+ require_auth=require_auth,
2421
+ ping_interval=ping_interval,
2422
+ )
2423
+
2424
+ # Register on parent app with full path
2425
+ ws_router = APIRouter()
2426
+ ws_router.websocket(full_ws_path)(handler)
2427
+ app.include_router(ws_router)
2428
+
2429
+ logger.info(
2430
+ f"✅ Registered WebSocket route '{full_ws_path}' "
2431
+ f"for mounted app '{slug}' (mounted at '{path_prefix}')"
2432
+ )
2433
+ except ImportError:
2434
+ logger.warning(
2435
+ f"WebSocket support not available - skipping WebSocket routes "
2436
+ f"for mounted app '{slug}'"
2437
+ )
2438
+ except (ValueError, TypeError, AttributeError, RuntimeError) as e:
2439
+ logger.error(
2440
+ f"Failed to register WebSocket routes for mounted app "
2441
+ f"'{slug}': {e}",
2442
+ exc_info=True,
2443
+ )
2444
+
2378
2445
  # Update existing entry instead of appending
2379
2446
  entry = _find_mounted_app_entry(slug)
2380
2447
  if entry:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdb-engine
3
- Version: 0.4.6
3
+ Version: 0.4.8
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.6"
7
+ version = "0.4.8"
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.1",
17
+ version="0.4.8",
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