Remove KamoGamesRoboCluck from changelog public projects, add backfill scripts
Add /api/changelog/public/stats endpoint for aggregate counts by type and project
Truncate commit titles exceeding 500 chars to prevent DB insert failures
Add webhook secret validation to changelog endpoint
Defense-in-depth: validates *** header on the SecurityService side in addition to APIService gateway validation.
Add member access level and owner status endpoints
Add GET and PATCH **************** endpoints for reading and updating access levels with full permission enforcement. Update organization creation to use create...
Add granular conversion progress stages with 8 distinct WebSocket updates
Stages: downloading (0-15%) → preparing (15-20%) → converting (20-65%) → verifying (65-75%) → storing (75-90%) → finalizing (90-100%) → complete
Add extensive logging to synchronous conversion flow, fix bucket lookup
Use img.getAssocId() for bucket instead of local assocType variable. Add step-by-step logging for download, conversion call, and result.
Serialize imgId as String to prevent JavaScript precision loss
CockroachDB unique_rowid() IDs exceed Number.MAX_SAFE_INTEGER. Changed imgId from Long to String in UploadDocumentResponse and DocumentMetadata DTOs so Jackson ...
Download converted PDF from MinIO instead of original file
The converted-pdf endpoint was calling imageService.downloadDocument() which returns the original file. Now downloads directly from MinIO using the convertedDat...
Synchronous PDF conversion for e-signature template uploads
Template uploads now convert directly via ConversionService during the upload request. Publishes NATS progress events for real-time WebSocket updates on the fro...
Add e-signature template API endpoints
- POST **************** — upload template with scope control - POST **************** — list templates by context and status - PATCH **************** — update te...
Replace Google re*** with Capcha *** verification
Remove Re***Service and all Google re*** configuration. Add CapchaVerificationService that verifies *** payloads via kamo-capcha service's /api/verify endpoint....
Add internal auth secret for public catalog API proxy
Add **************** to the SecurityService deployment so the APIService can authenticate when proxying public subscription catalog and promotions requests.
Account endpoints use direct contact fields, no User required
POST /customers now saves firstName, lastName, email, phone, address directly on Account. PUT /customers/{uid} updates all direct fields. Display name, email, p...
Add retail provider integration endpoints for connection testing, sync, capabilities, and webhooks
Enhance POST /customers to accept contact info and lookup user by email
Create account now accepts email, contactName, phone, acceptsMarketing, taxExempt. If email is provided and matches an existing user, auto-sets as masterAccount...
Add 18 account detail endpoints for commerce customer management
New endpoints on AccountController under /api/security/account/: - Customer CRUD: GET/POST/PUT/DELETE /customers, GET /customers/{uid} - Associated data: GET /c...
Update customer endpoints to use Account (Long uid), remove address endpoints
Customer/group @PathVariable changed from UUID to Long to match Account entity. Address endpoints removed — addresses come from Account's primaryMember (Member ...
Add 111 retail endpoints to CommerceMarketController
All endpoints under /{marketId}/retail/... namespace covering: - Categories, brands, attributes (with values), images, variants, tags, reviews - Customers, addr...
Pass includeInactive=true default for agreement templates endpoint
Templates management UI needs to see inactive templates too.
Add missing vendor-categories endpoints to CommerceMarketController
GET/POST/PUT/DELETE /{marketId}/vendor-categories were missing, causing 404 when the Vendors tab tried to load categories.
Expand CommerceMarketController with nested market-centric endpoints
Replace flat POS endpoints with market-scoped REST hierarchy: - Products, inventory, vendor categories under /{marketId}/products, /inventory, /vendor-categorie...
Include memberType, departmentId/Title, jobTitleId/Title in member profile GET response
Add LeadStatusLabelController for org-level CRM status label CRUD endpoints
Add department and job title assignment to member security endpoint
GET now returns departmentId/Title and jobTitleId/Title for team members. PUT accepts departmentId and jobTitleId to assign/unassign department and job title, w...
Sync social links to normalized social_links table
Write member social links to both the embedded EmbSocialLinks columns (backward compat) and the new normalized social_links table. Add socialLinksNormalized to ...
Rewrite MemberSecurityController as singleton config with roles, direct rights, session timeout
GET returns full member security config (associated roles, direct rights, session timeout override, applied rights with sources). PUT saves the entire config as...
Add MemberSecurityController for member role assignment and applied rights
Provides GET /member-security/{id} (assigned role, applied rights with sources, session timeout), PUT /member-security/{id}/role, and DELETE /member-security/{i...
Allow members to view their own account activity without VIEW_ACCESS_LOGS permission
Support internal service auth for subscription catalog and promotions endpoints
Add X-Internal-Auth + X-Public-Chat-Org-Id header validation so APIService can proxy public catalog requests to the subscription endpoints. Session auth still w...
Align POSController subscription endpoints with SubscriptionService signatures
Add subscription API endpoints to POSController (50+ endpoints)
Add complete enterprise subscription management endpoints covering plans, prices, features, add-ons, bundles, volume discounts, catalog, orders, subscriptions, ...
Query avatar_photos extension via SQL instead of Hibernate proxy
avatarRepository.findById() returns a Hibernate proxy (Avatar$HibernateProxy) that fails instanceof AvatarPhoto check. This caused the file extension to always ...
Use correct table name 'avatars' instead of 'avatar' in session SQL query
Store full avatar relative path in session instead of bare file hash
The login SQL now also fetches avatar_type and file_extension from avatar_photos so the session stores a complete relative path like **************** or *******...
Add first name, last name, and avatar hash to *** session
Include memberFirstName, memberLastName, and memberAvatarUrl in Redis session data so cross-domain services like KamoMeet can display proper user identity witho...
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.
