Cacher entièrement la carte ATF lorsque tous les champs sont verrouillés par un modèle appliqué
Critère d'évaluation du modèle maître de la sonde et correction appliquéeIdorque d'ord-g-modèle
- Remplacer la porte à base de Model.source appliquée par une sonde directe de /api/sécurité/master-modèle sur le support; r.ok-false (409) signifie l'orge ...
Options de l'onglet de censure des Portes par les contraintes de modèle appliquées
- Cacher le bouton EDIT MASTER MODEL lorsque l'orge est régi par un type de branche (utiliser appliedModel.source au lieu de configuration de contexte d'org p...
Marque-t-as-read et message fetchon pour les boîtes aux lettres partagées/à membres
Le mode classique charge désormais les messages partagés de la boîte aux lettres via la bonne /messages/point d'extrémité de dossier (appelait les négociations ...
Marque en lecture en lecture pour les boîtes aux lettres partagées et les boîtes aux lettres membres
EmailController.setFlags accepte maintenant un param optionnel mailboxId query et les itinéraires via la résolutionProviderWithMailbox de sorte que les drapeaux...
Utiliser extensionId en tant qu'ID externe, pas Relay node id
FreePBX retourne le même id de relais (-Xh0-W5zaW9uOg- et "extension:") pour chaque extension parce que le champ d'identification n'est pas peuplé. L'utilisatio...
Mandulation IMAPInputStream dans getMessage pour empêcher ClassCastException
JavaMail peut renvoyer une IMAPInputStream au lieu d'une chaîne décodé à partir de partie.getContent() lorsque le contenu du message n'a pas été pré-comblé. Le ...
Augmenter TTL des années 90 à 300 pour éviter les faux OFFLINE lors de l'étranglement de la languette
Réécrire toutes les requêtes/mutations GQL contre l'introspection du schéma en direct
Vérification de chaque nom et type de champ par rapport au schéma FreePBX 17. Ensemble complet de corrections: Demandes d'information : - fetchonAllExtensions:...
Passer selectedFolder to ThreadDetailView donc e-mail:s-dossier-changeds defeu avec un dossier valide
conversation.folder n'est toujours pas défini parce que la Java ConversationEntity a folderIds (texte[) pas un champ de chaîne de dossiers. Cela a provoqué la c...
Nom de champ Correct graphiqueQL pour aller chercherAsteriskDétails
FreePBX API retourne "Avez-vous envie de fetchAsteriskDetails?" vérifier la requête et son accesseur de chemin de données en conséquence.
Ajouter XHR/Accepter les en-têtes et l'analyse de la réponse à la chaîne au client GraphQL
Même modèle que FreePBXTokenCache: ajouter X-Requited-With et Accepter: application/json supprimer les réponses HTML de FreePBX, et changer les trois sites d'ap...
Synchronisation de la boîte aux lettres à la boîte aux lettres primaire sur le chargement
Dropdown par défaut à l'élément de la première liste parce que selectedMailbox a été initialisé sans boîte aux lettres, la valeur actuelle est résolue à n'être ...
Limite de taille de téléchargement de fichier à 500 Mo
Spring Boot plafonne par défaut des parties multiparties à 1 Mo, provoquant une image de fond téléchargements à échec avec 500 dans request.getParts(). Match Se...
Erreurs HTTP de surface de sorte que les défaillances de téléchargement sont visibles
Remplacé console silencieuse. vu par une erreur jetée sur un statut non-OK, afin que l'utilisateur observe la raison d'échec réelle (statut et corps de réponse)...
Ajouter Accept-XHR en-têtes et analyse de la réponse à la corde brute pour le critère d'évaluation du jeton
FreePBX renvoyait du texte/html lorsqu'il était appelé via le groupe DNS parce que le L'en-tête de l'hôte n'a pas correspondu au PBX-HOSTNAME configuré. Ajout A...
Entrée minimisée de l'onglet par le biais de commandes d'animation
Passage de l'animation à l'aide d'une absence animation: tabControls n'a pas de cible en file d'attente sur le support, donc le bouton reste à sa position initi...
Cordes de champ d'application correct OAuth2 pour FreePBX API
Les lunettes FreePBX sont des identificateurs de premier niveau: 'gql' (toutes GraphQL) et 'repos' (tous les REST). Le format 'gql:read' signifie GQL pour un mo...
Exposer le port 8088 directement sur le service ClusterIP
Le service n'avait qu'une cartographie du port 80-8088. Services internes utilisant (par ex. Jeton API VOIPService demandes) étaient hors service parce que le p...
Trust backend pendingCount, drop-sets de clients
Backend pendingCout est maintenant non lu-based (ténombre des sessions de SUPPORT-TICKET) avec des messages plus récents que le dernier Vidéen du propriétaire)....
Ajouter faute2ban-config ConfigMap pour k1m1
Références de déploiement fail2ban-config ConfigMap (jail.local asterisk-security.conf) mais il n'existait pas, bloquant la nacelle à MountVolume.SetUp et empêc...
MarkAsRead après l'envoi de l'agent ainsi les dernières avances Visionnés
Sur les tickets d'assistance, les messages des visiteurs et des agents sont stockés sous le titre Même systèmeMembre, donc la requête non-lien-comptabilité est ...
Les tickets d'assistance ont besoin de comptages non lus agnostiques par les membres
Les messages de visiteurs sur les tickets d'assistance sont stockés sous le même système que l'agent s'authentifie en tant que, de sorte que la session de CHAT ...
Dépliant de passage pour charger le bouton de réessayer
loadThread prend (threadId, dossier); le bouton d'erreur ré-essai seulement passé threadId, brisant la construction kamo-interne. Associer l'appel à la signatur...
Propriété correcte JsonIdentityInfo de 'uniqueId' à 'id'
Entité membre déclaré «JsonIdentityInfo» (propriété - "uniqueId") mais Le champ clé principal réel est nommé 'id'. Jackson a été jeté "ne peut pas trouver la pr...
Supprimer le dispositif de protection SSR provoquant un désadaptation d'hydratation; chuter SockJS pour WebSocket natif
- Hero.tsx : supprimer le typeof window check around ParticleField et ParticleField déjà a ssr:false de sorte que la garde a produit un dispositif d'arboresce...
Indicateurs non lus clairs lors de l'ouverture de la conversation
ThreadDetailView envoie maintenant e-mail:folder-changed after markConversationRead Succupe MailButton réfute le nombre de badges de la boîte de réception de l'...
Déplacer le CORS vers Traefik via les kamo-middlewares, enlever le filtre CorsFilter
L'application CorsFilter «Bean in the Spring» n'appliquait pas silencieusement les en-têtes après WebConfig.java a été supprimé. Le CORS est désormais entièreme...
Utiliser /public/-mainDomain-------------------------------------------
getThemePath() était la génération /domaine/-tld-/-split-/kamosite chemins qui n'existent pas dans MinIO et les fichiers thématiques en direct dans le seau publ...
Briser la chaîne min-w-0 pour contenir le défilement des e-mails dans la colonne corporelle uniquement
Ajouter min-w-0 dans le récipient extérieur et contenu principal flex div so flex enfants ne peut pas s'étendre à la largeur du contenu min-content, ce qui étai...
Fournisseurs de paloupets au-dessus de ToolProviders
Même cause profonde que le treuil ChatWebSocketProvider: SupportTicketWindow appels et appels "chatBox" useUnread().markAsRead(), mais les deux fenêtres d'outil...
Ajouter la suppressionHydrationAspect et fixer les images d'espace réservé cassées
suppressHydrationWarning sur html empêche l'erreur React 418 causée par le navigateur extensions (par exemple, traduction, mode sombre) en mutation d'attributs ...
Autoriser /domain/préfixe de chemin sur le thème IngressRoute pour CORS
Le thème config à thème theme.kamocrm.com/domain/... n'a pas été égalé par le les règles de la voie existante (uniquement /public/ et /internal/ étaient autoris...
Supprimer les têtes de CORS en amont en double CorsFilter et bander en amont
WebConfig.java a défini un deuxième grain CorsFilter en concurrence avec CorsConfig.java haricot, risquer d'écrire un en-tête dupliqué. Il l'a supprimé de sorte...
Retirer le dupliqué CorsFilter bean provoquant le double tête d'en-tête Access-Control-Allow-Origine
Le haricot CorsFilter explicite a provoqué un deuxième filtre CORS à côté de Spring Le support CORS intégré de sécurité (qui utilise CorsConfigurationSource). L...
Supprimer les instructions de débogus console.log et ajouter les itinéraires manquants
Supprimer toutes les informations de déconomisation temporaires ajoutées lors du traçage WebSocket de ChatBox, TicketChat, MemberItem, ChatTool, et useChatWebSo...
Empêcher l'en-tête de messager d'élargir la colonne sur les longues adresses
L'enfant flex gauche de l'en-tête n'avait pas de min-w-0, si longtemps incassable e-mail Adresses dans From/To/Cc a forcé sa largeur de contenu min à croître, t...
Chat ChatWebSocketProvider ci-dessus ToolProviders
ToolDock (et ses fenêtres d'outils comme SupportTicketWindow et TicketChat) est Monté à l'intérieur de ToolProviders, qui se trouve ABOVE PresenceWrapper dans l...
Drop Shadow DOM dans le moteur de rendu de courrier électronique donc les feux de débordement x-auto
Le DOM de l'ombre a été la cause profonde. Contenu de courrier électronique large (tableaux de largeur fixe) à l'intérieur de l'arbre d'ombre peint devant l'hôt...
Align ChatWebSocketFonnier d'importation de contexte pour correspondre au fournisseur
TicketChat et ChatNotificationListener ont importé le contexte via le « '/app/contexts/...' pseudonyme de PrésenceFrère (le fournisseur) l'importer via le chemi...
L'hôte de l'ombre de force avec des styles en ligne - contenir: disposition
Le débordement de classe x-auto sur l'hôte de l'ombre n'a pas été de fiabilité en gagnant contre l'ombre ':host 'tout: réinitialisation initiale, si large email...
Faire défiler le contenu large du courrier électronique à l'intérieur de l'ombre DOM, pas à l'extérieur
Les tentatives précédentes d'ajouter des ancêtres de dévers de x-auto à la lumière des ancêtres DOM ne pouvait pas attraper un contenu de courrier électronique ...
Utiliser getHastachments() pour correspondre à l'emballage booléen
est un booléen (étouveur), donc Lombok génère getHasAttachments() not isHasAttachments(). Ce dernier seul existe pour booléen primitif. Utiliser Boolean.TRUE.eq...
Étendre l'analyse du référentiel JPA pour y inclure le module de commerce
La nouvelle bibliothèque kamo-shared introduit qui nécessite (dans le com.kamo.z.shared.commerce). MediaService n'a scanné que donotmodify.dao.repos, de sorte q...
Restaurer l'importation de HashMap dans ChatWebSocketCutteur
Le réfactoracteur précédent a supprimé l'importation de HashMap mais la manipulationTypage Une méthode continue de construire une HashMap pour la charge utile d...
Ajouter min-w-0 au contenu de courrier électronique div afin que les incendies débordent x-auto
Sans min-w-0, la largeur min-width:auto de l'enfant flex-col/fréquence de min-content, l'attribution de larges tables d'e-mails élargissent la div au-delà de la...
Supprimer lepliage connectStomp call in sendMessage
Lorsque le premier message crée une nouvelle session, onSessionCreated met à jour des accessoires qui déclenche l'utilisationEffet pour appeler connectStomp. L'...
Créer de manière proactive le consommateur NATS lors de la création de session pour éviter la perte de messages
Auparavant, le consommateur de poussée NATS JetStream n'était créé que lorsqu'un client STOMP envoyé /app/chat/s'abonner. Avec DeliverPolicy.Nouveau, tous les m...
Écart de reconnecter étroit, ce qui a entraîné une baisse des messages en temps réel
Retirer «connecté» de l'utilisation de l'abonnementEffente dans TicketChat et ChatBox. Auparavant, chaque reconnectement WebSocket avait déclenché l'effet. le n...
Permettre à l'utilisateur du système de gérer l'image de marque de l'orge et de fixer le logo auth
- Ajouter la dérivation de l'utilisateur du système en tant que premier garde dans canManageOrgBranding de sorte L'utilisateur du système a un contrôle total ...
Comme ce que tu vois expédier ?
Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.