Multi-instance 전화/SMS 공급자 이동
Hibernate ddl-auto 후 실행 : 업데이트는 새로운 테이블을 만듭니다 (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INSTANCE, PHONE EXTENSION, PHONE END USER, PHONE DEVICE에 대한 자세한 정보 ren...
Seed Organization.isTopLevel for kamocrm 및 OWNER UNLIMITED 자체 컴파일 계획
- DataLoader: 드롭 조직 createOrg의 유형 arg, set isTopLevel=true 에 kamocrm - KamoCRMAgeReqUpdateRunner + 테스트 : IS TOP LEVEL = TYPE 대신 TRUE에 일치 - OrganizationTypeRemov...
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
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...
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.
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...
Add translation tables for commit logs, KB articles, and subscription plans
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...
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...
Add webinar type and lead market seed data for KamoCRM demo
Adds seed data initialization for the webinar scheduling system: - "KamoCRM Software Introduction Demo" webinar type (45min, PRIORITY strategy) - Reminder inter...
Add KamoCRMPricingLoader with full marketing pricing model
Preloads the complete KamoCRM subscription pricing structure into the KamoCRM organization, mirroring the /pricing page on kamo-marketing: - 4 plans: Free, Sta...
Seed support topics and website-contact system member for KamoCRM org
Drop deprecated who_can_create and email_invites_enabled columns
Migrate Everyone role to Members and create Team Members role
- Rename ROLE_EVERYONE_ID column to ROLE_MEMBER_ID - Rename existing "Everyone (Applies To All)" roles to "Members" - Set **************** flags on existing sys...
Add AI processing column and note embedding records table
Add AI_PROCESSING_ENABLED column to notes table and create NOTE_EMBEDDING_RECORDS table for tracking note RAG vectorization.
Add RoleRightsSyncRunner to backfill missing role rights
When new RoleRightType entries are added to the enum, existing roles don't have OrgRoleRight entries for them. This runner checks all roles on startup and adds ...
Add access security system schema migration
Creates 7 new tables (org_access_rules, org_geo_block_rules, org_suspicious_detection_rules, system_access_logs, geolite_blocks, geolite_locations, geolite_sync...
Create KamoTokens schema and org_oauth_token table
- CREATE SCHEMA IF NOT EXISTS kamotokens - CREATE TABLE kamotokens.org_oauth_token with unique (org_id, provider) - DROP COLUMN jwt_key from voip_provider_confi...
CalDav/CardDav Part 4 — schema indexes and email repo scan
- Add supplemental indexes on **************** and **************** via SchemaCleanupRunner (Hibernate ddl-auto:update adds the FK columns; indexes are extr...
Add SchemaCleanupRunner to drop CalendarIntegration table/columns; enable ddl-auto update
Add commerce repo scanning, exec-maven-plugin, and NATS/MinIO config
Enable JPA scanning for commerce package, add exec-maven-plugin for direct Java execution, configure NATS JetStream and MinIO settings, fix application name, an...
Add mock commerce market data seeding with vendors
Adds loadMockCommerceMarketData() to DataLoader that creates 7 markets across all 6 commerce types with realistic vendor data under auto-seeded built-in categor...
Add mock data for rental assets, vendors, subscription plans, purchase requests
- loadMockRentalData: 4 rental assets (RVs, equipment) - loadMockVendorData: 4 vendors - loadMockSubscriptionData: 3 plans (Basic, Pro, Enterprise) - loadMockPr...
TimezoneType enum - String to TimezoneType enum - m2-repository cache - 지원 timezone hierarchy : 회원 > 사용자 > 조직
DataLoader의 Localhost 도메인 지원 추가
- localhost 및 localhost 추가 : 현지 개발을위한 3000 도메인 - subdomain concatenation 행동에 대한 향상된 의견 - 업데이트 된 OrganRepository와 함께 일하십시오
DataLoader의 외부 auth 공급자 초기화 추가
- ExternalAuthProviderService 의존성 주입 추가 - addExternalAuthProviders() helper 메소드를 생성 - 각 조직의 외부 우즈 공급자를 Populated: * KamoCRM: 구글, 마이크로소프트, 애플 * KamoClub: 구글, 마이크...