Commit Graph

109 Commits

Author SHA1 Message Date
Matt c12b88072f fixes
Build And Push Image / docker (push) Successful in 3m16s Details
2025-08-11 16:12:02 +02:00
Matt f4044c4477 Add unique member ID generation to registration process
Build And Push Image / docker (push) Successful in 3m25s Details
- Generate and store unique member IDs during user registration
- Update email templates to include formatted member ID and registration date
- Add member_id field mapping in NocoDB utility functions
- Enhance email service with better logging and template data handling
2025-08-11 16:05:24 +02:00
Matt f1a462094a Add payment date selection for dues payments and improve member viewing
Build And Push Image / docker (push) Successful in 3m23s Details
- Add payment date dialog when marking dues as paid with date validation
- Replace direct member view emission with dedicated ViewMemberDialog component
- Add backend support for custom payment dates in mark-dues-paid endpoint
- Prevent future date selection for payment records
- Improve user workflow for viewing and editing member details
2025-08-11 15:41:33 +02:00
Matt abf6ade8cd Add comprehensive dues tracking with overdue calculations and enhanced UI
Build And Push Image / docker (push) Successful in 3m17s Details
2025-08-11 15:29:42 +02:00
Matt 7a8c88c341 Implement grace period system for member dues management
Build And Push Image / docker (push) Successful in 2m55s Details
- Add grace period logic for new members (1 month from join date)
- Enhance dues status computation with actual payment date validation
- Update member card to show grace period status with warning indicators
- Remove overdue dues banner from member list
- Add payment due date calculation in registration process
- Update email templates for improved member communication
2025-08-11 15:03:44 +02:00
Matt d9ef5bbdeb feat: Enhanced dues overdue system with detailed time tracking
Build And Push Image / docker (push) Successful in 2m42s Details
- Enhanced update-overdue-statuses API to calculate and return specific overdue durations (years/months)
- Updated overdue-count API to provide detailed member information with overdue durations
- Enhanced DuesOverdueBanner component to display expandable list of overdue members with their specific overdue time
- Added automatic marking of members as inactive when dues are over 1 year overdue
- Improved UI to show 'Dues Overdue - X Members Affected' with detailed breakdown
- Members with overdue dues now display exact time overdue (e.g., '2 years 3 months overdue')
- Added proper TypeScript interfaces for overdue member data
- Enhanced banner shows inactive status and overdue duration for each affected member
2025-08-10 23:42:17 +02:00
Matt ff85d1c722 Add overdue dues management system with notifications and status updates
Build And Push Image / docker (push) Successful in 2m55s Details
- Create DuesOverdueBanner component for displaying overdue member counts
- Add API endpoints for overdue count retrieval and status updates
- Integrate overdue dues banner into admin and member list dashboards
- Implement handlers for viewing overdue members and updating statuses
- Add dues management section to admin dashboard
2025-08-10 23:29:48 +02:00
Matt d3c3a865ba Add dues management system with UI improvements
Build And Push Image / docker (push) Successful in 3m3s Details
- Add BoardDuesManagement and DuesActionCard components
- Create API endpoints for dues status tracking and payment marking
- Integrate dues management section into board dashboard
- Move create portal account button to member card action buttons
- Add edit button to member view dialog
- Implement member update handlers and navigation between views
2025-08-10 23:19:48 +02:00
Matt ecae3795ee Add global branding and implement member ID system
Build And Push Image / docker (push) Successful in 3m2s Details
- Add MonacoUSA logo component with global header placement
- Implement member ID generation and migration system
- Create profile page and improve dashboard navigation
- Add member ID as payment reference in dues banner
- Enable support contact functionality with pre-filled email
2025-08-10 16:49:23 +02:00
Matt 62be77ec34 Add circuit breaker pattern to email verification system
Build And Push Image / docker (push) Successful in 2m53s Details
Implement rate limiting and attempt tracking to prevent verification abuse and infinite reload loops. Add temporary blocking with clear user feedback, enhanced error states, and retry logic. Includes new verification state utilities and improved UI components for better user experience during blocked states.
2025-08-10 15:48:11 +02:00
Matt 623ad9c3fd Refactor email verification to use JSON responses instead of redirects
Build And Push Image / docker (push) Successful in 2m54s Details
- Replace server-side redirects with JSON API responses for better error handling
- Add support for partial success when Keycloak update fails but token is valid
- Improve error messages with specific status codes (410 for expired, 409 for already used)
- Extract email from API response instead of URL query parameters
- Enable client-side navigation with proper error state management
2025-08-09 19:40:04 +02:00
Matt d14008efd4 Add password setup flow with server-side validation
Build And Push Image / docker (push) Successful in 3m2s Details
- Replace external password setup link with internal navigation
- Add comprehensive password validation utility with strength requirements
- Create dedicated password setup page and API endpoint
- Streamline user flow from email verification to password creation
2025-08-09 19:11:54 +02:00
Matt 09773f9571 Looking at the changes, this commit primarily focuses on fixing a critical mobile Safari issue with the country dropdown selector. Here's my suggested commit message:
Build And Push Image / docker (push) Successful in 3m0s Details
```
Fix mobile Safari country dropdown with touch-optimized dialog interface

- Replace broken v-select with mobile-friendly dialog for Safari
- Add device detection to switch between desktop and mobile interfaces
- Implement full-screen country selection with search functionality
- Add touch-optimized UI with larger targets and smooth scrolling
- Update documentation with fix details and implementation notes
```

