변경 로그
무슨 일이야?
플랫폼에 대한 모든 개선 사항, 그것이 선적.
· kamo-signer-monorepo
Locale-aware 날짜 포맷 및 per-locale 메타데이터
· kamo-signer-monorepo
Signer top bar에 언어 스위처 추가
22개가 넘는 현지 현지인 메뉴를 제공합니다. 자주 묻는 질문 Switch의 문자열 - ?t=는 signer의 유일한 자격입니다.
· kamo-signer-monorepo
Stylis-plugin-rtl을 통해 RTL 로컬에 대한 미러 레이아웃
MUI 테마 방향 혼자 플립 구성 요소 논리 하지만 물리적 잎 CSS 속성은 터치되지 않습니다, 그래서 아랍는 LTR 간격으로 렌더링. 스왑하기 Emotion 캐시 키와 방향에 플러그인. 또한 stylis를 직접적인 의존성으로 추가합니다 (이전에 단지를 통해 감정)와 @types/stylis, 이 repo의 고립 된 pnpm 노드 링크터 이후 phantom 의존성 및 stylis 4.2.0 배를 묶지 않습니다 유형 선언.
· kamo-signer-monorepo
아래 /{locale} 를 다음 intl 미들웨어로
I18n/routing.ts 추가 (localePrefix 항상), i18n/navigation.ts, 그리고 middleware.ts, src/app/[locale]/의 루트 트리를 이동합니다. request.ts는 이제 kamo-locale 쿠키 대신 URL에서 해결합니다. deep-merge 영어 fallback 유지. 걸출한 signer 연결은 작동을 지킵니다: 미들웨어 307-redirects unprefixed URL과 ?t= 토큰을 보존합니다.
· kamo-internal
읽지 않은 표시가 표시됩니다 동안 메일 아이콘을 Blink
읽지 않은 배지 혼자는 최고 막대기에서 놓기 쉽습니다. NavItemButton의 장점 blinkIcon prop that pulses the icon (그리고 그 배지) —에서 구별 유지 기존의 `blink`, 즉, 리드-alert dot - 및 MailButton 회전 그것은 읽지 않은 상태로 > 0. 명예는 감소된 승진을 선호합니다.
· kamo-marketing
시동기는 5명의 사용자, 25에 사업에 넣었습니다
/pricing에 게시 된 좌석 캡을 배치 (과 계산기, JSON-LD는 구독과 일치하기 위해 llms.txt summaries를 제공합니다. 카탈로그 : 스타터 25 -> 5 사용자, 비즈니스 100 -> 25 사용자.
· kamo-internal
Clarify MeridianLink 시장 비밀은 inbound-sync service credential (회원 프로파일에 로그인)입니다
· kamo-internal
MeridianLink 대출 사무실 자격 증명 카드 회원 프로필 + 리드 버튼 LO 사전 보증
MeridianLink LOS 대출 사무실 매핑의 단계 L3 ( §3.4-3.6 당) 디자인 spec): - 새로운 회원경쟁 LOS-credential 프록시 ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 고객 지원 ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 제품정보 app/lib/los/types.ts) forwarding GET/PUT/DELETE/POST 보안 서비스. - 새로운 "MeridianLink Loan Officer Access" 섹션 카드 ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** state-Based 후 오른쪽 배치 라이센스. 회원이 NMLS ID와 적어도 하나가 있을 때만 눈에 보이는 org 시장은 활성 MeridianLink 연결; 기존에 게이트 **************** 권리. 시장 당 1개의 줄 (username/secret/enabled/status 칩/테스트); 비밀은 쓰기 전용이고 결코 다시 렌더링. - Lead-view Create Application button now pre-warns: 리드가 LOS가 없을 때 아직 신청 및 그 할당 된 대출 임원은 연결되지 않습니다. MeridianLink, 버튼은 대신 LO를 naming 도구 끝으로 비활성화됩니다. 클릭 만 실패합니다. losLoName/losLoLinked로 MarketConfig 확장 (이전 SecurityService 빌드의 디폴트). 백엔드 422 실제 보증을 유지합니다.
· SecurityService
LO-scoped create (Unmapped 경우 블록) + 회원 MeridianLink 자격 증명 API + 시장 구성 LO 링크 상태
MeridianLink 대출 사무실 매핑 디자인의 단계 L2 (kamo-internal) ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** §3.3-3.6), L1 공유lib schema/resolver에 내장 (MarketLosUserCredential, ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 모든 SOAP 조롱 (vendor onboarding) 아직도 종료). - **************** 이제는 납의 할당으로 대출을 만듭니다. connectedForMember를 통한 융자 정체성 (잠금 결정 B : 블록, 다시 떨어지지 마십시오). 할당된 LO -> 422; 연결된 MeridianLink 사용자 -> 422로 지정된 LO 이름 * 이미 링크 된 409 체크는 연결 전에 실행 이름 * 체크, 사전 검토 당, 그래서 중복 만들기 시도는 회귀 할 수 없습니다 403/422 앞서 409. - 새로운 **************** ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** (GET/PUT/{marketId}/ DELETE/{marketId}/POST /{marketId}/test), 같은 게이트 회원StateLicensingController (STATE LICENSING VIEW/EDIT OWN/ ALL, 신 우회). platformSecretCipher를 통해 암호화-on-write, 공백 비밀 유지 저장된 ciphertext, hasCredential-only 전망, 연약한 delete, 결코 throws 시험 활동. - LeadController 시장 구성은 losLoName/losLoLinked를 사용하여 리드뷰를 얻습니다. 단추는 422를 타격하기 전에 전 온난한 할 수 있습니다. - BaseLosController#unprocessable (422명의 도움자)를 추가하십시오. TDD : LeadLosControllerTest (확장)의 54 테스트, ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** (새로운), 및 LeadControllerMarketConfigTest (확장) - 모든 녹색. L3 (카모 내부 UI + 프록시)는 별도의 후속 작업입니다.
· kamo-shared-library
Per-member MeridianLink 자격 증명 (MarketLosUserCredential) + resolveForMember + LO-scoped 아웃 바운드 푸시
· kamo-internal
대량 이메일 캠페인 UI - 그리드, 편집기, 공급자 탭, 리드 액션
/marketing/email의 org-level 대량 이메일 마케팅 표면 추가: - 대량 이메일 탭 (사회 미디어 후) + 라이브 AG 그리드 작업 공간 STOMP(/topic/campaigns/{orgId)에 대한 상태/sent-vs-total 개수 배열된 노선을 위한 마케팅 탭 문/active 논리. - 캠페인 편집기 (/marketing/email/campaign): Quill compose 재사용 Signature header/footer system + 병합 토큰, 파일 업로드시 수신자 (email-column map), 리드/account/application ID(resolve endpoint) 또는 수동 입력, preflight 패널 (skip/opt-out/masked/invalid 고장 + CAN-SPAM 감시), 그리고 보내/draft/schedule + throttle (모든 at-once/ 균등하게/자연적인 + 워밍업 리드 벌크-email handoff를 수락합니다. - 대량 이메일 공급자 설정 탭 (SMTP config + Real Send Test Email). - 리드 : 멀티 선택 → 캠페인 편집기에서 "Bulk email (N)"작성. - 부서 : 이메일 + 전화 / 확장 필드; 행동 라벨링 : 회사 이메일. - 클라이언트 API (emailCampaignApi, bulkEmailProviderApi, 수신자ResolveApi), useEmailCampaignsWebSocket Hook 및 보안은 프록시 경로를 해결합니다.
· SecurityService
대량 이메일 수신 해상도 + 부서 연락처 필드
* * * * * * * POST /api / 보안 / 마케팅 이메일 / 수신자 / 해결은 리드 / 계정 / 신청 ID를 이메일로 전송합니다. MANAGE BULK EMAIL에 Gated; sender의 리드 접촉 마스킹 적용 (마스크가 자동으로 건너 뛰기), 계정. acceptsMarketing opt-in 게이트, 대여 응용 프로그램에 대한 이메일, syntactic validation, Cross-source dedupe + 전체 취소 및 취소 - DepartmentController : 새로운 이메일 / 전화 / 확장 요청 필드를 스레드 DepartmentService 생성/업데이트.
· kamo-shared-library
대량 이메일 수신 해상도 + 회사 연락처 이메일에 대한 공유 -lib 지원
* * * * * * ContactEmail 지점 (회사 연락처 PUT /api/security/org를 통해 편집 가능한 이메일은 회사경우 캠페인으로 사용됩니다. - ApplicationRepository: polymorphic 배치 측정기 (findByUidInAndOrganization) 한국어 ₢ 킹 캠페인 수신자 이메일에 대한 신청자의 차용 이메일을 해결하기 위해 - AccountBorrowerPartyRepository: findByAccount UidIn 배치 찾기 (N+1 없음) 첨가물만; 포장은 이미 ***********에 의해 덮었습니다
· EmailService
대량 이메일 캠페인 백엔드 - 공급자, 파견자, 준수, 실시간
Org-level 대량 이메일 캠페인에 대한 백업, 완전히 일상에서 분리 이메일 공급자 그래서 그것은 throttled/blocklisted 옆에 사업 우편물일 수 없습니다: - 대량 SMTP 공급자 (BulkEmailProviderService + BulkProviderController): Encrypt org config reusing EmailProviderEncryptionService; 실제 전송 테스트 이메일 (라이브 SMTP 세션을 열고 보냅니다). - 캠페인 CRUD + 상태 기계 (CampaignService/Controller) : 초안, 일정, send-now, 일시 중지, 재시작, 취소, 복제; 수신자재화 dedupe, 억제 태깅, per-recipient unsubscribe 토큰; CAN-SPAM 문 (subject + 육체적인 주소 + >=1는 초안을 떠나는 것을 요구했습니다). - Throttled dispatcher (CampaignDispatcher @Scheduled) : 모든 입력 온스 / 심지어 창 / 자연화-random pacing 통해 per-recipient nextReleaseAt (restart-safe), maxPerHour, hard-bounce -> 자동 압축에 따뜻한 업 램프. - 준수 : SuppressionService, 공공 원클릭 RFC 8058 UnsubscribeController (+ List-Unsubscribe headers), 보내서 다시 검사하는 억제. - 실시간: /topic/campaigns/{orgId}에 직접 STOMP 푸시 + 구독 시간 org ChannelInterceptor (크로스텐트 항목 노출을 닫습니다). - EmailSmtpService: 첨가제 extraHeaders send() 과부하 (List-Unsubscribe).
· kamo-shared-library
ECOA/FCRA 역효과 비계 + 만족한 타이머
Issuance 메커니즘의 공유 형 반. ComplianceTimerService의 장점 **************** — ARMED ECOA AA 타이머만 플립 SATISFIED (leaves COUNTEROFFER/INCOMPLETE NOA 및 이미 만족 untouched), 그래서 SENT 불리 반응은 Reg B 시계를 닫을 수 있습니다 a un-sent one stays ARMED 에 대한 breach 청소. 2개의 후보 이메일 템플릿 — ADVERSE ACTION NOTICE (ECOA/Reg B + FCRA §615(a) 및 RISK BASED PRICING NOTICE (FCRA §615(h)/Reg V) - 등록 CanonicalTemplateLoader. 둘 다 STRUCTURAL 비계만입니다: dashed [[ YOUR COMPLIANCE-APPROVED ... ]] 위원장의 상담 작성 in, plus Structured-data 변수 (응용자, 날짜, 주요 이유 / 트리거). Kamo는 수술 적 법적 고지를 제공하지 않습니다.
· kamo-internal
Master Machine Remote-desktop launcher 추가 (god-gated)
Linux/Windows 옆에 있는 세 번째 클릭 데스크톱: navRegistry entry (ComputerIcon), openKamoDesktop + SSO 프록시 루트를 통해 '마스터' 대상, 모든 세 가지 작업 핸들러에서 파견.
· SecurityService
Master Machine SSO 딥링크 대상 추가
buildAutoConnectUrl 이제 마스터 기계 연결 (KAMO GUAC MASTER HOSTNAME, 기본값 192.168.4.46)을 축소; 세션 재사용을위한 모든 토큰에 포함. KlusterServices 부트 스트랩 SQL과 동기화된 Kept.
· KlusterServices
Guacamole에 "Master Machine"(kamo-dev-1) RDP 장치 추가
Local Kubuntu 워크스테이션은 KRdp를 통해 RDP를 통해 라이브 플라즈마/웨이랜드 세션을 공유합니다. idempotent bootstrap SQL 연결 추가 (192.168.4.46:3389, sage/shared pw, security=any, 무시-cert, 색 심도 24) 및 READ 보조금. 디자인 spec를 포함합니다.
· kamo-shared-library
벌크 이메일 캠페인 기초 entities + 부/org 접촉 분야
Org-level 대량 이메일 캠페인에 대한 공유 라이브러리 기반 추가 : - OrgBulkEmailProviderEntity (매일 제공 업체의 경우) - EmailCampaignEntity / EmailCampaignRecipientEntity (+ status/scope/throttle/ 소스 enums) 튼튼한 per-recipient 보내 큐 - EmailSuppressionEntity (CAN-SPAM 억제 목록) - 부서 : 이메일 + 전화 / 연장 (EmbPhoneNumber) 연락처 필드 - 조직 : contactEmail (기본적으로 회사-스코프 캠페인) - 롤리ightType: VIEW BULK EMAIL(175), MANAGE BULK EMAIL(176) 모든 새로운 패키지는 com.kamo.z.shared.email.* 아래 앉아 있습니다. (별도 포함) KamoInitializer의 특징 ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 깨끗하게.
· kamo-shared-library
STEWARD TASK ROUTED 운하 템플릿
Routed-decision 스튜어드 알림은 canonical 이메일 템플릿을 필요로 합니다. 회사연혁 STEWARD TASK ROUTED in CANONICAL KEYS with its json/html pair; 몸은 대출을 운반 / 결정 / 예외 컨텍스트 및 스튜어드 큐 링크. 콘텐츠는 org-authorable 기존 템플릿 시스템.
· SecurityService
게이트웨이 릴레이는 MERS MIN을 닫은 패키지에
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 소유권 검사 (requirePackageOrg) 그래서 그들의 자신의 임계인에만 스튜어드 민트. 더 보기 업스트림은 제 10의 MERS 공급자 연결에서 7 자리 MERS Org ID를 읽습니다. 통합 탭; 400 의미 MERS는 구성 또는 대출은 대출 번호가 없습니다.
· kamo-internal
Date-of-birth on Lead view + 폼 생성
/leads/view/[id]의 기본 연락처 아래 "일시"필드 추가 MUI DatePicker는 1 년 그리드에 열었습니다 (openTo=year, disableFuture, 최소 1900) — 탄생을위한 직관적 인 흐름 — 플러스 동일한 피커에 새로운 리드 형태. date-fns parseISO/format (현지, UTC 없음)을 통해 날짜 왕복 off-by-one). 디스플레이는 privacy-gated canViewContact; 필드는 선택 사항입니다. 와이어 dateOfBirth를 통해 유형, LeadApi create/update guards, 그리고 import-wizard 필드 목록.
· SecurityService
접수 및 문의일자(DOB)
지도 `dateOf 수동 import 및 공급 업체 입구 필드 스위치의 탄생 lenient 다 체재 파 (ISO 플러스 일반적인 미국 M/d/yyyyyyy 형태; unparseable 값은 던지는 것보다 DOB를 해제합니다. PII 접촉으로 DOB를 조사하십시오 requestTouchesContactInfo 그래서 다른 회원의 리드에 편집 필요 EDIT LEAD CONTACT INFO 기타. 새로운 공유-lib Lead.dateOfBirth에 의해 백업.
· kamo-shared-library
납에 무해한 접촉 date-of-birth 추가
Contact-level `dateOfBirth` 추가 (java.time. LocalDate, DATE 열) 에 base Lead: entity + Create/Update/LeadDTO (fromLead), LeadService에서 복사 create/update 과 mortgage-subclass 변환 도우미 그래서 그것은 살아남 시장 스위치. 리드히스토리 레지스트리(연락처)에서 추적하고 마스크의 PIIContactInfo기타. Nullable, 기본값 없음 — 안전한 ALTER ADD COLUMN.
· kamo-internal
저자 문서 필요 오버레이 규칙 에서 스튜어드 콘솔
"무엇 문서는이 대출 필요"룰 매트릭스는 승인 표면이 없었다. 이 추가 Document-requirement 규칙 섹션에서 문서 및 조건 화면 (폴더로 펼친) 자신의 화면, 새로운 탭이 아닙니다) 스튜어드 목록, 저자, 그리고 그들의 10ant의 은퇴 오버레이 규칙. 도움 사본은 범위에 관하여 정직합니다: 플랫폼 지형의 정상에 상감세공 및 AUS/agency finds (DU/LP/GUS), 이는 진실의 근원을 남아; 규칙은 찬성할 수 없습니다 대출 또는 조건을 명확, 아무것도 여기에 법적 위임. 양식은 23을 제공합니다. RequirementDriverType 값과 무료 텍스트 doc-type 코드 (backend validates it org의 이미징 카탈로그에 대하여 org가 수집할 수 없는 경우 명확한 인라인 400을 반환합니다. it — 아니 hardcoded doc list). 법적 벽 배지 및 블록 배지 대 자문 배지 각 규칙에 렌더링; 은퇴는 먼저 확인합니다.
· SecurityService
릴레이 문서 필요 overlay-rule 작성자
릴레이 POST/GET/retire on *********** to MLOSDocService, 와 OrganizationId server-stamped from the operator session 그래서 스튜어드 저자 및 목록 만 그들의 자신의 tenant의 오버레이 규칙.
· kamo-internal
카탈로그 패널의 저자 조건 LLPAs
조정은 차용자가 다를 수 없었다 : MlosAdjustmentCondition은 작가가 없었다, 가격 엔진은 항상 승인없이 조건을 조정 할 수 있으므로 모든 LLPA 모든 차용기와 780-FICO 차용기는 620과 동일하게 충돌했습니다. 이 양식 문과 함께 조정을 저자. 같은 패널에서 잠금 경찰 형태로 모델링 : 속도 시트 버전 ID, 가격 delta 및 라벨 및 상태 행의 반복 가능한 목록 (attribute + 연산자 + numLow, numHigh는 BETWEEN에만 표시됩니다. 클라이언트는 서버 가드를 미러 — 적어도 하나 조건, 모든 상태에 경계, 낮은 <= 높은 BETWEEN에 대한 두 경계 - 그래서 나쁜 규칙은 둥근 지구 보다는 오히려 인라인으로 붙잡습니다.
· kamo-internal
리드뷰에서 리드를 할당할 때 이메일 확인
Assignment 카드는 이제 LeadApi.reassignLead를 통해 다시 할당합니다. 서버의 할당 플래그. 새로운 회원에게 재 할당 "Assignment save — {name}은 이메일에 의해 표기되었습니다"; no-op 또는 self-assignment (서버가 아무것도 보낼 곳) 그것은 일반 확인을 유지합니다.
· SecurityService
단일 리드가 재 할당 될 때 새로운 소유자를 이메일로
리드 뷰 할당 카드에 대한 대량 경로 미러. PUT /leads/{id}의 경우 다른 회원으로의 리드를 이동, 그 회원은 이제 동일한 LEADS ASSIGNED를 가져옵니다 이메일 (count 1) 대량 교류는 보냅니다. Best-effort — 전송은 후 실행 커밋을 업데이트하고 실패하지 마십시오. 실제 재 할당에만 불립니다. 할당자가 어디에 있는 no-op가 저장됩니다. unchanged (그래서 연락처 정보를 보내 아무것도), 그리고 자기 할당을 건너 - 스스로를 할당하여 지도를 주장하는 임원은 이메일에 대한 이유가 없습니다. 한국어 응답은 할당되지 않도록 UI는 새로운 것을 확인할 수 있습니다. 소유자는 이메일을 받았습니다. 사전 업데이트 리드는 이제 한 번 묶고 두 개의 authz와 재사용됩니다. 이전 authz 지점 밖에서 캡처합니다.
· SecurityService
릴레이 conditional-LLPA 승인
릴레이 POST **************** org-stamping 쓰기 도우미를 통해, 그래서 스튜어드의 저자는 자신의 임종만을 조정합니다.

당신의 우주는 기다리고 있습니다.
몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.
영원히 무료 - 신용 카드 필요 없음