mdb-engine 0.1.6__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.
Files changed (75) hide show
  1. mdb_engine/README.md +144 -0
  2. mdb_engine/__init__.py +37 -0
  3. mdb_engine/auth/README.md +631 -0
  4. mdb_engine/auth/__init__.py +128 -0
  5. mdb_engine/auth/casbin_factory.py +199 -0
  6. mdb_engine/auth/casbin_models.py +46 -0
  7. mdb_engine/auth/config_defaults.py +71 -0
  8. mdb_engine/auth/config_helpers.py +213 -0
  9. mdb_engine/auth/cookie_utils.py +158 -0
  10. mdb_engine/auth/decorators.py +350 -0
  11. mdb_engine/auth/dependencies.py +747 -0
  12. mdb_engine/auth/helpers.py +64 -0
  13. mdb_engine/auth/integration.py +578 -0
  14. mdb_engine/auth/jwt.py +225 -0
  15. mdb_engine/auth/middleware.py +241 -0
  16. mdb_engine/auth/oso_factory.py +323 -0
  17. mdb_engine/auth/provider.py +570 -0
  18. mdb_engine/auth/restrictions.py +271 -0
  19. mdb_engine/auth/session_manager.py +477 -0
  20. mdb_engine/auth/token_lifecycle.py +213 -0
  21. mdb_engine/auth/token_store.py +289 -0
  22. mdb_engine/auth/users.py +1516 -0
  23. mdb_engine/auth/utils.py +614 -0
  24. mdb_engine/cli/__init__.py +13 -0
  25. mdb_engine/cli/commands/__init__.py +7 -0
  26. mdb_engine/cli/commands/generate.py +105 -0
  27. mdb_engine/cli/commands/migrate.py +83 -0
  28. mdb_engine/cli/commands/show.py +70 -0
  29. mdb_engine/cli/commands/validate.py +63 -0
  30. mdb_engine/cli/main.py +41 -0
  31. mdb_engine/cli/utils.py +92 -0
  32. mdb_engine/config.py +217 -0
  33. mdb_engine/constants.py +160 -0
  34. mdb_engine/core/README.md +542 -0
  35. mdb_engine/core/__init__.py +42 -0
  36. mdb_engine/core/app_registration.py +392 -0
  37. mdb_engine/core/connection.py +243 -0
  38. mdb_engine/core/engine.py +749 -0
  39. mdb_engine/core/index_management.py +162 -0
  40. mdb_engine/core/manifest.py +2793 -0
  41. mdb_engine/core/seeding.py +179 -0
  42. mdb_engine/core/service_initialization.py +355 -0
  43. mdb_engine/core/types.py +413 -0
  44. mdb_engine/database/README.md +522 -0
  45. mdb_engine/database/__init__.py +31 -0
  46. mdb_engine/database/abstraction.py +635 -0
  47. mdb_engine/database/connection.py +387 -0
  48. mdb_engine/database/scoped_wrapper.py +1721 -0
  49. mdb_engine/embeddings/README.md +184 -0
  50. mdb_engine/embeddings/__init__.py +62 -0
  51. mdb_engine/embeddings/dependencies.py +193 -0
  52. mdb_engine/embeddings/service.py +759 -0
  53. mdb_engine/exceptions.py +167 -0
  54. mdb_engine/indexes/README.md +651 -0
  55. mdb_engine/indexes/__init__.py +21 -0
  56. mdb_engine/indexes/helpers.py +145 -0
  57. mdb_engine/indexes/manager.py +895 -0
  58. mdb_engine/memory/README.md +451 -0
  59. mdb_engine/memory/__init__.py +30 -0
  60. mdb_engine/memory/service.py +1285 -0
  61. mdb_engine/observability/README.md +515 -0
  62. mdb_engine/observability/__init__.py +42 -0
  63. mdb_engine/observability/health.py +296 -0
  64. mdb_engine/observability/logging.py +161 -0
  65. mdb_engine/observability/metrics.py +297 -0
  66. mdb_engine/routing/README.md +462 -0
  67. mdb_engine/routing/__init__.py +73 -0
  68. mdb_engine/routing/websockets.py +813 -0
  69. mdb_engine/utils/__init__.py +7 -0
  70. mdb_engine-0.1.6.dist-info/METADATA +213 -0
  71. mdb_engine-0.1.6.dist-info/RECORD +75 -0
  72. mdb_engine-0.1.6.dist-info/WHEEL +5 -0
  73. mdb_engine-0.1.6.dist-info/entry_points.txt +2 -0
  74. mdb_engine-0.1.6.dist-info/licenses/LICENSE +661 -0
  75. mdb_engine-0.1.6.dist-info/top_level.txt +1 -0