The main change is addressing a completely broken country selection dropdown on mobile Safari by implementing a mobile-specific dialog interface while maintaining the original desktop experience.
2025-08-09 18:53:26 +02:00
Matt 358e9c0ad1 Add Keycloak integration support
Build And Push Image / docker (push) Successful in 2m59s Details
- Update domain configuration to portal subdomain with HTTPS
- Add keycloak_id field to member creation and update operations
- Add API endpoint for linking Keycloak accounts to existing members
2025-08-09 18:22:34 +02:00
Matt 794b6a09f0 Fix email verification domain and membership fee amount
Build And Push Image / docker (push) Successful in 3m7s Details
- Update domain config to use portal.monacousa.org for verification links
- Correct membership fee from €50 to €150/year in welcome emails
- Add password setup link to verification success page
- Include registration date in welcome email template
2025-08-09 18:10:33 +02:00
Matt a4e8231a3b fixes
Build And Push Image / docker (push) Successful in 2m54s Details
2025-08-09 17:48:03 +02:00
Matt c13ef30f69 fixes
Build And Push Image / docker (push) Successful in 3m1s Details
2025-08-09 17:43:15 +02:00
Matt df1ff15975 Enhance member deletion and implement template-based email system
Build And Push Image / docker (push) Successful in 2m50s Details
- Add Keycloak user deletion to member removal process
- Implement Handlebars email templates for verification, password reset, and dues reminders
- Improve JWT secret configuration with multiple fallbacks
- Add getMemberById function and enhance error handling
- Update Dockerfile to include email templates in production build
2025-08-09 17:36:35 +02:00
Matt bff89bd89d Add JWT configuration and improve email error handling
Build And Push Image / docker (push) Successful in 2m51s Details
- Add jwtSecret to runtime config with fallback to sessionSecret
- Enhance email error tracking in portal account creation API
- Fix jsonwebtoken imports and improve type safety
- Include detailed email error information in API responses
2025-08-09 16:55:59 +02:00
Matt 97653b7307 Preserve masked credentials in admin config updates
Build And Push Image / docker (push) Successful in 2m54s Details
Handle masked sensitive fields (passwords/secrets) in reCAPTCHA and SMTP
configuration endpoints. When the frontend sends masked values (bullets),
preserve existing credentials instead of overwriting them. This prevents
accidental credential loss when updating other configuration fields.

