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:
@@ -35,6 +35,8 @@ Use this checklist when deploying the secure database implementation to producti
|
||||
```bash
|
||||
# 1. Set environment variables
|
||||
export DATABASE_ENCRYPTION_KEY=<your-64-char-hex-key>
|
||||
export DATABASE_USE_SQLCIPHER=1
|
||||
export DATABASE_KEY_FILE=/home/web/data/.data/.encryption_key
|
||||
export JWT_SECRET=<your-64-char-hex-key>
|
||||
|
||||
# 2. Deploy container
|
||||
@@ -71,9 +73,9 @@ docker logs shopify-ai-builder | grep "JSON"
|
||||
# 4. Run migration inside container
|
||||
docker exec shopify-ai-builder node /opt/webchat/scripts/migrate-to-database.js
|
||||
|
||||
# 5. Verify migration results
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "SELECT COUNT(*) FROM users;"
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "SELECT COUNT(*) FROM sessions;"
|
||||
# 5. Verify migration results (SQLCipher)
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; SELECT COUNT(*) FROM users;"
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; SELECT COUNT(*) FROM sessions;"
|
||||
|
||||
# 6. Switch to database mode
|
||||
export USE_JSON_DATABASE=0
|
||||
@@ -103,13 +105,13 @@ docker logs shopify-ai-builder | grep -v "JSON"
|
||||
|
||||
### 2. Smoke Tests
|
||||
```bash
|
||||
# Test database access
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db ".tables"
|
||||
# Test database access (SQLCipher)
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; .tables"
|
||||
|
||||
# Count records
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "SELECT COUNT(*) FROM users;"
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "SELECT COUNT(*) FROM sessions;"
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "SELECT COUNT(*) FROM audit_log;"
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; SELECT COUNT(*) FROM users;"
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; SELECT COUNT(*) FROM sessions;"
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; SELECT COUNT(*) FROM audit_log;"
|
||||
|
||||
# Check encryption keys
|
||||
docker exec shopify-ai-builder test -f /home/web/data/.data/.encryption_key && echo "Encryption key exists"
|
||||
@@ -138,9 +140,9 @@ docker exec shopify-ai-builder ls -l /home/web/data/.data/
|
||||
# Verify database is encrypted (should see binary data)
|
||||
docker exec shopify-ai-builder head -c 100 /home/web/data/.data/shopify_ai.db | od -c
|
||||
|
||||
# Check audit log
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db \
|
||||
"SELECT event_type, COUNT(*) FROM audit_log GROUP BY event_type;"
|
||||
# Check audit log (SQLCipher)
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db \
|
||||
"PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; SELECT event_type, COUNT(*) FROM audit_log GROUP BY event_type;"
|
||||
```
|
||||
|
||||
**Checklist:**
|
||||
@@ -263,15 +265,15 @@ docker exec shopify-ai-builder cp -r /home/web/data/.data/migration_backup_*/* /
|
||||
|
||||
### Performance Issues
|
||||
```bash
|
||||
# Check WAL mode
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "PRAGMA journal_mode;"
|
||||
# Check WAL mode (SQLCipher)
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; PRAGMA journal_mode;"
|
||||
|
||||
# Check database size
|
||||
docker exec shopify-ai-builder du -h /home/web/data/.data/shopify_ai.db
|
||||
|
||||
# Vacuum database if needed (offline)
|
||||
docker stop shopify-ai-builder
|
||||
docker exec shopify-ai-builder sqlite3 /home/web/data/.data/shopify_ai.db "VACUUM;"
|
||||
docker exec shopify-ai-builder sqlcipher /home/web/data/.data/shopify_ai.db "PRAGMA key = '$DATABASE_ENCRYPTION_KEY'; VACUUM;"
|
||||
docker start shopify-ai-builder
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user