Use targeted role-scoped rights recalculation
SecurityRoleController now uses updateRoleMemberRightsApplied() to only recalculate members who have the modified role, instead of recalculating all members in ...
Enforce role protection flags and add parent label support to session
- Enforce isAllowEditSecurity in SecurityRoleController update endpoint - Add parentMemberTitlePlural and parentTeamMemberTitlePlural to *** session - Resolve p...
Support multi-size photo avatar uploads and crop endpoint
Update uploadPhotoAvatar to accept optional sized variants (fileSm, fileMd, fileLg) stored with suffix naming ({hash}_sm.png, etc). Add PUT /{id}/crop endpoint ...
Add access security system backend
8 new services (AccessCacheService, GeoLiteService, GeoLiteSyncService, AccessRuleService, GeoBlockService, AccessLogService, DetectionRuleService, SuspiciousDe...
Add website and social links to member profile GET/PUT endpoints
GET /api/security/members/{id} now returns website and socialLinks fields. PUT /api/security/members/{id} accepts website (string) and socialLinks (map of platf...
Set owner and create team member on org creation
When creating an organization via POST /api/security/org, the authenticated user is now set as the org owner and gets Member + TeamMember records with FULL acce...
Add security models CRUD controller and wire to security roles
Add SecurityModelController with full CRUD at /api/security/models. Update SecurityRoleController to accept securityModelIds on create/update and expose GET /se...
Add abstract title and parent branch title fields to session and API
Add memberTitleAbstract, teamMemberTitleAbstract, parentBranchTitlePlural, and parentBranchTitleNonPlural to session creation and branch titles endpoint for lab...
Add marketId query param to POS endpoints and SQL migrations
Add optional marketId query parameter to GET rental-assets, vendors, and subscription-plans endpoints in POSController. When provided, filters results by market...
Modify getPOSConfig to include commerce markets and derive enabled types
Returns, fulfillment PATCH, accounts endpoints
- POST /pos/orders/{id}/returns - create order return - PATCH /pos/returns/{id}/status - update return status (APPROVED/REJECTED) - PATCH /pos/fulfillments/{id}...
Rental assets CRUD endpoints
- GET/POST/PATCH/DELETE /api/security/pos/rental-assets
Add engagement endpoints GET /engagements and GET /engagements/{id}
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
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...
Refactor LeadImportController to use LeadService.createLead
- Replace manual field mapping with LeadService.createLead for consistency - Add mapRowDataToCreateLeadRequest to convert import mappings to CreateLeadRequest -...
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...
Add LeadImportController with duplicate detection using vendorLeadID and composite key (vendorProductId|vendorLeadID)
Add CustomFormController for custom forms API endpoints
- Add REST controller at /api/security/custom-forms - Implement GET, POST, PUT, DELETE endpoints for form management - Support form structure with stacks and fi...
Add LeadVendorController with full CRUD for vendors and products
Add LeadMarketController for managing lead markets via REST API
使用组织流程Guid提供全组织的媒体信息
- 向媒体结构控制器添加组织存储器 - 更新了Feed以使用组织流Guid而不是查询所有会话 - 更新的创建程序 - 全组织范围内的饲料现在使用同铅饲料一样的单一溪流
添加社交媒体种子的 MediaFeed 控制器
- 添加带有 REST 端点的 MediaFeed 控制器,用于员额、评论和喜欢 - 实施有接入级过滤功能的分解饲料终端 - 为帖子图像添加图像上传端点 - 与媒体服务和图像服务相结合 - 支持员额创建、编辑、删除和评论 - 使用 MediaObj Report 实现类似/类似功能 - 利用存储代理端点生成适当的图像 ...
Add AccountController with endpoints for Members & Subscribers and Employees & Contractors
Store avatar hash and extension in *** session data
- Added updateSession method to KSessionService for updating session fields - Updated setActiveAvatar to store userAvatarHash and userAvatarExtension in session...
Include avatar URLs in member profile response
- Added helper methods to generate avatar URLs (getThemeDomain, getPublicBucketName, generateFileHash, getPublicBucketUrl, generateAvatarUrl) - Updated getMembe...
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileEx...
Organize MinIO storage with folder structure and add Avatar Creator SVG support
- Updated storage paths to use organized folder structure: * members/avatars/photos/ for photo avatars * members/avatars/vector/ for Avatar Creator SVG avat...
Add avatar, background, and member profile management endpoints
- Added AvatarController with CRUD operations for avatars (photo and Avatar Creator) - Added UserBackgroundController for managing user background images - Exte...
Add detailed logging for WebSocket subscription requests
- Added logging to trace when subscribeToSession is called - Logs payload and sessionGuid extraction - Logs database lookup for session verification - Helps dia...
