mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-01-11 14:17:43 -06:00
- Add AUTH_METHOD switch (local | oidc | both); default remains local - Update login UI to conditionally show SSO button and/or local form - Add Authlib and initialize OAuth client (discovery-based) in app factory - Implement OIDC Authorization Code flow with PKCE: - GET /login/oidc → starts auth flow, preserves `next` - GET /auth/oidc/callback → exchanges code, parses ID token, fetches userinfo - Maps claims to username/full_name/email; admin mapping via group/email - Logs user in and redirects to intended page - Add optional OIDC end-session on logout (falls back gracefully if unsupported) - Extend User model with `email`, `oidc_issuer`, `oidc_sub` and unique constraint - Add Alembic migration 015 (adds columns, index, unique constraint) - Update env.example with OIDC variables and AUTH_METHOD - Add docs/OIDC_SETUP.md with provider-agnostic setup guide and examples - fix: remove invalid walrus usage in OIDC client registration Migration: - Run database migrations (e.g., `flask db upgrade`) to apply revision 015 Config: - AUTH_METHOD=local|oidc|both - OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_REDIRECT_URI - OIDC_SCOPES (default: "openid profile email") - OIDC_USERNAME_CLAIM, OIDC_FULL_NAME_CLAIM, OIDC_EMAIL_CLAIM, OIDC_GROUPS_CLAIM - OIDC_ADMIN_GROUP (optional), OIDC_ADMIN_EMAILS (optional) - OIDC_POST_LOGOUT_REDIRECT_URI (optional) Routes: - /login (respects AUTH_METHOD), /login/oidc, /auth/oidc/callback, /logout Docs: - See docs/OIDC_SETUP.md for full setup, provider notes, and troubleshooting
TimeTracker Documentation
Welcome to the TimeTracker documentation. This directory contains comprehensive documentation for all aspects of the application.
📚 Documentation Index
🚀 Getting Started
- README.md - Main project overview and quick start guide
- REQUIREMENTS.md - System requirements and dependencies
- PROJECT_STRUCTURE.md - Detailed project architecture
🐳 Docker & Deployment
- DOCKER_PUBLIC_SETUP.md - Public Docker deployment guide
- DOCKER_STARTUP_TROUBLESHOOTING.md - Docker troubleshooting
- SOLUTION_GUIDE.md - Common problems and solutions
- GITHUB_WORKFLOW_IMAGES.md - Images built on releases and main
🔧 Features
- TASK_MANAGEMENT.md - Task management system overview
- TASK_MANAGEMENT_README.md - Detailed task management guide
- CLIENT_MANAGEMENT_README.md - Client model and relationships
- INVOICE_FEATURE_README.md - Invoice system documentation
- ENHANCED_INVOICE_SYSTEM_README.md - Advanced invoice features
- INVOICE_INTERFACE_IMPROVEMENTS.md - Invoice UI improvements
- Analytics and reporting features (see the Reports section in the app)
- MOBILE_IMPROVEMENTS.md - Mobile interface enhancements
🛠️ Technical Details
- LOGO_UPLOAD_SYSTEM_README.md - Logo upload functionality
- LOGO_UPLOAD_IMPLEMENTATION_SUMMARY.md - Logo system implementation
- PDF_GENERATION_TROUBLESHOOTING.md - PDF generation issues and fixes
📋 Project Guidelines
- CODE_OF_CONDUCT.md - Community guidelines
- CONTRIBUTING.md - How to contribute to the project
- GITHUB_WORKFLOW_IMAGES.md - GitHub workflow documentation
🔍 Quick Navigation
For New Users
- Start with the main README.md
- Check REQUIREMENTS.md for system requirements
- Review PROJECT_STRUCTURE.md for architecture overview
For Developers
- Read CONTRIBUTING.md for contribution guidelines
- Review feature-specific documentation for areas you're working on
- Check SOLUTION_GUIDE.md for common issues
For Deployment
- Review DOCKER_PUBLIC_SETUP.md for Docker deployment
- Check DOCKER_STARTUP_TROUBLESHOOTING.md if you encounter issues
- See SOLUTION_GUIDE.md for deployment solutions
📝 Documentation Structure
All documentation files are organized by category and purpose:
- Feature Documentation: Explains specific application features
- Technical Guides: Implementation details and technical information
- Deployment Guides: Setup and deployment instructions
- Troubleshooting: Common issues and their solutions
- Project Guidelines: Community and contribution guidelines
🤝 Contributing to Documentation
If you find errors or want to improve the documentation:
- Check the CONTRIBUTING.md guidelines
- Make your changes
- Submit a pull request
Good documentation helps everyone use and contribute to the project effectively!