#!/usr/bin/env node /** * Check Docker deployment status for security fixes */ console.log('=== Docker Deployment Status Check ===\n'); // Color codes const GREEN = '\x1b[32m'; const RED = '\x1b[31m'; const YELLOW = '\x1b[33m'; const RESET = '\x1b[0m'; let allGood = true; // Check SQL Security console.log('1. SQL Injection Fixes:'); try { const { sanitizeDays, escapeLikePattern } = require('../src/utils/sqlSecurity'); console.log(`${GREEN}✓${RESET} sqlSecurity.js exists`); console.log(`${GREEN}✓${RESET} Security functions available`); } catch (e) { console.log(`${RED}✗${RESET} sqlSecurity.js missing`); allGood = false; } // Check Auth Security console.log('\n2. Authentication Security:'); try { const authSec = require('../src/utils/authSecurity'); console.log(`${GREEN}✓${RESET} authSecurity.js exists`); const authEnhanced = require('../src/middleware/auth-enhanced'); console.log(`${GREEN}✓${RESET} auth-enhanced middleware exists`); const authRoutes = require('../src/routes/auth-enhanced'); console.log(`${GREEN}✓${RESET} auth-enhanced routes exist`); } catch (e) { console.log(`${YELLOW}!${RESET} Auth security files exist but not active`); } // Check Database console.log('\n3. Database Status:'); const { db } = require('../src/database/db'); async function checkDatabase() { try { // Check login_attempts table await db('login_attempts').count(); console.log(`${GREEN}✓${RESET} login_attempts table exists`); } catch (e) { console.log(`${YELLOW}!${RESET} login_attempts table not created (run migrations)`); } try { // Check admin_users columns await db('admin_users').select('password_changed_at').limit(1); console.log(`${GREEN}✓${RESET} Auth security columns exist`); } catch (e) { console.log(`${YELLOW}!${RESET} Auth security columns missing (run migrations)`); } // Close database connection await db.destroy(); } // Check server configuration console.log('\n4. Server Configuration:'); const fs = require('fs'); const serverContent = fs.readFileSync('./server.js', 'utf8'); if (serverContent.includes("require('./src/routes/auth-enhanced')")) { console.log(`${GREEN}✓${RESET} Using enhanced auth routes`); } else if (serverContent.includes("require('./src/routes/auth')")) { console.log(`${YELLOW}!${RESET} Using original auth routes (enhanced not active)`); } if (serverContent.includes('initializeCleanupJob')) { console.log(`${GREEN}✓${RESET} Auth cleanup job initialized`); } else { console.log(`${YELLOW}!${RESET} Auth cleanup job not initialized`); } // Run async checks checkDatabase().then(() => { console.log('\n=== Summary ==='); if (allGood) { console.log(`${GREEN}All security fixes are deployed!${RESET}`); } else { console.log(`${YELLOW}Some security features need activation:${RESET}`); console.log('1. Run migrations: npx knex migrate:latest'); console.log('2. Update server.js to use auth-enhanced routes'); console.log('3. Restart the container'); } });