- Check for masked placeholder values ('••••••••••••••••')
- Preserve existing secretKey/password when masked
- Add logging to track credential update actions
2025-08-09 16:41:33 +02:00
Matt c4a0230f42 Fix portal account creation and improve email handling
Build And Push Image / docker (push) Successful in 2m56s Details
- Add explicit POST method to portal account creation API call
- Improve error handling with specific messages for different failure cases
- Remove SMTP verification step that was causing issues with some servers
- Make email sending non-critical to portal account creation success
- Add better response data handling for keycloak_id
- Add integration review documentation
2025-08-09 16:13:52 +02:00
Matt 8d872f9a04 Refactor admin dashboard and fix mobile phone input dropdown
Build And Push Image / docker (push) Successful in 2m54s Details
- Simplify admin dashboard by consolidating configuration sections
- Fix mobile dropdown display issues in PhoneInputWrapper component
- Add proper flex layout and minimum height for mobile country list
- Update email configuration and testing functionality
- Remove redundant configuration cards in favor of unified portal settings
2025-08-09 16:05:00 +02:00
Matt dcb7840825 Make email service initialization asynchronous
Build And Push Image / docker (push) Successful in 3m10s Details
Convert getEmailService() to async function and update all callers to use await.
Replace synchronous require() with dynamic import() for admin-config module.
Add SMTP config loading to admin configuration dialog.
2025-08-09 15:50:54 +02:00
Matt 4ec05e29dc Add email verification system for user registration
Build And Push Image / docker (push) Successful in 3m1s Details
- Add SMTP configuration UI in admin panel with test functionality
- Implement email verification workflow with tokens and templates
- Add verification success/expired pages for user feedback
- Include nodemailer, handlebars, and JWT dependencies
- Create API endpoints for email config, testing, and verification
2025-08-08 22:51:14 +02:00
Matt 7d9f895ca6 fully functional, production-ready member registration system that works flawlessly across all platforms and provides a professional user experience
Build And Push Image / docker (push) Successful in 3m8s Details
2025-08-08 22:04:53 +02:00
Matt 15dd090d44 fixes
Build And Push Image / docker (push) Successful in 3m7s Details
2025-08-08 21:52:21 +02:00
Matt aed8dc68fc fixes recaptcha
Build And Push Image / docker (push) Successful in 3m12s Details
2025-08-08 21:10:00 +02:00
Matt 5535b7905d #### __1. Role-Based Security Architecture__
Build And Push Image / docker (push) Successful in 2m58s Details
- Replaces group-based tiers with proper Keycloak realm roles
- `monaco-user`, `monaco-board`, `monaco-admin` roles
- Backward compatibility with existing group system

#### __2. Advanced User Management__

- Comprehensive user profile synchronization
- Membership data stored in Keycloak user attributes
- Bidirectional sync between NocoDB and Keycloak

#### __3. Session Security & Monitoring__

- Real-time session tracking and management
- Administrative session control capabilities
- Enhanced security analytics foundation

#### __4. Email Workflow System__

- Multiple email types: DUES_REMINDER, MEMBERSHIP_RENEWAL, WELCOME, VERIFICATION
- Customizable email parameters and lifespans
- Advanced email template support

#### __5. Seamless Migration Path__

- All existing functionality continues to work
- New users automatically get realm roles
- Gradual migration from groups to roles
- Zero breaking changes

### 🔧 __What You Can Do Now__

#### __For New Users:__

- Public registrations automatically assign `monaco-user` role
- Portal account creation syncs member data to Keycloak attributes
- Enhanced email verification and welcome workflows

#### __For Administrators:__

- Session management and monitoring capabilities
- Advanced user profile management with member data sync
- Comprehensive role assignment and management
- Enhanced email communication workflows

#### __For Developers:__

- Use `hasRole('monaco-admin')` for role-based checks
- Access `getAllRoles()` for debugging and analytics
- Enhanced `useAuth()` composable with backward compatibility
- Comprehensive TypeScript support throughout

### 🛡️ __Security & Reliability__

