콘텐츠로 건너뛰기
KAMOUniverse

변경 로그

무슨 일이야?

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

  1. · SecurityService

    Add theme provisioning — NATS publisher, provision-theme endpoint, logo upload

  2. · ConversionService

    Add image resize and favicon generation endpoints

  3. · InitializerService

    Add migration runner for logo_full_ext column on orgs

  4. · kamo-shared-library

    LogoFullExt 필드를 조직에 추가하십시오. ListObject를 MinIOStorageService에 추가하십시오

  5. · kamo-internal

    Wizard 스테퍼를 만들기 위해 단단한 SVG 아이콘과 이모티콘 아이콘을 교체

  6. · kamo-shared-library

    FindByBranchTypeID에 대한 쿼리를 생성

    SecurityService의 새로운 /branch-types/{id}/usages endpoint 지원 분기 유형이 역전하기 전에 활성 아이 orgs가 있는지 검사합니다.

  7. · SecurityService

    Add GET /branch-types/creatable and /{id}/usages endpoints

    /creatable returns branch types filtered by the caller's creator-type (OWNERS/TEAM_MEMBERS/MEMBERS) via AppliedModelEnforcementService. /{id}/usages returns the count and summary of orgs created under a given branch type, used by the frontend to block hard deletion.

  8. · kamo-internal

    Guard 분기 유형의 deletion against active org 사용

    분기 유형 칩을 제거하기 전에, frontend 지금 호출 *************** 어떤 orgs가 존재하면 자주 묻는 질문(FAQ) 그것을 삭제 대신 유형이 비활성화됩니다.

  9. · kamo-internal

    NavTop의 라이브 지원 티켓 배지 - SupportCountContext는 STOMP를 통해 NATS에 가입하고 배지가 계산을 보여줍니다

  10. · MediaService

    Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint

  11. · kamo-shared-library

    SupportAgentNotificationDTO에 pending count 필드를 추가하고 supportTicketRepository에 쿼리를 계산합니다

  12. · kamo-internal

    Org 생성 마법사에 도메인 이름 필드를 추가

    필수 도메인 필드를 자동 www로 Basics 단계에 추가합니다. 연락처 API 페이로드에 포함 된 검증 된 리뷰 단계에 표시됩니다.

  13. · kamo-marketing

    추가 API 수정 kamo-api-reference 페이지로 이동

    /kamo-api-reference에 대해서만 보여주세요. 사용자가 API 변경을 제출할 수 있습니다. /requests를 통해 요청하거나 /contact를 통해 도달하십시오.

  14. · SecurityService

    Add GET /branch-types/creatable endpoint with creator-type filtering

    Returns only the branch types the calling member is permitted to create a child org under, based on their OWNERS/TEAM_MEMBERS/MEMBERS classification against the current org's applied security models. Mirrors the exact same getBranchTypesCreatableBy enforcement the POST /org endpoint applies at submission time, so the frontend can pre-filter the pick list and avoid showing options that would produce a 403. Response includes allowedMemberAgeRanges and allowedTeamMemberAgeRanges from each branch type's security model so the UI can gate AgeReqType options in the same request, without a second round-trip.

  15. · kamo-internal

    회사 소개 type wizard step with branchType/Security모델 선택

    - OrgTypeStep (Organization)을 대체합니다. 유형 + 구성 드롭다운) BranchTypeStep 그 fetches **************** — 새로운 endpoint 반환 단지 분지 유형 호출기는 만들 수 있습니다 아래에 아이 org, 자신의 OWNERS/TEAM MEMBERS/MEMBERS에 의해 필터링 org의 적용 보안 모델에 대한 분류 - payload에서 OrganType을 완전히 제거하십시오; configType는 지금 입니다 보안 모델의 allowedMemberAgeRanges에서 자동 파생 (KIDS ONLY → KIDS CLUB, 대 범위 → 클럽, 다른 ENTERPRISE) - AgeRestrictionsStep 지금 필터 사용 가능 AgeReqType 옵션 선택한 보안 모델에 의해 허용, gating 할 때 배너 활성; null 연령 (지정되지 않음)은 backend 당 안전한 no-op 남아 있습니다. - /setup/dns?orgId=&orgName=에 대한 성공적인 작성 후 CURRENT org (새로운 아이가 아닙니다) - DNS가 이전에 구성되어야합니다. 새로운 org는 접근 가능 - 추가 *********** Next.js 프록시 루트 - ReviewStep은 분기 유형 이름 + 오래된 연령 범위를 허용 org 유형 / 구성 유형 배지

  16. · kamo-internal

    /network 생성 감당은 회원 유형 + 권리에 의해 문질러

    - BranchSetupManager : 새로운 "이 모델 아래에 어린이 Orgs를 만들 수 있습니다" 카드 3 개 (회원 / 팀 멤버 / 소유자). 제품정보 round-trip through mapBackendModel and both save 흐름 (아이 모델 + 마스터 모델). 빈 상태는 모든 세에서 false - 모델 관리자가 그들을 선택 할 때까지 누구나 만들 수 없습니다. - /network 페이지: fetches *********** on 마운트 및 모든 "Create New Organization"의 감당 (머리 서버가 없는 버튼, 빈 상태 버튼, 하단 카드) definitively 반환 canCreateChildOrg=true. 자주 묻는 질문 비행에서 (null) 감당은 숨겨진 그래서 우리는 결코 그것을 플래시 그것을 볼 수없는 회원. - 새로운 *********** 프록시 경로 forwards SecurityService의 새로운 엔드포인트를 통해.

  17. · SecurityService

    Gate /network child-org creation by right + member-type applicability

    Wires the applied-security-model child-org creation gate end-to-end: - SecurityModelController + MasterModelController round-trip the three new apply-to flags (appliesToMembers / appliesToTeamMembers / appliesToOwners) through create and update payloads. - New GET **************** resolves — for the caller's session — the creator-type bucket they fall into, whether their role carries CREATE_CHILD_ORG, the list of branch types available to them, and a combined canCreateChildOrg boolean the /network page uses to hide the create affordance when false. - **************** now rejects with 403 when the caller lacks CREATE_CHILD_ORG or picks a branch type that isn't among those their creator-type is offered — defense in depth against a client that bypasses the UI gate.

  18. · kamo-shared-library

    회원 유형 게이트 + CREATE CHILD ORG

    /network Child-org 생성에 대한 데이터 레이어를 추가합니다. - RoleRightType (id 131)에서 새로운 CREATE CHILD ORG. - ChildOrgSecurityModel에 3개의 새로운 boolean 란: applyToMembers / applyToTeamMembers / 적용ToOwners 진정한 모델의 분기 유형은 회원 유형 버킷으로 제공됩니다. /network에. 3개의 거짓을 가진 모형은 창조로 지상에 놓지 않습니다 누구나 옵션 — 기존의 orgs만 관리합니다. - ChildOrgSecurityModelService는 13-arg create/update overloads를 얻습니다. 새로운 플래그를 수락; 레거시 10-arg 서명 delegate를 통해. - ChildOrgSecurityModelDTO는 3개의 깃발을 왕복합니다. - AppliedModelEnforcementService는 게이트 로직을 노출시킵니다. 공유: koum ChildOrgCreatorType { MEMBERS, TEAM MEMBERS, OWNERS}에 대해 자세히 알아보기 getBranchTypesCreatableBy(org, CreatorType) → 지점 유형 목록 그 제작자 유형에 적용하는 모델에 속하고 있다. 적어도 1개의 분지 유형. *********** 크리에이터 타입) → boolean predicate. Creator-type 분류: OWNERS = 팀 구성원 사업소개 Owner=true, TEAM MEMBERS = 다른 팀 구성원, MEMBERS = 다른 사람. 오른쪽 체크 (CREATE CHILD ORG)는 의도적으로 구워지지 않습니다. 이러한 돕기로 - 콜러는 두 개의 체크를 결합하므로 돕기도 할 수 있습니다. 뒤 읽기 전용 쿼리.

  19. · InitializerService

    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 types as creation options on /network. The Administrator template continues to GRANT every RoleRightType including the new CREATE_CHILD_ORG right (id 131) by virtue of iterating RoleRightType.values().

  20. · kamo-marketing

    카운트다운을 실행하기 위해 밀리 초를 추가, 각 50ms를 tick

  21. · kamo-marketing

    라이브 카운트 다운과 정적 실행 날짜를 대체 2PM PST 4월 2026

    Ticks Xd XXh XXm XXs를 보여주는 각 초; 정적 날짜로 돌아갑니다 클라이언트의 수질까지, 표적이 도달될 때 "Now"를 보여줍니다.

  22. · InitializerService

    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, DEFAULT) still materialize with zero rights (NOT_SPECIFIED for everything), matching the intended blank baseline for non-admin roles. Why GRANTED (not FORCE_GRANTED): at child-org creation time ChildOrgTemplateSeedingService copies non-force template values into the new org's OrgRoleRight rows, so a GRANTED admin template gives every new child org a ready-to-use admin role with full permissions that the owner can still edit. FORCE_GRANTED would lock rights at runtime and hide them from the security-roles editor, which we don't want for the admin template baseline.

  23. · InitializerService

    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 permissive / force-enabled value: - allowOwnersViewOtherOrgs / allowOwnersPrivateOrgs / allowSubChildOrgs = true - identityProviderSetting = ENABLED - teamMemberPayFeesSetting = FORCE_ENABLE - allowedMemberAgeRanges / allowedTeamMemberAgeRanges = every AgeReqType - appConfigs = every non-deprecated ServiceType at FORCE_ENABLED, with CRM's allowedCommerceTypes containing every CommerceType - Organization.masterModelID set to the new model The four default role templates (Administrator / Team Member / Member / DEFAULT) are materialized with zero rights so the UI renders tabs for each — every right stays NOT_SPECIFIED at runtime, the intended blank baseline. Admins can edit specific force rules later via the branch-types tab. Also bumps kamo-shared-library to 1.5.0 so the new ChildOrgSecurityModelService / AppConfigService / DefaultRoleService and related types resolve at compile time.

  24. · kamo-internal

    FeaturesManager는 적용 모델 힘 가능하게 한 국가를 명예

    새로운 modelAvailability + featureController에서 고정 된 필드를 허용 그리고 UI에서 표면: - ModelAvailability가 FORCE ENABLED가 toggle을 렌더링하는 기능 상태, 비활성화, explanatory tooltip - 관리자는 볼 수 있습니다 그들은 켜져 있지만 그들을 끄지 마십시오. - ModelForced 기능 짧 회로를 클리어 토스트로 전환 백엔드의 403의 일반적인 오류보다. - NOT AVAILABLE 기능은 클라이언트에 결코 도달하지 않습니다 (filtered server-side) 그래서 UI 목록은 이미 gated 전망입니다.

  25. · SecurityService

    Applied-model is the read-time source of truth for feature availability

    Closes the "stale DB leaks a disabled feature" gap by gating every surface that touches OrgFeature / ServiceType through the applied security model. - **************** (the primary feeder of the frontend OrgContext): replaces the raw features serialization with **************** org.getFeatures()). The auto- provisioning loop now also skips apps the model marks NOT_AVAILABLE so we never create DB rows for blocked apps. - FeatureController.list: returns each feature with modelAvailability + locked metadata. NOT_AVAILABLE rows are filtered out, FORCE_ENABLED rows are reported as enabled=true + locked=true regardless of their DB state. The available list is also filtered down to apps the model permits. - New AppAvailabilityInterceptor + WebMvcConfig: installs a HandlerInterceptor on every service-scoped URL prefix (/api/security/pos, /api/security/commerce-markets, /api/security/leads*, /api/security/lead- imports, /api/security/lead-markets, /api/security/lead-vendors, **************** **************** **************** Each request is matched to a ServiceType, resolved against the caller's applied model, and rejected with HTTP 403 if the app is effectively off. This is the final line of defense: even with stale client state, a forgotten controller guard, or a direct API call, a blocked app returns 403. Net effect: the applied security model now wins at read time everywhere the org's features or apps are exposed — navigation, home page, settings slide-out, FeaturesManager, per-service endpoints. When the admin flips CRM to NOT_AVAILABLE on the model, the CRM UI disappears from the frontend and CRM endpoints start 403'ing — regardless of whether the DB still has OrgFeature.isActive=true for CRM.

  26. · kamo-shared-library

    적용 가능한 모델 Read-time gating

    적용된 보안 모델을 최종적으로 만드는 read-time gate를 추가합니다. 기능 가용성을 위한 진실의 근원, 그래서 stale DB 국가는 누출할 수 없습니다 장애인 기능 및 힘 지원 기능은 항상 눈에 보입니다 DB가 붙지 않는 경우에도. AppliedModelEnforcementService의 새로운 방법: - computeAvailabilityMap(org) - 모든 ServiceType의 원패스 해상도 한 번에 org의 가용성. 일괄 primitive로 봉사 다른 새로운 방법 구축. - isAppEffectivelyEnabled(org, serviceType, features) - canonical "is 이 앱은"확인합니다. 항상 핵심 서비스, 항상 꺼져, FORCE ENABLED 항상 위에, NOT AVAILABLE 항상 떨어져; OPTIONAL * defers에 OrgFeature 행 isActive 상태입니다. - *********** 기능) - Set<ServiceType> "all effective-on apps"를 설정해야 하는 콜러의 동반자. - computeEffectiveFeatures(org, features) - 신선한 ArrayList의 반환 OrgFeature는 문을 통해서 계획했습니다: NOT AVAILABLE는, FORCE ENABLED는 능동태에 힘이 듭니다 (사용 가능한 DB 줄에 조차), FORCE ENABLED 앱은 DB 행이 없으면 일시적인 행으로 표현됩니다. (편리한, 결코 persisted). Callers serializing the org's features to client 지금 노선을 통해 computeEffectiveFeatures 오히려 원시 수집을 읽는 것보다, 그래서 frontend는 기본적으로 적용형 모델링을 볼 수 있습니다.

  27. · kamo-internal

    Per-assocType docs 설정 탭을 doc 유형, stacking order, config panel

    /settings/features/docs에 ComingSoonTab을 전체 설정 인터페이스로 대체합니다. - 일반 개요 탭 + ImageAssocType (Account, Service Application, Service Order, Call Recording, My Docs, Meet Recording, System-Wide) 당 하나의 탭 - 각 assocType 탭에는 3개의 sub-tabs가 있습니다: 윤곽 (folder/docType 특징 toggles), Doc 유형 (풀 CRUD), 겹쳐 쌓이는 순서 (시각 파이프라인 서랍을 가진 CRUD) - Next.js API 프록시는 모든 화상 설정 엔드포인트에 대한 경로 - AssocConfigPanel, DocTypesManager, StackingOrdersManager, StackingOrderDrawer, AssocTypeSettings 구성 요소

  28. · DocsService

    Add ImagingSettingsController with doc type, stacking order, and assoc config CRUD

  29. · kamo-shared-library

    ImgAssocConfig 엔티티티, 저장소 및 ImgStacking에 정렬 주문 추가 주문Dt

  30. · InitializerService

    Add FEATURE_REQUESTS to Support category and all plan-feature mappings

    Free: Community vote, Starter: Vote & request, Business: Priority requests, Enterprise: Custom dev included

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

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

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