Changelog
Co nowego.
Każde ulepszenie platformy, jak to wysyła.
· kamo-internal
Pokaż rekord własności domeny TXT w interfejsie konfiguracji DNS
- DomainData/DnsStatus: dodaj weryfikacjęToken, własnośćZeryfikowana, pola typu - AliasStatusTable: pokaż TxtOwnershipCard powyżej tabeli CNAME z przyciskiem kopiowania, Indigo w oczekiwaniu / zielonym zweryfikowana stylizacja; filtry TXT ze zweryfikowanej liczby CNAME - ManualDnsGuide: akceptuje weryfikacjęPrzegłos żetonowy; pokazuje rekord TXT jako krok 3a Przed rekordami CNAME (Step 3b) z przyciskiem inline copy - DnsProgressView: pass domain.verificationToken to ManualDnsGuide
· SecurityService
Wygeneruj token weryfikacji TXT na domenie tworzenia, sprawdzania w verify-dns
- createDomain: generuj 32-łowy token UUID i przechowywać za pośrednictwem setVerificationToken - verifyDns: sprawdź _kamo-verify rekord TXT dla kamo-site-verification-token> - Weryfikacja TXT liczy się do wymaganegoTotal/wymaganeOstrzejsze - Gdy właściciel_weryfikowany, wynik pamięci podręcznej, więc członek może usunąć rekord TXT - Statusy CNAME zawierają teraz typ "CNAME"; Status TXT obejmuje typ "TXT"
· InitializerService
Dodaj weryfikację_token i kolumny własności_weryfikowane do org_domains
· kamo-shared-library
Dodaj weryfikację własności domeny za pośrednictwem rekordu DNS TXT
- OrgDomain: dodaj weryfikacjęToken i własnośćZintebucje - DomainService: add setVerificationToken() i setOwnershipVerified() - DomainDTO: ujawnij weryfikacjęToken i własnośćZweryfikowaną w odpowiedziach API - DnsStatusDTO: dodaj pole typu, aby odróżnić TXT od statusu CNAME
· kamo-internal
Sticky header, zaktualizowane aliasy, zawsze wido-widomy prosty-angielski przewodnik DNS
· SecurityService
Aktualizuj wymagane aliasy — dodaj aplikację, capcha, docs, sign; usuwanie dziedzictwa
· kamo-internal
Zawsze wyświetlaj przycisk DNS dla właścicieli, dodaj zmianę przepływu domeny
· kamo-internal
Przekaż orgId przez konfigurację / prąd przepływu do zarządzania domeną cross-org
· SecurityService
Zezwalaj na zarządzanie domenami krzyżowo poprzez weryfikację własności użytkownika
· kamo-internal
Dodaj /setup/dns strona i przepływ konfiguracji domeny do /network
- Nowa strona /setup/dns z przepływem dwufazowym: wpis domeny, a następnie DNS Weryfikacja z 60-sekundowym automatycznym zatwierdzeniem i potwierdzeniem SSL - ManualDnsGuide: kolapisible krok po kroku instrukcje DNS dla wszystkich Poziomy umiejętności z przyciskami kopiowania dla nazw rekordów i wartości docelowej - AliasStatusTable: status weryfikacji produktu na kalias CNAME z Zweryfikowane / Oczekujące / Błąd i odznaka opcjonalna dla www - DnsProgressView: wskaźnik fazowy (DNS - SSL - Ready), pasek postępu, Czas odliczania, Sprawdź przycisk Teraz, automatycznej awantuaryczności do stanu sukcesu - DomainEntryForm: wejście do domeny z przełącznikiem www i zwykłym uX - /network page: disable przycisk Enter dla orgs z niepotwierdzonym zamówieniem Domena; Pokaż przycisk Setup Domain dla właścicieli potrzebujących konfiguracji
· SecurityService
Dodaj /setup/dns backend — egzekwowanie jednej domeny, sonda SSL, nowe aliasy
- Wymuś jedną niestandardową domenę na org w POST /api/security/domenie - Dodaj capcha, docs, podpisuj do standardowych aliasów; usuń stare aliasy - Aktualizacja verify-dns do śledzenia wymaganych vs CNAMEs, auto-trigger Nasiona HTTP do logów Traefik, gdy wszystkie wymagane CNAMEs są zweryfikowane, i Prośba HTTPS dla potwierdzenia SSL (znaki sslConfirmed w domenie nadrzędne) - Dodaj SslProbeService z triggerHttpSeed() i sondyHttps() metod - DomenacjaUczciwyUkończ na org GET /api/security/org/my-networks
· InitializerService
Dodawanie ssl_confirmed i ssl_confirmed_at kolumn do org_domains
Dodaje idempotent ALTER TABLE stwierdzeń, aby udostępnić dwie nowe kolumny Potrzebne do konfiguracji DNS śledzenie potwierdzenia SSL.
· kamo-shared-library
Dodaj sslConfirmed/ssspotedPotwierdzone pola do OrgDomain i DomainDTO
Dodaje dwa nowe pola do jednostki OrgDomain i DomainDTO do śledzenia SSL Status potwierdzenia certyfikatu po problemach z autocertem Świadectwo. Dodaj również setSslConfirmed() helper do DomainService.
· kamo-marketing
Usuń klient cenzurowanie po stronie klienta — teraz obsługiwane przez backend
Wymiana tekstu i tajna redakcja przeniosła się do ChangelogSanitizationService (SecurityService) więc sanitarna ma miejsce przed przechowywaniem i tłumaczeniem DB. Frontend nie musi już dotykać tekstu.
· SecurityService
Przenieś changelog word replacement na backend przed tłumaczeniem
Zamienniki tekstu (Docs-Docs, Meet-Meet itp.) i tajna nazwa Redaction (tajne nazwy K8s) były wcześniej stosowane po stronie klienta w ChangelogClient.tsx, co oznacza, że surowe warunki wrażliwe były przechowywane w Baza danych i przesyłana do usługi tłumaczeniowej — tak przetłumaczone zapisy Może eksponować nazwy wewnętrzne w innych językach. Obie listy są teraz stosowane w ChangelogSanitizationService przed commit Jest uporczywy. ZamiennikTekt() obejmuje tytuły; dezynfekcja() opisów (podkładki-podkładki są najpierw, a następnie zastępująTenta). Frontend nie jest już potrzebny Aby zrobić jakąkolwiek cenzurę.
· kamo-internal
Wymień przełączanie add-on z suwakiem ilościowym
Dodatkowa pamięć ma miejsce w przypadku użytkowania (blok $ / 25 GB), a nie proste włączanie / wyłączanie Doda się. Zastąpił przełącznik przełączający suwakiem (0-1000 GB w 25 GB Kroki) plus pole wejściowe numeryczne. Podział kosztów pokazuje teraz przechowywanie jako Oddzielny element wiersza. PlanSelection obejmuje dodatkoweStorageGB dla Zaplecza, aby odpowiednio skonfigurować rozliczenie licznika.
· kamo-internal
Wire BillingManager i RelationshipManager do prawdziwych backendów
BillingManager (karta rozliczeniowa konta): - Zastąpiony w 100% lokalny makieta z realną metodą płatności zabezpieczoną Stripe Zarządzanie za pośrednictwem billingApi - Obciąża metody płatności z GET /api/billing/prostole płatności na węźle - Dodaj metodę płatności flow użyj createSetupupIntent - StripeProvider + PaymentMethodForm - potwierdzićCardSetup - attachPaymentMethod (identyczny przepływ do PlansBillingTab) - Ustaw domyślnie poprzez - z optymistycznymi Ikona gwiazdy i spinner w locie na rzędzie - Usuń za pośrednictwem billingApi.deletePaymentMethod with ConfirmationDialog; Domyślne usunięcie karty jest blokowane za pomocą tooltip - Ikony marki kart (Visa/Mastercard/Amex/Discover) pokazane z istniejących Aktywa SVG; ogólne ikona CreditCard ikona zwrotu dla nieznanych marek - Załadunek szkieletu, nasekcję z ponownym działaniem, sprzężenie zwrotne z przekąsek RelationshipManager (zakładka relacji na konta): - Zastąpiony pusty stan lokalny G /api/security/org/my-sieci - Klasyfikacja sieci: isOwner-false - Sieci Rodzica (orgs użytkownik Należy), isOwner're'ree - Child Networks (orgs zarządza użytkownikiem) - Pokazuje inicjały Avatar, tytuł org, typ / domena meta i chipsy dożylny - Linki akcji do domeny org, gdy są dostępne - Unieważnienie do dostępu do działań w zakresie praw do wyłączonych za pomocą podpowiedź (zarządzana za pośrednictwem org admin) - chipy podsumowujące pokazują liczbę rodzica/dziecięcy na żywo - Dodawanie/usujanie jest celowo odczytywane; informacje ostrzegają bezpośrednio do sieci Strona zarządzania relacjami (nie istnieje punkt końcowy CRUD zaplecza)
· KlusterServices
Przywróć bergamot z pracującymi źródłami modeli i poprawnym obrazem
- repliki: 1 - Init container (alpine): pobiera 4 pary z data.statmt.org (tarballs dla enes/enfr/ende/enpl) oraz 2 od firefox-translations-models GitHub LFS (indywidualne pliki .gz dla enru/enar) - Obraz: mozilla/translation-service (właściwy serwer HTTP, był biblioteką WASM) - Port: 8080 przez PORT env var (domyślnie usługi do 8000) - Sondy zdrowia: Gniazdo TCP (usługa nie ma /zdrowy punkt końcowy HTTP) - Pozostałe 7 miejsc (pt/it/uk/tr/ro/did/vi) spada do LibreTranslate
· kamo-internal
Zastąp stronę ze statystykami maku na żywo KamoCRM subskrypcyjny pulpit nawigacyjny
Przebudowane /settings/account?tab'stats w w pełni okablowany, tylko odczyty Deska rozdzielcza. Zastępuje wszystkie fałszywe dane przy równoległych połączeniach do BillingService za pośrednictwem Obowiązujący klient billingApi. Układ: - Top 2-col: Plan Overview karta (naznanie planu, odznaka statusu, liczba miejsc, Cykl rozliczeniowy, okres, ostrzeżenia, lista funkcji) + Podsumowanie rozliczeniowe Karta (następna kwota rachunku, cena jednostkowa, aktywne dodatki, saldo kredytowe, płatność Metoda ostatnia 4) - Pełna szerokość sekcji użytkowania: karty postępu na liczniku (wysłane e-maile, e-maile przechowywanie, przechowywanie plików, dokumenty) z kolorowymi paskami postępu Z limitów funkcji planu — zielony/ostrzeżenie/błąd/error przy progach 70%/90% - Pełna szerokość tabeli historii: numer faktury, okres, chip statusowy, Subtotal/tax/total, link do pobrania PDF; do 20 najnowszych faktur Dane: getCurrentSubscription, getAvaablePlans, getCurrentUsage, getInvoices, getCreditBalance, getPaymentMethods — wszystko przez Promise.Liczba Tak więc każda sekcja degraduje się niezależnie od błędów. MUI Szkieletowe ładowarki per Sekcja podczas pobierania.
· kamo-internal
Wybierz koniec planu na koniec
- Wire PlanCalculator do dialogów dialogowych PlansBillingTab (zastępuje symbol zastępczy) - Wyłać dostępne plany z rozliczeń API na obciążenie strony - Zgłoszenie planu obsługi: tworzy nową subskrypcję lub aktualizacje istniejące - Wymagaj metody płatności przed subskrypcją (przekierowanie do dodania płatności) - Pokaż stan ładowania za pomocą wiadomości przetwarzania Stripe podczas przesyłania - kontekst planu przejścia (aktualny plan, cykl, siedzenia, dodatki) do kalkulatora - Napraw PaymentMethodForm, aby zaakceptować klientaSekret jako rekwizyt zamiast Dostęp do elementów Stripe Elements
· kamo-internal
Ukryj zakładkę Plany & Billing dla root KamoCRM org
Właściciele org KamoCRM mają wszystko włączone bez żadnych kosztów – powinni Nigdy nie widzisz zakładki rozliczeniowej. Zakładka jest teraz warunkowo wyrenderowana tylko W przypadku organizacji dziecięcych (gdzie organizacja.hasParent jest prawdziwy). Dziecko Właściciele org widzą fakturowanie org'a; członkowie widzą fakturowanie na podstawie Powiatuga delegacji.
· SecurityService
Dodaj BillingService do zmian projektów publicznych
· kamo-internal
Integracja systemu rozliczeniowego Stripe na całej platformie
- Nowy klient billingApi.ts z pełnymi typowymi typami skryptów dla wszystkich faktur punkty końcowe (subskrypcje, metody płatności, faktury, kredyty, wykorzystanie, Konfiskata, admin) - Nowe elementy pasakowe: StripeProvider, PaymentMethodForm, PlanCalculator z pełnym podziałem kosztów, rabatami objętościowymi i pakietami - Przepisywanie planówBillingTab z prawdziwą integracją Stripe: zarządzanie planem, Metody płatności Stripe Elements, historia faktur, saldo kredytowe, Pogromowanie użytkowania, konfiskata delegacji rozliczeniowej, status rozliczeniowy członka zespołu - Funkcje aktualizacjiManager z planowym szczypcem: ikony zamków i aktualizacja CTA dla funkcji nieumieszczonych w bieżącym planie subskrypcji - Usuń kartę rozliczeniową z ustawień konta (przesunięta na stronę członkowską) - Zainstaluj ?stripe/stripe-js i .stripe/react-stripe-js
· BillingService
Początkowa BillingService — Rozliczenia zintegrowane ze paskami dla KamoCRM
Kompletna usługa Spring Boot do zarządzania fakturowaniem KamoCRM za pośrednictwem Stripe: - Stripe Klient, Subskrypcja, PaymentMethod, Zarządzanie cyklem życia faktury - System kredytowy z audytem księgi (Stripe Customer Balance) - pomiary użytkowania dla KamoMail i DocManager (codziennie cronc sync do Stripe) - Delegacja rozliczeniowa (ORG_PAYS_ALL / MEMBERS_PAY_OWN) - Konfigurowalne egzekwowanie luksów (SOFT_LOCK, HARD_LOCK, OWNER_FALLBACK) - Przetwarzanie na taśmie webhook dla synchronizacji stanu w czasie rzeczywistym - Stripe Price/Product auto-creation z katalogu subskrypcji - Full REST API: klienci, subskrypcje, metody płatności, faktury, Kredyty, użycie, konfiguracja, punkty końcowe administratora - manifesty wdrożeniowe K8 + Forgejo CI/CD rurociąg - Usługa tylko wewnętrzna (bez IngressRoute), dostępna za pośrednictwem bramki APIService
· APIService
Dodaj Stripe webhook spedytor i routing routing bramowy API
- POST /api/billing/webhooks/stripe odbiera Stripe webhooks i forwards Do BillingService z zachowanym nagłówkiem Stripe-Signature - /api/billing/' tras bramowe Zatalerowanie uwierzytelnionych połączeń API Do BillingService za pośrednictwem istniejącego mechanizmu forward() - Dodaje konfigurację billing.service.url i stripe.webhook.secret - Dodaje sekretne odniesienie do stripe-webhook-secret k8s
· InitializerService
Dodaj inicjację konfiguracji rozliczeniowej do KamoCRMPricingLoader
Nasiona domyślnego BillingConfig (ORG_PAYS_ALL, SOFT_LOCK, 7-dniowa gracja) dla organizacji KamoCRM podczas startupu ładowarek cenowych. Wsparcie Nowy system rozliczeń Stripe.
· kamo-shared-library
Dodaj podmioty rozliczeniowe i repozytoria integracji Stripe
Nowy pakiet z 9 podmiotami (BillingCustomer, BillingSubscription, BillingPaymentmetod, BillingInvoice, BillingCredit, BillingCreditLedger, BillingConfig, BillingUsageSnapshot, BillingStripePriceMapping) i 9 odpowiadającymi mu Repozytoria JPA. Podmioty te odzwierciedlają stan Stripe lokalnie dla Nowy system rozliczeń KamoCRM.
· kamo-marketing
Dodawanie /kalkulator i /priing/offer do wszystkich map witryn; i18n HTML sitemap etykiet
- aplikacja/sitemap.ts: dodaj /pricing/offer i /calculator wpisy z lokalnymi alternatywami - aplikacja/api/sitemap/route.ts: dodaj kalkulator cen i specjalne wpisy w ofercie - SitemapClient.tsx: przesuń statycznieSections wewnątrz komponentu z t() dla wszystkich etykiet / opisów; dodaj Calculator link w sekcji Produkt - wiadomości/en.json: dodaj 38 nowych przycisków linku witryny / kluczy opisu
· kamo-marketing
W pełni wyjąć pozostałe ciągi ciała z produktu, bloga, ceny, demo, kontakt, kalkulator
· kamo-marketing
W pełni wyciągać struny ciała z cech, o, w domu

Twój wszechświat czeka.
Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.
Bezpłatne na zawsze — nie wymaga karty kredytowej