- __Backward Compatibility__: Existing users continue to work seamlessly
- __Enhanced Security__: Proper realm role-based authorization
- __Error Handling__: Comprehensive error handling and fallbacks
- __Type Safety__: Full TypeScript support throughout the system
2025-08-08 19:40:13 +02:00
Matt b308b8272c updates to database schema
Build And Push Image / docker (push) Successful in 2m50s Details
2025-08-08 18:32:46 +02:00
Matt 9f9cb7db53 comprehensive diagnostic and fix system for the "undefined" member display issue
Build And Push Image / docker (push) Successful in 2m49s Details
2025-08-07 23:57:18 +02:00
Matt 3f81d0dd86 fixed the member creation functionality that was failing with validation errors. Here's what I accomplished
Build And Push Image / docker (push) Successful in 2m52s Details
2025-08-07 23:44:28 +02:00
Matt dcce2050ee resolved all member management issues, including the critical member creation bug.
Build And Push Image / docker (push) Failing after 2m36s Details
2025-08-07 23:13:31 +02:00
Matt 863ad9abe7 fixed both the member edit display issue and the flag positioning problems in the nationality input
Build And Push Image / docker (push) Successful in 2m53s Details
2025-08-07 23:05:46 +02:00
Matt d36209818a Migrate member fields to snake_case naming convention
Build And Push Image / docker (push) Successful in 3m11s Details
Convert field names from space-separated format to snake_case across
member API endpoints and validation logic. Add migration guide for
reference.
2025-08-07 21:50:02 +02:00
Matt 22a74c6b33 Refactor NocoDB settings to support dynamic table configuration and update related validation
Build And Push Image / docker (push) Successful in 3m13s Details
2025-08-07 20:43:39 +02:00
Matt d0d7a34ae7 Enhance encryption methods in admin configuration to use AES-256-GCM with key derivation
Build And Push Image / docker (push) Successful in 3m6s Details
2025-08-07 20:23:18 +02:00
Matt ce0cbdc980 Implement dynamic admin configuration system for NocoDB settings
Build And Push Image / docker (push) Successful in 3m15s Details
- Add new admin-config utility for persistent configuration management
- Replace hardcoded runtime config with dynamic configuration retrieval
- Enable admin panel to save and apply NocoDB settings immediately
- Add dynamic table ID resolution with fallback to defaults
- Update configuration endpoints to use new persistence system
2025-08-07 20:18:28 +02:00
Matt 6f2037e01c Add NocoDB configuration settings and restructure dashboard navigation
Build And Push Image / docker (push) Successful in 3m2s Details
- Add NocoDBSettingsDialog component with API endpoints for config management
- Update dashboard navigation routes and menu structure
- Integrate external user management via auth portal
- Add NocoDB settings dialog to admin panel
2025-08-07 19:46:27 +02:00
Matt af99ea48e2 Add member management system with NocoDB integration
Build And Push Image / docker (push) Successful in 3m5s Details
- Add member CRUD operations with API endpoints
- Implement member list page with card-based layout
- Add member creation and viewing dialogs
- Support multiple nationalities with country flags
- Include phone number input with international formatting
- Integrate NocoDB as backend database
- Add comprehensive member data types and utilities
2025-08-07 19:20:29 +02:00
Matt c84442433f Refactor password reset to use dedicated Keycloak admin client
Build And Push Image / docker (push) Successful in 2m55s Details
- Add Keycloak admin credentials configuration to environment variables
- Extract Keycloak admin operations into reusable utility module
- Refactor forgot-password endpoint to use new admin client utility
- Add documentation for Keycloak custom login implementation
- Add password reset fix summary documentation

This improves code organization by separating admin operations from
business logic and provides proper admin credentials for Keycloak
API operations instead of using regular client credentials.
2025-08-07 17:50:09 +02:00
Matt 2843bcf4f5 Fix iOS Safari auth loops and simplify admin dashboard
Build And Push Image / docker (push) Successful in 3m4s Details
- Add session check throttling in useAuth to prevent iOS Safari authentication loops
- Simplify admin dashboard by removing complex system metrics and stats
- Remove system-metrics utility and streamline stats API endpoint
- Update admin interface to focus on core user and role management
2025-08-07 16:20:05 +02:00
Matt 146b3c9400 feat: enhance mobile compatibility and debugging across authentication and system metrics
Build And Push Image / docker (push) Successful in 3m18s Details
2025-08-07 16:08:39 +02:00
Matt ec6958375c Add system monitoring with real-time metrics to admin dashboard
Build And Push Image / docker (push) Successful in 2m54s Details
- Add systeminformation package for system metrics collection
- Create system-metrics utility for CPU, memory, disk monitoring
- Update admin stats API to return real system health data
- Replace mock data with live system metrics in admin dashboard
- Update @vite-pwa/nuxt to v0.10.8
2025-08-07 15:51:16 +02:00
Matt d0c9c02bf9 Add PWA support with install banner and app icons
Build And Push Image / docker (push) Successful in 2m56s Details
- Configure @vite-pwa/nuxt module with manifest and service worker
- Add PWA install banner component to login page
- Include app icons (192x192, 512x512) and favicon assets
- Update admin dashboard layout and remove backup section
- Add PWA-related API endpoints and utility scripts
2025-08-07 15:46:17 +02:00
Matt 91cbffe189 Clean up authentication troubleshooting artifacts
Build And Push Image / docker (push) Successful in 3m1s Details
- Remove debug files: debug-login.js, LOGIN_FIX_SUMMARY.md, CUSTOM_LOGIN_IMPLEMENTATION.md
- Remove sequential-thinking directory (temporary MCP setup)
- Clean up verbose console logging in auth middleware
- Reduce debug output in direct login API while keeping essential logs
- Streamline session management logging
- Update .gitignore to prevent future debug file commits
- Maintain essential error logging and security logs

