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

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

Что нового.

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

  1. · kamo-internal

    Показать запись владения доменом TXT в UI настройки DNS

    - DomainData/DnsStatus: добавьте verificationToken, ownershipVerified, поля типов - AliasStatusTable: показать TxtOwnershipCard над таблицей CNAME с кнопкой копирования, Indigo pending/green verified styling; фильтры TXT от CNAME verified count Руководство DnsGuide: принимает проверку Реквизит токена; показывает запись TXT как шаг 3a до записи CNAME (Шаг 3b) с помощью встроенной кнопки копирования - DnsProgressView: перейдите domain.verificationToken в ManualDnsGuide

  2. · SecurityService

    Generate TXT verification token on domain create, check in verify-dns

    - createDomain: generate 32-char UUID token and store via setVerificationToken - verifyDns: check _kamo-verify TXT record for kamo-site-verification=<token> - TXT verification counts toward requiredTotal/requiredVerified - Once ownership_verified=true, cache result so member can remove TXT record - CNAME statuses now include type="CNAME"; TXT status includes type="TXT"

  3. · InitializerService

    Add verification_token and ownership_verified columns to org_domains

  4. · kamo-shared-library

    Добавить проверку владения доменом через DNS TXT

    - OrgDomain: добавьте верификациюToken и верифицированные поля - DomainService: добавить setVerificationToken() и setOwnershipVerified() DomainDTO: разоблачение верификацииToken и право собственностиПроверено в ответах API DnsStatusDTO: добавить поле типа, чтобы отличить TXT от CNAME

  5. · kamo-internal

    Прилипкий заголовок, обновленные псевдонимы, всегда видимое простое английское руководство по DNS

  6. · SecurityService

    Update required aliases — add app, capcha, docs, sign; remove legacy

  7. · kamo-internal

    Всегда отображайте кнопку DNS для владельцев, добавляйте изменение потока домена

  8. · kamo-internal

    Pass orgId through setup/dns flow for cross-org domain management

  9. · SecurityService

    Allow cross-org domain management by verifying user ownership

  10. · kamo-internal

    Добавить /setup/dns страницу и установить домен поток в /network

    Новая страница /setup/dns с двухфазным потоком: ввод домена, затем DNS 60-секундный автополлинг и подтверждение SSL Руководство DnsGuide: разборные пошаговые инструкции DNS для всех уровни навыков с кнопками копирования для имен записей и целевого значения AliasStatusTable: Live per-alias CNAME Verified / Pending / Чипы ошибок и дополнительный значок для www - DnsProgressView: индикатор фазы (DNS → SSL → Ready), планка прогресса; Таймер обратного отсчета, кнопка «Проверить сейчас», автопродвижение до состояния успеха - DomainEntryForm: ввод домена с помощью www toggle и UX на простом языке - /network page: отключить кнопку Enter для оргов с неподтвержденным пользовательским интерфейсом домен; показать кнопку «Настройка домена» для владельцев, которым нужна конфигурация

  11. · SecurityService

    Add /setup/dns backend — one-domain enforcement, SSL probe, new aliases

    - Enforce one custom domain per org in POST /api/security/domains - Add capcha, docs, sign to standard aliases; remove legacy aliases - Update verify-dns to track required vs optional CNAMEs, auto-trigger HTTP seeds to Traefik logs when all required CNAMEs verified, and HTTPS-probe for SSL confirmation (marks sslConfirmed on parent domain) - Add SslProbeService with triggerHttpSeed() and probeHttps() methods - Expose domainSetupComplete per org in GET /api/security/org/my-networks

  12. · InitializerService

    Add ssl_confirmed and ssl_confirmed_at columns to org_domains

    Adds idempotent ALTER TABLE statements to provision the two new columns needed for DNS setup SSL confirmation tracking.

  13. · kamo-shared-library

    Добавить sslConfirmed/sslConfirmedAt fields в OrgDomain и DomainDTO

    Добавление двух новых полей в OrgDomain и DomainDTO для отслеживания SSL статус подтверждения сертификата после проблем с авто-сертификатом Сертификат. Также добавляется setSslConfirmed() Helper в DomainService.

  14. · kamo-marketing

    Удалить цензуру на стороне клиента — теперь обрабатывается backend

    Замена слов и секретная редакция перешли в ChangelogSanitization Сервис (SecurityService), поэтому дезинфицирование происходит до хранения и перевода DB. Фронтенду больше не нужно прикасаться к тексту.

  15. · SecurityService

    Move changelog word replacement to backend before translation

    Text replacements (Docs→Docs, Meet→Meet, etc.) and secret name redaction (K8s secret names→***) were previously applied client-side in ChangelogClient.tsx, meaning the raw sensitive terms were stored in the database and transmitted to the translation service — so translated records could expose internal names in other languages. Both lists are now applied in ChangelogSanitizationService before the commit is persisted. replaceText() covers titles; sanitize() covers descriptions (strip-patterns run first, then replaceText). The frontend no longer needs to do any censoring.

  16. · kamo-internal

    Замените дополнение к хранению переключателем количества слайдеров

    Дополнительное хранилище основано на использовании (4/25 ГБ блока), а не на простом включении/выключении. дополнение. Заменить переключатель переключения с помощью слайдера (0-1000 ГБ в 25 ГБ) Шаги) плюс числовое поле ввода. Разбивка расходов теперь показывает хранение отдельная строка. PlanSelect включает в себя дополнительный StorageGB бэкэнд, чтобы настроить отмеренный счет соответственно.

  17. · kamo-internal

    Проводите BillingManager и RelationshipManager к реальным бэкэндам

    BillingManager (закладка счета): - Заменить 100% макет на местном уровне реальным способом оплаты с поддержкой Stripe Управление через BillingApi - Способы оплаты загрузок из GET /api/billing/payment-metods на mount Добавить способ оплаты потока использует createSetupIntent → StripeProvider + PaymentMethodForm → подтвердитьCardSetup → прикрепитьPaymentMethod (идентичный) Скачать PlansBillingTab Установите дефолт через ******************* с оптимизмом звезда икона и в полете спиннер за ряд - Удалить через billingApi.deletePaymentMethod с помощью ConfirmationDialog; Удаление карты по умолчанию блокируется с помощью инструмента Иконки карточных брендов (Visa/Mastercard/Amex/Discover) Активы SVG; общий резерв иконок CreditCard для неизвестных брендов - Загрузка скелета, погрешность сечения с повторным использованием, обратная связь с закусочной Менеджер по взаимодействию (таблица по взаимодействию с аккаунтом): Заменить пустое локальное состояние на GET/api/security/org/my-networks Классифицирует сети: isOwner=false → Parent Networks (orgs the user) принадлежит), isOwner=true → Child Networks (orgs the user manages) - Показывает инициалы Avatar, название организации, метатип / домен и ролевой чип Ссылки на действия профиля в домене org, когда они доступны - Действие по правам доступа отключено с помощью инструмента (управляется через администратора организации) - Сводные чипы показывают количество живых родителей / детей Добавление/удаление намеренно только для чтения; оповещение о информации направляется в Сеть Страница для управления отношениями (нет бэкэнд-конечной точки CRUD)

  18. · KlusterServices

    Restore bergamot with working model sources and correct image

    - replicas: 1 - Init container (alpine): downloads 4 pairs from data.statmt.org (tarballs for enes/enfr/ende/enpl) and 2 from firefox-translations-models GitHub LFS (individual .gz files for enru/enar) - Image: mozilla/translation-service (proper HTTP server, was WASM library) - Port: 8080 via PORT env var (service defaults to 8000) - Health probes: TCP socket (service has no /health HTTP endpoint) - Remaining 7 locales (pt/it/uk/tr/ro/id/vi) fall through to LibreTranslate

  19. · kamo-internal

    Замените страницу статистики с живой панелью мониторинга подписки KamoCRM

    Перестроенный /settings /account?tab = stats в полностью проводной, только для чтения прозрение приборная панель. Замените все поддельные данные параллельными вызовами в BillingService Существующий клиент BillingApi Укладка: - Верхняя сетка 2 градуса: карта обзора плана (название плана, значок статуса, количество мест, цикл выставления счетов, период, предупреждение об отмене, список функций Биллинг Резюме карта (сумма следующего счета, цена единицы, активные дополнения, кредитный баланс, оплата) Последний способ 4 - Полноразмерный раздел использования: карты прогресса на метр (отправленные электронные письма, электронная почта) хранение, хранение файлов, документов) с производными цветными индикаторами прогресса от пределов характеристик плана — зеленый / предупреждение / ошибка при порогах 70% / 90% - Полная таблица истории счетов-фактур: номер счета, период, чип состояния, subtotal/tax/total, ссылка для загрузки PDF; до 20 последних счетов Данные: getCurrentSubscription, getAvailablePlans, getCurrentUsage, getInvoices, getCreditBalance, getPaymentMethods — все через Promise.all Настроенный Таким образом, каждый раздел ухудшается независимо от ошибки. Погрузчики MUI Skeleton per Секция во время извлечения.

  20. · kamo-internal

    Выберите план потока сквозной

    Проводной калькулятор в диалог PlansBillingTab (заменяет заполнитель) - Получить доступные планы от выставления счетов API при загрузке страницы Отправка плана: создание новой подписки или существующих обновлений - Требовать способ оплаты перед подпиской (перенаправляет на добавление оплаты) Показать состояние загрузки с сообщением обработки Stripe во время отправки - контекст паспортного плана (текущий план, цикл, сиденья, надстройки) в калькулятор - Исправьте PaymentMethodForm, чтобы принять ClientSecret в качестве реквизита Доступ к внутренним элементам Stripe

  21. · kamo-internal

    Закладка Hide Plans & Billing для root-орга KamoCRM

    Владельцам KamoCRM-оргов все включено бесплатно - они должны Никогда не видел счетной вкладки. Вкладка теперь условно отображается только Для детских организаций (где это правда). ребенок Владельцы организации видят выставление счетов своей организации; члены видят выставление счетов на основе Конфигурация делегации.

  22. · SecurityService

    Добавить BillingService в Changelog Public Projects

  23. · kamo-internal

    Интеграция платежной системы Stripe через платформу

    Новый клиент BillingApi.ts с полными типами TypeScript для всех платежей конечные точки (подписки, способы оплаты, счета-фактуры, кредиты, использование, конфигурация, админ - Новые компоненты Stripe Elements: StripeProvider, PaymentMethodForm, PlanCalculator с полной разбивкой по стоимости, скидками на объем и пакетами Переписать PlansBillingTab с реальной интеграцией Stripe: управление планами Способы оплаты Stripe Elements, история счетов, кредитный баланс, счетчик использования, конфигурация делегации выставления счетов, статус выставления счетов члена команды - Update FeaturesManager with plan-based gating: блокировка иконок и обновление CTA для функций, не включенных в текущий план подписки - Удалить вкладку выставления счетов из настроек учетной записи (перемещена на страницу участника) - Установить @stripe/stripe-js и @stripe/react-stripe-js

  24. · BillingService

    Initial BillingService — Stripe-integrated billing for KamoCRM

    Complete Spring Boot service for managing KamoCRM billing via Stripe: - Stripe Customer, Subscription, PaymentMethod, Invoice lifecycle management - Credit system with ledger auditing (Stripe Customer Balance) - Usage metering for KamoMail and DocManager (daily cron sync to Stripe) - Billing delegation (ORG_PAYS_ALL / MEMBERS_PAY_OWN modes) - Configurable delinquency enforcement (SOFT_LOCK, HARD_LOCK, OWNER_FALLBACK) - Stripe webhook processing for real-time state sync - Stripe Price/Product auto-creation from subscription catalog - Full REST API: customers, subscriptions, payment methods, invoices, credits, usage, config, admin endpoints - K8s deployment manifests + Forgejo CI/CD pipeline - Internal-only service (no IngressRoute), accessed via APIService gateway

  25. · APIService

    Add Stripe webhook forwarding and billing API gateway routing

    - POST /api/billing/webhooks/stripe receives Stripe webhooks and forwards to BillingService with Stripe-Signature header preserved - /api/billing/** gateway routes proxy authenticated billing API calls to BillingService through the existing forward() mechanism - Adds billing.service.url and stripe.webhook.secret configuration - Adds stripe-webhook-secret k8s secret reference

  26. · InitializerService

    Add billing config initialization to KamoCRMPricingLoader

    Seeds a default BillingConfig (ORG_PAYS_ALL, SOFT_LOCK, 7-day grace) for the KamoCRM organization during pricing loader startup. Supports the new Stripe billing system.

  27. · kamo-shared-library

    Добавление платежных организаций и репозиториев для интеграции Stripe

    Новый пакет ******************* с 9 организациями (BillingCustomer, BillingSubscription, BillingPayment) Метод, BillingInvoice, BillingCredit, BillingCreditLedger, BillingConfig BillingUsageSnapshot, BillingStripePriceMapping) и 9 соответствующих Репозитории JPA. Эти объекты зеркально отражают штат Стрип локально для Новая система оплаты KamoCRM.

  28. · kamo-marketing

    Добавить /калькулятор и /цена / предложение для всех карт сайта; i18n HTML

    - app/sitemap.ts: добавить /pricing/offer и /calculator записи с локальными альтернативами - app/api/sitemap/route.ts: добавить калькулятор цен и специальные предложения SitemapClient.tsx: перемещать статические разделы внутри компонента с t() для всех меток/описаний; Добавить ссылку на калькулятор в разделе Продукт Сообщения / en.json: добавить 38 новых ярлыков ссылок Sitemap

  29. · kamo-marketing

    Полностью извлечь оставшиеся строки тела из продукта, блога, ценообразования, демо, контакта, калькулятора

  30. · kamo-marketing

    Полностью извлечь струны тела из функций, о, дома

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

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

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