Журнал змін
Что нового.
Все усовершенствования платформы, как только она будет запущена.
· SecurityService
Add theme provisioning — NATS publisher, provision-theme endpoint, logo upload
· ConversionService
Add image resize and favicon generation endpoints
· InitializerService
Add migration runner for logo_full_ext column on orgs
· kamo-shared-library
Додати логотипПовнийExt поле для організаційної особи; додати списокОб'єкти до MinIOStorageService
· kamo-internal
Замініть іконки смайликів з твердими значками SVG на створення майстра крокової
· kamo-shared-library
Додати пошукByBranchTypeID отриманий запит до організаціїРепозиторій
Підтримує нові /branch-types/{id}/usages endpoint in SecurityService для перевірки того, чи має філію активні дитячі орги до видалення.
· 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.
· kamo-internal
Охорона дільничного типу проти активного використання
Перед тим як видалити чіп типу гілки, передній дзвінок ****************************************************************************************************************************************************************************************************************************************************************************** Якщо будь-які оргії існують Інформаційне діалогове вікно, що списує їх та інструктує адміністратора відключити тип замість його видалення.
· kamo-internal
Онлайн-підтримка значка квитків на NavTop — SupportCountContext підписується на NATS через STOMP, значок показує кількість очікувань
· MediaService
Live pending support ticket count via NATS — notify org owner on new tickets, add pending-count REST endpoint
· kamo-shared-library
Додати поле для закінчення облікового запису для підтримкиAgentNotificationDTO та підрахунку запитів для підтримкиTicketRepository
· kamo-internal
Додати поле доменного імені в org створення майстра
Додає необхідний доменне поле на крок Основ з автоматичною www. демонтаж. Випробувано, включений в API Payload, і показано на покроковому огляді.
· kamo-marketing
Додати кодування змін API на сторінці kamo-api-reference
Показати тільки на /kamo-api-reference, підкаже користувачів, щоб подати зміни API запити через /запити або дістатися через / контакт.
· 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.
· kamo-internal
Замінити організацію Тип майстерний крок з гілкоюType/SecurityModel вибір
- Заміна OrgTypeStep (Організація Тип + Відхилення конфігурації BranchTypeStep, який fetches******************************************************************************************************************************************************************************************************************************************************* Новий кінцевий пункт повертає тільки галузеві типи, що дозволяє створити Дитина орг під, проціджують OWNERS/TEAM MEMBERS/MEMBERS класифікація моделей безпеки org - Вилучити виділення організацій з корисного навантаження повністю; configType тепер Автозабезпечений від моделі безпеки допускаєтьсяMemberAgeRanges (KIDS ONLY → KIDS CLUB, дайвінг → CLUB, інше ПІДПРИЄМСТВО) - AgeRestrictionsStep тепер фільтри доступні параметри AgeReqType для тих, хто Виконується обраною моделлю безпеки, з банером при попаданні активний; вік нулі (не зазначений) залишається безпечним безконтактним - Після успішного створення перенаправлення до /setup/dns?orgId=&orgName= CURRENT org (не нова дитяча org) — DNS необхідно налаштувати до новий org доступний - Додати *********** Далі.js проксі маршрут - ОглядStep показує назву типу гілки + дозволений віковий обсяг замість старого org тип / config тип значки
· kamo-internal
/network створює доступ до списку членів + право
- BranchSetupManager: новий "Хто може створити дитячі органи під цією моделлю" Картка з трьома очками (Мебери / Члени Команди / Власники). Вартість круглий план через мапуBackendModel і як зберегти витрати (моделі з дзвону + майстер-модель. Empty держава за замовчуванням всі три на false — модель не пропонує створення будь-кого, поки адміністратор не оплачує їх. - /network page: fetches******************************************************************************************************************************************************************************************************************************************************* кріп і приховує кожну "Створити нову організацію" кнопка, кнопка порожній, нижня карта) якщо сервер точно повернеться можеCreateChildOrg=true. Під час перевірки у польоті (нуль) пасажири, приховані таким чином, ми ніколи не мислимо не бачити його. ********************************************************************************************************************************************************************************************************************************************************************** Проксі маршрут вперед через новий кінцевий пункт SecurityService.
· 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.
· kamo-shared-library
Члени типу + CREATE CHILD ORG право на створення дитини
Додає шар даних для створення дитини-оргів на сайті учасника: - Новий CREATE CHILD ORG прямо на RoleRightType (id 131). - Три нові колонки болеан на ChildOrgSecurityModel: JavaScript licenses API Веб-сайт Go1.13.8 Коли правда, типи філій моделі пропонуються до цього типу на /мережі. Модель з усіма трьома помилковими ніколи не піддається створенню варіант до будь-якого — це тільки регулюють існуючі органи. - ChildOrgSecurityModelService receives 13-arg створення / оновлення перевантаження, які прийміть нові прапори, делегувати підписи Legacy 10-арг. - ChildOrgSecurityModelDTO круглі смуги три прапори. - AppliedModelEnforcementService виводить логіку воріт, що кожен дзвінок акції: Категорія Виберіть категорію Animals Architecture Art Cars Celebrities Funny Girls Nature People Sports getBranchTypesCreatableBy (орг, творецьType) → список типів гілок що належать до моделей, які застосовуються до цього типу і мають принаймні один тип відділення. *** творецьТип) → boolean predicate. Класифікація креатора: OWNERS = команди-члени Українська Власник=true, TEAM MEMBERS = інші команди-члени, MEMBERS = все інше. Право-чек (CREATE CHILD ORG) навмисно не запечена в ці помічники — абоненти об'єднують обидва перевірки, тому помічник може також Зворотній дзвінок.
· 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().
· kamo-marketing
Додайте мілісекунди, щоб запустити відлік, зробіть кожні 50ms
· kamo-marketing
Замініть статичну дату запуску з живим відліком до 2PM PST Apr 2026
Натиснення кожного другого показу Xd XXh XXm XXs; повертається до статичної дати до тих пір, поки клієнт зволожує, показує "Нові" при досягненні цілей.
· 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.
· 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.
· kamo-internal
ОсобливостіДержавні відзнаки, що застосовуються моделі
Приймає нову модельВаріабельність + замкнені поля від функціїController і поверхні в УІ: - Особливості, модель якихВагітність є FORCE ENABLED, що дає можливість переключитися в на стані, відключені, з пояснювальним інструментомTip — адміністратори можуть бачити вони не заплутані. - Пробити модельПримушені функції короткими замиканнями з чітким тостом досить від початкової помилки 403. - НЕОБХІДНІ функції ніколи не доходять до клієнта Таким чином, список УІ вже перев’язується.
· 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.
· kamo-shared-library
Ефективно-вибухоочний розчинник для нанесених моделей
Додавання чит-часових воріт, що робить прикладну модель безпеки фінальним джерело правди для доступності функцій, так що стан DB не може витікати Функція вимкнена в залежності від того, як функція посилена, завжди відображається навіть коли DB не спійманий. Нові методи на прикладіModelEnforcementService: - компuteAvailabilitiesMap(org) — одностороння роздільна здатність кожного Сервісу Доступність для оргів в одному образі. Подається як пакетний примітив інші нові методи побудови. -AppEffectivelyEnabled(орг, сервісType, функції) — канонічна «ідеальна» це додаток на "перевірку". Основні послуги завжди на вимогу, відхилені завжди, ОБСЛУГОВУВАННЯ ОБ'ЄДНАННЯ, ОПЦІОНАЛЬ * відхиляє Организационно-правовая форма. -*************************************************************************************************************************************************************************************************************************************************************** Супутник для абонентів, які потребують "все ефективно застосунків" в якості набору. - computeEffectiveFeatures(орг, риси) — повертає свіжий ArrayList of the OrgFeature рядки, що продаються через ворота: НЕ AVAILABLE скидається, FORCE ENABLED вимушений активний (навіть на вимкнених DB рядків), і FORCE ENABLED програми без DB рядка, але представлені послідовними рядками (організація-скопд, ніколи не псується). Дзвінки, що говорять про особливості org для клієнтів, які зараз проходять маршрут через computeEffectiveОсобливості, а не читання сирої колекції, тому Передавач бачить прикладний перегляд за замовчуванням.
· kamo-internal
Додавання вкладок налаштувань per-assocType з типами doc, укладки замовлень та конфігураційних панелей
Замінює ComingSoonTab на /settings/features/docs з повним інтерфейсом налаштування: - Загальний огляд вкладка + одна вкладка для ImageAssocType (Account, Service Order, Call Recording, My Docs, Meet Recording, System-Wide) - Кожна вкладка assocType має 3 під-табів: Налаштування (знімок екрана/docType), Типи Doc (повний CRUD), Настроювання замовлень (CRUD з візерункам для трубопроводів) - Next.js API проксі- маршрути для всіх параметрів зображень - AssocConfigPanel, DocTypesManager, StackingOrderManager, StackingOrderDrawer, компоненти AssocTypeSettings
· DocsService
Add ImagingSettingsController with doc type, stacking order, and assoc config CRUD
· kamo-shared-library
Додати ImgAssocConfig суб'єкта господарювання, репозиторію та сортуванняЗамовити до ImgStacking Замовити
· 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

Твій всесвіт чекає.
Почати безкоштовно за декілька хвилин. Додати продукти, коли ви будете готові — без перенесення, без нових реєстрацій.
Безкоштовно назавжди — не потрібна кредитна карта