All authentication functionality remains intact and working.
2025-08-07 15:14:02 +02:00
Matt af4fae6378 feat: implement server-side session management with session ID storage and cleanup
Build And Push Image / docker (push) Successful in 2m51s Details
2025-08-07 14:16:54 +02:00
Matt fe5aed075f fix: update SameSite cookie attribute to 'none' for cross-site requests
Build And Push Image / docker (push) Successful in 2m45s Details
2025-08-07 14:10:33 +02:00
Matt eef81d7409 fix: enforce secure cookie setting for session management
Build And Push Image / docker (push) Successful in 2m47s Details
2025-08-07 14:05:14 +02:00
Matt 98ef466022 feat: improve login process with enhanced session handling and error management
Build And Push Image / docker (push) Successful in 2m55s Details
2025-08-07 13:51:13 +02:00
Matt 1b2ce79919 feat: enhance login process with session data retrieval and role extraction
Build And Push Image / docker (push) Successful in 3m5s Details
2025-08-07 13:37:54 +02:00
Matt cbaedeb0a8 fix: resolve login redirect failures by removing cookie domain and implementing session data encryption
Build And Push Image / docker (push) Successful in 3m9s Details
2025-08-07 13:01:39 +02:00
Matt 2c545dcaaa Fix login authentication flow and improve proxy configuration
Build And Push Image / docker (push) Successful in 2m50s Details
- Refactor login page to use auth composable for better state management
- Update nginx proxy settings with proper timeouts and buffering
- Improve PWA service worker caching strategy for API calls
- Add debug files and documentation for login troubleshooting
2025-08-07 12:55:15 +02:00
Matt 57428f437c feat: enhance session cookie handling with domain configuration and expiration settings
Build And Push Image / docker (push) Successful in 2m52s Details
2025-08-07 12:45:14 +02:00
Matt cd29123e23 Refactor authentication system with tier-based access control
Build And Push Image / docker (push) Successful in 2m59s Details
- Replace group-based auth with user/board/admin tier system
- Add direct login functionality alongside OAuth
- Implement role-based middleware for route protection
- Create dashboard pages and admin API endpoints
- Add error handling page and improved user management
- Maintain backward compatibility with legacy role methods
2025-08-07 12:28:41 +02:00
Matt 2c2c0f5c33 feat: implement custom login system with direct authentication
Build And Push Image / docker (push) Successful in 2m51s Details
- Add custom login page with username/password form and SSO fallback
- Implement direct login API endpoint with security features
- Add forgot password functionality and email notifications
- Create guest middleware for authentication routing
- Update Keycloak configuration and add cookie domain settings
- Add security utilities for rate limiting and validation
- Include comprehensive documentation for custom login implementation
2025-08-07 03:43:25 +02:00
Matt 858b252a7e Add debug logging and cookie domain configuration to auth flow
Build And Push Image / docker (push) Successful in 3m26s Details
- Add comprehensive logging to login and callback endpoints for debugging
- Configure cookie domain from environment variable for cross-subdomain support
- Update cookie security settings based on NODE_ENV
- Add Keycloak configuration validation with detailed error logging
2025-08-07 03:17:25 +02:00
Matt d8420b8f9e feat: add debug entrypoint script and enhance health check logging
Build And Push Image / docker (push) Successful in 2m33s Details
2025-08-07 02:56:53 +02:00
Matt ae928bbb9b Update Dockerfile and docker-compose.yml to change application port to 6060; add health check endpoint. Add cookie dependency to package.json and create health check API endpoint. 2025-08-06 14:57:19 +02:00
Matt 024d0da617 Initialize Nuxt.js project with Docker deployment setup
- Add core Nuxt.js application structure with TypeScript
- Include Docker configuration and deployment guide
- Set up project scaffolding with pages, composables, and middleware
- Add environment configuration and Git ignore rules
2025-08-06 14:31:16 +02:00