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.
- mdb_engine/README.md +144 -0
- mdb_engine/__init__.py +37 -0
- mdb_engine/auth/README.md +631 -0
- mdb_engine/auth/__init__.py +128 -0
- mdb_engine/auth/casbin_factory.py +199 -0
- mdb_engine/auth/casbin_models.py +46 -0
- mdb_engine/auth/config_defaults.py +71 -0
- mdb_engine/auth/config_helpers.py +213 -0
- mdb_engine/auth/cookie_utils.py +158 -0
- mdb_engine/auth/decorators.py +350 -0
- mdb_engine/auth/dependencies.py +747 -0
- mdb_engine/auth/helpers.py +64 -0
- mdb_engine/auth/integration.py +578 -0
- mdb_engine/auth/jwt.py +225 -0
- mdb_engine/auth/middleware.py +241 -0
- mdb_engine/auth/oso_factory.py +323 -0
- mdb_engine/auth/provider.py +570 -0
- mdb_engine/auth/restrictions.py +271 -0
- mdb_engine/auth/session_manager.py +477 -0
- mdb_engine/auth/token_lifecycle.py +213 -0
- mdb_engine/auth/token_store.py +289 -0
- mdb_engine/auth/users.py +1516 -0
- mdb_engine/auth/utils.py +614 -0
- mdb_engine/cli/__init__.py +13 -0
- mdb_engine/cli/commands/__init__.py +7 -0
- mdb_engine/cli/commands/generate.py +105 -0
- mdb_engine/cli/commands/migrate.py +83 -0
- mdb_engine/cli/commands/show.py +70 -0
- mdb_engine/cli/commands/validate.py +63 -0
- mdb_engine/cli/main.py +41 -0
- mdb_engine/cli/utils.py +92 -0
- mdb_engine/config.py +217 -0
- mdb_engine/constants.py +160 -0
- mdb_engine/core/README.md +542 -0
- mdb_engine/core/__init__.py +42 -0
- mdb_engine/core/app_registration.py +392 -0
- mdb_engine/core/connection.py +243 -0
- mdb_engine/core/engine.py +749 -0
- mdb_engine/core/index_management.py +162 -0
- mdb_engine/core/manifest.py +2793 -0
- mdb_engine/core/seeding.py +179 -0
- mdb_engine/core/service_initialization.py +355 -0
- mdb_engine/core/types.py +413 -0
- mdb_engine/database/README.md +522 -0
- mdb_engine/database/__init__.py +31 -0
- mdb_engine/database/abstraction.py +635 -0
- mdb_engine/database/connection.py +387 -0
- mdb_engine/database/scoped_wrapper.py +1721 -0
- mdb_engine/embeddings/README.md +184 -0
- mdb_engine/embeddings/__init__.py +62 -0
- mdb_engine/embeddings/dependencies.py +193 -0
- mdb_engine/embeddings/service.py +759 -0
- mdb_engine/exceptions.py +167 -0
- mdb_engine/indexes/README.md +651 -0
- mdb_engine/indexes/__init__.py +21 -0
- mdb_engine/indexes/helpers.py +145 -0
- mdb_engine/indexes/manager.py +895 -0
- mdb_engine/memory/README.md +451 -0
- mdb_engine/memory/__init__.py +30 -0
- mdb_engine/memory/service.py +1285 -0
- mdb_engine/observability/README.md +515 -0
- mdb_engine/observability/__init__.py +42 -0
- mdb_engine/observability/health.py +296 -0
- mdb_engine/observability/logging.py +161 -0
- mdb_engine/observability/metrics.py +297 -0
- mdb_engine/routing/README.md +462 -0
- mdb_engine/routing/__init__.py +73 -0
- mdb_engine/routing/websockets.py +813 -0
- mdb_engine/utils/__init__.py +7 -0
- mdb_engine-0.1.6.dist-info/METADATA +213 -0
- mdb_engine-0.1.6.dist-info/RECORD +75 -0
- mdb_engine-0.1.6.dist-info/WHEEL +5 -0
- mdb_engine-0.1.6.dist-info/entry_points.txt +2 -0
- mdb_engine-0.1.6.dist-info/licenses/LICENSE +661 -0
- 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
|
+
]
|