차용 브랜드의 마이그레이션 + 공개 열
Kamo-shared-library 조직의 7개의 null을 추가합니다 이제 법인 선언 (TAGLINE / NMLS ID / PHONE SUPPORT / EMAIL SUPPORT / EQUAL HOUSING DISCLOSURE / ON PRIMARY TEXT / GRADIENT DIRE...
ProgramSeederRunner - 씨앗 17 기본 LoanProgramCode 프로그램 (idempotent)
MEMBER UI PREFERENCES 테이블 추가 (주문 60)
Idempotent CREATE for the generic per-member UI-preference 저장소 백업 hex-head 팝업 크기 선택기 및 미래 per-member UI 설정. Schema는 EmbRecordState 협약 (is active, date created, ...
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 ...
회원 언어 추가 + default currency 열
NULL 열을 회원 테이블에 추가하지 새로운 회원.language (VARCHAR DEFAULT 'ENGLISH') 및 회원.기본 통화 (VARCHAR(10) DEFAULT 'USD') 필드. 기존 행은 backfilled 기본적으로 NULL constraint는 가동불능시간 없이 만족...
기록 공급자 조회 란을 위한 마이그레이션 주자 + VM 아카이브 열
RECORDINGS.provider instance id (UUID) 및 공급자 external id (VARCHAR(64)) 플러스 합성 idx recordings provider lookup 인덱스 소프트 폰 역사 탭의 대량 조회 엔드포인트에 의해 사용됩니다. 또한 PHONE VO...
Include company 및 company name 열 추가
LeadCompanyColumnRunner (주문 40) idempotently 추가 : - Lead markets.include company (BOOLEAN, nullable) - 여부를 추적 시장은 지도에 회사 이름을 요구합니다 - lead.company name (VARCHAR(...
CockroachDB 호환 DROP INDEX CASCADE 구문
CockroachDB는 ALTER TABLE을 거부합니다 ... UNIQUE 제약을위한 DROP CONSTRAINT : unimplemented : UNIQUE constraint "uk org oauth provider"를 사용하지 마십시오. ALTER TABLE DROP CONST...
Multi-instance 전화/SMS 공급자 이동
Hibernate ddl-auto 후 실행 : 업데이트는 새로운 테이블을 만듭니다 (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INSTANCE, PHONE EXTENSION, PHONE END USER, PHONE DEVICE에 대한 자세한 정보 ren...
Drop teamMemberPayFeesDataLoader에서 설정
Master-model 프로듀서 더 이상 제거 된 tri-state pay-fees를 통과하지 마스터 보안 모델을 만들 때 설정 - 필드는 사라집니다 ChildOrgSecurityModel 과 그 서비스 과부하.
TeamMember는 회원이며, bogus tm.getMember() 호출을 드롭합니다
TeamMember는 가입 상속을 사용합니다. 회원이 아니고, 둥지 회원이 없습니다. 이름 * 백필은 존재하지 않는 tm.getMember()를 호출했습니다. 또한 tm.teamMembershipStatus에 JPQL 상태 여과기를 전환하십시오 ( 아닌 존재 tm.status 대신 Te...
Drop stale commerce subscription events event type CHECK for COMP 이벤트
Drop stale CHECK constraints on default-role-rights 열
Hibernate 자동 생성 CHECK ('VAL1', 'VAL2', ...) 제약 @Enumerated (EnumType.STRING) 열을 위해 CREATE TABLE에, enum를 얼기 table-creation 시간에 값 목록. 모든 후속 RoleRightType 또는 롤렉스 유...
역할-right upserts에 대한 누락 된 독특한 제약 추가
*************** + syncSecurityModelRoleRights 사용 `ON CONFLICT (role id, right type)는 '을 멈추지 않고 `ON CONFLICT (default role id, right type) 일치해야 하는 점은, DB 테이블에 독특...
Seed Organization.isTopLevel for kamocrm 및 OWNER UNLIMITED 자체 컴파일 계획
- DataLoader: 드롭 조직 createOrg의 유형 arg, set isTopLevel=true 에 kamocrm - KamoCRMAgeReqUpdateRunner + 테스트 : IS TOP LEVEL = TYPE 대신 TRUE에 일치 - OrganizationTypeRemov...
Set org owner usernameAlias on creation and fix website-contact member alias
Master model applies to all three member types on init
provisionMaxedOutMasterModel now sets appliesToMembers, appliesToTeamMembers, and appliesToOwners all true so every member type sees the master model's branch t...
Administrator default role template starts with all rights GRANTED
provisionMaxedOutMasterModel now populates the Administrator template with every RoleRightType set to GRANTED. The other three templates (Team Member, Member, D...
Provision a maxed-out master security model for KamoCRM on init
DataLoader now creates and assigns a master ChildOrgSecurityModel to KamoCRM immediately after the org is created, with every setting maxed out to the most perm...
Add FEATURE_REQUESTS to Support category and all plan-feature mappings
Free: Community vote, Starter: Vote & request, Business: Priority requests, Enterprise: Custom dev included
UPSERT SYSTEM email template rows on every run
Previously the seed runner only inserted rows that didn't exist, so canonical HTML changes never propagated to the DB. Now existing SYSTEM rows have their bodyH...
Add dao.repositories to EnableJpaRepositories scan
EmailTemplateRepository lives under dao.repositories.email, not dao.repos, so it was not picked up as a Spring bean.
SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed s...
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
Add EmailTemplateSeedRunner for SYSTEM + per-org seeding
Runs at @Order(20) on KamoInitializerService startup. Loads canonical templates from kamo-shared-library resources; upserts SYSTEM rows (no clobber); backfills ...
Add partial unique indexes + CHECK constraints for email_templates
Hibernate ddl-auto can't generate partial unique indexes or computed-CHECK constraints. This commit adds them via the existing idempotent DDL runner pattern aft...
Seed KamoCRM with ALL_WORK_ELIGIBLE on fresh installs
The createOrg() helper applies this single argument to both ageReqTypeMember and ageReqTypeTeamMember; consistent with platform convention. Pairs with KamoCRMAg...
Tighten KamoCRMAgeReqUpdateRunner per review
- Restore Javadoc paragraph explaining @Order(10) rationale. - Test now references the UPDATE_SQL constant directly instead of duplicating the SQL string, so ...
Add one-time runner to migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Conditional idempotent UPDATE runs on service startup; WHERE clause checks the expected old value so re-runs are no-ops. Errors are logged and swallowed — start...
Add verification_token and ownership_verified columns to org_domains
Add ssl_confirmed and ssl_confirmed_at columns to org_domains
Adds idempotent ALTER TABLE statements to provision the two new columns needed for DNS setup SSL confirmation tracking.
Update kamo-shared-library version from 1.0.0 to 1.1.0
Needed to resolve the new billing entities in the commerce.billing package added to shared library 1.1.0.
Add billing config initialization to KamoCRMPricingLoader
Seeds a default BillingConfig (ORG_PAYS_ALL, SOFT_LOCK, 7-day grace) for the KamoCRM organization during pricing loader startup. Supports the new Stripe billing...
Remove redundant translation table SQL — Hibernate ddl-auto handles them
Add translation tables for commit logs, KB articles, and subscription plans
Email as paid add-ons, not included free
- KamoMail Hosting: $5/user/mo add-on on all plans - 3rd Party Email Integration: $2/user/mo add-on on all plans - Email hosting feature reverted to "Add-on" in...
Update KamoCRM pricing to production go-to-market rates
- Starter: $34/mo ($28 annual), Business: $72/mo ($59 annual), Enterprise: from $109/mo ($99 annual) - Business plan expanded from 50 to 100 users - Added eSign...
Extend 18DOFF promotion end date to 2026-12-31
The April 14 end date was causing the offer page to show as expired.
Use List<String> instead of manual JSON strings for promotion plan/cycle IDs
Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...
Use createOrganizationOwner for admin members, rename INTERNAL to TEAM_MEMBER
Update owner creation to use new createOrganizationOwner method which handles admin role assignment and PRIVILEGED access level automatically. Replace all Image...