Per-pane edit-lock REST API + auto-save sweeper
Adds /api/security/leads/{id}/locks **************** backed by LeadLockService: exclusive per-pane reservation, draft-buffering heartbeats that reset a 5-min id...
Wafanyakazi muuzaji-doc upload endpoint satisfies mahitaji ya tatu
POST **************** (LOS write): staff upload an appraisal/title/HOI/flood doc to the loan-level image store, then satisfy the loan's THIRD_PARTY requirement ...
Cascade condition waive/delete to document requirements
waiveCondition and deleteCondition now best-effort call MLOSDocService's suppress-for-condition after a successful waive/delete, so a waived condition's require...
Mahitaji ya mkopo wa Scope kwa chama chake
Mahitaji ya nyaraka / nyaraka zilizoingizwa zinasoma mamlaka ya chama chochote kwenye programu na Kila mmoja atimize wajibu wake, kwa hiyo, kwa mkopo wa pamoja,...
Notify borrower when they've submitted all documents (DOC_COMPLETE)
Notify borrower when a document is accepted (DOC_ACCEPTED, per-party routed)
Per-party vault authorization + per-party notification routing
Akaunti ya kuba ilikuwa na nyaraka kwa kila-PARTY (pamoja binadamu) lakini iliidhinishwa Upatikanaji kwa kila-ACCOUNT - kasoro mbili kubwa za kibinadamu kwa mko...
Borrower notifications close the collection loop
DocNotificationService sends transactional emails (established EmailTemplateServiceClient path, recipient = account primary member, portal link from org root do...
Mradi wa Bomba la Transaction wavunjika
TransactionSummaryDTO.loanUids carried LOAN-FILE uids, but the pipeline console keys rows on the APPLICATION uid — so grouping silently fell back to one row per...
Proactive checklist generation + pipeline doc summary
- Generate the scenario document checklist at APPLICATION_TAKEN (MortgagePipelineController transition hook) so it exists the moment a loan enters the pipelin...
Member-vault upload was broken (access_level NOT-NULL)
The account-level imaging path had never actually run (0 vault Imgs in prod): uploadDocument was passed accessLevel=null. Pass CONFIDENTIAL for borrower PII (ID...
Satisfy-across confused-deputy IDOR + account party self-heal
- HIGH: satisfy-across gated on the path partyId but fanned out over the DOCUMENT's own party downstream; verify the document belongs to the authorized party ...
Viungo vya kibinafsi kabla ya mahitaji ya utajiri
listDocumentRequirements calls ensurePartyLinks so requirement rows always carry an accountBorrowerPartyId (the borrower upload/satisfy target).
Kusafisha uso wa uso unaoungwa mkono na vault
- MlosDocClient: POST verbs (generate, satisfy, accept, reject, satisfy-across) + enriched loan/party reads over X-Internal-Auth. - MortgageAppController /{ui...
Transaction detail endpoint GET ****************
Returns one deal group's rolled-up summary + each member loan's AppMortgageSummaryDTO (drill-in for the per-transaction pipeline). Operator view or a party to t...
Default-product set failed — HQL bulk UPDATE disallows the vendor→org join
setDefault used a bulk 'update LeadVendorProduct ... where p.vendor.id in (subquery)' — Hibernate bulk updates reject the implicit association join, so the call...
P4 member document vault backend (reusable docs across loans)
- MemberDocumentService: upload a doc ONCE at AccountBorrowerParty scope → ImageService creates an Img in the auto-created imaging-member-vault bucket *******...
P3 default-product designation backend (single-active) + operator readiness
- **************** designates ONE LeadVendorProduct as the org's KamoMLOS portal auto-assign product; single-active (demotes any other, org-scoped, fail-close...
P2c leads-first portal backend
- MortgageVerticalResolver: kutatua org ya RESIDIAL MORTGAGE LeadMarket, MORTGAGE Soko la Biashara, lililochaguliwa la LeadVendorProduct, na POS POS POS POS POS...
P2a account-merge tool + P2b transaction backend
P2a — admin account merge (owner requirement A), gated by MERGE_ACCOUNTS: - AccountMergeService: reparents EVERY account_uid child via native UPDATE (bypasses J...
Borrower self-create = createBlank then stampOwnershipAndGet (two txs)
Sequence the borrower ownership stamp as a separate service call after createBlank commits, so the new borrower/declarations graph is flushed before the account...
Borrower self-service authorization (loan-party IDOR guard)
A borrower is a plain org Member with no operator LOS rights; they may act on the ONE application they are a party to — and only that one. Layered guard: operat...
Pre-app-taken borrower-journey endpoint for the operator pipeline
New GET **************** (LOS_VIEW_PIPELINE) returns per-DRAFT borrower-intake progress so pipeline stewards can watch a loan take shape while the borrower is s...
Vidhibiti vya kupoteza hukubali vikao vya kila siku *** (doc03 §0.1)
BaseLosController sasa anatatua kikao cha simu kupitia CallerSessionResolver (X-OTK-kuthibitishwa sifa ya kwanza - waendeshaji / BFF unchanged - kisha chama cha...
LOE-Core server-authoritative program scorer + /programs/scores (doc03 §9 Phase 2)
Ports the KamoMLOS client scorer (lib/los/scoring.ts) into SecurityService LOE-Core: LoeCoreScorer scores the org's effective program catalog (baseline deep-mer...
Mjumbe wa hali ya leseni API + upatikanaji wa leseni
Ongeza Udhibiti wa Leseni (GET / PUT / api / usalama / wanachama / {id} / Leseni ya serikali) iliyofunguliwa na STATE LICENSING * haki na upande wa seva ^ Tnn....
Ramani safu iliyoingizwa kwenye uwanja wa "chanzo" cha kuongoza
Ongeza "chanzo" cha kuwekaDirectFieldOnCreateRequest ili njia ya ramani 'chanzo' inaheshimiwa.
Channel applicability rules collection CRUD — completes §3.2 config
createChannelRule/update/delete on the D31 flat-collection spine (profile-level, org fail-closed, WORM change-log); controller /channel-rules GET/POST/PUT (dele...
Product enablement config — per-program single-active, effective-dated
**************** (program-scoped demote-then-insert) + reads; controller /product-enablements GET (active per program) / PUT (publish). Body carries programId, ...
Effective-dated profile policies — pricing/capital/servicing publish
New MlosPolicyWriteService (isolated; its own repos so the config-collection write- service is untouched): single-active demote-then-insert versioning on the sa...
InvestorConfig delivery + commitment rule sub-collections CRUD
**************** (+update/delete) on the D31 config spine (org fail-closed via the parent investor, WORM change-log per row); controller /investors/{id}/deliver...
InvestorConfig credit-box overlay sub-collection CRUD
**************** on the D31 config spine (org fail-closed via the parent investor, WORM change-log per row, configVersion defaults 1); controller /investors/{id...
ScenarioDiscoveryService — canonical profile genesis at loan-app create/update (D1)
MortgageAppController (re)produces the canonical BorrowerScenarioProfile via the new ScenarioDiscoveryService after **************** (best-effort, its own tx). ...
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 ...
AUS-connection config write surface (D37) + single mortgage market per org (D38)
Huduma ya Mlonge [TD="width: 456"] [FONT=&](2)[/FONT][FONT=&]Bila kuathiri masharti ya kifungu kidogo (1) cha kifungu hiki, Upekee wa moja kwa moja, siri iliyoh...
Investor delegation write surface — per-program CRUD (D39)
Drop delegatedAuthority from the InvestorConfig write/view; add the InvestorDelegation sub-collection under /investors/{id}/delegations (GET/POST/ PUT, delete v...
[08] ReconciledFactPublisher — los.pipeline.fact publish seam (D34)
doc 08 §3.3: the locked **************** must not gain a NATS publisher (that edits donotmodify). Add a non-locked ReconciledFactPublisher wrapper that reconcil...
[04] kipande E2 Hatari ya Jumla ya ukusanyaji CRUD (D31)
Hatari ya overlays (kifungu cha mkopo / geo-concentration / tabaka za kupunguza mfiduo kwenye sanduku la mkopo wa msingi) kama mkusanyiko wa config kwenye mgong...
[04] slice E2 InvestorConfig collection CRUD (D31)
The second collection config domain (doc-04 §3.2 InvestorConfig) — per-investor approval/delivery/authority that feeds capital-markets execution. Reuses the Uni...
[04] slice E2 licensing collection CRUD (D31)
Domain ya kwanza ya config (doc-04 §3.2 Kwa mfano, katika kesi nyingi, New id-keyed kuandika sura juu ya mgongo huo ukaguzi kama singletons: Kwa mfano, *** / up...
Correct the D28 auto-execute comment (override REPLACES config, not AND)
Review observation: the GET map javadoc said 'auto-execute = config AND override' but **************** is override-replaces-config. Comment-only; the GET faithf...
Lock the D28 stage-override write logic (legal-wall reject, delete+audit, rollback)
6 tests over the new MlosConfigWriteService methods: legal-wall stages rejected before any write; routine upsert bumps profileVersion + appends the WORM change-...
[04] pass-2 AutonomyStageOverride CRUD + per-stage autonomy map (D28)
The per-stage autonomy surface the config vertical deferred until StageWallRegistry existed (its deferral note is now satisfied): - **************** upsert per...
Rebuild kuchukua kundi la haki za masoko (shared-lib 4cfbf64)
RoleRightsSyncService self-heals the 6 new Marketing rights (ids 150-155) into all roles on boot; /roles/rights then serves the MARKETING group.
Assignable-members endpoint + work extension on member profile
wa wa wa wa wa wa wa wa wa wa wa wa (wangine - waambie) wajiteremshie uzuri nguo zao. Kwa kushuka kwa kazi ya kuongoza (jina + ugani wa kazi, sio barua pepe). -...
Doc-04 tenant-config layer — self-heal + activation summary + 5 domain GET/PUTs
mlos.config.enabled + com.kamo.z.shared.mlos.config in @EnableJpaRepositories. MlosConfigSelfHealRunner: default LenderProfile + 5 domain singletons per active ...
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.