nexus-scribe-db

Aegis-DB multi-paradigm database integration layer.

Overview

This crate provides a unified interface to Aegis-DB’s four data paradigms:

Paradigm Use Case Module
Relational Users, meetings, transcripts relational.rs
Time-series Audio metrics, system metrics timeseries.rs
Document Meeting insights, comments document.rs
Graph User networks, topic relationships graph.rs

Configuration

use nexus_scribe_db::{AegisDB, DatabaseConfig};

let config = DatabaseConfig {
    host: "localhost".to_string(),
    port: 9091,
    database: "nexusscribe".to_string(),
    username: "admin".to_string(),
    password: "secret".to_string(),
    pool_size: 10,
    timeout_secs: 30,
};

let db = AegisDB::new(config).await?;

Relational Store

CRUD operations for core entities:

// Create user
let user_id = db.relational().create_user(&CreateUserRequest {
    email: "user@example.com".to_string(),
    password_hash: hash,
    display_name: "John Doe".to_string(),
    role: UserRole::User,
}).await?;

// Find user
let user = db.relational().find_user_by_email("user@example.com").await?;

// List meetings
let meetings = db.relational().list_meetings(user_id, 20, 0).await?;

Time-series Store

Metrics and temporal data:

// Record audio quality metric
db.timeseries().insert("audio_quality", timestamp, value).await?;

// Query metrics range
let metrics = db.timeseries()
    .query("audio_quality", start_time, end_time)
    .await?;

Document Store

Flexible JSON document storage:

// Store meeting insights
db.document().set(
    "meeting_insights",
    &meeting_id.to_string(),
    json!({
        "summary": "Discussion about Q4 goals",
        "action_items": ["Review budget", "Schedule follow-up"]
    })
).await?;

// Retrieve document
let insights = db.document()
    .get("meeting_insights", &meeting_id.to_string())
    .await?;

Graph Store

Relationship queries:

// Add collaboration edge
db.graph().add_edge(user1_id, user2_id, "collaborates_with").await?;

// Find collaborators
let collaborators = db.graph()
    .neighbors(user_id, "collaborates_with")
    .await?;

Transactions

Multi-paradigm transaction support:

let tx = db.begin_transaction().await?;

// Perform operations...
db.relational().create_meeting(&request).await?;

tx.commit().await?;
// or tx.rollback().await?;

Health Check

let health = db.health_check().await?;

println!("Relational: {}", health.relational);
println!("Timeseries: {}", health.timeseries);
println!("Document: {}", health.document);
println!("Graph: {}", health.graph);
println!("Overall: {}", health.overall);

SQL Injection Prevention

The crate includes sql_escape module for safe query construction:

use nexus_scribe_db::escape_sql_string;

let safe_value = escape_sql_string(user_input);

Usage

[dependencies]
nexus-scribe-db = { path = "../nexus-scribe-db" }