Skip to content

v2.0.0 - Multi-User Foundation Release

Choose a tag to compare

@doublegate doublegate released this 03 Oct 06:03
· 64 commits to main since this release

WebScrape-TUI v2.0.0 - Multi-User Foundation

🎉 Major Release: Multi-User Authentication & Data Isolation

This release transforms WebScrape-TUI into a secure multi-user application with comprehensive authentication, role-based access control, and data isolation features.


✨ New Features

Phase 1: Authentication Foundation

  • ✅ Secure user authentication with bcrypt password hashing (cost factor 12)
  • ✅ Session-based access control with 24-hour cryptographic tokens (256-bit)
  • ✅ User login/logout system with automatic session validation
  • ✅ Password change functionality with validation
  • ✅ Automatic database migration from v1.x with backup creation

Phase 2: User Management UI

  • ✅ LoginModal - Application startup authentication with password masking
  • ✅ UserProfileModal - View/edit profile (Ctrl+U)
  • ✅ ChangePasswordModal - Secure password change workflow
  • ✅ UserManagementModal - Admin-only user administration (Ctrl+Alt+U)
  • ✅ CreateUserModal & EditUserModal - User CRUD operations
  • ✅ Role-based access control (Admin, User, Viewer)

Phase 3: Data Isolation & Sharing

  • ✅ Data isolation - Users see only own articles (admins see all)
  • ✅ Scraper isolation - Users see own + shared scrapers
  • ✅ Sharing toggle - Share scraper profiles with all users
  • ✅ Visual indicators - [P] preinstalled, [S] shared
  • ✅ Permission enforcement - Delete/edit protection based on ownership
  • ✅ Filter presets - Save/load filter configurations (Ctrl+Shift+F/S)

📊 Test Coverage

  • Total Tests: 366 (100% pass rate)
  • CI/CD: Operational on Python 3.11 & 3.12
  • New Tests: 81 comprehensive multi-user tests
    • Phase 1: 25 authentication tests
    • Phase 2: 33 UI and RBAC tests
    • Phase 3: 23 data isolation tests

🔐 Security

Security Audit Status: ✅ APPROVED FOR RELEASE

  • Bcrypt password hashing (4,096 rounds)
  • Cryptographically secure session tokens (256-bit)
  • SQL injection prevention (100% parameterized queries)
  • Permission enforcement on all mutations
  • Data isolation and privacy controls
  • Comprehensive test coverage for security paths

Security Highlights:

  • All passwords hashed with industry-standard bcrypt
  • Session tokens generated with Python secrets module
  • No passwords in logs or error messages
  • Generic error messages prevent username enumeration
  • Foreign key constraints ensure data integrity

See: docs/SECURITY-AUDIT.md for full audit report


⚡ Performance

Performance Metrics (Verified):

  • Article queries: <100ms (1000+ articles, 10 users)
  • Scraper loading: <50ms (50+ profiles)
  • Session validation: <10ms (100 active sessions)
  • Complex queries: <200ms (JOINs with filtering)

See: tests/test_performance.py for performance test suite


⚠️ Breaking Changes

Database Migration Required

  • v1.x databases are automatically migrated with backup creation
  • Backup location: scraped_data_tui_v1.0.db.backup-v1
  • Migration process: Automatic on first v2.0.0 run
  • Rollback: Restore from backup file if needed

Login Required

  • Application now requires authentication on startup
  • No anonymous access in v2.0.0
  • Exit on login cancel (cannot use app without login)

Default Admin Credentials

  • Username: admin
  • Password: Ch4ng3M3
  • ⚠️ CRITICAL: Change admin password immediately after first login!
  • How: Press Ctrl+U → Change Password

📝 Migration Guide

Upgrading from v1.x

  1. Backup your database (automatic backup created, but good practice)

    cp scraped_data_tui_v1.0.db scraped_data_tui_v1.0.db.manual-backup
  2. Update to v2.0.0

    git pull origin main
    git checkout v2.0.0
    pip install -r requirements.txt  # Includes new bcrypt dependency
  3. Run application - database will auto-migrate

    python scrapetui.py
  4. Login with default admin credentials

    • Username: admin
    • Password: Ch4ng3M3
  5. ⚠️ IMMEDIATELY change admin password (Ctrl+U → Change Password)

  6. Create additional user accounts (Ctrl+Alt+U)

Fresh Installation

# Clone repository
git clone https://github.com/doublegate/WebScrape-TUI.git
cd WebScrape-TUI
git checkout v2.0.0

# Install dependencies
pip install -r requirements.txt

# Run application
python scrapetui.py

# Login with default credentials and change password immediately

🚀 What's Next

Future releases will focus on:

  • Enhanced data sharing features (article sharing, collections)
  • Collaborative tagging and commenting
  • Activity logging and audit trails
  • User quotas and API rate limiting
  • Password reset functionality
  • Two-factor authentication (2FA)

📦 Installation

Requirements

  • Python 3.8+
  • Terminal with Unicode support
  • SQLite3 (included with Python)

Dependencies

pip install textual requests beautifulsoup4 lxml bcrypt

New in v2.0.0: bcrypt dependency for password hashing

Optional Dependencies (AI features)

pip install google-generativeai openai anthropic spacy scikit-learn gensim
python -m spacy download en_core_web_sm

📚 Documentation


🙏 Acknowledgments

Thanks to all contributors and testers who helped make v2.0.0 possible!

Development Tools:


📄 License

MIT License - See LICENSE file for details


Full Changelog: https://github.com/doublegate/WebScrape-TUI/blob/v2.0.0/CHANGELOG.md

🤖 Generated with Claude Code