LogoKalli
Database

Database Overview

Vue d'ensemble de la base de données

La plateforme utilise PostgreSQL pour stocker les documents, annotations, configurations et statistiques.

Choix techniques (Base de données)

  • PostgreSQL: robustesse, transactions, contraintes riches et extensions (JSONB, Full-Text, GIN/GIST).
  • Drizzle ORM: schémas typés, migrations explicites, DX lisible.

Périmètre et responsabilités

  • Auth: utilisateurs, sessions, tokens (apps/server/src/db/schema/auth.ts).
  • Documents: fichiers, chunks, Q&A pairs, assignations, historique des modifications (apps/server/src/db/schema/naivi.ts).
  • Tags & Rôles applicatifs: filtrage contextuel du contenu RAG par rôle d'utilisateur.
  • Index FAISS persistés: les index FAISS sont sérialisés et stockés en DB (table indexes), un par rôle applicatif. Le chatbot les charge depuis la DB au démarrage (pas de recalcul complet à chaque redémarrage).

Utilisation et intégration

  • Schémas: modifiez apps/server/src/db/schema/*.ts (auth/naivi).
  • Connexion: via apps/server/src/db/index.ts.
  • Migrations: configuration Drizzle dans apps/server/src/drizzle.config.ts (générez et appliquez selon votre flux CI/CD).
  • Accès applicatif: utilisez Drizzle dans les handlers ORPC (apps/server/src/routers/*.ts).

Personnalisation

  • Indexation: ajoutez des indexes (B-Tree, GIN) pour vos requêtes fréquentes (recherches par nom, dates, relations).
  • Intégrité: définissez clés étrangères, contraintes CHECK, UNIQUE pour garantir la qualité des données.
  • Gouvernance: chiffrement au repos côté cluster, rétention/archivage, sauvegardes/restores testés.
  • Environnements: bases séparées par environnement; appliquez les migrations et jeux de données init par env.
  • Observabilité: activez les logs de requêtes lentes et les métriques (pg_stat_statements).