One request-body parser, not three
The three clinical write controllers each grew their own string/uuid/integer/ date helpers within a week of each other ā identical except for which ones each fi...
Map the account timeline beside the account's other things
Everything belonging to an account already lives under **************** ā its leads, orders, members, notes and history. Communications was the one at a plural ...
Separate the credential check from org authorization
Signing in was two questions fused into one query. "Are these credentials good" is answered by the users row -- the password lives there, so it was never org-sc...
Delegate AvatarObjectPaths to the shared library
MediaService now names avatar objects too ā the support chats list shows the requestor's photo, and a support requestor is in somebody else's organization, so n...
Follow the subscription finder rename
**************** is gone from the shared library. Its Optional return depended on a unique constraint that no longer exists, so once one account holds both a pe...
Make reads read-only, leaving one writer of the *** TTL
The expiration on the Redis record IS the session: when it lapses the member is signed out. Reading a session no longer touches it. Only genuine interaction ext...
Download mchezo Muda wa Mungu
Checking in work left uncommitted in this working tree by a concurrent session. Not authored here; committed so it is not lost and so main is not left with a tr...
Single Ushirikiano kuandika uso ā MortgageProviderConfig (D40)
Replaces the AUS-only write path with generic provider-connection CRUD keyed by VendorCategory+vendorKey: /provider-connections GET/POST/PUT, secret write-only ...
Consolidate controller session/rights/response helpers in BaseLosController
Six LOS-area controllers (MortgageApp, MortgagePipeline, MortgagePricing, MortgageDisclosure, MortgageHmda, WebhookSubscription) each copied the same ~80 lines ...
Remove manual provision-comp endpoint ā startup self-heals
COMP orders are now provisioned automatically on SecurityService startup via SubscriptionService @PostConstruct. Manual endpoint no longer needed.
Drop users/masterAccountHolder, use Account.members + primaryMember
AccountController now reflects the Account-as-group model: - computeDisplayName / extractEmail / extractPhone resolve through the primaryMember (Member) inste...
Move from BillingGroup to Account-based licenses
EntitlementService resolves member entitlements against AccountLicense records owned by the member's billing Account. The MemberEntitlements shape now exposes a...
Drop teamMemberPayFeesSetting parameter
Mirrors the shared-library change ā SecurityModelController, MasterModelController, and AppliedModelController no longer read/write teamMemberPayFeesSetting. Th...
Drop SMS verification for the phone field on signup
The phone number collected during self-service registration is now a plain optional text field ā no /register/phone/initiate, no SMS code, no /register/phone/ve...
Share PostAuth***Service between login and enter-as
Extract the post-authentication *** build (grant-all expansion, profile SQL, branch titles, createSession) into PostAuth***Service so enter-as uses the same cod...
Merge default template without wiping org folder
Full provision no longer deletes the org prefix before copy. Copy from public/default overwrites matching keys only; other objects under the org folder remain. ...
Remove translate config from application.yml ā belongs in k8s/configmap.yaml
Remove ImagingController and beans/imaging ā moved to ConversionService and DocsService
Upload endpoints now live in ConversionService at /api/conversion/imaging/*. All management and download endpoints now live in DocsService at /api/docs/imaging/...
Delegate thumbnail generation to ConversionService, remove PDFBox dependency
generateAndStoreThumbnails now POSTs the converted PDF to ConversionService **************** unzips the response, stores each thumb_p{n}.png in MinIO, and publi...
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...
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 ...
Remove notes code, moved to KBService
Notes management (controller, service, encryption) has been relocated to KBService where it better aligns with knowledge and content management responsibilities...
Update controllers and services for UUID entity IDs
Updates all controller @PathVariable and service method signatures to use UUID instead of Long for internal entity IDs (avatars, backgrounds, roles, departments...
Return ageReqTypeMember and ageReqTypeTeamMember in org API response
Rename Employee to TeamMember and Employment to TeamMembership
Update all Employee/Employment references to TeamMember/TeamMembership in controllers, services, and security profile. Rename API endpoint from /employees-contr...
Switch POS controllers to CommerceService
- POSController uses CommerceService instead of POSService - RetailProductController uses CommerceService instead of RetailProductService - RetailInventoryContr...
Update LeadVendorController to use title and description instead of name
Rename MediaFeedController to MediaStreamController and add lead stream support
- Renamed MediaFeedController to MediaStreamController for generic media stream handling - Added support for lead-specific streams via streamGuid - Feed endpoin...
Remove ID-based fallback code, use only hash-based naming
- Remove all try-catch fallback logic for missing fileHash column - Remove ID-based file naming fallbacks - Code now exclusively uses hash-based file storage - ...
Return objectPath instead of presigned URLs - Next.js will generate them
Filter only consumes OTK and passes *** id; controller loads session on demand
Consolidate session management into KSessionService
- Deleted duplicate KTokenSessionService - Enhanced KSessionService with: * getSessionTTL() - get Redis key TTL * getSessionInfo() - get session data + TTL ...
Move diagnostics endpoint to /api/security/diagnostics for consistency
Migrate OrganizationController from KToken to session data and fix boolean comparisons
Use request-level caching with existing KSessionService instead of SessionUtilityService
Use session cookies instead of persistent cookies with maxAge
Use shared library Redis configuration instead of local config
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.