Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· SecurityService
Extract RoleRightsSyncService și adăugați criteriul de evaluare a sincronizării
- RoleRightsSyncService: centralizează drepturile de rol sincronizare logică pentru ambele OrgRole Şi... tabele; pornire și cerere - DataLoader: delegaţi la RoleRightsSyncService.syncAll() la pornire - SecurityRoleController: Post /sync-rights declanşează sincronizarea fără repornire
· kamo-shared-library
Asigură drepturile de rol pe care DTO-urile le-au condus și adaugă sincronizarea modelelor de securitate
- Security Roledto. from OrgRole (): enumerate all Role Right Valori de tip cu DB setările ca căutare - *************** Aceeași abordare bazată pe enum pentru rolurile implicite ale modelului de securitate - OrgRoleRight.type: adnotare explicită @Enumerated (Enumberated(EnumType.ORDINAL) - ******************* adaugă inserţia IfAbsent nativ interogare pentru pornire și sincronizare la cerere
· kamo-internal
Permite mai multe ferestre tichet de sprijin cu deduplicare ticketId
· kamo-internal
Adăugați cip de tip membru și promovați/demiteți pe Cardul de stare a membrilor, eliminați câmpul de pauză al sesiunii
· SecurityService
Adaugă criteriul de evaluare PATCH/tip de membru pentru promovarea/propulsia membrilor
· kamo-shared-library
Adăugați update-ul nativTipul de membru și asigurați-văcăîntrebăridemararepentrumembru
· kamo-shared-library
Adaugă ALLOW PROMOTING MEmberS dreapta (id 132)
· kamo-internal
Promovarea POS și ESIG de la planificare la etapa finalizată
· kamo-shared-library
Promovarea POS și ESIG de la planificare la etapa finalizată
· kamo-internal
Arată orașul și subdiviziunile în rândul geo vizitatorilor biletului
Afișează ca "City, Region, Country (IP) " degradează grațios atunci când sunt disponibile doar date de țară
· MediaService
Expune oraș și subdiviziuni în căutare geo vizitatori
- Extindeți recordul GeoResult cu câmpurile de orașe și subdiviziuni - Switch SupportTicketService.toDTO() to use GeoLookupService (IP-level) Lookup) în loc de geoLocationRepository, astfel orașul și Subdiviziunea este populată din blocul GeoLite corespunzător
· kamo-shared-library
Adaugă vizitatorCity și vizitatorSubdivision to Support TicketDTO
· kamo-internal
Adăugaţi adrese URL la / pagina de cont pentru conectarea profundă şi reîmprospătarea persistenţei
Tab state este acum sincronizat cu ***************** deci link-uri la tab-uri specifice de lucru și tab-ul corect rămâne selectate pe pagina reîmprospătare.
· kamo-internal
Arată steagul vizitatorilor, țara și IP în antetul biletelor
- Adăugaţi vizitatoriIpAddress, visitorCountryCode, vizitatorCountryName to Support TicketDTO type - Render pavilion emoji + numele țării + rândul adresei IP în TicketHeader pentru bilete de chat publice
· kamo-shared-library
Adaugă câmpurile geo ale vizitatorilor la SuportTicketDTO
· MediaService
Arată steagul vizitatorilor și locația în antetul biletului de sprijin
- Injectați PublicChatVisitorRepositor și GeoLiteLocationRepositor în SuportTicketService - Populate visitorIpAddress, visitorCountryCode, visitorCountryName in toDTO() via geo lookup - GeoLookupService deja populează vizitatori.countryCode la crearea sesiunii
· kamo-marketing
Înlocuiește WebSocket nativ cu STOMP / SockJS în LiveSupportPanel
- Adăugaţi @stomp/stompjs şi pachete client - Conectează-te la media. WebSocket brut la api. - După conectarea STOMP, abonaţi-vă la /topic/chat/sesiune/{ghid} şi notifică backend prin /app/chat/abonare pentru activarea releului NATS JetStream - Raspunsuri agent acum flux: MediaController -> NATS -> ChatWebSocketController -> STOMP broker -> liveSupportPanel vizitatorilor în timp real
· MediaService
Fixează chat public de la un capăt la altul în timp real prin STOMP/NATS
- Elimina cerintele interne de la PublicChatWebSocketInterceptor astfel încât vizitatorii să se poată conecta direct folosind doar sesiunea Token - Include afișarea vizitatorilor Nume ca expeditor în ChatMessageDto astfel agent Vede cine le trimite mesaje în TicketChat - Includeţi numele expeditorului în mesajul STOMPMap transmis din abonamentul NATS astfel încât atât agentul și vizitatorii vedea numele expeditorului în mesaje în timp real
· kamo-shared-library
Adaugă numele expeditorului la ChatMessageDto pentru nume de chat suport
· kamo-internal
Auto-deschis bilet de suport popup pe notificarea NEW TICKET NATS
Când ajunge un nou bilet de sprijin, platforma trimite acum un NEW TICKET Mesaj STOMP în plus față de Pending COUNT. SuportContContext se ocupă de ea prin instrument de expediere:deschide astfel încât fereastra de chat bilet apare automat fără ca agentul să trebuiască să navigheze către /suport.
· kamo-marketing
Adăugați / pagina de contact-confirmat cu erou animat, cronologie și CTA
Înlocuiți mesajul de succes inline pe formularul de contact cu o primă dedicată pagina de confirmare: animat SVG semn de verificare cu spargere de particule, "Ce se întâmplă Următoarea linie a timpului în 3 paşi şi cărţile CTA. Toate cele 23 de fișiere locale actualizat cu noi contacteConfirmate chei i18n.
· kamo-internal
Adăugaţi secţiunea setări org (timp, vârsta req, steaguri conţinut, descriere, alias); eliminaţi butoanele Previzualizare/AddDomain
· kamo-internal
Redesign LabelManager
Rescrie LabelManager.tsx cu model de citire / editare per secțiune. Repară salvarea ruptă buton (validatForm blocat salvează deoarece câmpurile de contact/companii nu au fost niciodată populate de la API). Elimină formularul global de depunere, validareForm, starea erorilor, previewMode și Butoane imprastiate Salvare. Fiecare secțiune încarcă acum date de la API pe montare, arată curat rânduri numai-citire în mod implicit, și are un flux Inline Editare/Salvare/Cancel. Toate cele șapte secțiuni (Info companie, Branding, Imagini de fundal, Informatii de contact, Etichete personalizate, Link-uri sociale) Salvați independent, fără blocare a validării câmpului.
· EmailService
Adaugă validator domeniu KamoMail pentru a bloca adresele de email cross-tenant
Introduce KamoMailDomainValidator componentă care verifică, la nivelul de serviciu, dacă domeniul de e-mail transmis corespunde domeniului implicit verificat al org atunci când KamoMail este furnizorul activ. Injectat în PostboxProvisioningService, AliasService, și SharedMailboxSource Description.
· kamo-internal
Enforce KamoMail domeniu restricție pe cutia poștală, alias, și crearea de căsuță poștală comună
Când KamoMail este furnizorul de e-mail, membrii pot crea doar cutii poștale, pseudonime și cutii poștale partajate utilizând domeniul implicit verificat al org. Aplicarea la trei straturi independente: frontend UI (domeniul prefix+blocare intrare cu starea dezactivată atunci când nu domeniu), proxy Next.js (furnizor paralel + verificare domeniu de securitate înainte de expediere), și Java strat de serviciu.
· kamo-marketing
Citește logoFullExt de la config.json pentru extensie dinamică logo
· kamo-register
Citește logoFullExt de la config.json; fix site.webmanifest cale către subdosarul favicon
· kamo-login
Citește logoFullExt de la config.json pentru extensie dinamică logo
· kamo-internal
Org tema de furnizare
· MediaService
Relay NATS theme provision progress to STOMP WebSocket

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit