Direkt zum Inhalt
KAMOUniverse

Changelog

Was ist neu?

Jede Verbesserung an der Plattform, wie sie geliefert wird.

  1. · MediaService

    Verifizieren Sie Rückkehr-nav JWT Signatur; aufgeräumte Token aktualisieren

    - CanvaJwtVerifikation: überprüfen Sie die Signatur von Ed25519 von correlation_jwt Canvas JWKS (/connect/keys), plus aud/exp/type; Schlüssel, die von Kind zwischengespeichert werden. Return-nav scheitert nun beim manuellen Import, wenn die Überprüfung fehlschlägt. - CanvaTokenService: die ineffektive @Transactional auf die selbstgelobte refresh/markDown Helfer (Spring Data's pro-call tx + die pro-member Sperre bereits Token-Rotation richtig machen; mit einem Kommentar klarstellen.

  2. · KlusterServices

    Flüster-asr unabhängig skalierbar machen (HPA, Multi-Node)

    Entfernen Sie die Single-Node-Pin und wechseln Sie zu einem pro-Pod-Modell-Cache, so dass Hülsen können Zeitplan auf jedem Knoten, und fügen Sie eine HPA (min 1 / max 4, CPU 75%, absichtlich Skala-up gegeben langsame Modell Kaltstarts). whisper-asr ist die gemeinsame Transkription Backend für Meeting-Aufnahmen und VOIP-Aufnahmen/Voicemails.

  3. · KlusterServices

    Rebrand Guacamole Client-Verbindung Statustext zu KamoDesktop

    Überschreiben ************ so 'Verbindung zu Guacamole...' Bildschirm (und verwandten Status) liest KamoDesktop.

  4. · MediaService

    Aufnahme von Gestaufnahme, Retention/Quoten, Speichernutzung, Zusammenfassung

    - MeetRecordingController: intern (X-Internal-Auth) aufnehmen am jibri finalize.sh Beiträge fertige Aufnahmen zu. - MeetRecordingService: lädt Aufnahmen auf pro-org MinIO (imaging-meet-recordings) hoch, persists MeetingDie Aufnahme von Metadaten, setzt die Org-Speicherquote (ältestermäßigter Dienst) durch. und - wenn postMeetingSummaryEnabled läuft die zusammenfassende Pipeline: transscribe (EmailService-Meeting-Zusammenfassungsvorlage). - MeetRecordingRetentionSweep: geplante Löschung von Aufnahmen in der Vergangenheit Retention. - MeetConfigController: GET /recording-Usage für den realen Einstellungen Speicherzähler. - application.yml: Konvertierung/ai/Email Basis URLs + internes auth secret. Benötigt (ops): KamoInitializer laufen, um MEETING_RECORDINGS zu erstellen; die **************** Wert muss zwischen MediaService, jibri und ConversionService.

  5. · EmailService

    Beispiel vars für Meeting-summary Vorlage Vorschau

    Fügt ein BeispielVariables Fall für die neue Sitzung-summary Vorlage, so dass der Verwalter Vorschau UI macht realistische Inhalte.

  6. · kamo-shared-library

    Meeting-summary kanonische Vorlage

    Fügt die "Begegnung-Zusammenfassung" Transaktionsvorlage (subjekt + Marken-HTML mit {{roomName" und roh {{summaryHtml" und registriert es in CANONICAL_KEYS, so dass es Samen pro Org. Wird durch die Post-Meeting AI Zusammenfassung Lieferung. Auch korrigiert die Die abgestandene Schlüsselzahl des Ladertests.

  7. · KlusterServices

    Prosody Moderator Modul, whisper-asr, jibri Aufnahme Upload

    - Meet-prosody: Version-Kontrolle der Custom-plugins ConfigMap (erfasst die bestehende Token_verification no-op override, die Out-of-band erstellt wurde) und das kanonische Modul mod_token_moderation hinzufügen, das über aktiviert ist ************ macht den JWT-Moderator-Anspruch autoritär - Mitglieder werden Eigentümer, Gäste/anonyme können nicht Besitzer greifen. - whisper-asr: selbst gehostetes Sprach-zu-Text (schnellere-Flüsser-CPU, kein externer Schlüssel) für die Post-Meeting-Transkription. - Meet-jibri: finalize.sh lädt jetzt fertige Aufnahmen zu MediaService hoch ************ mit X-Internal-Auth, so dass sie in MinIO + Laufwerksaufbewahrung/Quoten + Zusammenfassungen. Geheimnis ist optional, so jibri noch beginnt, wenn unset.

  8. · ConversionService

    Aufzeichnung von Transkriptions-Endpunkt für Zusammenfassungen nach der Zusammenhaltung

    POST /api/Konversion/Meet/Transkription (X-Internal-Auth): normalisiert einen hochgeladenen Meeting-Aufnahme auf 16kHz mono WAV über ein neues Additiv FfmpegService Helfer, weiterleitet es an den selbstgehosteten Flüster-asr-Dienst und gibt { Transkript zurück. Whisper URL von kamo.services.wflüstern.url.

  9. · kamo-internal

    Kalender-Integration für geplante Meetings + echtes Aufnahmegerät

    - calendarIntegrationEnabled: wenn an, ist auch ein geplantes Clubhaus-Meeting dem Kalender des Schöpfers hinzugefügt (über das bestehende Kalendersystem) mit der authentifiziert /meet/join link. Teilnehmer-Erinnerungen bleiben von der Backend-Feinkehrer, also keine doppelten Teilnehmer-E-Mails. - Aufnahmeeinstellungen: der Speicherzähler zeigt jetzt REAL pro-Or-Nutzung von GET /api/meet/recording-usage (ersetzt den entfernten Platzhalter).

  10. · kamo-shared-library

    MeetingRecording Entity + Repository für aufgenommene Aufnahmen

    Neue MEETING_RECORDINGS Tabelle (Or, Meeting Ref, Raum, MinIO Eimer/Objektschlüssel, Größe, Dauer, erfasste/Auslauf-Zeitstempel, summarischer Status) - der Elternsatz für eine fertige Jibri Aufnahmedatei, Fahrretention/Quantitat und Post-Meeting Zusammenfassung. Die Tabelle wird auf dem nächsten KamoInitializer-Lauf erstellt.

  11. · kamo-internal

    Marketing-App, Einstellungs-Hub, Canva Materialien

    Machen Sie Marketing zu einer erstklassigen org-fähigen App und versenden Sie die Canva-powered Materialerfahrung. App-ablement: - AppType.MARKETING Spiegel, Organisation.isMarketing getter - Gate Marketing nav (navRegistry) + Rechte Abschnitte (ErbnahmeAppSections, SecurityRoleManager) auf organisations.isMarketing - Marketingkarte in FeaturesManager (/Einstellungen/Konten?tab=apps) Einstellungen: - neue /settings/features/marketing hub (Allgemeine / Social Media Provider / Canva) - Social Media Provider aus CRM-Einstellungen ins Marketing verlagern - 3 Navi-Standorte aktualisiert (Einstellungen Landung, EinstellungenMenu, EinstellungenButton-Symbol); Repoint SocialTimeline empty-state Link Canva: - CanvaIntegrationManager Einstellungen Tab + canva ProviderDef in der Plattform OAuth Registry (+ Logo) - /api/canva/* Proxys (Status, connect-start, Designs, Exporte, Export-Proxy, disconnect) - MediaService - /marketing/Materialien: Bibliotheksraster (Imaging MATERIALS assoc), Upload, Create-in-Canva, Import-from-Canva, return-nav auto-import

  12. · ConversionService

    Video Poster-Frame Miniaturansichten für Marketingmaterialien

    Canva MP4 Exporte (und jede Video-Upload) überspringen die Docs PDF-Pfad und erhalten Sie eine einzeln 08.09.2018peg poster-frame thumbnail (_thumb_p0.png) anstatt zu versagen. - ************ VIDEO Kategorie Zweig ****************

  13. · MediaService

    Canva Connect OAuth + Designs / Export Backend

    - CanvaApiClient: PKCE autorisieren, Token exchange/refresh/revoke, users, Designs (erschaffen/Liste), Exportjobs, ättige holen - CanvaTokenService: verschlüsselte Token pro Mitglied (PlattformCecretCipher), Single-Flight proaktive Refresh (Canva refresh Tokens sind Single-Use/Rotation) - CanvaOAuthController (permit-all): connect intent return-nav Landung - CanvaController (ausgeschönt): Status, connect-start, erstellen/listendesign, export (create+poll+cache), ätite export-proxy, trennen

  14. · kamo-shared-library

    Canva-Integration + Marketing als org-fähige App

    - ************ - Plattform Canva Connect Client Registrierung - ImageAssocType.MATERIALS(13, Imaging-Materialien) - Org Marketing Assets Bucket - ************ unter ServiceType.MARKETING - ServiceType.MARKETING(24) - COMPLETED/enabled, so dass es eine echte App wird (FeatureController stellt es automatisch vor, z.B. CRM) - CanvaConnection Entität + Repo: pro Mitglied verschlüsselt (Access+Refresh) Tokens

  15. · KlusterServices

    Guacamole json-auth SSO + KamoDesktop Rebrand

    - JSON_SECRET_KEY (optional) auf Guacamole aus dem freigegebenen Desktop-sso-Geheimspeicher ermöglicht die gebündelte guacamole-auth-json-Erweiterung, gegen die die God-SSO-Links gültig sind. - Kamo-Branding-Erweiterung (Titel=KamoDesktop, Kamocrm Logo + favicon) gebaut Desktop/guacamole/branding/ in ein .jar, ausgeliefert als binäre Konfiguration und entkernt in GUACAMOLE_HOME über einen initContainer. - CI erstellt den gemeinsamen Signing-Schlüssel in beiden Namespaces (Desktop-sso für Guacamole, guac-sso für SecurityService) aus dem GUAC_SIGNING_KEY Geheimnis; nie verpflichtet.

  16. · kamo-internal

    God-only KamoDesktop-Symbole (Linux + Windows) öffnen automatisch verbundene Sitzungen

    Zwei Navi-Symbole links von Analytics, nur für gottberechtigte Mitglieder gezeigt (isGott hinzugefügt, um NavGateContext). Jeder erhält einen kurzlebigen SSO-Link von SecurityService und öffnet die KamoDesktop Gateway in einem neuen Fenster, automatisch verbunden mit seiner Instanz. Nutzt die Engagierten ************ Noten.

  17. · SecurityService

    KamoDesktop SSO Token Endpunkt für Gott-Mitglieder

    GET ************ (nur besuchberechtigt) prägt ein 5-Minuten-guacamole-auth-json Token (HMAC-SHA256 + AES-128-CBC, pro Erweiterung Wire-Format) und gibt eine Auto-Login + Auto-Verbindung URL für die KamoDesktop Gateway. Signieren von Schlüssel + RDP-Passwort aus dem guac-sso-Geheimnis injiziert; nie verpflichtet (unsicher: SSO bleibt deaktiviert, bis es konfiguriert ist).

  18. · kamo-internal

    Org-scoped Raumnamen, Raum-Name-Format, Kalender Kamo-Meetings, Start Erinnerungen; i18n Einstellungen

    - useMeeting/MeetingDialog: Raumnamen werden jetzt von org token so zwei namespaced orgs können nie in die gleiche Prosody-Konferenz kollidieren und die Orgs ehren roomNameFormat (RANDOM vs DISPLAY_NAME_RANDOM mit dem Alias des Mitglieds). - MeetingComposer (Kalender): "Kamo Meeting"-Button erzeugt einen org-scoped Raum und setzt die Ereignis-URL auf den /meet/join click-time OTK Link, so calendar appel + Erinnerungsempfänger werden als verifizierte Mitglieder angemeldet. - MeetReminderPopup: abonniert /topic/meet/reminder/{memberId' (MediaService Kehrkehrer) und zeigt einen "Meeting Start" Toast mit einem Join-Button; montiert in PresenceWrapper auf dem gemeinsamen Chat WS. - trifft Einstellungen Tabs: ersetzen Sie hartkodiertes Englisch Toast/Fehler Strings mit next-intl t() Tasten ****************

  19. · MediaService

    Geplantes Starterinnerungen + Gast-Link Ablauf

    - MeetingReminderSweep: @Scheduled Kehrkehrer, der eine Echtzeit feuert "Meeting Start" Erinnerung an eingeladene Mitglieder an (starten - ErinnerungMinutesVorher) auf ************ übergibt dann das Treffen SCHEDULED-ACTIVE zu dedupe. Meetings mehr als eine Stunde nach Beginn werden ohne eine Mahnung (kein Back-fill-Spam). Der Kunde baut den authentifizierten Join Link von seinem eigenen Ursprung. - ************ ehrt jetzt guestLinkExpiryHours: ein Meeting älter als das konfigurierte Fenster der Org (verankert am geplanten Start, sonst creation) wird als nicht einschließbar behandelt (0 = nie abläuft).

  20. · kamo-internal

    Verfügbarkeit der Mitglieder in Chatliste anzeigen; Registerkarte in Verzeichnis umbenennen

    1:1 Chat-Zeilen bedecken jetzt die Live-Präsenz des Gegenübers + Verfügbarkeit der gleiche Weise die Registerkarte Verzeichnis tut - gleiche Nutzungs-/Verwendungsquellen und die gleichen Farben/Etiketten wie MemberItem (Punkt + Großbuchstaben, pulsierend, wenn online, grau, wenn offline), mit einem Tooltip. Gruppen-Chats halten die "jemanden online" avatar dot; Social / Support-Reihen sind unverändert. Der Reiter der Mitglieder wird in "Directory" (nur i18n-Wert) umbenannt, der auch geklärt wird die Namens-Kollision mit den Chats "Mitglieder" Sub-Tab-Gruppe.

  21. · KlusterServices

    Gehärteter KubeVirt Remote Desktop + Guacamole Gateway

    Fügt einen vollständigen Remote-Desktop-Stack hinzu, GitOps-über den Einsatz-Workflow: - KubeVirt + CDI installiert zur Einsatzzeit (pinned-stable Release URLs) - Desktop-1: Kubuntu 24.04 VM, 8 vCPU / 16Gi / 500Gi Longhorn Blockscheibe, masquerade net (native cluster DNS), xrdp KDE session; cloud-init installs Chrome, VS-Code, NetBeans, Temurin JDK 21+17, Stirnlampe, Kate, LibreOffice und entfernt Firefox - Apache Guacamole (guacamole + guacd + Postgres config DB) bei desktop.kamocrm.com; guacd läuft hostNetwork auf k1m1, so dass es WoL-Broadcast kann und RDP direkt auf das 192.168.4.0/22 LAN, während noch die VM über ClusterFirstWithHostNet DNS - LAN Windows PC (192.168.4.44, MAC f4:4d:30:62:8a:68) als Verbindung hinzugefügt mit Guacamole natives Wake-on-LAN (magisches Paket auf Verbindung, 30er Jahre warten) - Edge Hardening: Traefik TLS + enge Desktop-Rate-Limit + Sicherheits-Header, plus Guacamole eingebautes pro-IP Brute-Force-Verbot - auto-cert: desktop.kamocrm.com hinzugefügt zu STATIC_DOMAINS + cross-ns Spiegel so cert-manager issues/renews tls-desktop-kamocrm-com in den Desktop ns - Anmeldeinformationen: Benutzer 'sage'; Passwort von CI secret DESKTOP_PASSWORD injiziert bei der Einsatzzeit (envsubst/sed + imperative Secret) - nie verpflichtet

  22. · kamo-internal

    Sub-Tabs für Chat-Gruppen, erinnern Sie sich last-open tab

    Die Chats Liste von einer Reihe von Multi-Select-Pille-Chips, die aussah gefiltert von Platz unter der Registerkarte Chats. Ersetzen Sie sie mit einem Single-select Sub-Tab-Bar (ein Tab pro Gruppe: Team Members / Mitglieder / Social / Support) gestylt, um zu entsprechen die übergeordneten Reiter Mitglieder/Chats, so dass die Liste der ausgewählten Gruppe die vollständige ausfüllt Inhaltsbereich. - Single activeBucket anstelle eines Sets von aktiven Buckets; der Server holen jetzt zieht nur die ausgewählte Kategorie. - Standard-Team-Mitglieder, und beharrt die letzte offene Registerkarte pro Mitglied (gegenüber Geräte) über den ui-präferenzenden Speicher (Schlüssel-ChatsActiveBucket), Gating zuerst holen, bis sich der gespeicherte Tab auflöst, so dass es direkt geladen wird.

  23. · kamo-internal

    Erklären, wenn E-Mail nicht konfiguriert ist; Gate compose

    Der /messages Posteingang zuvor gerenderte seine volle Schale, auch wenn die org hatte keinen E-Mail-Provider oder das Mitglied hatte keine Mailbox, stillschweigend versagen jede API-Anruf. Fügen Sie einen gemeinsamen GebrauchEmailAvailability Haken, der löst, ob E-Mail ist nutzbar und, wenn nicht, warum (der Provider nicht konfiguriert vs. keine Mailbox) und ob das aktuelle Mitglied die Lösung auf der Grundlage seiner Rechte selbst bedienen kann. - MessageBrowser zeigt jetzt ein elegantes EmailNotConfigured Panel statt eines leerer Posteingang, mit Kopie + CTA, die sich an den Grund und die des Mitglieds anpassen Rechte (Link zu E-Mail Provider-Einstellungen für MANAGE_EMAIL_SETTINGS oder zu ihre eigene Mailbox-Tab für MANAGE_EMAIL_ACCOUNTS; andernfalls wird auf Admin verschoben). - MailButton deaktiviert "Neue E-Mail komponieren", bis E-Mail vollständig fertig ist, mit einem Der zuweilenspezifische Tooltip; NavToolButton erhält die Unterstützung für deaktivierte/tooltip item. - Ankern Sie die "Nachmachungen/" gitignore Regel an die Repo-Wurzel, so dass sie auch stoppt ignorieren App/Komponenten/Nachrichten/ (die dort still und leise neue Dateien fallen gelassen haben).

  24. · kamo-internal

    All-types Chats Liste + Browser-Tab Aufmerksamkeit

    Chats sub-tab listet jetzt Mitglied, Gruppe, Support und soziale Gespräche zusammen, vor allem erste, mit einem Multi-Select-Filter (Team Members / Mitglieder / Soziale / Unterstützung; die ersten beiden verwenden die kundenspezifischen Labels der Org). Team-Mitglieder vs Mitglieder wird nach Gegenmitglied aufgeteilt: Support-Reihen zeigen, ob Sie oder die andere Partei der Agent ist; jede Zeile öffnet ihre natives Tool-Fenster (Chat / Unterstützung / Social). Fügt TabAttention: eine Favicon-Plakette + blinkende document.title, wenn es sind unsichtbare Nachrichten eines Chattyps (rote Anzahl) oder eine anstehende Annahme-Lead (Bernstein - Schraube, passend zum Lead/CRM-Symbol; hat Vorrang). Readet die vorhandener UnreadContext + LeadAlertContext, also kein neues Backend.

  25. · MediaService

    Unified Chats Feed über Mitglieder/Support/Social Sessions

    GET /api/media/sessions/chat akzeptiert jetzt einen "Kategorie"-Filter (Chat, Unterstützung, sozial; Standard alle) und gibt eine weltweit am neuesten, Zusammenführung der pro-Art-Anfragen. Jede Zeile trägt: - sessionType (CHAT|SUPPORT|SOZIELLE) + members[].memberType so der Client interne Chats in Team-Mitglieder vs Mitglieder aufteilen können, - ticketId + supportRole (AGENT|REQUESTOR - Unterstützung ist bidirektional) für Unterstützungsreihen und Provider + connectionTitle für soziale Reihen, so öffnet jede Zeile ihr natives Werkzeugfenster.

  26. · kamo-shared-library

    Geseitete Fragen für Support + Social Chat-Sitzungen

    Feed, so dass die Unified Interaction Center Chats Liste kann alle Arten enthalten: - UNTERSTÜTZUNG (TYPE_ID=2): Sitzungen, in denen das Mitglied der zugewiesene Agent ist ODER der Anfrage oder (gibt auch Ticket-ID + zugewiesene Agenten-ID für die Zeile zurück). - SOZIAL (TYPE_ID=3): Sitzungen über soziale Verbindungen im Besitz des Mitglieds Organisation.

  27. · kamo-internal

    Fertig Lead-View Header Aktionen + Callbacks

    - Header: split Call in Call (Work)/Call (Personal) Öffnen des Softphones (versteckt, wenn das Mitglied keine registrierte Verlängerung hat), E-Mail öffnet die Komponist, Text --Kommunen/Texte, Anmerkung nach links verschoben mit einer Regel und blinkt, bis Seit der letzten Umwidmung wird eine Notiz platziert. Entfernen Sie die Task-Taste. - Status: Stellen Sie das ungültige Status-Symbol-Menü und gebrochene Schaltfläche Bearbeiten Status; eine STATUS-Seitreihe hinzufügen, die nur die Auswahl eines Sub-Status erfordert aktiviert Update, wenn es sich ändert. - Callback: Dialog (Datum/Zeit + Zeitzone + Kommentar), eine anstehende/überfällige Liste auf die Details Registerkarte mit mark-contacted/cancel Prompts, und LeadApi + Proxy Routen für Fahrplan/Liste/auflösen.

  28. · EmailService

    Interner Endpunkt zur Erstellung/Abbrechenung des Kalenderereignisses eines Mitglieds

    POST /api/internal/calendar/events (X-Internal-Auth gated) löst Mitglied auf -" primärer Kalender (bei Bedarf einen Standard schaffen) und erstellt ein Ereignis. Wird von SecurityService verwendet, um Lead-Callbacks auf den Kalender eines Mitglieds zu spiegeln.

  29. · SecurityService

    Lead Callback Endpoints (Zeitplan/list/resolve)

    Neuer ************ Controller + Service: beharrt auf Callback, Beiträge Dispositionierung / Auszahlungshinweise in den Medienstrom des Leads und Spiegelt den Rückruf auf den Kalender des Terminplaning-Mitglieds über EmailService's interner Kalender Endpunkt (Best-Anfing).

  30. · kamo-shared-library

    Fügen Sie LeadCallback-Einheit, Status enum und Projektarchiv hinzu

    Unterstützt das Lead-View-Callback-Feature: ein Lead-Besessene Callback-Rekord (PENDING/CONTACTED/CANCELED) abgesenkt leadUid, mit einem weichen Verweis auf das gespiegelte E-MailService Kalenderereignis.

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