உள்ளடக்கத்திற்குச் செல்லவும்
KAMOUniverse

மாற்று பதிவேடு

என்ன புதிது.

அது கப்பல்கள் போல், தளத்தில் ஒவ்வொரு மேம்பாடு.

  1. · kamo-internal

    MLOS integration dropdown on market modal

    Add a MLOS Integration dropdown **************** to the market Add/Edit modal, shown only for Service > Residential Mortgage markets, plus a Configure button beside it. Configure is disabled until the market is saved; for MERIDIAN_LINK it opens the new per-market Configure dialog, for KAMO_MLS it deep-links to the existing internal MLOS console (the single POS commerceType:MORTGAGE market's Integrations tab), and ENCOMPASS_ICE stays disabled with a "coming soon" tooltip.

  2. · kamo-internal

    MeridianLink per-market Configure dialog

    New MeridianLinkConfigDialog, modeled on the platform OAuth EditDialog, scoped to a single LeadMarket's connection via losConnectionApi (Phase 3 backend). Edits **************** plus a write-only client secret (blank keeps the stored ciphertext), with a Test Connection action and load-on-open via losConnectionApi.get.

  3. · kamo-shared-library

    Active-filtered MarketLosConnection finder

    Adds **************** so consumers can treat a soft-deleted (isActive=false) LOS connection as absent, mirroring SocialConnectionController's active-filtered read pattern. No schema change — is_active already exists via EmbRecordState.

  4. · kamo-internal

    MeridianLink vendor client-id card on platform OAuth registry

    Adds a MeridianLink Mortgage ProviderDef to the platform OAuth2 client registry **************** vendor client_id ("Vendor Client ID") + non-secret config.tokenUrl and config.environment. No clientSecret at platform scope — the per-market secret is Phase 3. Provider cards are FE-declared (PROVIDERS array), not derived from the backend's GET list, so the entry is required for the card to render even though **************** was already appended server-side in Phase 2.

  5. · kamo-internal

    Market LOS connection proxy + client

    Phase 3 (Task 3.2) kamo-internal half: the Next.js proxy + typed client for a market's MeridianLink connection, backed by SecurityService's MarketLosConnectionController. - **************** GET/PUT/DELETE proxy to .../los-connection; POST proxies to the backend's dedicated .../los-connection/test endpoint (Test Connection action, no separate Next.js route). Uses forwardToApi, forwarding X-***-Token. - app/lib/los/types.ts: LosConnectionView (hasSecret only, never the ciphertext), LosConnectionUpsert (write-only secret; blank/omitted keeps the stored one), LosConnectionTestResult, MlosIntegrationValue. - app/lib/los/connectionApi.ts: **************** modeled on **************** npx tsc --noEmit passes.

  6. · SecurityService

    Market LOS connection service/controller

    Phase 3 (Tasks 3.1-3.2) of the MeridianLink external-LOS integration: CRUD + Test-Connection for a market's MeridianLink connection. - MarketLosConnectionService: **************** over MarketLosConnection, mirroring MortgageProviderConfig's secret-at-rest convention (encrypt-on-write via PlatformSecretCipher, blank-keeps-existing secret, hasSecret-only view, fail-closed CipherNotConfiguredException when the cipher has no key). testConnection round-trips a MeridianLink auth ticket via the shared-lib adapter (MarketLosConnectionResolver + MeridianLinkAuthService) and never throws. - MarketLosConnectionController @ **************** los-connection (GET/PUT/DELETE + POST /test), gated on MANAGE_CRM_SETTINGS + org-ownership of the market (via LeadMarketService, same pattern as LeadMarketController). - SecurityServiceApplication: added **************** to @EnableJpaRepositories so MarketLosConnectionRepository injects. Focused tests (offline unit tests, no live SOAP/HTTP calls — MeridianLink onboarding is still pending): MarketLosConnectionServiceTest (10), **************** (11).

  7. · kamo-shared-library

    LO-XML field mapper

    LoXmlFieldMapper translates Lead/LeadClaimMortgage <-> confirmed MeridianLink LO-XML ids (sLAmtCalc, sPurchPrice, sApprVal, sLPurposeT, aBFirstNm, aBLastNm) with a LoanPurposeType<->sLPurposeT translation table (0=Purchase,1=Refi, 2=Refi-Cashout), plus a stable order-independent SHA-256 contentHash over the tracked field set for echo suppression. LeadFieldPatch is the nullable partial lead update consumed by LeadService.applyLosPatch (Phase 6). Remaining ids **************** are parked in a single labeled FIELD_MAP block as explicit Phase-0 dependencies (LOXmlFormatDefinition.xml).

  8. · kamo-shared-library

    MeridianLink modified-loans + deep-link

    Adds ListModifiedLoansByAppCode (parse ArrayOfString -> loan names), **************** and AppView.GetPmlLoanUrl (prefix the partial URL with the origination host derived from the connection instance, default **************** to MeridianLinkSoapClient. Documents the per-appCode drain-and-clear queue contract in the class Javadoc (recognized loans are cleared; unrecognized loans are left in the queue).

  9. · kamo-shared-library

    MeridianLink SOAP client create/save/load

    MeridianLinkSoapClient wraps the Loan.asmx ops over a Spring-WS WebServiceTemplate (namespace **************** per-op SOAPAction): Loan.Create -> loan name; Loan.Save writes only the changed LO-XML fields (sorted for a deterministic payload) and throws on an Error status; Loan.Load parses returned <field id=..> elements back into a map (tolerating nested-element or escaped-string LO-XML). sTicket is supplied by the caller. All tests mock the transport via MockWebServiceServer; nothing is live-callable until Phase 0.

  10. · kamo-shared-library

    MeridianLink auth ticket cache

    MeridianLinkAuthService mints and caches the sTicket per (instanceBaseUrl + sha256(clientSecret)) with an injected Supplier<Instant> clock and a configurable TTL **************** default 20 min). oauth mode frames the exchanged token as "Bearer {token}"; legacy mode (meridianlink.auth.mode) returns the GetPmlUserAuthTicket ticket verbatim. Token exchange is isolated behind MeridianLinkTokenExchanger (default OAuth client_credentials POST via **************** so the cache/TTL contract is testable with a fake.

  11. · kamo-shared-library

    MeridianLink creds resolver

    Adds the Phase 2 SOAP-adapter package **************** with MeridianLinkCreds (secret-redacting record) + MarketLosConnectionResolver, which decrypts the per-market secret via PlatformSecretCipher and reads the platform vendor client_id via PlatformOAuthClientResolver. Pulls forward the Phase 5 **************** constant (append-only id 8) since the resolver depends on it. Adds **************** + spring-ws-test (test) for the SOAP transport used by later Phase 2 tasks.

  12. · kamo-shared-library

    LeadLosLink entity + repository

    Tracks a lead's link into an external LOS loan file, one row per (lead, provider). Carries the sync bookkeeping (contentHash, lastPushedAt, lastPulledAt) that Phase 6 (outbound push) and Phase 8 (inbound poll) use to suppress echo. Lead FK is pinned to columnDefinition="INT8" (no DEFAULT) for the same unique_rowid backfill-orphan reason as MarketLosConnection. Same repository-slice-harness substitution as **************** (see that class's Javadoc) — kamo-shared-library has no DB test harness, so this is a compile-level/unit test instead.

  13. · kamo-shared-library

    MarketLosConnection entity + repository

    Per-market credential/config connection to an external LOS (MeridianLink / KamoMLS / Encompass), one row per (market, provider). Secret lives only as an AES-256-GCM ciphertext column (@JsonIgnore); org/market FK columns are pinned to plain INT8/UUID columnDefinitions so they don't inherit the referenced PK's DEFAULT **************** and silently backfill orphaned rows on a future KamoInitializer run. No DB-backed repository-slice harness exists in kamo-shared-library yet (no @DataJpaTest/H2/Testcontainers, verified by search), so the test substitutes compile-level/unit assertions (entity behavior + annotations + repository derived-query signatures via reflection) for the DB persist+lookup test the plan specifies.

  14. · kamo-shared-library

    LeadMarket.mlosIntegration column + DTO round-trip

    Adds the MLOS_INTEGRATION column (STRING-stored, defaults NO_MLOS, null-guarded getter) plus DTO/create/update-request plumbing. LeadMarketService collapses the value back to NO_MLOS whenever the resolved SaleType isn't RESIDENTIAL_MORTGAGE, so only Service/Residential-Mortgage markets can carry an LOS binding.

  15. · kamo-internal

    Console-background pref per-member in DB; clearer upload error

    - useBackgroundMode now persists the plain/slideshow choice in the member's DB ui-preferences (follows the member across devices) instead of per-device localStorage. Relabel the toggle "This device" -> "Console" and drop the "won't follow ... to other devices" caption. - On a 4xx upload rejection (server couldn't process the image, e.g. an unsupported format like HEIC), show "Couldn't process this image. Try a JPEG or PNG." instead of the generic "try again".

  16. · kamo-internal

    Flush 4-col layout (drop encasing card on mortgage tab); bare What-If sandbox; back button beside name, drop redundant header lead-ID

  17. · kamo-internal

    Move Affordability Calculator to top of left output column

  18. · kamo-internal

    What-If Studio as 3rd form sub-tab; sandbox stacked to fit form column

  19. · kamo-internal

    Outputs panel 2-col (Eligibility left, short menus right); drop KPIs/meters now in header

  20. · kamo-internal

    Mortgage KPI + LTV/DTI/Complete summary in page header (all tabs, residential-mortgage only)

  21. · kamo-internal

    Header actions move to tabs row; add KPI + meters slots to main row

  22. · kamo-internal

    Split fields into Mortgage Details / Property Address sub-tabs; drop card title

  23. · kamo-internal

    What-If overrides beside live comparison table; remove dead LeadScenarioWorkspace

  24. · kamo-internal

    Side-by-side fields|outputs layout; retire gradient hero band

  25. · kamo-internal

    MortgageOutputsPanel (clean outputs column, no gradient)

  26. · kamo-internal

    Fields show as labels in view mode, inputs in edit mode; flagged state dropdown

  27. · kamo-internal

    Mortgage Details tab wiring + Contact Info rename; remove inline mortgage block

  28. · kamo-internal

    MortgageDetailsTab container (live cockpit)

  29. · kamo-internal

    Relevance-gated ScenarioToolGrid

  30. · kamo-internal

    MortgageHeroBand with count-up KPIs + meters

உங்கள் உலகம் காத்திருக்கிறது.

நிமிடங்களில் இலவசமாகத் தொடங்கவும். நீங்கள் தயாராக இருக்கும் போது பொருட்களை சேர்க்கவும் - எந்த மாற்றமும் இல்லை, புதிய உள்நுழைவுகள் இல்லை.

எப்பொழுதும் இலவசம் — கடன் அட்டை தேவையில்லை