Перейти к содержимому
KAMOUniverse

Журнал изменений

Что нового.

Каждое усовершенствование платформы, как только она появится.

  1. · APIService

    Публичный пропуск по электронной почте OAuth provider callback

    Вперед, вперед ******************* В адрес электронной почты (ползает по ауту, не перенаправляет после), отражая обратный вызов RingCentral OAuth. Это фиксированный публичный редирект URI, зарегистрированный в Microsoft / Google / Zoho.

  2. · EmailService

    Fixed public redirect + gateway-forwarded callback (недоступная ссылка)

    Платформа электронной почты OAuth (Microsoft 365 / Google / Zoho) не имела действительной общедоступности перенаправление URI: перенаправление было получено из хоста запроса, который в prod Это адрес кластерной внутренней службы, и единственным обработчиком обратного вызова был Только пост. Добавьте один фиксированный, общедоступный редирект URI, используемый для обоих запрос авторизации и обмен токенами, а также публичный обратный вызов GET что провайдер перенаправляет браузер на (org переносится в состоянии, поэтому нет) Требуется сессия). Возвращает самозакрывающуюся HTML-страницу.

  3. · kamo-internal

    Gate ведет контактную информацию по заданию + новые права на конфиденциальность

    Зеркало трех новых прав CRM. На главной странице детали, маска / блокировка Основные поля контактов, почтовый адрес и адрес собственности для потенциальных клиентов не назначены нынешнему члену, если они не придерживаются мнения/редактировать контактные права (и, для неназначенных лидов, VIEW UNASSIGNED LEADS); Государственное поле всегда видно. Переключите вентиляционные ворота ASSIGN LEADS. На сетке /leads откройте опцию Unassigned filter от VIEW UNASSIGNED LEADS, отбросьте пустые фильтры электронной почты/улицы и Значение столбца электронной почты, и показать свойство-vs-состояние электронной почты через флип.

  4. · SecurityService

    Обеспечение соблюдения прав на конфиденциальность контактной информации

    getAllLeads теперь возвращает LeadListDTO и скрывает неназначенные лиды от участников без VIEW UNASSIGNED LEADS. getLeadById маски контактные Информация (сохраненное состояние) для потенциальных клиентов, не назначенных абоненту, если они не Держите VIEW LEAD CONTACT INFO OTHERS и 403 неназначенных лидов для тех, кто Недостаток ВИДЕО UNASSIGNED LEADS. ОбновлениеLead Gates Manual Reassignment (ASSIGN LEADS) и редактирование контактной информации **************************** Подсчет полей ипотечного имущества только при фактическом изменении. Обход Господень.

  5. · kamo-shared-library

    Ведущие права на конфиденциальность контактной информации + бережливый список DTO

    Добавить три права CRM (161-163): "Назначенные другим: Просмотр/Редактирование свинца Контактная информация" и "Посмотреть неназначенные лидеры. Добавить LeadListDTO — Lean проекция для сетки /leads без контактной информации, кроме Государственное поле. Добавить *******************, чтобы раздеть телефон e-mail/mailing+property address (сохраненное состояние) для закрытых читателей.

  6. · kamo-register

    Отправка типа членства из /member и /team Paths

    /регистрация команды создает TEAM MEMBER (созданный PROSPECT, ожидающий активации администратора); /member Записи создают участника. RegisterFlow принимает реквизит типа участника, поставляемый каждым путем обертка и включает ее в тело запроса регистра; бэкэнд создает соответствие Тип членства.

  7. · SecurityService

    /team create a Team MEMBER (PROSPECT), /member create a MEMBER

    Публичная регистрация теперь чтит участника Тип сайта реестра отправляет (от / участника) vs /team path: /team создает TEAM MEMBER — как PROSPECT, поэтому администратор должен активировать их. Прежде чем они смогут войти в систему (за входом в систему) - и / участник создает базовый MEMBER. прикладной как для новых пользователей, так и для существующих пользователей-повторных путей с помощью CreateRegistrationMembership(). The Зеркало предохранителя остается неизменным (всегда базовый МЭМБЕР, и пропускается, когда организация является его собственный поставщик услуг безопасности. Ранее каждая регистрация в регистре создавала базовую МЭМБЕР, поэтому заявитель / команда приземлялся в качестве участника. MEMBER, а затем не может быть добавлен в качестве члена команды через UI (409 уже участник).

  8. · SecurityService

    Расширение рабочего телефона членов команды в подрядчиках

    Фильтр /leads Agent нуждается в расширении рабочего телефона для маркировки параметров Имя (8080). Расширение уже существует в TeamMember. (getPhoneWorkExtension), но не был сериализован — был только голый номер.

  9. · kamo-internal

    Всплывающие окна с поддержкой запросов показывают общие темы родитель-org

    Укажите тему создания билета в новом разделе /api/support/topics/available endpoint (own-org + родительские темы) чтобы пользователи Child-org могли связаться с поддержкой своей родительской организации через Настроенная тема родителей.

  10. · MediaService

    Surface parent-org поделился темами во всплывающем файле поддержки запросов

    Пользователи Child-org не могут видеть общие темы поддержки своих родителей (asignToOwnOrg=false) при запросе поддержки, потому что всплывающее окно Появились собственные темы. Добавить GET/api/support/topics/available Родительский доступ, никаких ворот MANAGE SUPPORT и исправление getParentOrgTopics для использования Исправленный запрос AssignToOwnOrgFalse. Файл против одного из родителей Тема уже маршрутизирует билет в родительскую организацию через createTicket.

  11. · SecurityService

    Новые детские организации наследуют поставщика безопасности своих родителей

    При создании детской организации из камо-внутренней, установите новый поставщик безопасности организации на Поставщик безопасности родительской организации (орган, под которым она создана) вместо того, чтобы позволить ей По умолчанию для себя. Пары с заполнением данных, которые указывают на каждую существующую организацию Поставщик безопасности в организации KamoCRM верхнего уровня, поэтому зеркалирование членства требует всех орг и их будущих детей.

  12. · kamo-login

    Показать уведомление, связанное с учетной записью на ?linked=1

    Когда регистрация связывает существующую учетную запись с новой организацией, она перенаправляется сюда с ?linked=1. Show "У вас уже есть учетная запись Kamo - мы добавили эту организацию в Это. Зарегистрируйтесь с существующим паролем и заполните электронную почту. Зеркала существующих ?email verified handling.

  13. · kamo-register

    Обработка ответов, связанных с учетной записью, для существующих пользователей

    Когда введенное электронное письмо уже принадлежит учетной записи ACTIVE, бэкэнд связывает это Присоединяйтесь и возвращайте ACCOUNT LINKED. Маршрут этих пользователей прямо к входу (?linked=1) вместо потока проверки электронной почты — они вступают в систему с существующими Пароль. Новые пользователи и подписки с требованием заполнителя сохраняют путь проверки электронной почты.

  14. · kamo-internal

    Wire up Member/team-member create + Prospect-gate

    - Добавить недостающие прокси-маршруты POST/api/security/members/create и «Создай-команда-член» (эти 405-е раньше, так что творение никогда не доходило до бэкэнда). Статус + корпус JSON проходит так, что форма 409 «уже член» повторно использует обработку. Работает. - MemberCreateForm: исправить поле Статус членства, где плавающая этикетка перекрыта Заполнитель «Выбрать статус» (уменьшение метки + вырезанный OutlinedInput) и добавить Обратите внимание, что только «активные» члены команды могут войти в систему.

  15. · SecurityService

    Повторное использование существующих пользователей, зеркало для SecurityProvider, вход участника команды Gate

    Повторное использование (нет дублирующих учетных записей для одного и того же лица): MemberCreateController повторно использует существующего пользователя по электронной почте Case-INSENSITIVELY (была чувствительной к делу, отсутствовала унаследованная смешанная электронная почта). SecurityController.register повторно использует существующую учетную запись вместо того, чтобы всегда создавать новый пользователь: уже член организации -> 409 ALREADY MEMBER («Пожалуйста, подпишитесь»); существующая учетная запись ACTIVE -> связать орг, сохранить свой пароль, вернуть ACCOUNT LINKED; неактивированный заполнитель (никогда не проверялся и никогда не входил в систему) -> заявляйте об этом Введённый пароль. Публичная форма никогда не может перезаписать глобальный пароль активной учетной записи. Защитное зеркало: - Создание внутренних членов/командных членов и публичный реестр ****************, так что каждый новый член в рамках организации по обеспечению безопасности (в качестве базового члена). Врата активации членов команды: - логин блокирует участника TeamMember, членский статус которого! = ACTIVE с "Ваш аккаунт" существует, но в настоящее время не действует". Постоянные члены и активные члены команды проходят. Упрочнение в соответствии с решением организации (X-Forwarded-Host siblings): - getExternalProviders и PortalController.resolveOrg используйте alias-fallback и опустить getServerName() fail-open (неисправность закрыта вместо утечки платформы org).

  16. · kamo-shared-library

    Security Provider Membership Зеркало + повторное использование / закладка

    **************** Пользователь: зеркало пользователя в Org's securityProvider org как базовый член (отредактированный; no-op, когда организация Защищает себя или пользователь уже там. Правило, согласно которому каждый новый Членство также попадает под платформу / организацию-поставщика безопасности. ********************** нечувствительный к делу, многократно безопасный поиск электронной почты для повторного использования учетной записи (электронная почта не является глобальной) Уникальный, так что один-опциональный искатель бросит. ************* Перестаньте перезагружать SecurityProvider Редактирование каждой организации (только заполнение при нуле), поэтому детская организация сохраняет свою ссылку на Поставщик платформы, от которого зависит зеркало.

  17. · kamo-internal

    Вкладка Wire Tasks для реального бэкэнда + удалите действие + живой счет

    Добавляет следующие прокси-маршруты для /leads/{id}/tasks[/{taskId}] addTask/updateTask/completeTask calls были 404ing, действие удаленияTask в поле «Запрос» Сетка задач и выводит stat «Открытые задачи» из списка живых задач, чтобы он оставался События TASK CHANGED повторяют задачи.

  18. · SecurityService

    REST API + TASK CHANGED в режиме реального времени

    Внедряет бэкэнд /leads/view Tasks tab, который уже звонил, но никогда не существовало: GET/POST/PUT/DELETE **************************** (LeadTaskController + LeadTaskService), охраняемая как конечные точки блокировки. Каждое создание/обновление/удаление излучает TASK CHANGED, поэтому открытые ведущие просмотры обновляются в прямом эфире.

  19. · kamo-shared-library

    Предприятие LeadTask для выполнения последующих задач

    Backs the /leads/view Tasks tab (ранее это была только фронтенд-заглушка без каких-либо заданий). настойчивость. LeadTask (стол LEAD TASK) отражает форму интерфейса TaskItem **************************** + LeadTaskDTO и репозиторий. Мутации задачи транслируют TASK CHANGED на существующем ведущем канале в реальном времени.

  20. · kamo-internal

    Сетка данных в реальном времени + вид в реальном времени с замками редактирования на экране

    /leads grid теперь полностью работает через websocket (NATS→STOMP): строки Добавить/удалить/обновить против активного фильтра автоматически и измененные ячейки мигают один раз для других Редактирование членов; кнопка мертвого обновления удаляется. /leads/view/[id] применяется в прямом эфире лид/история/задача/статистика обновлений и выигрышей на эксклюзивное редактирование блокировок с «В настоящее время редактирование» реестра, обратный отсчет и автоматическое сохранение на холостом ходу / отключении. Добавлено использование LeadsRealtime hook, leadLocksApi + Next прокси-маршрутов и многоразового использования MemberContactCard (имя + расширение работы, софтфон / открытый чат). Ведущие обновления сливаются с нулевым сохранением, поэтому частичные полезные нагрузки никогда не пробеливают ячейки.

  21. · MediaService

    Org-guard - подписка в режиме реального времени /topic/leads/rt/{orgId}

    Cross-tenant SUBSCRIBE Guard для новой ведущей темы в реальном времени, отражающей существующий/топический/социальный/кормовой охранник: член может подписаться только на свой собственный Свинцовый поток Орга. Существующий **************** уже Relays security.leads.rt.* to /topic/leads/rt/*, поэтому изменение реле не требуется.

  22. · SecurityService

    Per-pane edit-lock REST API + автоматический уборщик

    Добавление /api/security/leads/{id}/locks ******************************* LeadLockService: эксклюзивное бронирование на одну полосу, буферное сердцебиение, которое сбросить 5-минутный холостый TTL и плановый подметатель, который автоматически сохраняет буферизованный скриншоты из игры idle-expiry или presence-grace timeout. Бездельник Излучается как абсолютная эпоха миллис. Config under lead.lock.* (configmap).

  23. · kamo-shared-library

    Публикация NATS в режиме реального времени + единица редактирования на каждую полосу

    Опубликовать орг-сопровождаемые события на security.leads.rt.{orgId} (создан/обновлен/ удалены ключами с измененным полем, добавлена история) так что сетка /leads и Страница /leads/view может обновляться в режиме реального времени. *************************Возвращение измененные ключи реестра, используемые для управления миганием пользовательского интерфейса. Добавлена сущность LeadPaneLock (таблица LEAD PANE LOCK, уникальная (LEAD UID,PANE)) и репозиторий, поддерживающий эксклюзивные замки редактирования per-pane; издатель издает idle-expiry как абсолютная эпоха millis (безопасное по времени число) для обратного отсчета.

  24. · kamo-internal

    Интегрируйте основные вкладки в заголовок на оставшихся страницах Style A

    Последующие действия в стиле A→B, охватывающие страницы, которые не проходят через SettingsView: KbNavBar становится градиентным заголовком героя со статьями / ресурсами / Рецензии вкладок интегрированы и Новая статья действий право-присоединен; макет Получает общий радиальный фон. ********************** Мини-заголовок задней стрелки + General/ Вкладки Domains MUI становятся градиентным заголовком героя с интегрированными вкладками. - /leads/view/[id]: основные вкладки записи перемещаются в градиент HeaderBar заголовок; встроенный редактор статуса/подстатуса прилагается к заголовку правонаправленные действия (стилизованные под градиент), заменяющие отдельные Табличка.

  25. · kamo-internal

    Переместить нижние строки в заголовк через социальные, импортные вкладки

    Применяет обработку вендоров-таб к настройкам CRM братьев и сестер, чтобы Автономная строка «x • y» внизу больше не ест страницу недвижимости: - Социальные связи и автоматизированный импорт: действия заголовка на нижнем уровне и Стек счетной строки непосредственно над кнопками Refresh + Add/Create. - Ручные подзадачи Импорт (Прошлый Импорт, Импортные Шаблоны): количество перемещается в слева от одинокой иконки Refresh (пространство-между), опуская нижнюю планку.

  26. · kamo-internal

    Переместите количество поставщиков / продуктов выше действий заголовка, выровненный вниз Refresh + Add Vendor

    Восстанавливает страницу недвижимости с помощью автономной нижней сводной строки, используемой для Оккупация — линия «x вендоров • x продуктов» теперь стекается выше действия кнопки в заголовке, а кнопки внизу выровняются с блоком заголовка.

  27. · kamo-internal

    Интегрируйте основные вкладки в заголовок страницы (Стиль B) на страницах стиля A

    Каждая страница градиента-героя, которая отображает свои основные вкладки в отдельной карте ниже заголовка теперь отображает их внутри самого градиентного заголовка, совпадая /поддержка и /поддержка. - SettingsView: панель вкладок перемещается в заголовок градиента (преобразует все ~23) /settings/* страницы одновременно; справочная колонка, headerAction, backHref и Добавки tab icon/glow/alignRight сохранены; hideTitle по-прежнему сохраняет свои вкладки. - /leads/reports: вкладки отчетов перемещаются в заголовок. - /commerce (PipelineView): вкладки для каждого рынка (с вертикальными значками) заголовок; однорыночные / бортовые состояния без изменений.

  28. · kamo-internal

    Задняя стрелка в заголовке возвращается в /leads

    Добавьте дополнительный backHref/backTooltip в SettingsView, который отображает белый цвет. обратная стрелка слева от заголовка и проведите страницу настроек CRM, чтобы отправить Вернуться в /Leads Tooltip повторно использует существующие локализованные leads.view.header.backToBrowser ('Back to leads') строка.

  29. · kamo-internal

    Смелые «настройки CRM:» префикс, сепараторы труб, подчеркивают только на вкладках

    Предоставьте ссылки на вкладку настроек CRM со смелой меткой «Настройки CRM:». (новый ключ ****************), отдельные ссылки с ' | Вместо голого пространства переключайте ссылки с всегда подчеркиваемых на Подчеркните на ходу.

  30. · kamo-internal

    Добавьте ссылки на вкладки CRM выше обновления, как меню настроек

    Оформите правый выровненный ряд белых, подчеркнутых, разделенных пространством ссылок на каждая вкладка /settings/features/crm над кнопкой обновления заголовка Leads. The ссылки повторно используют тему CRM + gating из настроекMenu.ts, поэтому они только показывают когда орг является CRM-оргом и член содержит MANAGE CRM SETTINGS, и Закладки, привязанные к рынку (поставщики и продукты, ручной / автоматизированный импорт), остаются скрытыми Пока не появится активный рынок.

Ваша вселенная ждет.

Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.

Бесплатно навсегда — не требуется кредитная карта