Widen commit log translations.title to TEXT для соответствия столбцу DB
Колонка была VARCHAR(512) как в аннотации, так и в DB. Перевод вставляется в отказ для длинных переведенных заголовков. Колонка DB является теперь STRING (приме...
Paginated Recording lookup by (instance, extension, isVm)
Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...
Бросьте устаревший комментарий эпохи BillingGroup + неиспользованный запрос SubscriptionMember
Удалите оставшийся блок doc в AppliedModelEnforcementService Долгожданная концепция BillingGroup и ее удаление **************** после консолидации *************...
Top-level org bypass + Free baseline fallback for orgs without subs
Проверка прав орг-уровня ************* Ходит подписки, нацеленные на организацию. С новой моделью target org Еще не было целевой подписки на учетную запись, все...
Сплит-администраторы уровня аккаунта от каждого участника; субподрядчики получают target org
Добавляет SubscriptionMember (лицензиат на подписку + флаги субменеджера) Учетная запись в орге KamoCRM может содержать несколько подписок, каждая из которых на...
AccountGroup -> AccountTier (сегментация клиентов, а не выставление счетов)
Субъект розничной клиентской сегментации (с дисконтным процентом, используемый PriceList for tier-based pricing) collided in name with the now-removed Концепция...
Создайте учетную запись группы; замените набор пользователей на набор участников + участник
Счет теперь сам по себе является «группой» — нет отдельной биллинг-группы. Концепция. Участники (сопровождаемые по орг-скапу) принадлежат к Счету непосредственн...
Миграция из BillingGroup на счет в качестве принципала выставления счетов
В настоящее время счет является единственным клиентом Stripe. Член, нуждающийся для оплаты (например, за подписку) автоматически создает счет; этот счет Затем д...
Map external customer address blocks into AccountAddress on pull
Add AdapterAddressMapper helper that converts a JSON address node from any provider into an EmbAddress and attaches it to an Account as a typed AccountAddress (...
Ориентируйте живые записи на профиль адреса учетной записи, снимите исторические адреса
Записи прямой торговли Orient ссылаются на первичную доставку / биллинг профиля учетной записи адреса, с моментальными снимками, сделанными только тогда, когда ...
Переключите Account.java на встраиваемые файлы; добавьте объект AccountAddress для списков доставки / выставления счетов
- Add AccountAddressType enum (ВЫБОР, БИЛЛИНГ) - Add AccountAddress entity (счет FK, тип, этикетка, EmbAddress, временные метки) Добавить аккаунтAddressReposito...
Ключи поиска провайдера на Записи, архив голосовой почты, потоковая передача диапазона MinIO
- Запись: добавить провайдераInstanceId + провайдерExternalId для присоединения провайдера call-history / voicemail строки обратно к средствам визуализации - Ph...
Добавить журнал аудита истории лидов - сущность, реестр, сервис, DTO, крючки LeadService
- LeadHistory entity (UUID PK, простые длинные FK - никаких ограничений FK для удаления / преобразования свинца) - LeadHistoryEventType enum с читабельными этик...
Решите дублирование отображения столбцов путем переопределения встроенных столбцов адресов в MAILING *
Обновление RetailService и адаптеров провайдеров для удаления сносок и конвертации CurrencyType
Добавить международную поддержку — Ведущая страна/подразделение/временная зона, язык организации, CountryType isProvince
CountryType: add PROVINCE NAMES set, isProvince(), getSubdivisionLabel() - Организация: добавить язык (язык) поле - Свинец: добавьте поля страны (CountryType), ...
Запись + ЗаписьСубъекты, RecordingImagingService пишет их
- Новая регистрирующая организация (UUID id, IMG ID, IS MASTER, IS VM, EXTENSION, MEMBER ID, Длина, DATE RECORDED, DATE CREATED [DB-по умолчанию через @Creation...
Use @CreationTimestamp(source=DB) on ****************
The DB is the single source of truth for timestamps in this codebase. The canonical Hibernate pattern is @CreationTimestamp(source = SourceType.DB), which makes...
Let DB fill **************** via @Generated(INSERT)
INSERTs were failing with: null value in column "date_created" violates not-null constraint @ColumnDefault only declares the DB-side default for new rows; Hi...
Добавить элемент MemberCallFeatures и репозиторий для предпочтений переадресации вызовов и автоматического ответа
UnprocessedRecording Staging entity, ImgDat track tracks, служба записи изображений
- Исправить столкновение ImageAssocType ID: VM RECORDING=8, CALL RECORDING=9 (были оба) дублирование MY DOCS при 4. Добавьте *******************, чтобы мастер-з...
Добавить Компанию в LeadMarket и название компании в Lead
- Предприятие LeadMarket получает include company (Boolean, nullable) - Ведущий субъект получает имя компании (String, max 50, nullable) - LeadMarketDTO, Create...
Serialize ExtensionDto.assignedMemberId в виде строки
переполнение безопасного целого диапазона JS (например, 1168485658174423046 туда-обратно как 1168485658174423000 как только номер JSON попадает в браузер. фронт...
Coerce isDisplayOnIntake=true, когда требуется=true в CustomFormService
Добавить isDisplayOnIntake для создания / обновления запроса DTO
Добавить findByAssignedMemberId методы запроса в PhoneExtensionRepository
Add isConnected field to VoipProviderInstance
Nullable Boolean: null = never tested, true = last test passed, false = failed. Requires KamoInitializerService schema migration to add IS_CONNECTED column.
Нечитанный счет + помощник по поиску по сессии
Добавлено **************** Так что навигатор Значок SupportButton может считать билеты поддержки, которые действительно нужны внимание (непрочитанные сообщения ...
Билеты поддержки требуют член-агностик непрочитанный счет
Сообщения посетителей о билетах поддержки хранятся в той же системе что агент аутентифицируется как, поэтому существующая сессия ЧАТ не прочитана запросы, котор...
Снимок гео посетителя на билете
Добавлены VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME, VISITOR CITY, VISITOR SUBDIVISION колонки. Запечатлено при создании билетов Таким обра...
Добавить findBySessionGuidIn для сыпучих погрузок
Используется конечной точкой списка поддержки, чтобы привлечь всех посетителей для страница в одном запросе вместо N отдельных вызовов findBySessionGuid.
Правильная идентичность Json Информационное свойство от «уникального» до «идного»
Предприятие-член объявило @JsonIdentityInfo (собственность = «уникальный идентификатор»), но Настоящее поле первичного ключа называется «id». Джексон бросил "не...
Включите сессии SUPPORT TICKET в непрочитанный запрос на членство
findChatMembershipsByMemberId теперь возвращает членство как для CHAT, так и для CHAT. Типы сеансов SUPPORT TICKET, так что существующий на члена непрочитанный ...
Add resetHasAttachmentsForFolder query to ConversationRepository
Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.
Многоканальный телефон / SMS провайдера основа схемы
- Переименовать VoipProviderConfig → VoipProviderInstance; выбросить UNIQUE(org id), добавить example name, config json, last sync at, last sync error. - Переим...
Разработчик:MemberPayFeesSetting
Политика самооплаты сотрудников ушла — рефактор BillingGroup обрабатывает выставление счетов по группам, а не по модели безопасности. Удалить The TeamMemberPayF...
Добавить флаги видимости типа создателя per-alias
Добавить видимыеToMembers / видимыеToTeamMembers булевые колонки ChildOrgSecurityМодельАлии, чтобы администраторы могли ограничить, какие родительские псевдоним...
Применить тайм-ауты для подключения / записи / чтения к MinioClient через OkHttpClient
Без тайм-аутов сбитый одноранговый аналог репликации сайта (k2m1) вызвал MakeBucket и PutObject призывает блокировать бесконечно, всплывая как бесконечное «Savi...
Добавить объекты, шифр и псевдоним / DNS log scaffolding
Добавляет креды GoDaddy per-org (зашифрованные AES-GCM), флаг поддоменов и сбор псевдонимов для детей на модели безопасности, предоставление DNS журнал аудита и...
Drop RegistrationPhoneCode entity + репозиторий
Регистрация самообслуживания больше не использует проверку SMS-кода поле телефона — форма регистра собирает номер телефона в виде простого текста и сохраняет ег...
Добавить флаг пользователя системы + лицо, предоставляющее доступ
Внедряет общеплатформенную модель пользователя системы: флаг User.isSystemUser (уникальный частичный индекс приводит в действие синглтон), плюс таблица SystemUs...
Добавить RegistrationPhoneCode entity + репозиторий
В новой таблице "registration phone codes" хранятся одноразовые коды проверки SMS выдается во время регистрации самообслуживания, до того, как существует субъек...
Добавить AgeReqType.allowsUnder13()
Поток Add Member / Add Team для пропуска сбора электронной почты для организаций, возраст которых позволяет пользователям младше 13 лет (ALL AGES), KIDS ONLY, A...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.