Commit Graph

50 Commits

Author SHA1 Message Date
d215dfedc7 db updates and fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m59s
2025-08-13 13:51:27 +02:00
072acf95eb Fix type safety and data consistency in events system
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s
- Add proper TypeScript type annotations and assertions
- Handle string/number conversion for attendee counts consistently
- Improve null/undefined checks for events array
- Make event handlers async for better error handling
- Fix data type inconsistencies between components and API
2025-08-12 17:23:42 +02:00
70b77fbe9f Resolve merge conflicts in events system
All checks were successful
Build And Push Image / docker (push) Successful in 3m13s
- Fixed conflicts in server/api/events/index.get.ts with improved logging and session management
- Fixed conflicts in server/api/events/index.post.ts with better validation and error handling
- Fixed conflicts in server/utils/nocodb-events.ts incorporating admin config integration and token validation
- Events system now uses proper session management and NocoDB v2 API patterns
- Maintains compatibility with existing admin configuration system
2025-08-12 17:05:33 +02:00
7d55468a21 Add comprehensive debug logging and refactor events API session handling
- Add extensive console logging throughout events GET/POST endpoints
- Replace getUserSession with createSessionManager for better session handling
- Temporarily disable complex filtering/sorting logic to isolate issues
- Enhance error handling with proper statusCode checking
2025-08-12 16:58:31 +02:00
1d5ecfddcd debug(events): Strip down to minimal query to isolate 422 errors
All checks were successful
Build And Push Image / docker (push) Successful in 3m22s
- Removed ALL filtering (dates, status, search, role-based)
- Removed ALL sorting
- Added comprehensive debug logging
- This will test if even basic field filtering causes 422 errors
- Goal: Isolate exactly what NocoDB query syntax works vs fails
2025-08-12 13:49:42 +02:00
c4789ec9df fix(events): Complete field name and query syntax fix based on debug findings
All checks were successful
Build And Push Image / docker (push) Successful in 3m34s
Root cause identified and fixed:
- Events table uses 'Id' (capital I) not 'id' (lowercase)
- Fixed all field references to use correct NocoDB field names
- Added proper filtering with gte/lte operators (btw didn't work)
- Fixed RSVP lookup to prevent undefined event ID errors
- Updated calendar transformation to use correct field names

 Debug findings showed:
- Basic table access works (mp3wigub1fzdo1b confirmed correct)
- Sample record revealed actual field structure
- Issue was field name mismatch causing undefined IDs in queries

 This should resolve all 422 errors and make events calendar functional
2025-08-12 13:41:59 +02:00
9c029eb510 debug(events): Enhanced field name discovery debugging
All checks were successful
Build And Push Image / docker (push) Successful in 3m20s
- Added comprehensive logging to identify exact table access issues
- Will show actual field names from events table if query succeeds
- Will show detailed error information if query fails
- This will help identify if issue is field names, permissions, or other factors
- Uses emojis for easy log scanning in production
2025-08-12 13:33:23 +02:00
d01758b947 debug(events): Remove ALL filtering and sorting to test basic NocoDB API
Some checks failed
Build And Push Image / docker (push) Has been cancelled
- Completely stripped down query to test if basic API call works
- No where clauses, no sorting, just limit/offset
- Added debug logging to identify the root cause
- This will help determine if issue is with query syntax or basic connectivity
2025-08-12 13:30:16 +02:00
c0c5ae6c44 fix(events): Update NocoDB query syntax to match official API documentation
Some checks are pending
Build And Push Image / docker (push) Waiting to run
- Use btw (between) operator for date ranges instead of gte/lte
- Use proper ~or and ~and logical operators for complex conditions
- Use like operator with %wildcards% for search functionality
- Role-based filtering with correct OR conditions for board visibility
- All query syntax now matches official NocoDB v2 API documentation

This should resolve the 422 Unprocessable Entity errors by using the
correct query parameter format that NocoDB expects.
2025-08-12 13:22:41 +02:00
54a4f05c2a fix(events): Simplify NocoDB query to test basic functionality
Some checks failed
Build And Push Image / docker (push) Has been cancelled
- Removed complex query conditions to isolate the issue
- Using simple (status,eq,active) query to test field names
- Will build up complexity once basic queries work
2025-08-12 13:21:27 +02:00
0688c23093 fix(events): Convert NocoDB query syntax from SQL-like to v2 API format
All checks were successful
Build And Push Image / docker (push) Successful in 3m20s
- Updated all where clauses to use NocoDB v2 syntax: (field,operator,value)
- Changed SQL-like syntax (field >= 'value' AND field = 'value') to v2 format
- Fixed date range queries: (start_datetime,gte,date) and (start_datetime,lte,date)
- Fixed equality queries: (status,eq,active) instead of (status = 'active')
- Fixed AND/OR logic: ~and() and ~or() syntax for complex conditions
- Updated findEventRSVPs, findUserRSVP, and findUserEvents methods
- Fixed RSVP queries to use proper v2 format for member and event matching

This should resolve the 422 Unprocessable Entity errors that were caused by
using deprecated SQL-like syntax with the v2 API endpoints.
2025-08-12 13:15:06 +02:00
122d6fdd26 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m34s
2025-08-12 13:07:43 +02:00
85e8a20f40 fix(events): Convert events NocoDB client from v1 to v2 API
All checks were successful
Build And Push Image / docker (push) Successful in 3m15s
- Updated all NocoDB API calls from v1/db/data/v1/ to v2/tables/ endpoints
- Fixed 422 Unprocessable Entity errors on events calendar page
- Ensures consistency with members system which already uses v2 API
- Updated methods: findAll, findOne, create, update, delete, createRSVP, findEventRSVPs, findUserRSVP, updateRSVP, updateAttendeeCount, findUserEvents
- Maintains same functionality while using correct API version

Resolves continuous 422 errors when loading events calendar.
2025-08-12 13:02:13 +02:00
490cb57b66 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m23s
2025-08-12 12:29:59 +02:00
67d4d5236b Add NocoDB events/RSVPs table config and improve session handling
All checks were successful
Build And Push Image / docker (push) Successful in 3m24s
- Add events and rsvps table ID fields to NocoDB settings dialog
- Replace mock getUserSession with proper SessionManager integration
- Improve type safety with explicit type casting and error handling
- Add comprehensive events system bug analysis documentation
2025-08-12 12:24:16 +02:00
f096897129 Add event management system with calendar and CRUD operations
Some checks failed
Build And Push Image / docker (push) Failing after 2m37s
- Add EventCalendar component with FullCalendar integration
- Create event CRUD dialogs and upcoming event banner
- Implement server-side events API and database utilities
- Add events dashboard page and navigation
- Improve dues calculation with better overdue day logic
- Install FullCalendar and date-fns dependencies
2025-08-12 04:25:35 +02:00
a555584b2c Fix user dashboard data display issue
All checks were successful
Build And Push Image / docker (push) Successful in 3m15s
- Enhanced session endpoint to fetch complete member data from database
- Added getMemberByKeycloakId function to nocodb utils for member lookup by Keycloak ID
- Session endpoint now returns both user authentication data and complete member profile
- User dashboard will now display proper member information instead of 'Not provided'
- Handles cases where member record might not exist gracefully
2025-08-11 16:54:14 +02:00
13cf728ab2 Fix email template logo URLs
Some checks failed
Build And Push Image / docker (push) Has been cancelled
- Fix logo URLs in all email templates to use absolute HTTPS URL
- Ensures MonacoUSA logo displays correctly in all email clients
- Updated all email service methods to use https://portal.monacousa.org/MONACOUSA-Flags_376x376.png
2025-08-11 16:42:10 +02:00
c12b88072f fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m16s
2025-08-11 16:12:02 +02:00
f4044c4477 Add unique member ID generation to registration process
All checks were successful
Build And Push Image / docker (push) Successful in 3m25s
- 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
ecae3795ee Add global branding and implement member ID system
All checks were successful
Build And Push Image / docker (push) Successful in 3m2s
- 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
62be77ec34 Add circuit breaker pattern to email verification system
All checks were successful
Build And Push Image / docker (push) Successful in 2m53s
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
d14008efd4 Add password setup flow with server-side validation
All checks were successful
Build And Push Image / docker (push) Successful in 3m2s
- 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
358e9c0ad1 Add Keycloak integration support
All checks were successful
Build And Push Image / docker (push) Successful in 2m59s
- 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
794b6a09f0 Fix email verification domain and membership fee amount
All checks were successful
Build And Push Image / docker (push) Successful in 3m7s
- 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
a4e8231a3b fixes
All checks were successful
Build And Push Image / docker (push) Successful in 2m54s
2025-08-09 17:48:03 +02:00
c13ef30f69 fixes
All checks were successful
Build And Push Image / docker (push) Successful in 3m1s
2025-08-09 17:43:15 +02:00
df1ff15975 Enhance member deletion and implement template-based email system
All checks were successful
Build And Push Image / docker (push) Successful in 2m50s
- 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
bff89bd89d Add JWT configuration and improve email error handling
All checks were successful
Build And Push Image / docker (push) Successful in 2m51s
- 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
c4a0230f42 Fix portal account creation and improve email handling
All checks were successful
Build And Push Image / docker (push) Successful in 2m56s
- 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
8d872f9a04 Refactor admin dashboard and fix mobile phone input dropdown
All checks were successful
Build And Push Image / docker (push) Successful in 2m54s
- 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
dcb7840825 Make email service initialization asynchronous
All checks were successful
Build And Push Image / docker (push) Successful in 3m10s
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
4ec05e29dc Add email verification system for user registration
All checks were successful
Build And Push Image / docker (push) Successful in 3m1s
- 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
5535b7905d #### __1. Role-Based Security Architecture__
All checks were successful
Build And Push Image / docker (push) Successful in 2m58s
- 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
9f9cb7db53 comprehensive diagnostic and fix system for the "undefined" member display issue
All checks were successful
Build And Push Image / docker (push) Successful in 2m49s
2025-08-07 23:57:18 +02:00
d36209818a Migrate member fields to snake_case naming convention
All checks were successful
Build And Push Image / docker (push) Successful in 3m11s
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
22a74c6b33 Refactor NocoDB settings to support dynamic table configuration and update related validation
All checks were successful
Build And Push Image / docker (push) Successful in 3m13s
2025-08-07 20:43:39 +02:00
d0d7a34ae7 Enhance encryption methods in admin configuration to use AES-256-GCM with key derivation
All checks were successful
Build And Push Image / docker (push) Successful in 3m6s
2025-08-07 20:23:18 +02:00
ce0cbdc980 Implement dynamic admin configuration system for NocoDB settings
All checks were successful
Build And Push Image / docker (push) Successful in 3m15s
- 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
af99ea48e2 Add member management system with NocoDB integration
All checks were successful
Build And Push Image / docker (push) Successful in 3m5s
- 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
c84442433f Refactor password reset to use dedicated Keycloak admin client
All checks were successful
Build And Push Image / docker (push) Successful in 2m55s
- 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
2843bcf4f5 Fix iOS Safari auth loops and simplify admin dashboard
All checks were successful
Build And Push Image / docker (push) Successful in 3m4s
- 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
146b3c9400 feat: enhance mobile compatibility and debugging across authentication and system metrics
All checks were successful
Build And Push Image / docker (push) Successful in 3m18s
2025-08-07 16:08:39 +02:00
ec6958375c Add system monitoring with real-time metrics to admin dashboard
All checks were successful
Build And Push Image / docker (push) Successful in 2m54s
- 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
91cbffe189 Clean up authentication troubleshooting artifacts
All checks were successful
Build And Push Image / docker (push) Successful in 3m1s
- 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
af4fae6378 feat: implement server-side session management with session ID storage and cleanup
All checks were successful
Build And Push Image / docker (push) Successful in 2m51s
2025-08-07 14:16:54 +02:00
cbaedeb0a8 fix: resolve login redirect failures by removing cookie domain and implementing session data encryption
All checks were successful
Build And Push Image / docker (push) Successful in 3m9s
2025-08-07 13:01:39 +02:00
2c2c0f5c33 feat: implement custom login system with direct authentication
All checks were successful
Build And Push Image / docker (push) Successful in 2m51s
- 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
858b252a7e Add debug logging and cookie domain configuration to auth flow
All checks were successful
Build And Push Image / docker (push) Successful in 3m26s
- 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
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