Implement complete database schema and Flask application structure for SneakyScan web interface. This establishes the foundation for web-based scan management, scheduling, and visualization. Database & ORM: - Add 11 SQLAlchemy models for comprehensive scan data storage (Scan, ScanSite, ScanIP, ScanPort, ScanService, ScanCertificate, ScanTLSVersion, Schedule, Alert, AlertRule, Setting) - Configure Alembic migrations system with initial schema migration - Add init_db.py script for database initialization and password setup - Support both migration-based and direct table creation Settings System: - Implement SettingsManager with automatic encryption for sensitive values - Add Fernet encryption for SMTP passwords and API tokens - Implement PasswordManager with bcrypt password hashing (work factor 12) - Initialize default settings for SMTP, authentication, and retention Flask Application: - Create Flask app factory pattern with scoped session management - Add 4 API blueprints: scans, schedules, alerts, settings - Implement functional Settings API (GET/PUT/DELETE endpoints) - Add CORS support, error handlers, and request/response logging - Configure development and production logging to file and console Docker & Deployment: - Update Dockerfile to install Flask dependencies - Add docker-compose-web.yml for web application deployment - Configure volume mounts for database, output, and logs persistence - Expose port 5000 for Flask web server Testing & Validation: - Add validate_phase1.py script to verify all deliverables - Validate directory structure, Python syntax, models, and endpoints - All validation checks passing Documentation: - Add PHASE1_COMPLETE.md with comprehensive Phase 1 summary - Update ROADMAP.md with Phase 1 completion status - Update .gitignore to exclude database files and documentation Files changed: 21 files - New: web/ directory with complete Flask app structure - New: migrations/ with Alembic configuration - New: requirements-web.txt with Flask dependencies - Modified: Dockerfile, ROADMAP.md, .gitignore
34 lines
568 B
Plaintext
34 lines
568 B
Plaintext
# Flask Web Application Dependencies
|
|
# Phase 1: Foundation (Database, Settings, Flask Core)
|
|
|
|
# Core Flask
|
|
Flask==3.0.0
|
|
Werkzeug==3.0.1
|
|
|
|
# Database & ORM
|
|
SQLAlchemy==2.0.23
|
|
alembic==1.13.0
|
|
|
|
# Authentication & Security
|
|
Flask-Login==0.6.3
|
|
bcrypt==4.1.2
|
|
cryptography==41.0.7
|
|
|
|
# API & Serialization
|
|
Flask-CORS==4.0.0
|
|
marshmallow==3.20.1
|
|
marshmallow-sqlalchemy==0.29.0
|
|
|
|
# Background Jobs & Scheduling
|
|
APScheduler==3.10.4
|
|
|
|
# Email Support (Phase 4)
|
|
Flask-Mail==0.9.1
|
|
|
|
# Configuration Management
|
|
python-dotenv==1.0.0
|
|
|
|
# Development & Testing
|
|
pytest==7.4.3
|
|
pytest-flask==1.3.0
|