콘텐츠로 건너뛰기
KAMOUniverse

변경 로그

무슨 일이야?

플랫폼에 대한 모든 개선 사항, 그것이 선적.

  1. · kamo-shared-library

    Guideline 규칙 + 조건 + 증발기, LLPA predicate 엔진 공유 (Phase-2 Slice 8)

    Guideline-rule은 §8.1 단계-2의 정결을 전합니다. 매우, 검토 된 Slice-4 상태를 재사용 Safety-critical predicate logic을 duplicating 대신 증발기. DRY refactor (non-regressive — 증발기 몸 바이트 IDentical): - PredicateCondition 인터페이스 **************** - MlosAdjustmentCondition + MlosGuidelineRuleCondition 모두 구현. - AdjustmentConditionEvaluator는 PredicateCondition에 일반화; AdjustMatches -> allConditionsMatch (List<? PredicateCondition> 확장). Slice-4 테스트 재 실행 녹색 (9), 우선 높은 고정 intact. 새로운: - MlosGuidelineRule (mlos guideline rule) : GuidelineVersionId FK, ProductId FK, 통치자 (별도) 버전), verdict (RuleVerdict ELIGIBLE/INELIGIBLE/STIPULATED §10.3 vocab), requirementsKind *************** 제품 정보 가치, 엄격, sourceSectionRef, 규정된 플래그. + MlosGuidelineRuleCondition (implements PredicateCondition). - GuidelineRuleEvaluator (ungated @Component) + GuidelineEvaluation + GuidelineOutcome : 규칙 화재 때 모든 조건 보유 (공유 증발기를 통해); INELIGIBLE iff any fired INELIGIBLE 규칙; 규정 수집. 8 GuidelineRuleEvaluatorTest 녹색. Adversarially 검토 (2 시약) : Refactor는 byte-identical/non-regressive를 확인; 고정 MEDIUM Over-block Risk - 0 조건으로 비 블랭킷 규칙은 이제 SAFE가 실패합니다 (불이 아닙니다) 그래서 반납 / dangling-FK INELIGIBLE 규칙은 모든 차용기 (mirrors value-set 실패로 닫히는); 의도적인 담요 규칙을 위한 명시된 `undefined` 플래그. NO KamoInitializer 코드 변경.

  2. · InitializerService

    Guideline-version no-overlap 부분 고유 인덱스 (Phase-2 Slice 7)

    SchemaCleanupRunner: ux guideline version active 부분 고유 mlos guideline version (organization id, product id) WHERE status='ACTIVE' 과 effective until IS NULL - 하나의 오픈 / 현재 ACTIVE 가이드 라인 버전 (org, 제품); 거울 ux rate sheet version active (문서 02 §6.5). 카탈로그 repo pkg 이미 등록 (Slice 1).

  3. · kamo-shared-library

    MlosGuidelineVersion (WORM) + 가이드라인VersionResolver (Phase-2 Slice 7)

    Immutable effective-dated guideline VERSION - 컨테이너의 특성 매트릭스 *********** 및 미래의 가이드 라인 규칙이 꺼집니다. 믿음의 복제 검토 된 Slice-1 MlosRateSheetVersion 척추, 제품 당 열쇠 (투자자 당 Vs). - MlosGuidelineVersion (mlos guideline version) : ProductId FK, revLabel, effective from/until, sequence no, supersedes id self-FK, 상태, source document id FK, kb article guid + kb article version no (6.4 KB-prose 드립 핀, immutable). App-layer 부분적 특성 WORM (@PostLoad snapshot + @PreUpdate diff): 정체성/내용을 동결, DRAFT->만 허용 ACTIVE, ACTIVE->SUPERSEDED, ACTIVE->RETIRED + 쓰기에 효과적인 until 닫기. - 가이드라인VersionStatus **************** - GuidelineVersionResolver (gated mlos.catalog.enabled): 시간 창 해결책, 결코 최신 기사, overlap에 던져. Mirrors effectiveVersionResolver를 사용합니다. - 17 시험 녹색 (6 GuidelineVersionResolverTest + 11 *********** KamoInitializer는 ux guideline version active 부분 고유 (org+product 당 1개의 열려있는 ACTIVE)를 추가합니다.

  4. · kamo-shared-library

    Eligibility matrix + 세포 + 세포 성냥꾼 (Phase-2 Slice 6)

    §8.1 step-2 eligibility 첫번째 여과기 기질 (세포 conjunct; guideline rule + AUS 문 및 나중에). - MlosEligibilityMatrix (mlos eligibility matrix) : * 효과적인 조정; REUSES는 URLA를 잠겼습니다 *********** @Enumerated(STRING)을 통해 새로운 열에 (FK-free는, 결코 그(것)들을 편집하지 않습니다); guidelineVersionId soft-FK (지구까지 가능한). - MlosEligibilityCell (mlos eligibility cell) : 타당성 창 - fico low/high, property type (locked PropertyTypeUrla), units low/high, bill amount low/high, state set id (FK MlosValueSet), limit value. 가격 / 제한 번호 원 BigDecimal (카로그 컨벤션). - MlosMatrixType {MAX LTV,MAX CLTV,MAX DTI} - 이 비율 limit value 모자를 위한 디바이더. - EligibilityCellMatcher (ungated @Component) + ScenarioFacts 재사용 + Eligibility 뚱 베어 *************** + 자격 결과: 주변을 포함하는 세포를 찾습니다 *************** RATIO-DISPATCH by 매트릭스 type (ltv/cltv/dti) 테스트 대 한 제한; 필요 없는 attr → CANNOT PRICE (해당 전에 주장); 국가 실패; overlap → 가장 제한적인 (세부사항에 있는surfaced). 12 EligibilityCellMatcherTest 녹색. 연구 워크플로에서 Enum-reuse + spec; adversarially 검토 (2 시약): 고정 된 matrix type 비율 파견 + 호이스트 - 라비오 CANNOT PRICE + 오버랩 관측 + unhonored 기타. 없음 KamoInitializer 코드 변경 (catalog repo pkg 등록 Slice 1) - 재 실행 만.

  5. · kamo-shared-library

    MlosMarginSchedule + MarginScheduleResolver (Phase-2 Slice 5)

    투자자 마진 층 - §8.1 step-4 가격 어셈블리의 "+ margin schedule" 용어. - MlosMarginSchedule (mlos margin schedule) : rateSheetVersionId FK, productId (null=all), marginType, 대출AmountLow/High 밴드, 값 (raw BigDecimal), compBasis (BORROWER PAID|LENDER PAID). - CompBasis enum - Comp BASIS Convention (어떻게 마진이 지급됩니다), LO comp-plan amount; LO comp 입력을 득점하지 않는 (doc 13 §8.5). - MarginScheduleResolver (ungated @Component) : 적용 가능한 (예정, 대출 금액, compBasis) = 밴드 포함 금액 (포함, null=open) 및 comp 일치; totalMargin = Σ 값 (ZERO if none). 5 MarginScheduleResolverTest 녹색. 가격 번호 raw BigDecimal (Slice-3 보정). NO KamoInitializer 코드 변경 (catalog repo pkg 등록 Slice 1; 지수 엔티티티 선언) - 재 실행 만.

  6. · InitializerService

    Value-set 플랫폼 소유 소유권(Phase-2 Slice 4)

    SchemaCleanupRunner : ADD CONSTRAINT mlos value set ownership chk를 설치하십시오. CHECK (platform owned = (organization id is NULL)) - doc 02 §6.2 : 플랫폼 세금은 platform owned with null org; org-specific set은 org-scoped입니다. Biconditional `= ... NULL`입니다. 모양은 enum-whitelist 청소를 살아납니다. 카탈로그 repo pkg 이미 등록 (Slice 1).

  7. · kamo-shared-library

    LLPA 조정 + 가치 세트 + 조건 증발기 (Phase-2 Slice 4)

    LLPA/조절 층 + §8.1 step-4 일치를 위한 deterministic predicate 엔진 ("an 조정 일치 iff 모든 그것의 조건은 만족됩니다."). - MlosPriceAdjustment (mlos price adjustment) : rateSheetVersionId FK, productId (null=all), AdjustGroup, operation(ADDITIVE|MULTIPLICATIVE), 값, stackOrder, capValue, 라벨. - MlosAdjustmentCondition (mlos adjustment condition) : priceAdjustmentId FK, 속성, 연산자 *************** numLow/numHigh의 valueSetId FK. - MlosValueSet (mlos value set) + MlosValueSetMember (mlos value set member) : 카테고리 선택 세트; doc 02 §6.2 플랫폼 소유 예외 (organizationId nullable + platformOwned flag on SET 만; 회원은 orgId 미러를 운반하지 않습니다 - 세트를 통해 소유권, 아니 편한 표면). - AdjustmentConditionEvaluator (ungated @Component) + ScenarioFacts : 숫자 ops vs num low/high, ops 대 결의 회원; 누락된 사실 → 일치 없음; 빈/null 회원에 SET OPS FAIL 폐쇄 set (dangling soft-FK 값은 모두 침묵하지 않습니다) 및 null-resolver-safe (NPE 없음). 9 *********** 녹색. Adversarially 검토 (2 시약 워크) : 고정 2 높은 증발기 버그 (NOT IN 빈에 실패 set; NPE on null resolver) + 리뷰 당 중복 회원 orgId 미러를 떨어졌다. 제품정보 숫자 원시 BigDecimal (Slice-3 보정). KamoInitializer는 값 설정 소유권을 추가합니다.

  8. · kamo-shared-library

    MlosBasePriceGrid + NoteRateLadder 가격 세포 (Phase-2 Slice 3)

    Priceable rate/price cell - FK BOTH의 첫 번째 카탈로그 엔티티티티 (Slice 1) 그리고 제품 (2 결합); §8.1 가격 집합의 기초. - MlosBasePriceGrid (mlos base price grid) : rateSheetVersionId FK, ProductId FK, 메모, lockPeriodDays, basePrice (가격-100), basePoints, min/maxLoanAmount, ioFlag. 합성 UNIQUE (버전, 제품, 참고 rate, lock period days, io flag) 엔터티 선언 (io flag NOT NULL → 전체 독특하고, 원시 DDL 없음. - NoteRateLadder (ungated @Component) : 파 = 세포 가장 가까운 가격 - 100; 가장 가까운 가격 (target); ties -> 낮은 참고 비율 (doc 02 §8.1 단계 5). 5 NoteRateLadderTest 녹색. CODE-VERIFIED CORRECTION: doc 02 §6는 EmbMoney/EmbPercent를 말한다, 그러나 고정된 LoanPricingSnapshot (충전성 앵커)는 RAW BigDecimal을 사용 - interestRate DECIMAL (9,6), DECIMAL (9,4), embeddables; EmbPercent(9,4)는 6 소수의 비율과 일치할 수 없습니다. 그래서 snapshot-mirrored 그리드 가격 번호 사용 Raw BigDecimal matching LoanPricingSnapshot (note rate 9,6 / base price+points 9,4 / 대출 금액 18,2). KamoInitializer 코드 변경 없음 (catalog repo pkg 등록 Slice 1; 독특한 index entity-declared) - 재 실행 만.

  9. · InitializerService

    Mlos product 팔 일관성 CHECK (Phase-2 Slice 2)

    SchemaCleanupRunner : 추가 계약 *********** CHECK ((amortization type = 'ARM') = (arm fixed period months is not NULL)) - 고정된 기간 IFF 제품 선언은 팔 (doc 02 §6.6)입니다. `= ... NULL` 모양이 아닙니다. (표시가 아닌) 일반적인 enum-whitelist CHECK 청소를 생존합니다. 카탈로그 repo pkg 이미 Slice 1.에 등록.

  10. · kamo-shared-library

    MlosProduct + MlosArmIndex 제품 표준 층 (Phase-2 Slice 2)

    카탈로그의 제품 회전 (doc 02 §6.3) : 모든 가격 다운 스트림 (기본 가격 그리드, eligibility matrices, 가이드 라인 규칙) FKs to MlosProduct.uid. - MlosProduct (mlos product) : per-investor 제품 - InvestorId FK, ProductCode, 분류 제품정보 (REUSES 잠금 URLA AmortizationType), 용어 월, armFixedPeriodMonths, armIndexId FK, 대출 클래스, 문서형, 적합, losProgramCode (REUSES 잠금 17-value LoanProgramCode, §6.4), guidelineVersionPointer (현재 FK-by-id to future MlosGuidelineVersion.uid, nullable), 활성. assertStructurallyValid(): arm fixed period months 세트 IFF amortization type=ARM. - MlosArmIndex (mlos arm index) : indexName, marginBps, 초기/기간/시간 캡 + 바닥 EmbPercent (doc 02 §6 속도-via-EmbPercent), 조절 월. - 2개의 새로운 enums LoanClass/문서 유형 (catalog-specific; DocumentationType은 §3.5 비 QM입니다. Slice-1 MlosDocType과 구별되는 doc-program 클래스. 2 저장소. 기본 = BaseUuidEntity; orgId=Long @JsonSerialize(ToString). 5 MlosProductInvariantTest 녹색. KamoInitializer는 mlos product ARM-consistency DB CHECK (catalog repo pkg 이미 등록 된 Slice 1)에서. Deferred: 가격 *********** + 작가.

  11. · InitializerService

    등록 카탈로그 repos + 레이트 시트 버전 no-overlap 인덱스 (Phase-2 Slice 1)

    - @EnableJpaRepositories += com.kamo.z.shared.mlos.catalog (새로운 MlosInvestor/ *********** repos; 이미 @EntityScan에 의해 커버. - SchemaCleanupRunner: ux rate sheet version active 부분 고유 색인 mlos rate sheet version (organization id, Investor id) WHERE 상태 = 'ACTIVE' 및 effective until IS NULL - 백스톱 (org, Investor) 당 한 개 오픈 액티브 버전 no-overlap invariant (doc 02 §6.5; CRDB에는 범위 포함 제약이 없습니다).

  12. · kamo-shared-library

    카탈로그 검증 + 효과적인 버전 스핀 (Phase-2 Slice 1)

    Phase-2 카탈로그의 가장 작은 shippable 조각 (doc 02 §6) : 입증 된 체인 이mgDat -> MlosSourceDocument -> MlosRateSheetVersion 과 immutable 효과 point-in-time Resolution을 가진 versioning spine. Substrate-first (NO MLOSCatalog서비스 없음) 아직 작가); 이것은 immutable-catalog-PK 기초 DecisionInput는 FK에. 새로운 pkg com.kamo.z.shared.mlos.catalog: - MlosInvestor (per-org 레지스트리; org 당 short code 독특), MlosSourceDocument (thin 잠긴 ImgDat에 대한 주석; soft-FK img dat id, 결코 바이트를 복원하지, doc 02 §6.4). - MlosRateSheetVersion : immutable 효과적인 버전 ( effective from/until 창, supersedes self-FK, sequence no, 상태 수명주기, source document FK, cutoff time) 와 함께 app-layer 부분 mutability WORM 가드 (@PostLoad snapshot + @PreUpdate diff): 동결 가격 / ID cols, DRAFT->ACTIVE, ACTIVE->SUPERSEDED, ACTIVE->RETIRED 만 허용 and the write-once 닫기 의 effective until. DB 트리거 없음 (CRDB는 24.3). - effectiveVersionResolver (gated mlos.catalog.enabled): 시점에서 시간 해결책 — 그의 [ effective from, effective until) 창 CONTAINS priced as of, 결코 "최신 행" 가입; 효과적인 창 오버랩에 던져 (defense-in-depth, doc 02 §6.5/§8.1). - 6개의 enums **************** 비율SheetVersionStatus) + 3 저장소. 기본 = BaseUuidEntity (doc 02 §6.1); orgId=Long @JsonSerialize (ToString) (코드 인증: Organization.id는 unique rowid, doc 02's "UUID"). 17 시험 녹색 (6개의 결점에서 시간 + 11 WORM 감시). KamoInitializer는 카탈로그 repo pkg + ux rate sheet version active를 추가합니다. 부분 고유 no-overlap 색인.

  13. · kamo-shared-library

    Per-tenant 자신감을 가지고 게이트 오버로드 (config↔gate 배선)

    첨가제 DecisionGate.evaluate(단, 신뢰, 법적으로RequiresHuman, BigDecimal tenantThresholdOverride) - 해결 된 자율적 tuned 으로 *********** 무대, 층). 더 보기 법적인 벽은 절대로 유지하고 override는 비 다행성에 의해 바닥 STILL 안전 바닥 (자동은 결코 밑에 자동 행동 할 수 없습니다). Null override는 다시 돌아갑니다. 플랫폼 기본; 기존 3-arg 평가 () null과 위임, 그래서 배송 게이트/DecisionSpine 행동 + 테스트가 변경되지 않습니다. 추가된 safetyFloor() getter 그래서 콜러는 같은 바닥에 임계값을 해결합니다. 이 단계-1 구성 기반을 의사 결정 게이트에 연결 : 엔진은 이제 할 수 있습니다 do gate.evaluate(단, 자신, 법적, **************** 무대, **************** 9 DecisionGateTest (4 새로운) + 5 DecisionSpineTest + 6 MlosActivationServiceTest 녹색.

  14. · InitializerService

    부분적인 유일한 색인 + servicing invariants (단계 1 구성 완료)

    새로운 mlos.config 도메인에 대한 SchemaCleanupRunner DDL (mlos.config 이미 @EnableJpaRepositories; Hibernate ddl-auto : 업데이트는 테이블을 만듭니다. - 하나의 활성 부분 고유 지수 (WHERE is active=true 및 effective to는 NULL입니다) 에 mlos pricing policy / mlos capital policy / mlos servicing policy (lender profile id) + mlos product enablement (lender profile id, program id) - Hibernate는 WHERE 인덱스를 방출 할 수 없습니다. - ServicingPolicy immutable invariants: CHECK scra enforced=true + fdcpa enforced=true (=-CHECKs, enum-whitelist 스윕 생존).

  15. · kamo-shared-library

    단계 1 구성 도메인 + MlosActivationService (Slice 5)

    Doc 04의 구성 요소 재고 완료 *********** - 정책 Singletons (one-active-per-profile, effective-dated/append-only): PricingPolicy (ppeSourcePriority List<String> - 유형 MortgageVendorType §5 공급 업체 도메인에 대 한 deferred; NO LO-comp), CapitalPolicy (NO pullThroughPct) + 자본금 어린이 제한, ServicingPolicy (scra/fdcpa immutable invariants). 부분적인 유일한 색인 + scra/fdcpa CHECKs는 KamoInitializer에서 갑니다. - ProductEnablement (프로그램 당 단 하나 활동; channelRestriction @ElementCollection; programId UUID — Program.id UUID, doc's 'Long'는 코드 인증 오류입니다. - 투자자 가족 : InvestorConfig + InvestorOverlay + DeliveryRule (휴대용) *********** — dup 없음) + CommitmentRule (CommitmentType를 재사용하십시오). - RiskOverlay (ruleExpression JSONB String). 11개의 새로운 enums. - MlosActivationService @Component (gated mlos.config.enabled): 해결파일 (org ₢ 킹 + *********** 무대, 바닥) - TY LenderProfile + 자율성 config + AutonomyResolver (문의 신뢰 벽에 대한 지속적인 소스). 23 mlos.config 테스트 그린 (MlosActivationService 6 새로운). Config-entity 기본 패턴 전반 ( @Id UUID + @Embedded EmbRecordState; 어린이 EmbRecordState). 계획: *************** (예정). Deferred: 가득 차있는 스크린/module/vendor 활성화 모체 + validateProfile + SecurityService self-heal; *.config.history append-only 테이블; predicate 증발기.

  16. · kamo-shared-library

    채널 적용 엔진 (Phase-1 Slice 4)

    가장 제한적인 해결자 (doc 04 §8) - 제품 x 채널 x 투자자 -> {ALLOWED|DISALLOWED, ExecuPath, Model Authority, fundingBehavior}. - ChannelApplicabilityRule 법인: **************** conditionExpression (JSONB 문자열, Program.rulesetJson precedent)/outcome/ *********** 날짜 + EmbRecordState. 범위 (저장되지 않음)에서 우선 순위. 동일한 설정 기본 패턴. - 5 enums: RuleScope(+priority) Investor=0..Tenant=3), 채널, 적용성, *************** (HYBRID는 이들에게 per-loan을 해결했습니다), FundingBehavior(5, incl PORTFOLIO HOLD — DeliveryRule's 4-value unify deferred). - ChannelApplicabilityResolver @Component (ungated, stateless): 비어 있는/any-DISALLOWED => 제거 ( §8.2 주변의 가장 제한적인 독서를 안전하십시오); 다른 ALLOWED 가장 강한 범위에서 attrs로. ChannelResolution 기록. 5 *********** 녹색 (17 mlos.config 테스트). 상태표시 predicate evaluator + 효과적인 필터 + AiDecision pinning + MlosActivationService 방어. mlos.config 이미 KamoInitializer 검사에서 — 재 실행 만. 계획: ***************

  17. · kamo-shared-library

    AuthorityConfig (법정 + govt 위임) - Phase-1 Slice 3

    - AuthorityConfig (LenderProfile 당 단일 톤) : 하향성 DELEGATED/NON DELEGATED/HYBRID + 수동UwAllowed + govtDelegation 세트 {FHA DE,VA SAR LAPP,USDA,NONE} @ElementCollection (통칭 테이블 mlos authority govt delegation) - 게이트 내부 govt UW 대 기관 추천. hasGovtDelegation() 헬퍼 (HYBRID/channel Resolution deferred). - UnderwritingAuthority + GovtDelegation enums + AuthorityConfigRepository. - 동일한 설정 기본 패턴 (manual @Id UUID + @Embedded EmbRecordState); UNIQUE(lender profile id) 싱글톤. 첫째 @ElementCollection 에 mlos.*. 3 AuthorityConfigTest 녹색 (12 mlos.config 테스트). mlos.config 이미 KamoInitializer scan — re-run은 mlos authority config + 컬렉션 테이블을 만듭니다.

  18. · kamo-shared-library

    AI 자율성 구성 + 안전 바닥 결산기 (Phase-1 Slice 2)

    - AiAutonomyConfig (LenderProfile 당 싱글 톤; 자율성 수준 **************** GlobalDefaultThreshold DECIMAL(4,3), autoExecuteEnabled) + AutonomyStageOverride (프로필, 단계); stageKey 재사용 LifecycleStage - 별도의 PipelineStage enum은 존재하지 않습니다. autoExecuteEnabled). 동일한 설정 기본 패턴 (manual @Id UUID + @Embedded EmbRecordState); UNIQUE (lender profile id) 싱글턴 + UNIQUE (프로필,stage key). - AutonomyResolver @Component (정칭, DecisionGate와 같은 stateless) : 효과적인 뚱 베어 = max(stageOverride?:global, safetyFloor) - 자율적인 튜닝은 자신감을 가지고 그리고 비 다능한 플랫폼 바닥을 낮출 수 있습니다 (doc 13 §8.7); autoExecuteEnabled override-then-글로벌. 문의 신뢰 벽에 대한 지속적인 소스 (위링 deferred). 5 AutonomyResolverTest + 4 LicensingResolverTest 녹색 (TDD). 법인 선언. mlos.config 이미 KamoInitializer 검사에서 — 재 실행은 2개의 새로운 테이블을 만듭니다.

  19. · InitializerService

    Mlos.config repo pkg 등록 (Phase-1 Slice 1)

    @EnableJpaRepositories 그래서 KamoInitializer에 com.kamo.z.shared.mlos.config를 추가하십시오 mlos lender profile + mlos licensing entry를 생성합니다. 인덱스 (incl. 한국어 market id)는 @Table - SchemaCleanupRunner DD가 필요하지 않습니다.

  20. · kamo-shared-library

    LenderProfile + LicensingEntry 설정 기반 (Phase-1 Slice 1)

    새로운 com.kamo.z.shared.mlos.config tenant-config 기초 (doc 04 §3): - LenderProfile (root, MORTGAGE MarketId 당 UNIQUE) - 소프트 FKs 잠금 조직 (Long) + CommerceMarket (UUID) id에 의해. 참고 marketId는 UUID입니다 (CommerceMarket.id는 gen random uuid입니다. doc 04's 'Long FK'는 코드 인증입니다. 오류, 같은 경우 AiDecision.loanFileId). replay를 위한 profileVersion. - LicensingEntry (해외 회사 라이센스, 회원 StewardLicense와 구별) - licenseType 8-value enum; stateCode ISO-3166-2; 저장 상태 없음, 계산 from effective/expiry date via isEffectiveOn() (문서 04 §7.3). - LicensingResolver @ 구성 요소 (gated mlos.config.enabled) : isTenantLicensed ( profile, state, type) date-based; uncovered 관할권 => false (작성된). - 구성 기본 패턴 : 수동 @Id UUID + @Embedded EmbRecordState (NOT) BaseUuidEntity - 타임 스탬프가 콜드됩니다. doc 04 §3). 4 LicensingResolverTest 녹색 (TDD). 법인 선언 (UNIQUE market id). 디퍼링: **************** 싱글톤; MlosActivation 서비스 + SecurityService 부팅 셀프 치유.

  21. · DaemonService

    DaemonService Compliance-timer SLA 스윕(timer 채택)

    MLOS 준수 타이머의 첫 번째 채택자 : 석영 작업 (각 5 분) 통화 *********** ARMED-but-past-deadline ECOA를 플립하기 위하여 (AdverseActionTimer) + Reg X (RegXTimer) 시계를 EXPIRED로 설정하여 BLOCKED 차용기 규제 기한을 끊을 수 없습니다. - ComplianceTimerSweepJob (쿼츠 일) + 석영Config JobDetail/Trigger; 타이머 service는 @Autowired(required=false) + 기본값은 flag를 활성화하므로 작업 config에 대한 충돌 안전입니다. - @EnableJpaRepositories += *************** - configmap: mlos.compliance.enabled=true (Share-lib 서비스 활성화) + *************** {enabled:true, cron:'0 */5 * * ?'}. 타이머 테이블이 빈 동안 안전 no-op (엔 엔진 팔 타이머 없음).

  22. · kamo-shared-library

    **************** 대몬서비스 SLA 스윕

    모든 ARMED-but-past-deadline AdverseActionTimer + RegXTimer를 EXPIRED로 변환합니다. (강력한 에스컬레이션 신호는 수락 스튜어드 스크린 표면; 사건 규정 준수 큐에 대한 방출은 후속입니다. 카운트를 반환; 빈 타이머 테이블은 안전한 no-op입니다. 2개의 새로운 시험 (12 ComplianceTimerService 시험 녹색).

  23. · kamo-shared-library

    DecisionSpine (Slice 2b-ii)에 와이어 라이센스 인식 할당

    DecisionSpine.record() 지금 스탬프 StewardTask. 할당된MemberId에서 StewardAssigner 경로 결정은 대출의 관할권을 운반 할 때 : - DecisionRequest는 선택적인 subjectStateCode (ISO-3166-2) + actType를 얻습니다 (LicensedActType). 둘 다 현재와 StewardAssigner bean가 존재할 때 (mlos.legal.enabled), 경로 작업은 스튜어드 라이센스에 할당됩니다 그 행위에 대한 상태; 그렇지 않으면 할당되지 않습니다 ( 스튜어드는 그것을 주장). - StewardAssigner는 ObjectProvider를 통해 OPTIONAL Docstor로 주사했습니다. mlos.legal.enabled 없이 달리는 회전은 unaffected. Back-compat 6-arg에 대 한 생성자 유지 — 4 기존 DecisionSpineTest는 변경되지 않았습니다. 29 mlos 테스트 그린 (DecisionSpine 5, StewardAssigner 5, LegalRegistry 9, ComplianceTimer 10). Code-only — schema 변화 없음, KamoInitializer 실행.

  24. · kamo-shared-library

    라이센스-aware StewardignAsser (decision-spine Slice 2b-ii)

    라이센스 인식 스튜어드 selector 추가 (doc 03 §3.2; doc 01 §6 #9) - 선택 MLOS StewardLicense는 행동의 필수 면허를 위한 유효합니다 차용자의 상태에 유형, 가장 적은 오픈 StewardTasks에 부하 균형 (tie -> 가장 낮은 memberId); 비어있을 때 관할권 (위탁자 escalates). - StewardAssigner @ 구성 요소 (gated mlos.legal.enabled) StewardLicense + StewardTask repos — MLOS 게이트 레지스트리를 읽습니다, 잠긴 핵심 orgs. 이름 * ( donotmodify deps 없음; 회원 -> (orgId, userId) ->License 가입을 피하십시오). - StewardLicense.isValidOn(date) - 날짜 기반 licensure에 대한 진실의 단일 소스 (보통, 결코 저장되지 않음); *************** 그것에 refactored. -********** (candidate 풀). 5 StewardAssignerTest 녹색; 9 법적 고지 테스트 아직도 녹색 (14 합계). 스키마 없음 변경 (KamoInitializer 실행). Substrate-first - DecisionSpine.record로 배선() ROUTE TO HUMAN에서 우표에 할당된MemberId는 후속입니다.

  25. · InitializerService

    Mlos.compliance repo pkg 등록 (Slice 2c-i)

    추가 *********** 에 @EnableJpaRepositories 그래서 KamoInitializer mlos adverse action timer + mlos regx timer를 생성합니다. Indexes entity-declared 를 통해 @Table — SchemaCleanupRunner DDL 필요 없음.

  26. · kamo-shared-library

    ECOA + Reg X 타이머 기판 (decision-spine Slice 2c-i)

    새로운 *********** 패키지 (doc 03 §2.8) - kamo-owned lock donotmodify의 컴플리너 아날로그. 트리드타임. 첫 번째: - AdverseActionTimer (ECOA/Reg B 30일 시계; noticeKind ECOA AA/COUNTEROFFER/ INCOMPLETE NOA) + RegXTimer (확인 된 서비스; 의무 *************** 옵션 정보 **************** 부드러운 대출FileId ref, +orgId 열 분산. Breach-sweep 인덱스 (status, 마감일 at). - ComplianceTimerStatus enum + 2개의 리포지트가 ***********에 있습니다. - ComplianceTimerService @Component (gated mlos.compliance.enabled): 팔 타이머, 규제 주간 통화를 인코딩 (30/36/120/5, 테스트에 의해 잠긴), CONTINUITY 삽입된 시계를 통해 명시된 기한, breach Detection을 필요로 합니다. 10 ComplianceTimerServiceTest 녹색 (TDD). @Table을 통해 법인 선언. DaemonService SLA-escalation + BLOCKED->STALE 방어 (스윕 찾기). 이 슬라이스 제외: ComplianceFinding (FK donotmodify. TridTimer), RBPN/FCRA 공지, ChangedCircumstance.

  27. · InitializerService

    Mlos.legal repo pkg 등록 (Slice 2b)

    Com.kamo.z.shared.mlos.legal 에 @EnableJpaRepositories 그래서 KamoInitializer mlos licensed act registry / mlos ron eligibility / mlos steward license를 생성합니다. 모든 인덱스는 @Table - SchemaCleanupRunner DDL이 필요합니다.

  28. · kamo-shared-library

    국가 인식 법적 레지스트리 기판 (decision-spine Slice 2b)

    새로운 com.kamo.z.shared.mlos.legal 패키지 - 그린 필드 생산자의 DecisionGate의 절대 법적 벽 입력 (doc 03 §3.2). 첫 번째, 아니 아직 채택: - LicensedActRegistry (platform ref, act+state 당) -이 규제 된 행동 법적으로 라이센스 된 인간이 필요합니까? 고유(act type, state code). - RonEligibility (platform ref, 상태 당) - ronAllowed/ipenRequired + 커미션/시그너/프로퍼티 정렬 규칙 토큰. - StewardLicense (강경, memberId에 열쇠가 붙은) - NMLS-by-state licensure. 저장 상태 열: effectiveDate<=today<=expiresAt에서 계산 (doc 13 §4.3 보정 ledger overrides doc 03의 인라인 상태 필드). - LegalRegistry @Component (gated mlos.legal.enabled, default off) : 실패 legallyRequiresHuman / 스튜어드 라이센스 (일기 기준) / ronAllowedIn. stateCode는 ISO-3166-2 문자열 (국제 읽기; USStateType은 죽은 코드입니다). @Table을 통해 법인 선언. 9 법적고지 테스트 패스 (TDD). 출하된 DecisionGate를 컨트랙트로 컴파일합니다. - 의사 결정/정지 편집. License-aware StewardTask 할당은 다음 조각으로 묶습니다.

  29. · InitializerService

    Mlos.steward + mlos.orchestration 저장소; Slice-2a 스키마

    - KamoInitializerApp @EnableJpaRepositories : 축적 된 MLOS 저장소 추가 제품 설명 *************** 더 보기 esign/personal loans 그래서 KamoInitializer 자신의 스키마를 소유. - SchemaCleanupRunner: 일반적인 @Enumerated whitelist-CHECK 청소; 부분/ 독특한 인덱스 + FKs에 대한 **************** *************** Decision-spine Slice-2a 색인은 지금 입니다 entity-declared (@Table) 그래서 Slice-2a 블록은 no-op 논평입니다.

  30. · kamo-shared-library

    Decision-spine Slice 2a - OrchestrationState + StewardTask + DecisionSpine BLOCKED-state 기계

    OrchestrationState (그린/BLOCKED/COMPLETE) + StewardTask (확장 기록) + enums + DecisionSpine (@ConditionalOnProperty mlos.spine.enabled): 배송된 DecisionGate 구성 + AiDecision WORM ledger + 트랜잭션 아웃 박스 하나 tx — ROUTE TO HUMAN은 작업을 열고 + BLOCKs 단계; 해결() HUMAN OVERRODE 결정 + 차단을 작성합니다. Mutable 상태 entities (@PreUpdate). 4/4 Mockito 테스트 그린.

당신의 우주는 기다리고 있습니다.

몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.

영원히 무료 - 신용 카드 필요 없음