v2.0.0 - Multi-User Foundation 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
secretsmodule - 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
-
Backup your database (automatic backup created, but good practice)
cp scraped_data_tui_v1.0.db scraped_data_tui_v1.0.db.manual-backup
-
Update to v2.0.0
git pull origin main git checkout v2.0.0 pip install -r requirements.txt # Includes new bcrypt dependency -
Run application - database will auto-migrate
python scrapetui.py
-
Login with default admin credentials
- Username:
admin - Password:
Ch4ng3M3
- Username:
-
⚠️ IMMEDIATELY change admin password (Ctrl+U → Change Password) -
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 bcryptNew 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
- README: Full feature documentation
- CHANGELOG: Detailed version history
- Security Audit: Security evaluation
- Development Progress: v2.0.0 development history
🙏 Acknowledgments
Thanks to all contributors and testers who helped make v2.0.0 possible!
Development Tools:
- Claude Code - AI-assisted development
- Textual - Modern Python TUI framework
- pytest - Comprehensive testing framework
📄 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