File size: 1,102 Bytes
1c85a69
 
 
 
 
 
 
 
 
 
 
7ef80b1
 
1c85a69
 
 
 
 
 
e47cd7f
1c85a69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""
Database configuration and connection management for MongoDB
"""
import os
from motor.motor_asyncio import AsyncIOMotorClient
from beanie import init_beanie
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

import certifi

# MongoDB Configuration
MONGODB_URL = os.getenv("MONGODB_URL", "mongodb://localhost:27017")
DB_NAME = os.getenv("DB_NAME", "sentinel_ai")

async def init_db():
    """Initialize database connection and Beanie models"""
    client = AsyncIOMotorClient(MONGODB_URL, tlsCAFile=certifi.where(), tlsAllowInvalidCertificates=True)
    database = client[DB_NAME]
    
    # Import models here to avoid circular imports
    from models import (
        Employee, 
        BehavioralEvent, 
        BehavioralFingerprint, 
        Anomaly, 
        MitreMapping, 
        MitigationStrategy
    )
    
    await init_beanie(
        database=database,
        document_models=[
            Employee,
            BehavioralEvent,
            BehavioralFingerprint,
            Anomaly,
            MitreMapping,
            MitigationStrategy
        ]
    )