Codify §4.2 requirement-writer single-live partial-unique backstop
At most ONE LIVE requirement per (loan_file_uid, img_doc_type_id, party) obligation cell. **************** app-layer idempotency read cannot catch a concurrent ...
Scope mock lead vendors to a market; drop removed createMarket arg
NULLs-safe unique index for ClosingWorkflowTemplate versions (doc 05 §6.3)
One version per (organization_id, scope_level, scope_ref_id) grain. CRDB is NULLs-distinct, so split for the nullable scope_ref_id (mirrors mlos_aiptp_*): mlos_...
Null-safe split of the AiPullThroughPolicy single-active index (doc 09 §8)
CRDB is NULLs-distinct, so the single (lender_profile_id, market_id) WHERE status='ACTIVE' index did NOT backstop the org-wide (market_id IS NULL) grain — two c...
(loan_file_uid,type) native single-active partial-unique index (doc 11 §5.3/§6.2)
Closes a pre-existing double-active hole in the MLOS loan-identifier registry: index (a) **************** only constrains (org, type, VALUE) for the 10 REGISTRY...
Anti-double-lock partial-unique index for RCE lock records (doc 08 §7.3)
SchemaCleanupRunner adds **************** — a partial UNIQUE index on mlos_lock_record (organization_id, loan_scenario_id) WHERE status IN **************** At m...
§2.4 anti-AUS-shopping partial-unique index on mlos_aus_run
One ACTIVE (non-superseded, non-frozen) AusRun per (loan_file_uid, source_label) — "duplicates look like AUS-shopping" (doc 10 §2.4/§2.5). Safe to land now that...
Register pkg + RCE/pull-through DDL (docs 08/09)
@EnableJpaRepositories += **************** SchemaCleanupRunner: **************** (partial-unique) + rce_commit_ai_decision_fk + rce_commit_lock_record_fk + rce_...
Register com.kamo.z.shared.mlos.eclose in @EnableJpaRepositories (doc 05)
Register com.kamo.z.shared.mlos.aus in @EnableJpaRepositories (doc 10)
New aus_* repo package (AusRun + children). mlos_aus_run created + verified.
EventProjectionPolicy platform-default partial unique index (doc 07 §6.7)
**************** **************** WHERE organization_id IS NULL — pins the platform-default singleton (CRDB NULLs-distinct leaves null-org rows unconstrained ot...
RuleVersionPin entry->pin hard FK (doc 06 §4.6)
mlos_rvpe_pin_idx + mlos_rvpe_pin_fk **************** -> mlos_rule_version_pin.uid), mirroring the satisfier->requirement FK. Applied + verified.
Rule-layer DB CHECKs (doc 06 §4.2/§9.2)
3 platform-owned biconditional CHECKs (mlos_requirement_rule / _rule_set / mlos_freshness_policy: platform_owned = (organization_id IS NULL)) + the legal-wall b...
Schema for the 1-obligation/N-satisfier condition model (doc 06)
Register com.kamo.z.shared.mlos.docs in @EnableJpaRepositories (new repo pkg) + SchemaCleanupRunner backstop for mlos_requirement_satisfier (the append-only WOR...
Notification party+consent ledger schema (doc 07 §6)
- KamoInitializerApp: @EnableJpaRepositories += **************** (new repo pkg for **************** - SchemaCleanupRunner: mlos_consent_one_identity_chk = num...
DecisionInput provenance-integrity DDL (decision-spine 2c)
decision_input auto-creates via ddl-auto; SchemaCleanupRunner adds the invariants Hibernate can't emit: - decision_input_one_source_chk: num_nonnulls(11 FK cols...
Check in pending WIP (no CI/CD on this repo)
- DataLoader: platform baseline security model + KamoCRM market-backfill wiring - add KamoCRMMarketBackfillLoader; remove superseded BillingGroupBackfillLoader ...
Regenerate maven wrapper (drop mvnw.real shim, vendor wrapper jar)
Stop per-boot customer_id FK tug-of-war in SchemaCleanupRunner
Remove the stale RetailCustomer->Account cleanup drops of commerce_carts.customer_id, **************** and **************** Those columns are now live, Hibernat...
Guideline-version no-overlap partial-unique index (Phase-2 Slice 7)
SchemaCleanupRunner: ux_guideline_version_active partial-unique ON mlos_guideline_version (organization_id, product_id) WHERE status='ACTIVE' AND effective_unti...
Value-set platform-owned ownership CHECK (Phase-2 Slice 4)
SchemaCleanupRunner: ADD CONSTRAINT mlos_value_set_ownership_chk CHECK (platform_owned = (organization_id IS NULL)) — doc 02 §6.2: a platform taxonomy is platfo...
Mlos_product ARM-consistency CHECK (Phase-2 Slice 2)
SchemaCleanupRunner: ADD CONSTRAINT **************** CHECK ((amortization_type = 'ARM') = (arm_fixed_period_months IS NOT NULL)) — a fixed period is declared IF...
Register catalog repos + rate-sheet-version no-overlap index (Phase-2 Slice 1)
- @EnableJpaRepositories += com.kamo.z.shared.mlos.catalog (the new MlosInvestor/ **************** repos; entities already covered by @EntityScan). - SchemaCl...
Partial unique indexes + servicing invariants (Phase-1 config completion)
SchemaCleanupRunner DDL for the new mlos.config domains (mlos.config already in @EnableJpaRepositories; Hibernate ddl-auto:update creates the tables): - one-act...
Register mlos.config repo pkg (Phase-1 Slice 1)
Add com.kamo.z.shared.mlos.config to @EnableJpaRepositories so KamoInitializer creates mlos_lender_profile + mlos_licensing_entry. Indexes (incl. UNIQUE market_...
Register mlos.compliance repo pkg (Slice 2c-i)
Add **************** to @EnableJpaRepositories so KamoInitializer creates mlos_adverse_action_timer + mlos_regx_timer. Indexes entity-declared via @Table — no S...
Register mlos.legal repo pkg (Slice 2b)
Add com.kamo.z.shared.mlos.legal to @EnableJpaRepositories so KamoInitializer creates mlos_licensed_act_registry / mlos_ron_eligibility / mlos_steward_license. ...
Register mlos.steward + mlos.orchestration repos; Slice-2a schema
- KamoInitializerApp @EnableJpaRepositories: add the accumulated MLOS repo packages **************** plus esign/personal_loans so KamoInitializer owns their...
Migration for borrower-facing brand + disclosure columns
Adds the seven nullable columns the kamo-shared-library Organization entity now declares (TAGLINE / NMLS_ID / PHONE_SUPPORT / EMAIL_SUPPORT / EQUAL_HOUSING_DISC...
ProgramSeederRunner - seed 17 baseline LoanProgramCode programs (idempotent)
Add MEMBER_UI_PREFERENCES table (order 60)
Idempotent CREATE for the generic per-member UI-preference store backing the hex-head popover size selector and future per-member UI settings. Schema mirrors th...
Add CDR caller-ID columns to recordings table (order 40)
Adds caller_id_num, caller_id_name, call_direction, and call_result columns to the recordings table so the softphone history tab can display who called without ...
Add member language + default_currency columns
Adds two NOT NULL columns to the members table backing the new Member.language (VARCHAR DEFAULT 'ENGLISH') and Member.defaultCurrency (VARCHAR(10) DEFAULT 'USD'...
Migration runner for Recording provider-lookup columns + VM archive columns
Adds RECORDINGS.provider_instance_id (UUID) and provider_external_id (VARCHAR(64)) plus the composite idx_recordings_provider_lookup index used by the softphone...
Add include_company and company_name columns
LeadCompanyColumnRunner (Order 40) idempotently adds: - lead_markets.include_company (BOOLEAN, nullable) — tracks whether a market requires company name on le...
Use CockroachDB-compatible DROP INDEX CASCADE syntax
CockroachDB rejects ALTER TABLE ... DROP CONSTRAINT for UNIQUE constraints with: unimplemented: cannot drop UNIQUE constraint "uk_org_oauth_provider" using ...
Multi-instance phone/SMS provider migration
Runs after Hibernate ddl-auto:update creates new tables (VOIP_PROVIDER_INSTANCE, BULK_TEXT_PROVIDER_INSTANCE, PHONE_EXTENSION, PHONE_END_USER, PHONE_DEVICE, PHO...
Drop teamMemberPayFeesSetting from DataLoader
Master-model provisioner no longer passes the removed tri-state pay-fees setting when creating the master security model — the field is gone from ChildOrgSecuri...
TeamMember is-a Member; drop bogus tm.getMember() calls
TeamMember uses JOINED inheritance — it IS a Member, no nested member field. The backfill was calling tm.getMember() which doesn't exist. Also switches the JPQL...
Drop stale commerce_subscription_events event_type CHECK for COMP events
Drop stale CHECK constraints on default-role-rights enum columns
Hibernate auto-generates CHECK (column IN ('VAL1', 'VAL2', ...)) constraints on CREATE TABLE for @Enumerated(EnumType.STRING) columns, freezing the enum's value...
Add missing unique constraints for role-right upserts
**************** + syncSecurityModelRoleRights use `ON CONFLICT (role_id, right_type) DO NOTHING` and `ON CONFLICT (default_role_id, right_type) DO NOTHING`, wh...
Seed Organization.isTopLevel for kamocrm and OWNER_UNLIMITED self-comp plan
- DataLoader: drop OrganizationType arg from createOrg, set isTopLevel=true on kamocrm - KamoCRMAgeReqUpdateRunner + test: match on IS_TOP_LEVEL = TRUE instead ...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
