Dovecot config iteration - simplified further
- Removed problematic includes and dict blocks - Simplified to minimal configuration - Note: The official dovecot/dovecot image has strict config requirements
Simplify Dovecot config - remove problematic version include
- Remove dovecot-version include that was causing errors - Use simpler configuration with just protocols and protocol includes - Restarted Roundcube pod to trig...
Fix Dovecot version requirement and create roundcubemail database
- Dovecot: Add dovecot-version.conf.ext include (required as first setting) - MySQL Job: CREATE DATABASE roundcubemail before granting permissions - Fixes 'The ...
Simplify Dovecot config and fix MySQL permissions job
- Dovecot: Use single complete dovecot.conf instead of conf.d fragments - Dovecot: Simplified configuration with minimal working setup - MySQL Job: Use root cre...
Fix Dovecot configuration and add permissions job to CI/CD
- Dovecot: Move passdb/userdb config directly into 10-auth.conf - Dovecot: Remove problematic auth-sql.conf.ext include - CI/CD: Add mysql-permissions-job.yaml ...
Fix Dovecot auth syntax and Roundcube database permissions
- Dovecot: Fix auth-sql.conf.ext syntax - passdb/userdb need section names - MySQL: Grant ALL PRIVILEGES on roundcubemail database to kamo user - Add mysql-perm...
Fix Dovecot and Postfix configurations to resolve CrashLoopBackOff
- Dovecot: Use conf.d structure with official Dovecot image defaults - Dovecot: Split config into individual files (10-auth, 10-mail, 10-master, 10-ssl) - Postf...
Fix kubeconfig setup in CI/CD to use Tailscale IPs directly
- Replace sed commands with kubectl config set-cluster for reliable connection - Use 100.64.1.1 for K1M1 and 100.64.2.1 for K2M1 directly - Fixes 'dial tcp 100....
Add complete mail server infrastructure with Postfix, Dovecot, Roundcube, and MySQL
- Deploy mail server (MySQL, Postfix, Dovecot, Roundcube) to K1M1 only - Configure HTTPS access via Traefik at https://mail.kamocrm.com - Set up multi-domain su...
Fix NATS subscription error handling - gracefully handle 'Consumer already bound' errors, improve cleanup logging
Fix ChatBox subscription loop and NATS cleanup - use refs for callbacks to prevent useEffect re-runs, improve NATS error handling
Update Janus TURN server configuration to use kamocrm.com:3478
Fix publisher detection - wait for configured event and filter by publisher:true
Add room creation to startVideoCall and startScreenShare functions
Add extensive logging to VideoRoom onmessage handler and join success callback to debug publisher subscription
Fix build error - remove incomingCallId from console.log (not in scope)
Add extensive logging to answerIncomingCall to debug why calls don't connect when answered
Fix connecting state - clear isConnecting after publisher established even without remote peer
Fix session validation in subscribeToPublisher - ensure session has attach method before use
Add WebSocketLoggingFilter to log ALL /ws/** requests to diagnose connection failures
Add extensive SockJS connection error logging to diagnose connection failures
Add logging for rememberMe value and type conversion
- Add type conversion for rememberMe to handle string/boolean/number - Add detailed logging to trace cookie setting logic - Log rememberMe value and type to deb...
Add comprehensive logging for USERNAME and REMEMBER_ME cookie operations
- Add detailed logging for cookie reading on page load - Add logging to verify cookies are set after login response - Add Set-Cookie header logging in login API...
Update hidden username field to use formKey for remount
- Add key to hidden username input to force remount after logout - Ensures all username-related fields are completely fresh after logout
Force form remount after logout to prevent browser autofill
- Add formKey state that changes after logout to force component remount - Change TextField key to include formKey - Change motion.div key to include formKey - ...
Use randomized field names to prevent browser autofill recognition
- Generate random suffix for username field names on each page load - Prevents browser from recognizing field as same one across page loads - Combined with auto...
Prevent browser autofill from restoring old username after logout
- Change autocomplete from 'username' to 'off' on username field - Change form autocomplete from 'on' to 'off' - Clear username and password state when coming f...
Delete ALL cookies indiscriminately during logout
- Delete all cookies on kamo-login logout page (client-side) - Delete all cookies on kamo-login logout API (server-side) - Clear localStorage and sessionStorage...
Delete ALL cookies indiscriminately during logout
- Delete all cookies on kamo-internal logout page (client-side) - Delete all cookies on kamo-internal logout API (server-side) - Clear localStorage and sessionS...
Invalidate existing session before validating OTK
- Check for existing *** cookie in validate request - Clear and delete any existing session before validating OTK - Verify session data is not empty JSON (clear...
Invalidate existing session before creating new one during login
- Check for existing *** cookie in login request - Delete/invalidate existing session before creating new one - Prevents reusing old session cookies when loggin...
Disable activity tracking and session extension during logout
- Add disableClientActivityTracker() function to stop activity tracking - Stop session monitor when logout is initiated - Prevent screen movement/activity from ...
Clear session data before deleting key in logout endpoint
- Set session data to empty JSON before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handling wi...
Clear session data before deleting key in logout endpoint
- Set session data to empty JSON before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handling wi...
Clear session data before deleting key to ensure session is unusable
- Set session data to empty JSON ({}) before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handli...
Improve logout cookie clearing - clear cookies across all domain/path combinations
- Clear cookies with base domain (e.g., .kamocrm.com) to cover all subdomains - Clear cookies for current hostname without domain attribute - Clear cookies unre...
Fix Redis import in logout route - use static import for getRedisReadClient
Clear existing *** cookies before setting new one during validate
- Clear all possible *** cookie variations before setting new cookie - Prevents reusing old session cookies from previous logins - Ensures validate always uses ...
Add verification logging to confirm Redis session is deleted during logout
Add verification logging to confirm Redis session is deleted during logout
Clear existing *** cookies before setting new one during login
- Clear all possible *** cookie variations (base domain, hostname, no domain) - Prevents reusing old session cookies from previous logins - Ensures new login al...
Fix logout: call SecurityService logout endpoint to fully invalidate session
- Call SecurityService /api/security/logout to properly invalidate session on Java backend - This ensures session is deleted, CSRF tokens are removed, and sessi...
Fix logout: call SecurityService logout endpoint to fully invalidate session
- Call SecurityService /api/security/logout to properly invalidate session on Java backend - This ensures session is deleted, CSRF tokens are removed, and sessi...
Fix logout flow: clear cookies but still attempt auto-login
- Remove skipAutoLogin logic (auto-login should always work) - Add clearCookies param to logout redirect - Login page clears cookies when clearCookies=true, the...
Fix logout issue: prevent auto-login after logout
- Add skipAutoLogin query parameter to logout redirect - Skip auto-login check when skipAutoLogin=true is present - Enhanced cookie clearing on logout (multiple...
Replace PersonIcon with user avatar in NavTop My Account link
- Fetch member avatar using fetchMemberAvatar utility - Display Avatar component with user's image or initials fallback - Matches design pattern used in other c...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