mdb_engine/README.md ADDED
@@ -0,0 +1,144 @@
1
+ # MDB_ENGINE Package Documentation
2
+
3
+ MongoDB Engine - Package-level documentation.
4
+
5
+ ## Package Overview
6
+
7
+ MDB_ENGINE provides a complete MongoDB Engine for building MongoDB applications with automatic data isolation, authentication, and resource management.
8
+
9
+ ## Core Modules
10
+
11
+ ### `core` - MongoDB Engine
12
+
13
+ **MongoDBEngine** (`core/engine.py`)
14
+ - Central orchestration for all engine components
15
+ - Manages database connections, app registration, and lifecycle
16
+ - Provides health checks and metrics
17
+
18
+ **Manifest System** (`core/manifest.py`)
19
+ - JSON schema validation with versioning (v1.0, v2.0)
20
+ - Manifest parsing and migration
21
+ - Index definition validation
22
+
23
+ ### `database` - Database Layer
24
+
25
+ **ScopedMongoWrapper** (`database/scoped_wrapper.py`)
26
+ - Automatic app isolation
27
+ - Transparent query filtering by `app_id`
28
+ - MongoDB-style API with automatic scoping
29
+
30
+ **Connection Management** (`database/connection.py`)
31
+ - Shared connection pooling for efficient resource usage
32
+ - Pool metrics and monitoring
33
+
34
+ ### `auth` - Authentication & Authorization
35
+
36
+ **AuthorizationProvider** (`auth/provider.py`)
37
+ - Pluggable authorization interface
38
+ - Casbin and OSO adapters
39
+ - Caching for performance
40
+
41
+ **JWT & Dependencies** (`auth/jwt.py`, `auth/dependencies.py`)
42
+ - JWT token handling
43
+ - FastAPI dependencies for auth
44
+
45
+ ### `indexes` - Index Management
46
+
47
+ **Index Orchestration** (`indexes/manager.py`)
48
+ - High-level index creation from manifest definitions
49
+ - Support for all index types (regular, vector, search, TTL, etc.)
50
+
51
+ **Helper Functions** (`indexes/helpers.py`)
52
+ - Common index operations
53
+ - Key normalization and validation
54
+
55
+ ### `observability` - Monitoring & Metrics
56
+
57
+ **Metrics** (`observability/metrics.py`)
58
+ - Operation timing and statistics
59
+ - Error rate tracking
60
+ - Performance metrics
61
+
62
+ **Logging** (`observability/logging.py`)
63
+ - Structured logging with correlation IDs
64
+ - App context tracking
65
+ - Contextual logger adapter
66
+
67
+ **Health Checks** (`observability/health.py`)
68
+ - MongoDB health checks
69
+ - Engine health status
70
+ - Connection pool monitoring
71
+
72
+ ### `utils` - Utilities
73
+
74
+ **Validation** (`utils/validation.py`)
75
+ - Collection name validation
76
+ - App slug validation
77
+ - MongoDB URI validation
78
+
79
+ **Constants** (`constants.py`)
80
+ - All shared constants in one place
81
+ - No magic numbers
82
+
83
+ ## Usage Examples
84
+
85
+ ### Basic Engine Usage
86
+
87
+ ```python
88
+ from mdb_engine import MongoDBEngine
89
+
90
+ engine = MongoDBEngine(
91
+ mongo_uri="mongodb://localhost:27017",
92
+ db_name="my_database"
93
+ )
94
+
95
+ await engine.initialize()
96
+ db = engine.get_scoped_db("my_app")
97
+ ```
98
+
99
+ ### Manifest Validation
100
+
101
+ ```python
102
+ from mdb_engine.core import ManifestValidator
103
+
104
+ validator = ManifestValidator()
105
+ is_valid, error, paths = validator.validate(manifest)
106
+ ```
107
+
108
+ ### Database Scoping
109
+
110
+ ```python
111
+ from mdb_engine.database import ScopedMongoWrapper
112
+
113
+ # All queries automatically scoped to app
114
+ db = engine.get_scoped_db("my_app")
115
+ docs = await db.collection.find({"status": "active"}).to_list(length=10)
116
+ ```
117
+
118
+ ### Observability
119
+
120
+ ```python
121
+ from mdb_engine.observability import get_metrics_collector, get_logger
122
+
123
+ # Metrics
124
+ collector = get_metrics_collector()
125
+ summary = collector.get_summary()
126
+
127
+ # Structured logging
128
+ logger = get_logger(__name__)
129
+ logger.info("Operation completed")
130
+ ```
131
+
132
+ ## API Reference
133
+
134
+ See individual module docstrings for detailed API documentation.
135
+
136
+ ## Status
137
+
138
+ ✅ **Production Ready** - All core features implemented and tested
139
+ ✅ **Code Quality** - Comprehensive test suite, type hints, observability
140
+ ✅ **Documentation** - Complete API documentation
141
+
142
+ ## License
143
+
144
+ MIT License
mdb_engine/__init__.py ADDED
@@ -0,0 +1,37 @@
1
+ """
2
+ MDB_ENGINE - MongoDB Engine
3
+
4
+ Enterprise-grade engine for building applications
5
+ with automatic database scoping, authentication, and resource management.
6
+ """
7
+
8
+ # Authentication
9
+ from .auth import AuthorizationProvider, get_current_user, require_admin
10
+ # Core MongoDB Engine
11
+ from .core import ManifestParser, ManifestValidator, MongoDBEngine
12
+ # Database layer
13
+ from .database import AppDB, ScopedMongoWrapper, get_shared_mongo_client
14
+ # Index management
15
+ from .indexes import (AsyncAtlasIndexManager, AutoIndexManager,
16
+ run_index_creation_for_collection)
17
+
18
+ __version__ = "0.1.6"
19
+
20
+ __all__ = [
21
+ # Core
22
+ "MongoDBEngine",
23
+ "ManifestValidator",
24
+ "ManifestParser",
25
+ # Database
26
+ "ScopedMongoWrapper",
27
+ "AppDB",
28
+ "get_shared_mongo_client",
29
+ # Auth
30
+ "AuthorizationProvider",
31
+ "get_current_user",
32
+ "require_admin",
33
+ # Indexes
34
+ "AsyncAtlasIndexManager",
35
+ "AutoIndexManager",
36
+ "run_index_creation_for_collection",
37
+ ]