Direkt zum Inhalt
KAMOUniverse

Changelog

Was ist neu?

Jede Verbesserung an der Plattform, wie sie geliefert wird.

  1. · 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

  2. · 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

  3. · kamo-internal

    Lassen Sie mehrere Support-Ticket-Fenster mit TicketId-Deduplikation

  4. · kamo-internal

    Mitgliedschaftstyp Chip hinzufügen und zur Statuskarte der Mitgliedschaft fördern/deote, Session Timeout-Feld entfernen

  5. · SecurityService

    PATCH /membership-ähnliche Endpunkt für Mitgliederförderung/Demotion hinzufügen

  6. · kamo-shared-library

    native updateMemberType hinzufügen und sicherstellenTeamMemberRow-Abfragen zu MemberRepository

  7. · kamo-shared-library

    ALLOW_PROMOTING_MEMBERS rechts hinzufügen (id 132)

  8. · kamo-internal

    Fördern Sie POS und ESIG von PLANNING bis zur COMPLETED-Bühne

  9. · kamo-shared-library

    Fördern Sie POS und ESIG von PLANNING bis zur COMPLETED-Bühne

  10. · 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

  11. · 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

  12. · kamo-shared-library

    BesucherCity und BesucherSubdivision zu SupportTicketDTO hinzufügen

  13. · 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.

  14. · 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

  15. · kamo-shared-library

    Besucher-Geo-Felder zu SupportTicketDTO hinzufügen

  16. · 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

  17. · 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

  18. · 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

  19. · kamo-shared-library

    AbsenderName zu ChatMessageDto hinzufügen, um Chat-Display-Namen zu unterstützen

  20. · 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.

  21. · 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.

  22. · kamo-internal

    Add org Einstellungen Abschnitt (Zeitzone, Alter req, Inhaltsflaggen, Beschreibung, Alias); entfernen Sie Preview/AddDomain-Buttons

  23. · 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.

  24. · 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.

  25. · 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.

  26. · kamo-marketing

    LogoFullExt von config.json für dynamische Logo-Erweiterung lesen

  27. · kamo-register

    Lesen Sie LogoFullExt von config.json; fix site.webmanifest Pfad zum Favicon-Unterverzeichnis

  28. · kamo-login

    LogoFullExt von config.json für dynamische Logo-Erweiterung lesen

  29. · kamo-internal

    Org-Themenvorsorge - WebSocket Hook, Bereitstellungspanel, LabelManager-Verdrahtung, DNS-Trigger, bg-Größe, ThemeConfig-Kontext

  30. · 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