Changelog
Co nowego.
Każde ulepszenie platformy, jak to wysyła.
· kamo-register
Kamo-register honoruje oprogramowanie auth logo + nazwa
- DynamicMetaLoader: odczytuj tożsamość oprogramowania + auth selekcjonerzy z config.json, determinacja Tytuł zakładki, uparcie auth logo/name state to sessionStorage - brand.ts + ThemeLogo: zarejestruj logo automatycznie nawiązują tożsamość auth-logo (reactive) - useAuthName: zarejestrować nazwę tekstu (lądowanie + przepływ) podąża za tożsamością auth-name, Reaktywne na temat obciążenia konfiskaty; spada z powrotem do firmy
· kamo-login
Kamo-login honors software auth logo + tytuł zakładki
- DynamicMetaLoader: odczytuj tożsamość oprogramowania + auth selekcjonerzy z config.json, ustaw zakładki Tytuł z rozstrzygniętej nazwy (authNameBrandSource), utrzymuje stan auth-logo do sessionStorage - brand.ts + ThemeLogo: login logos auto-podążać za identyfikator auth-logo (firma/oprogramowanie), Powtórnie rozwiązane na temat tematu config load; brak zmian w miejscu wywołania
· kamo-internal
LabelManager software identity UI + tytuł karty wewnętrznej
- Informacje o firmie: nazwa oprogramowania/skrótkie nazwa + login/nazwa domeny + tab-title selectors - Branding: oprogramowanie pełne /proste przesyłane logo, nadpisywane przełączanie i na powierzchnię Selektory tożsamości (znak wodny, navpri, login/register logos) - powierzchnie przymusowo-prawne komunikowane jako zawsze firmy (dokumenty/e-mail/uwołów/etc.) - layout: ustanie wewnętrzne karty przeglądarki za pośrednictwem internalTabBrandSource
· kamo-internal
3-stopniowe wskazówki dotyczące onboardingu org (utwórz : finisz DNS - enter)
Uogółuj bohatera pierwszegoorga do jednego panelu naprowadzania, który jest kluczowany na statusie nerki należącej do członka + DNS (od /api/security/org/my-networks): twórz — nie posiada dziecka org - uruchamiaj pierwszy biały znak org (/sieć/utwórz) dns — posiada 1, DNS nie jest zweryfikowany - konfiguracja domeny wykończenia (/setup/dns?orgId..) Wprowadź — jest właścicielem 1, DNS complete ? enter (enter-as OTK - internal. Gdy posiadają drugi org, nie widać panelu – znają liny. Oczekiwanie na DNS odzwierciedla zasadę strony sieciowej (domena celna && domainSetupComplete-false; a .kamocrm.com org nie potrzebuje DNS). Każdy etap ma własną rodzinę akcentujących (osoby/praca/crm), ikona i kopiuj; CTA jest linkiem do tworzenia/dnsów i a nawet aync Wprowadź akcję na gotowy etap. Nie jest bezpieczny (bez panelu) na dowolnym błędzie.
· kamo-internal
Podwójny program firmowo-oprogramowy + dostawa + zużycie
- Organizacja.ts: dostarczaj identyfikator oprogramowania + selektory na powierzchni za pośrednictwem OrgContext - brand.ts: - (+ vitest, 8 przypadków) - ThemeLogo: logoSoftware/logoFullSoftware warianty - NavPri: logo navpri + tekst podążaj za selektorem logo oprogramowania wewnętrznego - BackgroundWatermark + Backdrop: znak wodny honoruje identyfikację oprogramowania (obie ścieżki)
· SecurityService
Typy wysyłane logo oprogramowania + config.json bake
- uploadLogo: wyraźny przełącznik obiektu-klucza - Z odrzuceniem domyślnego ustawienia, aby przesłać oprogramowanie nigdy nie może ułomować firmy logo.svg - copyFolder: zachowaj przesłane logo oprogramowania na kopiowaniu szablonu - config.json: bake software identity + auth-surface sekcjonorów do logowania / rejestracji - testy: PrzesłanieLogoObjectKeyTest, buildSetraS
· kamo-shared-library
Dodaj kolumny marki białej etykiety do organizacji
· kamo-shared-library
Persist software branding pola za pośrednictwem patchOrganization whitelist
· kamo-internal
Pierwszy-org CTA bohater dla członków platformy org
Pokaż na pokładzie bohatera na szczycie domowego wyrzutni zapraszając KamoCRM-platformowy członek (nie członek zespołu), który jeszcze nie stworzył Dziecko org, aby obrócić swoją pierwszą białą organizację. Wybitny Przycisk CTA i link "click here" zarówno w trasie, jak i do sieci/stwórz, Kopia wskazuje na navę "Mój "odgałęzień". Gated on userInfo.memberType - MEMBER + organizacja.isTopLevel; pobyty Ukryty chyba, że /api/security/org/my-networks nie potwierdzi, że nie są właścicielami dziecka Org, i zawodzi bezpiecznie (ukryty) na każdym błędzie. Podążaj za instrumentem Język projektowania paneli (podatkularny, kglass, tablica operator-ebel, dom łagodzenie, zredukowane ruchy). Struny pod domem.firstOrg.
· VOIPService
Punkt końcowy TURN-REST dla telefonu komórkowego
GET /api/voip/turn/credentials mints efemeral coturn creds (HMAC-SHA1 over) "Wycenienie>:'memberId>' ze wspólnym statycznym-auth-secretem) tak natywny / komórkowy WebRTC może przekaźnikować przez 47.181.8.84:3478. Auth przez ten sam X-a-Token SIP Punkt końcowy używa; zwraca skonfigurowany:false (tylko STUN), gdy tajemnica jest nieobecna. Przewody KAMO_TURN_SECRET z istniejącego (opcjonalnego).
· SecurityService
Expose per-org primaryColor + logo URL na /my-sieci
Każdy rzęd org ma teraz podstawowy Kolor (Organization.colors.colorPri, ''-prefiked Dopasować config.json) i pochodne logoUrl/logoSimpleUrl (theme.-domain>/public/public/ Logotypy i kolory obramowania hex-head.
· MediaService
Id integracja Snapshot web-chat na support visitor + ticket
Rozwiązuje WebChatIntegration, tworzącKeyHash (włączone filtrowane, Zgodny z rozdzielczością bootstrap()/AI-prompt) raz w createSupportSession i stempluje swój id na obu PublicChatVisitor I SupportTicket dla atrybucji na stronie internetowej. Null/blank keyHash lub Brak dopasowania włączona integracja pozostawia kolumny zerowe.
· AIService
Publiczna intelicja AI do per-integracji + atrybucja sesji
Ulepsz publiczny wału, abym zdobywca promptu systemu z per-org do Naintegrania: PublicAiChatController czyta teraz Nagłówek X-Public-Chat-Key-Hash (nieujałby) przekazywany przez APIService i Przechodzi do niego do - który rozwiązuje WebChatIntegration by hash i preferuje swój aiSystemPrompt Ustawienia AiOrg domyślnie, powrót do ogólnego monitu. Nat wt. w tym w, poty o., w tym, że Ułatwione AiChatSession jest również opieczętowane przez webChatIntegrationId for Stabilne przypisanie, które przetrwa kluczową rotację. Wydobycie wodospadu do statycznej, sprawdzonej jednostce determinacjiPrompt Pomocnik (integracyjne-winy / org-fallback / ogólne-fallback / blank Obsługa).
· APIService
GET /api/public-chat/bootstrap trasa bramowa
Dodaj punkt końcowy bootstrap, który ponownie zażywa istniejący serwer proxyZdjasz rurociąg (waluacja klucza + pochodzenie opt-in + zakres PUBLIC_CHAT + limit stawki + X-Public-Chat-Key-Hash) i proxy do punktu końcowego MediaService bootstrap.
· MediaService
Publiczny bootstrap config resolver
Dodaje wewnętrzny GET - który rozwiązuje a WebChatIntegiration przez X-Public-Chat-Key-Hash i zwraca jego rozwiązanie Konfiskata projektowa/zachwyt (domyślnie wypełniona przez WebChatDefaultConfig.merge Tak więc klucz bez wiersza integracji nadal renderuje jak dzisiejszy widget). Upadek z powrotem do aktywnego orgi PublicChatApiKey, gdy nie ma integracji Istnieje 404s, gdy hash kluczy w ogóle nie rozwiązuje.
· MediaService
WebChatIntegration CRUD (klucz miny + integracja, lub g-scoped)
API zarządzania org-ucingu dla ustawień sieci Phase-2. Włączone twórz, mięczy leżące u podstaw PublicChatApiKey (takie to samo podejście key-gen jako PublicChatKeyController) obok WebChatIntegration row i Zwraca klucz surowy raz. lista/aktualizacja/delet jest org-ownership Sprawdzone; aktualizacja bije (zadażu-5) podręczną bootstrap podczas projektowaniaConfig Albo włączyć zmiany.
· kamo-shared-library
Dodaj stronę WEB_CHAT_INTEGRATION_ID atribution kolumny do odwiedzających/bilet/ai-session
· kamo-shared-library
WebChatIntegration by jednostka + repo + DTO + default konfig projektu
· kamo-internal
Dodaj punkty wejścia "Access Copilot Mobile App" na dom + NavPri
Obie powierzchnie wysyłają zdarzenie „otwarto-interakcyjne-środek, na które NavTop słucha Aby otworzyć Centrum Interakcji na karcie Konfiguracja aplikacji mobilnej. Dom pokazuje a Tabletka oznaczona pod kontrolką tapet; NavPri pokazuje ikonę logo poniżej Pigułka próbna (oznacz po rozszerzeniu, przypyp. po zawaleniu się). Obaj zamknieni przez ALLOW_MOBILE_ACCESS w prawo.
· kamo-internal
Hasło-braj do QR, zakładka jednoliniowa, nagłówek z logo, kod 10-min
- Członek musi ponownie wprowadzić swoje hasło (serweryfikowany przez /api/mobile-access-otk, Co miga OTK tylko na sukcesie) zanim QR zostanie ujawniony - zapobiega komuś W już podpisanym komputerze z chwytania go. - QR/OTK żyje teraz 10 minut (600s); odliczanie następnie ponownie blokuje. - Tabeta zmuszona do jednej linii; logo przesunęło się w lewo od tytułu, aby zaoszczędzić pionową przestrzeń; Usunięto pigułkę "Configuring for".
· SecurityService
POST - bramka Mobile Copilot QR
Weryfikuje własne hasło rozmówcy (passwordEncoder.matches przeciwko sesji Użytkownik) bez zmiany czegokolwiek. Używany przez trasę BFF-mobil-accessk-otk, więc Konfiguracja QR jest wybijana dopiero po ponownym potwierdzeniu hasła.
· kamo-internal
Konfiguracja karty Mobile Access — QR do zainstalowania + autokonfiguracja Mobile Colot
Nowa zakładka 3rd w NavTopPanel (tj. ALLOW_MOBILE_ACCESS po prawej): pokazuje markowy QR kodowanie krótkotrwałego głębokiego łącza OTK (kamocopilot://configurować), które podpisuje Członek w telefonie i domyślnie aplikacji do bieżącego org. Autoodreki OTK przed wygaśnięciem; polerowany układ MUI z podstawowym kolorem orgi. Dodawanie
· kamo-shared-library
Dodaj ALLOW_MOBILE_ACCESS (167) ogólny prawo do Mobile Copilot
Nowy RoleRightType (usługType-null > Grupa ogólna) w "Setup Mobile" Akta interakcji-centrum dostępu. RoleRightsSyncSyncSService uzupełnia go do wszystkich ról Na wznowieniu SecurityService; pojawia się w ramach ogólnych pominięć w edytorze ról.
· AIService
Per-org Publiczne szybkie, ludzkiehand na bez dostawcy, aon Daily message cap
· kamo-shared-library
Dodaj zapytanie o liczbę użytkowników anon dla publicznej kwoty web-chat
· APIService
Zweryfikuj - PoW na granicy tworzenia sesji publicznej (wymuszonej przy obecnym ładowności)
· MediaService
Bust APIService pamięć podręczna klucza natychmiast na kluczu / przełącznik / usuwanie klucza
· MediaService
Wytrwaj tworzenie key hash na gościu zamiatowym zamiatowo + bilet na atrybucję
· kamo-shared-library
Dodaj publicznyDailyMessageCap do AiOrg Ustawienia dla anon web-chat
· kamo-shared-library
Dodaj kolumny tworzenia klawiszy do PublicChatVisitor + SupportTicket

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