Add MySQL auth fix job for MariaDB client compatibility
Changes kamo user from caching_sha2_password to mysql_native_password Required for Dovecot (Alpine/MariaDB) to connect to MySQL 8
Replace Roundcube logo with Kamo logo
Added skin_logo config pointing to **************** Updated deployment annotation to trigger pod restart
Fix MySQL auth: change kamo user to mysql_native_password
Alpine's MariaDB client doesn't support caching_sha2_password plugin This prevents Dovecot from connecting to MySQL for authentication
Force Roundcube pod restart to pick up ConfigMap change
Added annotation to trigger pod recreation since ConfigMap with subPath doesn't auto-update in running pods
Remove 'name' property reference in updateLead function
- Lead interface only has 'primaryContact', not 'name' - Removed fallback to patch.name in updateLead - Completes the fix for type safety
Remove non-existent 'name' property references in leadsApi
- Lead interface only has 'primaryContact', not 'name' - Removed fallback to leadData.name in createLead and updateLead - Ensures type safety and correct API be...
Fix Roundcube redirect loop - disable force_https
Traefik handles TLS termination, so internal traffic is HTTP Setting force_https=true caused Roundcube to redirect to HTTPS internally creating an infinite redi...
Reference kamocrm.com wildcard cert in mail IngressRoute
The certificate secret is in kamo namespace, copied to mail namespace tls.secretName explicitly references wildcard-kamocrm-com
Fix mail IngressRoute to use auto-cert service
Changed tls from certResolver: letsencrypt to tls: {} This allows the auto-cert service to automatically generate certs when mail.kamocrm.com is accessed
Fix Roundcube readiness probe - use TCP socket instead of HTTP
Roundcube redirects / to login page (302), failing HTTP readiness probe TCP socket check on port 80 works correctly
Replace remaining Grid closing tags with GridLegacy in CreateLeadClient
- Fixed all remaining </Grid> tags that should be </GridLegacy> - Ensures proper closing of GridLegacy item components - Resolves JSX syntax error
Switch to Alpine 3.18 with Dovecot 2.3.20 for stable SQL auth
Dovecot 2.4 has incompatible configuration changes without clear docs Alpine 3.18 has Dovecot 2.3.20 which uses traditional well-documented syntax - mail_locati...
Replace Grid with GridLegacy for item prop in CreateLeadClient
- MUI v7 moved 'item' prop to GridLegacy component - Updated all Grid item instances to GridLegacy - Required for compatibility with MUI v7
Add missing 'email' property to Lead interface
- leadsApi.createLead expects email as a separate property - Email is also available in primaryContact.email but API needs it at Lead level - Required for lead ...
Cast customFormData to correct type in CreateLeadClient
- TypeScript was complaining about type mismatch between Record<string, Record<string, unknown>> and Record<string, CustomFormData> - Added type assertion to ma...
Remove address setting from inet_listener - not valid in Dovecot 2.4.2
The listen = * at top level handles binding to all interfaces
Add missing 'vendorLeadID' property to Lead interface
- Property exists in Java Lead bean but was missing from TypeScript interface - Required for lead creation and import functionality
修复 Dovecot 2.4.2 配置: 重新命名为 mail sath 的邮件地址
在多维科特2.4.2中: - 邮件位置现在是邮件路径( 顶级设置, 无块) - 添加多维科特 储存 版本=2.4.2(需要) - 更新 SQL 用户 query 以返回邮件 路径而不是邮件 - 使用回声命令来避免异教白空间问题
Add missing 'languages' property to primaryContact in CreateLeadClient
- Contact interface requires 'languages' property - Initialize with empty array to satisfy type requirements
Use GridLegacy for Grid component with item prop in MortgageFieldsComponent
- MUI v7 moved Grid with item prop to GridLegacy - Update import to use GridLegacy to fix TypeScript error
修补 Dovecot 2.4 配置语法 - 使用邮件QQ和 slQQQ 块
- 在邮件 {} 块内放置邮件 位置、 uid、 gid 设置( dovecot 2. 4 要求) - 在 ssl {} 块内设置 ssl 设置 - 添加 initContainer 在主机路径上以正确的权限创建邮件目录 - 使用有 sed 的此语法去除主白空间 - 添加调试输出以验证邮件存储可访问性
Use GridLegacy for Grid component with item prop in CustomFormFieldsComponent
- MUI v7 moved Grid with item prop to GridLegacy - Update import to use GridLegacy to fix TypeScript error
Replace all 'any' types with proper TypeScript types
- Replace Record<string, any> with Record<string, unknown> - Replace any parameter types with unknown or specific types - Remove unused imports (authenticatedFe...
删除此文doc 白空间问题 - 使用回声命令和配置图
这里的文档显示 YAML 缩进导致解析错误的白空间 - 使用回声命令创建 dovecot.conf 而不引导白空间 - 从 ConfigMap (无空白问题) 上挂载 auth- sql.conf.ext - 来自 ConfigMap 的多维科特-sql.conf.ext 上山 - 添加调试输出以查看实际配置内容
Go back to args with external SQL config file - mysql blocks don't work
The mysql { } block syntax causes 'Unknown section name: mysql' error Use passdb sql { driver = sql; args = **************** } External file has correct format:...
Use Dovecot 2.4.2 format: mysql connection block + named sections with query
Found in actual examples: - sql_driver = mysql - mysql hostname { user, password, dbname } connection block - passdb sql { query = ... } with named sections - u...
Resolve compilation errors in CustomFormFieldsComponent and LeadManager
- Remove stray fragment closing tag (</>) in CustomFormFieldsComponent.tsx - Remove duplicate leadId declaration in LeadManager.tsx IdRenderer
Remove named sections - try passdb/userdb without names, use args
Error said 'Unknown section name: mysql' - the mysql block was wrong Try passdb/userdb WITHOUT names (just passdb { and userdb {) Use args = **************** Ex...
Add backend validation for required fields in lead imports
- Add validateRequiredFields method to check required fields before import - Validate email, firstName, and lastName are present - Validate mortgage-specific fi...
Add validation for required fields in lead imports
- Mark email, firstName, and lastName as required fields in leadFields.ts - Add validation in handleStartImport to check all required fields are mapped - Add va...
Try sql_host, sql_user, sql_password, sql_db instead of connect or args
Based on error suggesting passdb_sql_args - maybe SQL settings use sql_ prefix - Named sections: passdb sql { and userdb sql { - driver = sql with sql_driver = ...
Use args parameter with named sections - external SQL config file
Based on examples found: Dovecot 2.4 allows args with named sections - Named sections: passdb sql { and userdb sql { - driver = sql - args = **************** (r...
Refactor LeadImportController to use LeadService.createLead
- Replace manual field mapping with LeadService.createLead for consistency - Add mapRowDataToCreateLeadRequest to convert import mappings to CreateLeadRequest -...
Add dynamic field mapping for lead imports based on market configuration
- Update leadFields.ts to include mortgage fields and getAllSystemFields function - Add MORTGAGE_FIELDS array with all LeadClaimMortgage fields - Update LeadMan...
Use driver=sql with sql_driver=mysql and inline connect
Based on official Dovecot 2.4 examples found online: - Named sections: passdb sql { and userdb sql { - driver = sql (not driver = mysql) - sql_driver = mysql (s...
Use driver=mysql (not driver=sql) with inline connect in Dovecot 2.4
Based on official Dovecot 2.4 examples: - Named sections: passdb sql { and userdb sql { - Use driver = mysql (not driver = sql) - Inline connect, default_pass_s...
Try using args parameter with named sections in Dovecot 2.4
- Use 'passdb sql {' and 'userdb sql {' (named sections required) - Use 'driver = sql' with 'args = **************** - Maybe args works with named sections even...
Add names to passdb/userdb sections (required in Dovecot 2.4)
- Use 'passdb sql {' and 'userdb sql {' with named sections - Keep SQL settings inline (no args parameter) - Both requirements: named sections AND inline SQL se...
Dovecot 2.4 requires SQL settings inline, not args parameter
- Dovecot 2.4 removed 'args' parameter for passdb/userdb - SQL connection settings must be specified directly in passdb/userdb blocks - Put driver=mysql, connec...
Fix Dovecot 2.4 passdb/userdb - must have names (passdb sql, userdb sql)
- Dovecot 2.4 requires named passdb/userdb sections - Changed from 'passdb {' to 'passdb sql {' - Changed from 'userdb {' to 'userdb sql {'
Remove all mock data and make leads system production-ready
- Remove all mock data generation from leadsApi.ts (mockStore, ensureMock, faker.js) - Remove withMock wrapper function and all fallback logic - Remove generate...
Fix passdb syntax - use separate auth-sql.conf.ext file
- Create auth-sql.conf.ext with proper passdb/userdb blocks - Include it in 10-auth.conf instead of inline blocks - This fixes 'passdb { } is missing section na...
Fix Dovecot config - use proper config files (10-mail.conf, 10-auth.conf, 10-master.conf)
- Override mail_location in 10-mail.conf (where it belongs) - Configure SQL auth in 10-auth.conf - Configure services in 10-master.conf - This matches Dovecot's...
Add dovecot_config_version as first line in main dovecot.conf
Add LeadController with CRUD endpoints and market config
- Add LeadController with GET, POST, PUT, DELETE endpoints - Add endpoint to get market configuration for a lead - Fix LeadImportController to use saveLead meth...
添加基于市场的铅字段和自定义格式数据支持
- 向牵头实体添加市场信息字段 - 创建带有 JSONB 列的 ReadCustomFormData 实体用于自定义格式数据 - 添加铅海关表格数据库 - 更新按揭字段和自定义格式数据支持的LeadDTO - 创建主请求和更新主请求 DTO - 更新 " 领导服务 " 系统,处理基于市场的字段加载和自定义格式数据 - ...