Changelog
Was ist neu?
Jede Verbesserung an der Plattform, wie sie geliefert wird.
· SecurityService
RoleRightsSyncService extrahieren und Sync-Rechte-Endpunkt hinzufügen
- RoleRightsSyncService: Zentralisiert Rollenrechte-Synchroniklogik für beide OrgRole und ************ Tische; Start und On-Demand - DataLoader: Delegierte zu RoleRightsSyncService.syncAll() beim Start - SecurityRoleController: POST /sync-Rechte löst synchronisieren ohne Neustart
· kamo-shared-library
Machen Sie Rollenspiele DTOs enum-driven und fügen Sicherheitsmodell Rechte synchronisieren
- SecurityRoleDTO.fromOrgRole(): alle RoleRightType Werte mit DB aufzählen Einstellungen als Lookup - Neue Rechte erscheinen mit NOT_SPECIFIED automatisch - ************ gleiche enum-getriebene Vorgehensweise für Sicherheitsmodell Standard-Rollen - OrgRoleRight.type: explizit @Enumerated(EnumType.ORDINAL) Anmerkung hinzufügen - ************ fügen InsertIfAbsent native Abfrage für Start- und On-Demand-Synchronisation
· kamo-internal
Lassen Sie mehrere Support-Ticket-Fenster mit TicketId-Deduplikation
· kamo-internal
Mitgliedschaftstyp Chip hinzufügen und zur Statuskarte der Mitgliedschaft fördern/deote, Session Timeout-Feld entfernen
· SecurityService
PATCH /membership-ähnliche Endpunkt für Mitgliederförderung/Demotion hinzufügen
· kamo-shared-library
native updateMemberType hinzufügen und sicherstellenTeamMemberRow-Abfragen zu MemberRepository
· kamo-shared-library
ALLOW_PROMOTING_MEMBERS rechts hinzufügen (id 132)
· kamo-internal
Fördern Sie POS und ESIG von PLANNING bis zur COMPLETED-Bühne
· kamo-shared-library
Fördern Sie POS und ESIG von PLANNING bis zur COMPLETED-Bühne
· kamo-internal
Show City und Unterteilung in Ticket Besucher Geo-Reihe
Anzeige als "Stadt, Region, Land (IP) " - Nullen werden gefiltert, so dass es gefiltert wird degradiert anmutig, wenn nur Länderdaten verfügbar sind
· MediaService
Expose Stadt und Unterteilung in Besucher Geo-Lookup
- Extend GeoResult Rekord mit Stadt- und Unterteilungsfeldern - Switch SupportTicketService.toDTO() zur Nutzung von GeoLookupService (IP-Ebene Lookup) statt Land-only GeoLocationRepository, so Stadt und Teilung ist aus dem passenden GeoLite Block bestickt
· kamo-shared-library
BesucherCity und BesucherSubdivision zu SupportTicketDTO hinzufügen
· kamo-internal
Tab-URL-Params auf /account-Seite für tiefe Verlinkung und aktualisieren Beharrlichkeit
Tab Zustand ist jetzt synchronisiert ************ so Links auf bestimmte Registerkarten funktionieren und die richtige Registerkarte bleibt auf Seite refresh ausgewählt.
· kamo-internal
Besucherflagge, Land und IP in Ticket-Header anzeigen
- BesucherIpAddress, visitorCountryCode, BesucherCountryName zum SupportTicketDTO hinzufügen - Render Flag emoji + Landname + IP-Adresse in TicketHeader für öffentliche Chat-Tickets
· kamo-shared-library
Besucher-Geo-Felder zu SupportTicketDTO hinzufügen
· MediaService
Besucherflagge und Standort im Support-Ticket-Header anzeigen
- PublicChatVisitorRepository und GeoLiteLocationRepository in SupportTicketService injizieren - Populate visitorIpAddress, visitorCountryCode, visitorCountryName in toDTO() via Geo Lookup - GeoLookupService bevölkert bereits Besucher.countryCode bei der Session-Erstellung
· kamo-marketing
native WebSocket mit STOMP/SockJS in LiveSupportPanel ersetzen
- @stomp/stompjs und sockjs-client Pakete hinzufügen - Verbindung zu Medien verbinden.{domain]/ws/public-chat über SockJS+STOMP statt raw WebSocket to api.{domain', was falscher Host und falsches Protokoll war - Nach STOMP connect abonnieren /topic/chat/session/{guid> Backend über /app/chat/subscribe zur Aktivierung des NATS JetStream Relais benachrichtigen - Agentenantworten jetzt fließen: MediaController -- NATS -" ChatWebSocketController STOMP-Broker -- LiveSupportPanel des Besuchers in Echtzeit
· MediaService
End-to-End-Öffentlicher Chat in Echtzeit über STOMP/NATS
- Entfernen Sie internalAuth Anforderung von PublicChatWebSocketInterceptor damit Besucher sich direkt über ihre SessionToken verbinden können - BesucheranzeigeName als senderName in ChatMessageDto so Agent sieht, wer sie in TicketChat verständigt - Enthalten senderName in STOMP NachrichtKarte von NATS-Abonnement weitergeleitet so dass sowohl Agent als auch Besucher Absendernamen in Echtzeit sehen
· kamo-shared-library
AbsenderName zu ChatMessageDto hinzufügen, um Chat-Display-Namen zu unterstützen
· kamo-internal
Auto-Open Support-Ticket Popup auf NEW_TICKET NATS-Benachrichtigung
Wenn ein neues Support-Ticket ankommt, sendet das Backend jetzt ein NEW_TICKET STOMP-Nachricht zusätzlich zu PENDING_COUNT. Der SupportCount-Kontext behandelt es durch Versand-Tool: öffnen, so dass das Ticket-Chat-Fenster erscheint automatisch, ohne dass der Agent zu /support navigieren muss.
· kamo-marketing
Hinzufügen /Kontakt-bestätigte Seite mit animierten Helden, Timeline und CTAs
Inline-Erfolgsmeldung auf Kontaktformular durch eine dedizierte Prämie ersetzen Bestätigungsseite: animierte SVG-Kennzeichen mit Partikelausbruch, 'Was passiert Next' 3-Schritt-Zeitleiste und 'While You Wait' CTA-Karten. Alle 23 Locale-Dateien aktualisiert mit neuen contactBestätigte i18n-Schlüsseln.
· kamo-internal
Add org Einstellungen Abschnitt (Zeitzone, Alter req, Inhaltsflaggen, Beschreibung, Alias); entfernen Sie Preview/AddDomain-Buttons
· kamo-internal
Redesign LabelManager - Inline-Sektion bearbeiten, gebrochen speichern, read-only default
Rewrites LabelManager.tsx mit pro-section read/edit Muster. Behebt den defekten Speicher Button (validateForm blockiert spart, weil Kontakt/Firmenfelder nie bevölkert wurden von API). Entfernt globales Formular senden, validateForm, Fehler Zustand, Vorschau-Mode, und verstreute Speichern von Tasten. Jeder Abschnitt lädt jetzt Daten von API auf Mount, zeigt sauber Die schreibgeschützten Zeilen haben standardmäßig einen Inline Edit/Save/Save/Cancel flow. Alle sieben Abschnitte (Firmeninfo, Branding, Hintergrundbilder, Kontaktinformationen, kundenspezifische Etiketten, Soziale Links) speichern Sie unabhängig ohne Cross-Field-Validierung.
· EmailService
KamoMail-Domain-Validator hinzufügen, um Cross-Denant-E-Mail-Adressen zu blockieren
Einführung der KamoMailDomainValidator-Komponente, die überprüft, auf Service-Schicht, ob die eingereichte E-Mail-Domain mit der verifizierten Standard-Domain der org übereinstimmt wenn KamoMail der aktive Anbieter ist. Injiziert in MailboxProvisioningService, AliasService und SharedMailboxService . aufgerufen, bevor eine Rückstellung erfolgt. Gibt 403 FORBIDDEN zurück, wenn die Domain nicht übereinstimmt.
· kamo-internal
Bezwingen Sie KamoMail-Domain-Beschränkung auf Mailbox, Alias und gemeinsame Mailbox-Erstellung
Wenn KamoMail der E-Mail-Anbieter ist, können Mitglieder nur Mailboxen erstellen, Aliase und gemeinsam genutzte Mailboxen über die verifizierte Standard-Domain der Org. Durchsetzung auf drei unabhängigen Ebenen: Frontend UI (prefix+locked Domain Eingabe mit deaktiviertem Zustand, wenn keine Domäne), Next.js Proxy (parallel Anbieter + Sicherheits-Domain-Check vor der Weiterverlage) und Java-Service-Schicht.
· kamo-marketing
LogoFullExt von config.json für dynamische Logo-Erweiterung lesen
· kamo-register
Lesen Sie LogoFullExt von config.json; fix site.webmanifest Pfad zum Favicon-Unterverzeichnis
· kamo-login
LogoFullExt von config.json für dynamische Logo-Erweiterung lesen
· kamo-internal
Org-Themenvorsorge - WebSocket Hook, Bereitstellungspanel, LabelManager-Verdrahtung, DNS-Trigger, bg-Größe, ThemeConfig-Kontext
· MediaService
Relay NATS theme provision progress to STOMP WebSocket

Euer Universum wartet.
Fügen Sie Produkte hinzu, wann immer Sie möchten – keine Migration, keine neuen Anmeldungen.
Für immer kostenlos – keine Kreditkarte erforderlich