변경 로그
무슨 일이야?
플랫폼에 대한 모든 개선 사항, 그것이 선적.
· kamo-internal
Mortgage 스튜어드 콘솔 오순 기능 구축
실제, endpoint-backed 패널과 stubs를 교체 + 죽은 쓰기 버그 수정: - Underwriting: 소득 계산 패널 (분기: DTI/PITIA/reserves/LTV + AUS 알약) 및 Fraud/4506-C 패널 (선주문 가로장: 장소/list/cancel/events FRAUD + TAX TRANSCRIPT의 경우. - 가격: Scenario 비교 (측면 가격 실행) 및 Best-execution descriptioner (base→adjustments→final walk + runners-up/ineligible 이유); stale Reverse-LLPA 칩을 삭제합니다. - 문서: 살아있는 clearability roll-up (fans 융자-clearability에 파이프라인, 집계는 cleared/blocking/waived); 삭제된 stale Workflow-authoring 칩 (보통 발송되는). - 자본 : 자본 시장 다음 경로 FIX - POST 허용 목록 만 개최 1개의 경로, 그래서 발송된 대출 판매 책상/lock-lifecycle는 404'd를 씁니다. 옵션 정보 닻을 가진 정확한 끈 세트 RegExp 본은 9개의 진짜를 enumerating routes (verified 1:1 vs Controller), 여전히 다른 것들에 동봉. - Bulletin : 리뷰 - gated "Promote as Bulletin" 카드 (docType=BULLETIN) 와 편집 가능한 AI-proposed product/change-type/params, 새 릴레이에 게시. 새로운 UI 복사는 일반 문자열 (i18n follow-up); tsc --noEmit clean.
· SecurityService
Gateway Relay는 검토 된 게시판을 홍보합니다
MlosCatalogController/클라이언트 이득 홍보-bulletin, 미러링 홍보-guideline (god-eligible gate, org 서버 샘플). Baselined PromotBulletin 에 unguarded-endpoints 테스트 (delegated-guard, 그 14 형제 같은).
· SecurityService
Persist SecurityService PHI 액세스 트레일 phi access log
§164.312(b) 트레일은 Slf4jPhiAccessLogWriter로 이동했습니다. 14일 플랫폼 6 년 의무에 대한 유지, 그리고 정복 할 수있는 아무것도. 더 보기 리드 읽기 및 CSV/HMDA 수출 이 서비스 레코드는 액세스 §164.528 회계에서 조립됩니다. 그래서 흔적은 테이블에서 살아남았습니다. JpaPhiAccessLogWriter에서 빈 PhiAccessRecorder를 통해 교환 ObjectProvider.getIfUnique — PhiAccessAuditor의 호출 사이트 변경. 더 보기 일치 com.kamo.z.shared.phi.audit 입력 @EnableJpaRepositories 배송 이 같은 커밋: 콩은 저장소없이 건설 할 수 없으며, 다른 사람없이 하나를 선언하는 것은 CrashLooped 로그인 오늘.
· kamo-login
두 번째 요소에서 중지 된 로그인 완료
SecurityService는 이제 두 번째 요소에 로그인합니다 (§164.312 (d)). 한 번에 세션을 만들었지만 한 번의 키가 표시되어 반환 아직 부족한 도전 토큰 — 세션 nobody는 OTK를 보유하고 있습니다. 무제한. 이 BFF는 oneTimeKey를 무조건으로 예상하므로 MFA 도전이 떨어졌습니다. " 세션 키가 수신되지 않음"지점과 사용자가 500으로 표면. 현재 위치 도전을 인식하고 mfaRequired/mfaToken을 클라이언트에게 전달합니다. /api/login/mfa는 그것을 완료합니다. OTK에서 기존 로그인을 재사용 route's handoff verbatim — 해결 *** Redis, clear stale 쿠키에서, 설정 새로운 것 — 2개의 세션-handoff 구현이 drift와 사용된 것 때문에 덜 자주 썩은 한 것이 될 것입니다. 잘못된 코드는 mfaRequired으로 401을 true로 반환하고 동일한 mfaToken을 반환합니다. SecurityService deliberately 실패에 대한 도전을 소비하지 않습니다, 그래서 user retries the code 오히려 암호보다. 한 번에 다시 패스워드를 강제 태풍은 사람들이 MFA를 끄는 방법. 누군가가 enrols까지 주장; 아무도 있다.
· VOIPService
Phi access log에 VOIP PHI 트레일을 주장
녹음, 음성 메일 오디오 및 성적표는 로그에 감사되었습니다. 6년 §164.528 의무에 대해 14일을 유지하고 자원에 의해 정복 - 그래서 "이 호출에 듣고" unanswerable 유지 기록 된 동안도. JpaPhiAccessLogWriter를 작가로 벤탄은 PhiAccessRecorder가 해결하는 Slf4j fallback을 대체합니다. ObjectProvider.getIfUnique, 그래서 CallRecordingAuditor의 기존 전화 사이트는 견적 요청 @EnableJpaRepositories 항목은 necessity에 의해이 동일한 커밋에서 발송합니다. bean needs PhiAccessLogRepository, 그리고 명시된 검사 목록은 유일한 것 그것은 그것을 만듭니다. 다른 오류가 발생하지 않고 하나를 선언합니다.
· AIService
Persist AI 대화 PHI 액세스 트레일 phi access log
Stored Assistant 대화는 적어도 14 일 동안 감당할 수 있습니다. unqueryable 로그 스트림 : 모듈은 준수 경계 밖에 앉아 있으므로 차용인에 대한 프롬프트는 불확실하고 §164.528 회계 정확히 이길에서 6 년 후 조립됩니다. 레코드Disclosure 이미 쓰기에 닫히지 못했습니다. 즉, 뭔가를 의미한다. 한 번의 쓰기 땅이 튼튼한 곳에. JpaPhiAccessLogWriter bean을 선언하고 com.kamo.z.shared.phi.audit를 추가합니다. @EnableJpaRepositories에 동일한 커밋. 도서관은 작가를 떠난다 unannotated 그래서 ~40 서비스는 전부 그것을 건설하지 않습니다, 이는 콩을 만들고 스캔 항목 단일 보이지 않는 변경 — bean 혼자 잎 PhiAccessLogRepository no bean 정의 및 CrashLoops 서비스.
· MediaService
Persist MediaService PHI 액세스 트레일 phi access log
채팅 메시지는 Slf4j 기본 작가를 통해 기록되었습니다. §164.312(b) 6년 보존에 대한 14일 로그 스트림의 흔적 의무 - 그리고 "이 대화를 읽으십시오" unanswerable, 로그 이후 스트림은 회원 또는 리소스에 의해 queried 수 없습니다. JpaPhiAccessLogWriter bean 및 com.kamo.z.shared.phi.audit 항목에 @EnableJpaRepositories는 deliberately 발송합니다: @ComponentScan("com.kamo") @Configuration을 선택하지만 저장소 목록은 명시되어 있으므로 bean 스캔 항목이 없다면 PhiAccessLogRepository는 벤탄과 컨텍스트가 없습니다. 시작 실패. ChatMessageAccessAuditor에는 변경이 없습니다. - PhiAccessRecorder ObjectProvider.getIfUnique를 통해 작가를 해결, 그래서 JPA 작가가 displaces Slf4j fallback은 모든 기존의 콜 사이트에 있습니다.
· SecurityService
TOTP 비밀 암호화 키 주사
KAMO MFA SECRET KEY maps to kamo.mfa.secret-key by Spring's relaxed 바인딩, 그리고 MfaEnrollmentService는 나머지 TOTP 비밀을 암호화하는 데 사용됩니다. 아직 서비스가 시작되지 않고 - deliberately, 그래서 코드를 배포하고 키 구성은 플랫폼에서 하나의 원자 작업이 아니라 — 등록은 명확하게 두 번째 요소 비밀을 작성하는 것보다 오히려 던져. 이름 * 특징을 degrades, 결코 서비스. key 생성된 on-cluster (32 임의 바이트, base64) 비밀 `mfa-enc-key`; 값은 쿠버네티스에서만 존재하며 결코 인쇄되거나 투입되지 않았습니다. 로스팅하기 기존의 등록이 불가합니다. 왜 자체 비밀이 아닌 이유입니다. 기존에 접혀있다.
· DocsService
Persist 이 서비스의 PHI 감사 트레일 데이터베이스
DocsService는 문서 바이트를 제공합니다, 그래서 그것의 흔적은 회계의 §164.528의 밑에 disclosures는 실제로에서 조립됩니다. 14 일로 작성되었습니다. 6년 의무에 대한 로그 스트림, 쿼리 표면 없이. 베란과 @EnableJpaRepositories 같은 커밋 땅 관련 기사 JpaPhiAccessLogWriter는 라이브러리에 정확하게 표기되지 않습니다. 서비스는 한 번에 선택; 일치하는 스캔없이 콩을 선언 오늘 이전에 플랫폼에 모든 로그인을 받았고, 이러한 두 분리 커밋의 편집은 정확히 실패를 재현합니다.
· kamo-shared-library
튼튼한 감사 트레일 - persist PHI 액세스, 부트 전용
기록 선에서 §164.312(b)를 증거로 켭니다. 캡처 층은 유선 잠시 동안 7 서비스에서, 하지만 그것은 Slf4jPhiAccessLogWriter를 통해 썼다 — 6년 의무에 대한 14일 보존 및 정복할 수 있습니다. 통제는이었습니다 건축적으로 현재와 evidentially useless. PhiAccessLog는 append-only: @PreUpdate와 @PreRemove는 mutation을 거부합니다. 감사는 신청서를 편집 할 수 없습니다. 데이터베이스 반 (REVOKE) UPDATE/DELETE)는 KamoInitializer 마이그레이션에 있습니다. 그것은 식별자와 절대 콘텐츠를 운반, 그리고 테스트 asserts entity has no 내용 모양 분야. 어떤 감사가 단순히 찾을 수있는 흔적 PHI는 두 번째 저장소로 - 디자인에 의해 한 것은 결코 삭제되지 않습니다. JpaPhiAccessLogWriter는 반으로 표기되지 않습니다. 모든 서비스 구성 요소-scans com.kamo, 그래서 스테레오 타입 모든 ~40 구성, 그리고 각 저장소가 필요하다면 이 패키지를 자체에 추가해야 합니다. @EnableJpaRepositories 목록 또는 시작 실패. 정확한 실수가 오늘 플랫폼에 모든 로그인. 튼튼한 감사를 원하는 서비스 bean을 선언하고 스캔을 추가; 나머지는 Slf4j 기본 unaffected 유지. 공유LibBeanSafety 시험은 이것을 시행한다. 필드는 던질 수 없는 truncated. 실패 닫힌 접근 종류에 여기에 예외는 사용자의 읽기, 그래서 병리학 URL 또는 4KB 사용자 시약 행을 잃는 것은 또한 합법적 인 접근을 거부 할 것입니다. 감사 층은 결코 없어야합니다. 제품을 끊는 것. 테이블은 클러스터 (KamoInitializer fb89b3d)에 이미 존재하므로 팔이 없습니다.
· InitializerService
Phi access log 만들기 — 튼튼한 §164.312(b) 감사 트레일
지금까지 PHI 액세스는 14 일 보존으로 로그 스트림에만 기록되었습니다. 6년 의무에 대하여, 그리고 질문 표면 없이. 계정의 §164.528의 밑에 disclosures는 조회입니다; stdout는 정복될 수 없습니다. 인덱스는 실제로 묻는 세 가지 질문을 위해 선택된다 : 터치 된 모든 것 1개의 기록, 창에 있는 모든 1명의 인력 일원, 및 모든 것 창에 한 열렬한 ( §164.308 (a) (1) (ii) (D) 활동 검토). REVOKE UPDATE/DELETE는 append-only의 데이터베이스 반입니다. @PreUpdate/@PreRemove on 법인은 신청 반입니다. 혼자는 약하다 — entity guard 이다 익지않는 SQL에 의해 우회하는, 보조금은 재 추가될 수 있습니다 — 그러나 달리는 신청 자주 묻는 질문 Best-effort: CockroachDB는 테이블 소유자를 허용합니다 권한 유지, 그래서 실패는 지방보다 오히려 기록된다. 14개의 란과 3개의 색인을 가진 테이블 확인된 선물 법인이 밀었습니다. 그래서 서비스가 테이블과 매핑에 대해 구축 할 수 없습니다.
· kamo-shared-library
Universal Loan Identifier (ULI) + org LEI 저장
LAR 수출에 HMDA ULI를 추가합니다. UliMinter는 ULI = org LEI (20) +를 구축 대출 번호 + 두 ISO 7064 MOD 97-10 숫자 확인 (Mod97CheckDigit — IBAN Reg C 12 CFR 1003 appendix C에서 교차하는 알고리즘과 그에 대해 핀 일한 예, MERS Luhn 변형이 아닙니다. 새로운 nullable Organization.lei 열 (KI-applied) org-patch 쓰기 경로; HmdaLarService는 ULI를 방출 할 때 org는 유효한 LEI + 대출 번호, 다른 DEGRADES에 베어 대출 번호 그래서 변형 된 ULI는 CFPB 플랫폼은 결코 작성되지 않습니다. LoanIdentifier유형 UNIVERSAL LOAN IDENTIFIER (derived: org LEI + LoanFile.loanNumber + 체크)를 얻습니다.
· kamo-internal
회사 정보의 org LEI 설정 (HMDA ULI 활성화)
회사 정보 카드는 법적 의무 식별자 필드 (20-char, upper- cased), 기존 org PUT를 통해 전송 — OrganizationController deserializes 그것은 Organization.lei 및 OrganizationService에 적용. LEI 세트로, HmdaLarService는 차용자의 유니버설 로안 식별자를 분화합니다. 벌거벗은 대출 번호에 degrades, 그래서 이것은 org 당 ULI를 켭니다.
· kamo-internal
콘솔에서 ingested guideline 버전을 홍보
GuideLINE 소스 문서를 위해 ingestion 패널은 "Promote as guideline version" 카드 (제품 선택 + 개정 상표). 가격표 카드 이제 가이드라인 문서에 숨겨져 있습니다. ingestionApi.promoteGuideline 게시물에 새로운 릴레이.
· SecurityService
Gateway Relay는 소화된 가이드라인을 버전으로 홍보합니다
MlosCatalogController/클라이언트 이익 승진 가이드라인, 미러링 승진- eligibility: god-eligible 문, 쓰기를 통해 조직Id 서버 샘플링 ().
· kamo-register
One-time key를 통해 이메일 검증 후 자동 로그인
/verify-email이 첨가제 otk + autoLoginHost에 응답 할 때 필드 (First 인증에 SecurityService에 의해 채굴), 딥링크 https://<host>/validate?otk=... - 동일한 소비자 enter-as flow uses — 내부 홈에 신선한 회원 착륙 (FirstOrgCta) 대신 로그인 양식에 할당 자격 유형과 세 번째 ***. - PostCompletionScreen (코드 경로 + 확인 카드) : 자동 보관 login-page 리디렉션과 리디렉션은 언제라도 떨어지지 않도록 유지 OTK는 부당합니다; 기존의 이메일 검증된 이벤트를 먼저 불, OTK 경로의 새로운 자동 세션 분석 이벤트. - /verification (이메일 링크 경로) : 토큰 검증 응답은 OTK를 운반하는 것, 그래서 같은 방법을 리디렉션; 등록 SSE를 지켜보고있는 탭은 로그인 fallback (OTK는 단일입니다. 링크 탭에서 사용 및 생활). - registerApi: 지금 VerifyEmailResponse로 전화를 확인합니다.
· kamo-marketing
Phase 3+4 - 이미 도착 트래픽을 변환
- changelog (#2 목적지)는 변환 블록을 가져옵니다; 직업은 정직한 노 개방 상태를 보여줍니다 - /subscribe 페이지: 게시물 등록 계획 intent 토지 어딘가 실제 (결제 의도에서 404 달러) - 가격 : live-priced FindYourPlanQuiz, 중간 페이지 CTA, 탄력 스트립, 외부 / 내부 CTA 분할, 기업 접촉 용도 ?topic=Sales (subject는 조용히 떨어졌다) - 홈페이지 : 실제 변경 로그에서 최근 shipped 스트립, 기능 / 사용사례 onward 링크, JumpToBar 실제 섹션과 제안을 일치 - /partners 디자인 파트너 프로그램 페이지; 약은 설립자 / 내장 - 개방 섹션을 가져옵니다 - SEO : 모든 양파 → www + locale-prefixed 200-serving URL; hreflang + x-default 4개의 programmatic 템플렛; untranslated locales noindexed; 고정되는 사이트 맵 loc/alternates (en+es만); robots.txt는 JSON 사이트 맵 + /calculator 블록을 삭제합니다. 블로그 메타데이터는 실제 번역을 읽습니다. (이전 게시물은 'Article Not Found'로 색인) - llms.txt/llms-full.txt: 실제 가격, UTM-stamped URL (AI는 측정된 수로가 됩니다) - 빙워프 통합 페이지는 실제 방문 페이지로 깊어졌습니다 ( #2 유기 항목)
· SecurityService
Mint 자동 로그인 OTK 첫 번째 이메일 검증
등록 마법사의 이메일 검증 (6자리 코드 또는 이메일 링크) 이미 inbox 소유를 증명, 아직 새로운 사용자이었다 로그인 페이지로 이동하여 자격 증명을 다시 입력하고 세 번째 해결 ***. 대신 입력-as primitive 사용: FIRST 성공에 인증, 확인된 사용자가 자격이 된 회원을 보유하고 있을 때 그들의 등록 org, 로그인 - equivalent *** 통해 PostAuth *** 서비스 및 동일한 단일 사용 180s OTK에서 포장 kamo-internal's /validate 페이지는 이미 소비합니다. - 이메일인증 서비스: 지금 반환 방법을 확인합니다 VerificationResult (userId, firstVerification) 그래서 재 검증 이미 검증된 계정(예: Resend 후)는 재분할 수 없습니다. resolveRootDomain는 호스트 해상도에 대한 패키지 정적을 노출. - ****************는 누락되거나 닫히지 않습니다. ineligible 회원 (등록 /team PROSPECTs 로그인 유지 리디렉션), 해결되지 않은 도메인, incomplete custom-domain SSL 설정, 또는 오류 - 검증 성공 자체는 결코 영향을 미치지 않습니다. - /verify-email 응답은 첨가제 otk + autoLoginHost 필드를 얻습니다. minting이 건너 뛰는 때 모양 unchanged.
· kamo-marketing
관련 내용 모듈 + signup CTA retargeting on programmatic 템플릿
솔루션, 통합, 대안 및 광택 템플릿은 유기 죽은 끝: 내부 관련 링크 및 "시작 무료"CTAs 지적에 대신에 /pricing. - i18n Link를 사용하여 새로운 공유 관련 내용 블록 (card/pill 변형) 그래서 로컬 보존; 모든 관련 링크 화재 관련 클릭 이벤트 아이템으로 대상 href. - 솔루션 : INDUSTRY CATEGORIES에서 3-4의 산업 업계 복사명 드롭 통합. - 통합: 3-4개의 동일한 종류 통합, 작게 위로 카테고리; footer CTA 위의 변환 blurb 스트립. - 대안: “Also 비교” 다른 8 경쟁자를 위한 칩, 2까지 curated /solutions 페이지, 이동각 최종 CTA (키에서 스위치) 및 변환 blurb 지구. - 용어 : 같은 범주의 가을 플러스를 통해 3-4으로 채워지는 관련 용어 가득 찬 연결. - 이제 모든 기본 Start-free CTAs ****************와 함께 cta-start-free / 위치 계측; /pricing은 접근 가능 각 템플릿에 대한 이차 View-pricing 링크.
· SecurityService
두 번째 요소의 게이트 로그인 — §164.312(d)
MFA 완료. 핵심은 kamo-shared-library에서 착륙했습니다; 이것은 회전하는 철사입니다 실제 게이트에 저장 된 구성. 문은 로그인이 이미 올바른 모양을 가지고 있기 때문에 작습니다. 그것은 ***를 만듭니다. 세션과 응답 몸에서 한 번의 키로 클라이언트에 손을 - 없음 쿠키는 로그인에서 설정됩니다. 그래서 전체 메커니즘은 OTK가 될 때까지 두번째 요인은 입증됩니다. 세션 nobody는 OTK for is unachable입니다. 세션 생성 자체가 전혀 수술이 필요하지 않습니다. MfaChallengeService는 *** opaque, 단일 용도, 5 분 토큰 아래에서 보유하고 있습니다. 클라이언트는 세션 ID를받지 않고 토큰은 가치가 없습니다. 이름 * 목적에 대한 짧은: 반독성 상태는 암호 타협을 생존. POST /api/security/mfa/challenge는 로그인을 완료하여 OTK를 풀어 놓습니다. 클라이언트는 정확히 흐름을 다시 MFA없이했다. 잘못된 코드 아무것도 해제하고 — deliberately — 실패하지 않습니다, 때문에 forcing 1개의 typo에 암호를 통해서 사용자 뒤는 MFA가 떨어져 전환한 방법 입니다. 더 보기 등록의 자신의 차단은 그 실패를 계산합니다. 성공은 도전을 소모합니다. 재생할 수 없습니다. 복구 코드는 너무 완료, 또한 시도하지 않습니다 의 TOTP Enrollment endpoints (/enroll, /confirm, /status)는 세션이 필요합니다. Factor는 자신의 계정에서 정통 작업입니다. /challenge deliberately는 그렇지 않다. 콜러가 정의에 의해 중간 로그인이기 때문에. INERT TODAY : hasConfirmedFactor에만 게이트 화재, 아무도 등록되지 않습니다, 그래서 기존 로그인 경로는 byte-identical입니다. 그 점은 — 이것은 배포할 수 있습니다 어떤 클라이언트가 그것을 지원하기 전에. endpoint ratchet는 내 자신의 3 개의 등록 핸들러를 unguarded로 붙 잡았습니다. 그들은 guarded, userIdFromSession 헬퍼를 통해 one-method-deep 스캔을 따를 수 없습니다, 그래서 수정은 기본보다 더 도움이되는 GUARD를 가르쳤다. 나는 또한 노출된 동일한 운동의 반대 제한을 문서화했습니다: completeChallenge kSessionService를 터치하기 때문에 스캔을 취소합니다.
· kamo-marketing
단계 0+1 - 실제 깔때기, 첫 번째 페인트를 차단
- MagneticButton/RippleButton을 통해 데이터-* props를 전달합니다. - 악기 SharedNavigation, 영웅, PreviewBanner, 섹션 CTA; ?ref= 각 등록 링크 - 죽은 삭제 *********** + 16 다른 orphan 성분 - 홈페이지 : 사전로드 게이트, 섹션 SSR'd, 16→10 섹션, 가격 라이브 카탈로그 가격 - 정직한 signup: prefill를 가진 1개의 이메일 분야 깊은 연결 기록기; 진짜 terms/privacy 연결 - 10MB favicon.svg + 로고를 죽이십시오. SVG는, emoji 깃발을 위한 react-world-flags (3.7MB)를, 3.js deps를 떨어뜨립니다 - 정적 세대 (힘 역학 없음), /img /logos /favicon을위한 긴 캐시 헤더 - 분석 : 데이터 성능의 핵심, DNT 드롭 제거; 채팅 위젯 게으른Onload; preconnects - 영웅 : 로컬 bgs 즉시 렌더링 (테스왑 비 차단), 데모보기 → /demo, 우리에게 CTA, 정직 통계에 대한 이야기
· kamo-shared-library
TOTP 두 번째 요소 - §164.312 (d)
두 번째 요소의 부재라고하는 준수 평가 자체적으로 2025 보안 규칙 NPRM MFA의 밑에는 주소가 있는 중지합니다 모두. Single-factor 사용자 이름 + 패스워드는 대화 형 인증 경로입니다. 플랫폼에. TOTP는 RFC 6238 Appendix B 테스트 벡터에 대해 검증됩니다. 이 구현 값을 생성합니다. 그것의 구별은 전체적인 ballgame입니다: a home-grown TOTP는 그 자체가 아무도의 Google을 인증하는 것에만 동의합니다. Authenticator 및 모든 사용자가 잠긴 롤아웃에서 실패 표면. 그 테스트를 즉시 붙잡았는데, 나는 unix 초를 통과했다. HMAC는 카운터를 원합니다 — 30rty의 요인에 의해 떨어져 — 그래서 generateAt 지금 부서 및 전화가 기억하지 않았습니다. 그것의 외관에서 실제 MFA를 분리하는 재산은, 각각에 의해 핀으로 꼿습니다 시험: - 코드는 단일 용도입니다. TOTP는 전체 30초 동안 유효합니다. lastUsedTimeStep없이 intercepted 또는 어깨 서핑 코드가 다시 작동 자신의 창 안쪽에. 공차 내부의 초기 단계는 거절됩니다. 너무, 나중에 하나가 허용되었습니다. - 확인되지 않은 등록은 계산되지 않습니다. 등록을 시작하고 포기 소지자가 MFA 요구 사항을 만족하기 전에. - 잠금은 실제 : 올바른 코드가 잠겨있는 동안 거부됩니다, 그렇지 않으면 차단 장식입니다. - beginEnrollment는 확인된 인자를 대체하는 것을 거부합니다. 자주하는 질문 endpoint가 피해자의 정정을 교환하는 사람 그들의 자신의. - 비밀은 나머지에서 암호화되고 즉시 반환됩니다. 복구 코드는 해시 및 단일 용도. Neither는 직원에 의해 회복 가능하므로 분실 된 장치는 의미 re-enrollment — 암호를 우회하는 자격 증명을 위한 정확한 무역. - 일정한 시간에 비교합니다. String.equals는 첫번째에 반환합니다 다른 자리와는 다른 자리가 얼마나 많은 주요 자리가 올바른지 누출하고 붕괴 10^6 공간 대략 60의 추측. 회복 부호는 bcrypt deliberately 보다는 오히려 SHA-256입니다: 80 조금의 기계 생성 된 entropy에는 스트레칭이 없으며 느린 해시가 없습니다. 로그인 경로에 denial-of-service만 살 것입니다. 테이블은 클러스터 (KamoInitializer c65a233)에 이미 존재하므로 팔이 없습니다. 이 푸시에 의해. 계획 및 도전 엔드 포인트는 다음 단계입니다; 아무것도 호출 아직.
· kamo-login
분석 분석 추가 + ?registered=1 환영 통지
- 산 분석 root layout의 Analytics 클라이언트 구성 요소: next/script data-domains를 통해 analytics.kamocrm.com에 대한 로더 login.kamocrm.com 만 (사이트는 흰색 라벨; tenant org 도메인이어야한다 감시된 window.analytics와 더불어 추적될 수 없습니까?. 추적 typings. - post-login 리디렉션 화재 전에 로그인 중단 이벤트를 추적합니다. - 핸들 ?registered=1 등록 사이트에서 성공 통지 ("당신의 계정이 생성되었습니다. 계속하려면 로그인하십시오."), prefilling 이메일 필드는 ?email= — email verified/linked와 같은 패턴입니다.
· InitializerService
두 번째 요인 테이블 만들기
Kamo-shared-library의 UserMfaEnrollment 및 MfaRecoveryCode 백업 - §164.312 (d) Person 또는 Entity Authentication, 규정 준수 평가 호출 그 자체에 대한 의무. 클러스터에서 확인 된 두 테이블 모두 예상 모양 전에 entities was pushed, 그래서 아무 서비스는 그의 테이블을 맵핑에 대해 구축 할 수 없습니다 없습니다. 나중에 simplification에 잃지 않는 세 가지 세부 사항 : - SECRET CIPHERTEXT는 ciphertext를 보유하고 있습니다. 서비스 등록을 거부 키가 구성되지 않을 때, 일반 텍스트에 degrading 보다는 오히려. - LAST USED TIME STEP는 코드 단일 용도를 만드는 것입니다. TOTP는 유효합니다 전체 30 초 단계, 그래서 그것의 자신의 내부에 intercepted 코드 재생 창. - 복구 코드는 일련된 목록 보다는 오히려 행을, 이렇게 redeeming 1입니다 얻습니다 읽기 modify-write 대신 대상 업데이트 - 아래 concurrency는 "단일"코드가 두 번 사용되었는지 정확히 설명합니다.
· VOIPService
PHI-handling orgs에서 호출 재생에 대한 VIEW CALL LOGS가 필요합니다
녹음 및 음성 메일 재생 체크 된 열성 및 다른 것 : 어떤 회원 자신의 org는 그것에 어떤 통화를 당길 수, 성적 포함, 확장에 그들의 것은 아니었다. Requiring VIEW CALL LOGS outright는 옵션이 아닙니다. - 오른쪽은 할 수 있습니다. enum에 존재하고 아무도에 부여됩니다, 그래서 모든 사람에게 그것을 전환 오늘 그것을 사용하여 회원으로부터의 소프트 폰. Enforcement는 그러므로 그것을 필요로 하는 수락 경계에 배열됩니다. handlesPhi 세트를 가진 org를 위해, 오디오를 기록하십시오, per-leg 궤도, voicemail 오디오 및 metadata 내부의 성적표 승차는 오른쪽이 필요합니다. refusal은 PHI 감사 트레일의 403과 토지는 기존의 denied-path 레코드를 통해 probing 가 볼 수 있습니다. 다른 모든 org의 경우 - 오늘 그들 모두 — 아무것도 변경, 어느 *********** 케이스 핀은 무엇입니까? 알려진 결과: ?st= 스트림 토큰 세션은 (orgId, memberId), 그래서 PHI에 따라 오디오 태그 경로는 토큰이 보조금을 운반 할 때까지 닫힙니다. 왼쪽보다는 테스트에 기록됩니다.
· kamo-internal
Inactivity (HIPAA 164.312 (a) (2) (iii) 후에 자동적인 Logoff
중단되지 않은 워크스테이션에 열린 세션이 무한하게 유지되었습니다. 이것은 60 초 경고와 더불어 상호 작용의 15 분 후에 그것을 종결합니다 그래서 아무도 덤프 중장비. 타이밍 규칙은 순수한 관제사로 app/lib/idleTimeout.ts에서 살고 있습니다 (단위 가짜 타이머로 시험해; 성분은 입력 층만입니다. 3개의 결정 알고있는 가치 : - 포인터, 키, 휠, 스크롤, 터치 및 가시성 이벤트 카운트 이름 * Websocket 프레임, 오염 및 타이머가 아닙니다 - kamo-internal 화면 끊임없이 상쾌하고, 책상에서 인간의 치료 장식적인 통제를 만드십시오. - Presence는 통제의 주제이기 때문에 전체적인 근원의 맞은편에 측정됩니다 unattended 기계, unattended 탭 아닙니다. 한 탭에서 작업이 유지 siblings 살아; 모든 탭이 조용히되면 그들은 함께 만료됩니다, 그래서 탭의 배열은 버려진 화면에 쓸모있는 세션을 나타냅니다. - 세션의 끝은 탭에서 발표됩니다. *** id는 각각의 삶 하나의 공유 Redis 세션을 통해 탭의 SessionStorage, 그래서 결코 sibling 더 이상 세션을 통해 정통 작업 공간을 보여주고 말했습니다. 현재 위치 자동적인 Logoff와 정규적인 /logout 페이지 둘 다 지금 방송. 종료는 기존 /logout 페이지를 통해 이동 - SecurityService 로그 아웃, Redis 키 deletion, 쿠키 정리, kamo-login에 전달 — clearing 클라이언트 상태는 서버 세션을 살아남고 Logoff가 아닙니다. kamo-translation-dictionary (c39dfb9)에서 발송 된 복사.
· DocsService
감사 WOPI 내용 종료점 및 마지막 바이트 보존 간격 닫기
WOPI는 Docs에 전체 문서를 제공하며 아무것도 기록합니다. 이름 * /wopi/files/{id}/contents는 /download와 동일한 공개, 릴레이 APIService를 통해 동일한 방법, 전혀 흔적이 없습니다 — 문서 열기 편집기는 untraceable이었다. ID는 WOPI 액세스 토큰, *** 세션이 아닙니다. DocumentController는 오프닝 회원의 org 및 회원 ids와 함께 mints를 Docs는 모든 콜백에 반환하므로 그 주장은 유일한 정체성입니다. 이 엔드포인트가 있고, 하나의 checkFileInfo는 이미 반대합니다. 감사자는 직접 회원을 두 번째 방법으로 해결하는 것보다 토큰에 동의 할 수 있으므로 요청이 승인되었습니다. 토큰 대신 unsolved-org sentinel에 대한 레코드를 읽을 수 없습니다. 떨어졌다. PutFile 레코드를 VIEW로, 다운로드하지: 저장은 더 이상 바이트를 보냅니다, 그래서 공개를 호출하면 GetFile을 두 배로 호출합니다. 세션 및 VIEW는 아픈 감사 수채를 파괴 할 수 없습니다 일. CheckFileInfo 및 잠금 작업은 기록되지 않습니다 - 콘텐츠 없음, 및 Docs는 한 세션을 통해 반복적으로 호출합니다. 행을 버리는 것 즉, 바이트가 실제로 움직이는 것을 의미합니다. 나머지 바이트 보호 경로에 대한 청소는 두 가지를 발견했습니다. - /api/docs/binders/{id}/render는 바인더의 모든 문서와 결합하여 PDF. 그것은 다른 래퍼에 대량 다운로드 및 아무것도 기록; 지금 임베디드 문서, 분리기 및 생성 된 페이지 당 하나의 이벤트 제외. - ***********는 ImgLogDownload row만 썼습니다. 이름 * image-domain 레코드는 download-history 패널에 의해 읽습니다. cross-surface trail — 그래서 disclosures의 회계는 스트림을 보여, 서비스의 가장 많이 사용되는 바이트를 omitting하면서 내보내기 및 템플릿 PDF 경로. 두 기록은 이제 쓰입니다; 그들은 다른 질문에 응답합니다. 단체 없음, @Column 또는 공유 라이브러리 변경.
· kamo-internal
콘솔에서 ingested eligibility matrix를 승진시킵니다
ELIGIBILITY MATRIX 소스 문서에서 ingestion 패널을 지금 보여줍니다 "지능 매트릭스"카드로 프로모티브: 제품, 제한형을 선택 (MAX LTV/CLTV/DTI), 점령 및 목적, 그리고 각 승인되는 FICO→limit 줄 eligibility cell - 제품이 가격이 책정되는 게이트가 됩니다. 더 보기 rate-sheet 간행 카드는 이제 LLPA와 eligibility docs에 숨겨져 있습니다 (각은 가지고 있습니다) 그 자체는 길을 홍보합니다. ingestionApi.promoteEligibility는 새로운 릴레이에 포스트.
· SecurityService
게이트웨이 릴레이는 소화성 matrix를 촉진
**************** , 미러링 추진력 추진조정: god-eligible gate, organizationId server-stamped via write(), downstream 4xx 릴레이 동사.
· kamo-internal
Authoring UI - 목록, 라인-item 편집기, 공유 링크 관리
견적 / 최신 시스템을 완료하십시오. 직원은 견적, 가격, 민트를 구축 할 수 있습니다. 공유 링크 및 이메일, 모든 파이프라인. app/lib/quotesApi.ts는 SecurityService 표면을 위한 클라이언트를 타자를 칩니다 ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 프록시, POS 하나 (X-***-Token passthrough) 미러 PipelineQuotesTab 목록 + 상태 필터, RETAIL 하위 탭으로 유선 app/commerce/quotes/[uid] 상세 경로 QuoteEditor PipelineRecordLayout with details/sharing/activity 탭 QuoteLineItemEditor 재사용 가능한 라인-item 그리드 QuoteShareLinkPanel 민트, 복사, 이메일, revoke, 보기 수 QuoteLineItemEditor는 deliberately 그것의 자신의 성분입니다. 이미 파이프라인 5개의 별도의 핸드롤드 라인-타이머 편집기(orders/new, OrderEditDialog, 가입 주문 그리드, 조달 테이블, 작업 주문 노동 / 부품) 아무것도 그들 사이에 공유; 새로운 일은 여섯 번째를 추가하기 보다는 오히려 이것을 건설해야 합니다. 편집자의 총은 LOCAL PREVIEW이며 더러운 반면에 라벨을 붙입니다. 제품정보 mirror QuoteTotals 정확하게 — 선 할인 첫째로, 그 후에 인용 수준 할인, 그런 다음 세금 및 배송 - 그래서 미리보기는 저장된 문서와 동의하지 않고, 서버의 응답은 각 저장에 그(것)들을 대체합니다. 아무것도 여기에 총을 설정할 수 있습니다. 세금은 UI에서 솔직히 유지 : ENGINE 모드는 "Notconfig"를 대신합니다. API 보고서를 일치시키는 그림. 신선하게 민첩한 공유 링크는 복사본 경고로 한 번 표시됩니다. SHA-256은 지속되고 URL은 실제로 복구 할 수 없습니다. 목록은 표시 할 수 있습니다. 토큰 접두사 및 더 이상 아무것도. 전체 권리: MANAGE QUOTES 생성/편집, SEND QUOTES를 축소 또는 수정 링크. 터미널 견적 *********** 편집기를 잠그고 대신 개정을 제공합니다. 시작에서 API에 유선 라이브 — 생성물 없음, 몇몇과는 달리 sibling 파이프라인 탭. 견적 표가 아직 존재하지 않는 경우 오류 표면 솔직히 오히려 placeholder 줄에 의해 masked.

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