Add database migration scripts and configuration files
- Add verify-migration.js script for testing database migrations - Add database config module for centralized configuration - Add chutes.txt prompt for system responses - Update database implementation and testing documentation - Add database migration and setup scripts - Update session system and LLM tool configuration - Update deployment checklist and environment example - Update Dockerfile and docker-compose configuration
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Database connection module with SQLite support
|
||||
* Uses better-sqlite3 for synchronous operations
|
||||
* Note: SQLCipher support requires special compilation, using AES-256-GCM encryption at field level instead
|
||||
* Note: SQLCipher support requires special compilation and is enabled via configuration
|
||||
*/
|
||||
|
||||
const Database = require('better-sqlite3');
|
||||
@@ -11,6 +11,10 @@ const fs = require('fs');
|
||||
let db = null;
|
||||
let dbPath = null;
|
||||
|
||||
function escapeSqliteString(value) {
|
||||
return String(value || '').replace(/'/g, "''");
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize database connection
|
||||
* @param {string} databasePath - Path to the database file
|
||||
@@ -43,6 +47,18 @@ function initDatabase(databasePath, options = {}) {
|
||||
|
||||
db = new Database(databasePath, dbOptions);
|
||||
|
||||
// SQLCipher support (optional)
|
||||
if (options.sqlcipherKey) {
|
||||
const escapedKey = escapeSqliteString(options.sqlcipherKey);
|
||||
db.pragma(`key = '${escapedKey}'`);
|
||||
if (options.cipherCompatibility) {
|
||||
db.pragma(`cipher_compatibility = ${Number(options.cipherCompatibility)}`);
|
||||
}
|
||||
if (options.kdfIter) {
|
||||
db.pragma(`kdf_iter = ${Number(options.kdfIter)}`);
|
||||
}
|
||||
}
|
||||
|
||||
// Enable WAL mode for better concurrency
|
||||
if (options.walMode !== false) {
|
||||
db.pragma('journal_mode = WAL');
|
||||
|
||||
Reference in New Issue
Block a user