Добавить редактор фотографий с легкой реакцией на загрузку регистрации
Зеркала PhotoCropDialog от AvatarManager: Диалог культур открывается сразу после выбора файла - сковорода путем перетаскивания, масштабирования с помощью прокру...
Добавить /api/geoip маршрут и провод страны авто-обнаружение
Прокси-клиент IP для поиска SecurityService GeoLite2 затем устанавливает Страна, обнаруженная в FormMyCountry, автоматически загружается на страницу.
Add GET /api/security/geoip/me for client IP country lookup
Reads real client IP from X-Forwarded-For / X-Real-IP headers, does a GeoLite2 lookup, and returns { country_code, country_name }. Used by kamo-register's count...
Рефактор регистра SP6 — разделите PersonalInfo, добавьте реальный API регистрации
- Заменить FormPersonalInfo на FormName (именные поля) и FormAvatar (генератор Avatar Creator с режимами генерации/загрузки/пропуска для 13+) Удалить FormRecove...
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...
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token gene...
Добавить EmailVerification Субъект токенов + repo + User.alias/emailVerified + запросы UserRepo; бамп 1.4.0 (SP4)
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
Добавить страницы настроек учетной записи для телефона + вопросы безопасности (SP3)
Добавляет **************** с API-проводкой Служба безопасности /api/account/*. Синхронизация nav во всех 3 местах.
Проводите реальные вызовы API на страницу восстановления (SP3)
Заменяет все поддельные заглушки с помощью вызовов RecoveryApi. Добавить SMS OTP проверка фазы, ввод семенной электронной почты, шаг нового пароля и посадка ток...
Add AccountSettingsController + Service for phone + security questions (SP3)
Allows logged-in users to set/verify phone and configure 3 security questions. Routes to /api/account/* (session-authenticated via KSESSION_DATA).
Add BulkTextSmsClient + EmailTemplateServiceClient + PasswordRecoveryController (SP3)
Full password recovery flow: email-link, SMS OTP, security questions, seed phrase. Routes to /api/recover/* (unauthenticated). Uses SP1 email pipeline + VOIPSer...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
Добавить восстановительные объекты + репо; удар до 1,3.0 (SP3)
Добавлены PasswordResetToken, SmsOtp, RecoverySession, AccountVerificationCode Субъекты JPA с соответствующими хранилищами для потока восстановления SP3.
Добавить SecurityQuestionCatalog enum + sq1/2/3 + seedPhraseHash Пользователю (SP3)
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
Предварительный просмотр маршрута через модаль Browser (часть SP2)
EmailTemplateBrowser теперь владеет модалем Preview напрямую. Менеджеру больше не нужно перехватывать запросы предварительного просмотра на уровне строк. Перена...
Wire EmailTemplateПравить на реальный API
Гидраты от templateApi.get, сохраняет через templateApi.update. Категория dropdown - это API-ориентированный с встроенной доступностью для создания категорий. П...
Проводите EmailTemplateBrowser до реального API + добавьте вкладку «Системные по умолчанию»
Заменяет ~ 140 строк макетных данных вызовами templateApi.list(). Условный Пятая вкладка «System Defaults» появляется только для администраторов верхнего уровня...
Добавить модаль EmailTemplatePreview
Открывается на предварительном просмотре. Backend-rendered via templateApi.preview(); Результат отображается в песочнице iframe для изоляции стиля. Соответствуе...
Добавить шаблонApi + категорияApi + переменныеКонтракты клиентских модулей
Обертывает /api/email/templates/ и ******************* Конечные точки с набранными помощниками TypeScript. Переменные контракты зеркала SP1 TemplateKeys Javadoc...
Wire EmailTemplateSeedClient into ****************
Thin RestTemplate client that POSTs to EmailService's **************** after an org + owner TeamMember are persisted. Retries twice with backoff; failure throws...
Add EmailTemplateCategoryController REST endpoints
**************** CRUD. Delete response includes reassignedCount — the number of templates that became uncategorized as a result of removing the category. Sessio...
Add EmailTemplateController REST endpoints + DTOs
Exposes /api/email/templates/* CRUD + preview + duplicate + reset-to-default + service-to-service /send + /seed-org/{orgId}. Top-level orgs (no parent) addition...
Add InternalAuthFilter for service-to-service endpoints
Проверяет заголовок X-Internal-Auth на /api/email/templates/end и /api/email/templates/seed-org/* Paths. Другие пути обхода этого фильтра (пользовательская сесс...
Добавить EmailTemplateCategoryService — CRUD для категорий, связанных с оргами
Нечувствительная к делу уникальность имени в одной организации, применяемая на уровне обслуживания (соответствует частичному уникальному индексу в DB). Удаление...
Добавить EmailTemplateService — CRUD + send + seed + reset-to-default
Основной оркестратор для транзакционной электронной почты. sendToUser решает шаблон, отображает субъект/тело, выбирает основной домен организации из Организации...
Добавить NoReplySenderService для NoReply@{domain} с адреса
Единый источник правды для транзакционной почты с адресов. Принять a строка домена, нижняя строчка нормализует его, возвращает «NoReply@<domain>». Абоненты долж...
Добавить TemplateRenderer для замены {{var}}
Безгосударственный рендеринг на основе регекса. Недостающие варсы заменяют пустые струны и Издать журнал WARN с помощью templateKey + orgId для атрибуции. HTML ...
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...
Добавить CanonicalTemplateLoader + CanonicalTemplate
Читает три обязательных шаблона (WELCOME, PASSWORD RESET, EMAIL VERIFICATION - от классовых ресурсов **************************** потребляемый KamoInitializerSe...
Добавить канонический HTML + JSON для PASSWORD RESET, EMAIL VERIFICATION
Исходный контент для строк системы. Загрузка в KamoInitializerService Запуск CanonicalTemplateLoader и UPSERTed в email templates. Часть SP1.
Добавить EmailTemplate entity + репозиторий
Хранит одну строку SYSTEM для шаблона key (org id NULL, is system TRUE) плюс Один клон в группе на шаблон key. Soft-reference org id/category id. ДБ- Временные ...
Добавить EmailTemplateCategory entity + репозиторий
Org-scoped категории для шаблонов электронной почты. Soft BIGINT org id (без FK) Соответствует существующим моделям. Нечувствительная к делу уникальность имени ...
Добавить TemplateStatus enum + константы TemplateKeys для транзакционных шаблонов
Объявляет требуемые / заказные / приобретенные состояния жизненного цикла и три Требуются ключи шаблона (WELCOME, PASSWORD RESET, EMAIL VERIFICATION). Переменны...
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...
Добавить ссылку Powered by KamoCRM на /welcome landing page
Самая главная целевая страница - welcome/index. html — статический HTML-страница, обслуживаемая непосредственно nginx, которая обрабатывает поток предварительно...
Логотипы интеграции + точные /интеграционные метаданные
Страницы интеграции и концентратор теперь отображают логотипы поставщиков (используя существующие **************** Активы на домашней странице TechStackBanner у...
Расширение / интеграция для всех поставщиков, перечисленных на главной странице
Выравнивает страницу /интеграции с фактической интеграцией Главная страница (TechStackBanner). Добавлено 28 новых страниц интеграции Что на самом деле предлагае...
Добавить домой ипотечные брокеры отраслевая страница
Страница нового отраслевого решения /решения / ипотечные брокеры брокеров и кредиторов. Следуйте честному фреймингу платформы: CRM + comms + docs + AI применяет...
Добавьте 92 страницы SEO - отрасли, интеграции, глоссарий
Внедрение уровня 1 плана расширения контента SEO: три новых контента Подсистемы с 92 новыми сканируемыми URL-адресами плюс 3 страницы концентратора. 1. /решени...
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.