Gestionnaire de Connexions
Répertoire centralisé et sécurisé pour toutes vos bases de données — PostgreSQL, MySQL, Oracle. Chiffrement AES-256, monitoring en temps réel et introspection automatique du schéma.
Vue d'ensemble
Le Gestionnaire de Connexions est l'espace centralisé où vous connectez, gérez et surveillez toutes vos bases de données depuis une interface unique. Les identifiants ne transitent jamais en clair et sont chiffrés dès la saisie.
Ajout d'une Connexion
Saisie des Informations
Test de Connexion en Direct
/api/database/ping et retourne la latence et la version du moteur.Introspection du Schéma
/api/database/schemapour l'injection RAG dans le Smart Terminal.Disponible dans Tous les Modules
// Route POST /api/connections
// Stocke la connexion avec credentials chiffrés AES-256
const connectionProfile = {
name: "Production PostgreSQL",
db_type: "postgres", // "postgres" | "mysql" | "oracle"
host: "db.example.com",
port: 5432,
database_name: "myapp_prod",
user_name: "readonly_user",
password_encrypted: encrypt(rawPassword), // AES-256 immédiat
project_id: "uuid-du-projet",
};
// Test ping : /api/database/ping
// Résultat :
// { online: true, latency: 24, version: "PostgreSQL 15.2 on x86_64" }Sécurité des Credentials
La sécurité des identifiants de connexion est la priorité absolue du module. Plusieurs couches de protection garantissent que vos credentials ne sont jamais exposés.
Introspection Automatique du Schéma
Dès qu'une connexion est active, DIXX lit automatiquement le schéma complet de la base via schema-extractor.ts. Ce schéma est injecté dans le contexte de l'IA (RAG) pour permettre des requêtes contextualisées.
// src/lib/schema-extractor.ts — Introspection PostgreSQL
// Lecture : tables, colonnes, types, clés étrangères, index
const schema = {
tables: [
{
name: "customers",
columns: [
{ name: "id", type: "uuid", nullable: false, primary: true },
{ name: "email", type: "varchar", nullable: false, unique: true },
{ name: "created_at", type: "timestamp", nullable: false },
],
foreign_keys: [],
indexes: ["customers_email_idx", "customers_pkey"],
row_count: 15420,
},
{
name: "orders",
columns: [/* ... */],
foreign_keys: [{ column: "customer_id", references: "customers.id" }],
}
],
total_tables: 12,
database_size_mb: 245.8,
};
// Ce schéma est injecté dans le contexte LLM :
// system: "Database schema: " + JSON.stringify(schema)Métriques de Performance
La route /api/database/metrics collecte des indicateurs de performance pour chaque connexion active — temps de réponse moyen, charge, requêtes actives.
Architecture des Connecteurs
Les connecteurs sont implémentés dans src/lib/db-connectors/ avec une interface commune abstraite pour PostgreSQL, MySQL et Oracle.
// src/lib/db-connectors/index.ts
export type DatabaseType = "postgres" | "mysql" | "oracle";
export class ConnectionFactory {
static createConnector(config: {
type: DatabaseType;
host: string;
port?: number;
database: string;
user: string;
password: string;
}): DatabaseConnector {
switch (config.type) {
case "postgres": return new PostgreSQLConnector(config);
case "mysql": return new MySQLConnector(config);
case "oracle": return new OracleConnector(config);
default: throw new Error(`Unsupported database type: ${config.type}`);
}
}
}
// Interface commune pour tous les connecteurs
interface DatabaseConnector {
query(sql: string, params?: unknown[]): Promise;
disconnect(): Promise;
}