Changelog
Qué hay de nuevo.
Cada mejora de la plataforma, a medida que se envía.
· SecurityService
Extraer RoleRightsSyncService y añadir endpoint de sincronización-derechos
- RoleRightsSyncService: centraliza la lógica de sincronización de los derechos de rol para ambos OrgRole y **************** tablas; puesta en marcha y a la carta - DataLoader: delegados a RoleRightsSyncService.syncAll() en startup - SecurityRoleController: POST /sync-rights desencadena sin reinicio
· kamo-shared-library
Hacer derechos de función DTOs enum-driven-driven and añadir la sincronización de los derechos del modelo de garantía
- SecurityRoleDTO.fromOrgRole (): enumera todos los valores de RoleRightType con DB ajustes a medida que se buscan nuevos derechos aparecen con NOT-SPECIFIED automáticamente - **************** mismo enfoque impulsado por enum para los roles por defecto del modelo de seguridad - OrgRoleRight.type: añádase explícitamente la anotación "Enumerado"(EnumType.ORDINAL) - **************** add insertfFAbicios nativo consulta para la puesta en marcha y sincronización a la carta
· kamo-internal
Permite múltiples ventanas de boletos de soporte con deduplicación ticketId
· kamo-internal
Añadir chip tipo membresía y promover/demotar a la tarjeta Estado de la membresía, eliminar el campo de tiempo de sesión
· SecurityService
Añadir PATCH /membership-type endpoint para la promoción/democión de los miembros
· kamo-shared-library
Añadir la actualización nativaMemberType y asegurar consultas deTeamMemberRow a MemberRepository
· kamo-shared-library
Añadir ALLOW.PROMOTING-MEMBERS derecho (id 132)
· kamo-internal
Promover POS y ESIG de PLANNING a etapa COMPLETO
· kamo-shared-library
Promover POS y ESIG de PLANNING a etapa COMPLETO
· kamo-internal
Mostrar ciudad y subdivisión en boleto visitante geo fila
Pantalla como "Ciudad, Región, País (IP) " . nulls se filtran para que se degrada con gracia cuando sólo se dispone de datos de países
· MediaService
Expong ciudad y subdivisión en visitante geo mirada
- Extender el registro de GeoResult con campos de la ciudad y la subdivisión - Switch SupportTicketService.toDTO() para usar GeoLookupService (nivel IP-level mirando) en lugar de geolocalización solo paísRepositorio, así que ciudad y subdivisión están pobladas del bloque GeoLite a juego
· kamo-shared-library
Añadir visitanteCity y visitanteSubdivision a SupportTicketDTO
· kamo-internal
Añadir pestañas URL params a / página de cuenta para la enlaza profunda y persistencia de actualización
El estado de las pestillas ahora se sincroniza a **************** *** *** . a trabajos de pestañas específicos y las estancias correctas de pestaña seleccionadas en la página refresca.
· kamo-internal
Mostrar bandera de visitantes, país e IP en cabecera de boletos
- Añadir visitanteIpDirección, visitanteCountryCode, visitanteCountryName para SoportarTicketDTO - Bandera de Render emoji - nombre de país - Fila de dirección IP en TicketHeader para entradas de chat pública
· kamo-shared-library
Añadir campos geocampo de visitantes a SupportTicketDTO
· MediaService
Mostrar bandera de visitante y ubicación en cabecera de boletos de apoyo
- Inject PublicChatVisitorRepository y GeoLiteLocRepository en SupportTicketService - Populate visitorIpDireress, visitanteCountryCode, visitanteCountryName in toDTO() via geo lookup - GeoLookupService ya pobosa visitante.countryCode en la creación de sesión
· kamo-marketing
Sustituir WebSocket nativa por STOMP/SockJS en LiveSupportPanel
- Añada paquetes de clientes de pisomp/stompjs y calcelos-cliente - Conéctate a medias..domain-/ws/public-chat vía SockJS-STOMP en lugar de en bruto WebSocket to api.-domain, que era host equivocado y protocolo equivocado - Después de la conexión STOMP, suscribirse a /topic/chat/session/-guid. y notificar backend vía /app/chat/subscribe para activar el relé NATS JetStream - Las respuestas de los agentes ahora fluyen: MediaController -- NATS -- ChatWebSocketController - - Correditoro STOMP - - LiveSupportPanel del visitante en tiempo real
· MediaService
Arregir el chat público de extremo a extremo en tiempo real a través de STOMP/NATS
- Eliminar el requisito interno de Auth de PublicChatWebSocketInterceptor para que los visitantes puedan conectarse directamente usando sólo su sesiónToken - Incluir visualización del visitante Nombre como remitente en ChatMessageDto, así agente ve quién los está enviando en mensaje en TicketChat - Incluir a SenderName en mensaje STOMPMap reenviado de la suscripción NATS así tanto el agente como el visitante ver los nombres del remitente en mensajes en tiempo real
· kamo-shared-library
Añadir SenderName a ChatMessageDto para apoyar nombres de pantalla de chat
· kamo-internal
Apareación de entrada de soporte automático en la notificación de NEW-TICKET NATS
Cuando llega un nuevo billete de soporte, el backend ahora envía un NEW-TICKET Mensaje STOMP además de PENDING-COUNT. El SupportCountContext lo manejan mediante la herramienta de despacho:abierta para que aparezca la ventana de chat de entradas automáticamente sin que el agente tenga que navegar a / soporte.
· kamo-marketing
Añadir /página confirmada por contacto con héroe animado, cronoline y CTAs
Reemplazar el mensaje de éxito en línea en el formulario de contacto con una prima dedicada Página de confirmación: marca de control SVG animada con ráfaga de partículas, 'Qué sucede Siguiente' Crones de tres pasos, y 'Mientras esperas' tarjetas CTA. Los 23 archivos locales actualizado con los nuevos contactosConfirmed i18n keys.
· kamo-internal
Añadir sección de configuración de org (zona de tiempo, req de edad, banderas de contenido, descripción, alias); eliminar botones de vista previa/AñadirDenca de la superficie
· kamo-internal
Rediseñar LabelManager - edición en línea de sección, arreglar el ahorro roto, sólo por defecto de predeterminado
Rescribe LabelManager.tsx con patrón de lectura/editar por sección. Arregla la salva rota botón (validarForm bloqueó salvas porque los campos de contacto/empresa nunca se pobieron de la API). Eliminado formulario global enviar, validarForm, estado de errores, vista previaMode, y Guarda los botones de ahorro. Cada sección ahora carga datos de la API en montaje, muestra limpio Sólo filas por defecto, y tiene un flujo de edición/Guérsalo/Cancela. Las siete secciones (Información de la empresa, Branding, Background Images, Contact Info, Tembres personalizas, Enlaces sociales) Guardar independientemente sin bloqueo de validación de campo cruzado.
· EmailService
Añadir el validador de dominio de KamoMail para bloquear direcciones de correo electrónico de inquilino cruzado
Presenta KamoMailDomainValidator que comprueba, en capa de servicio, si el dominio de correo electrónico presentado coincide con el dominio por defecto verificado del org cuando KamoMail es el proveedor activo. Inyectado en MailboxProvisioningService, AliasService, y SharedMailboxService, llamado antes de que se produzca cualquier aprovisionamiento. Devuelve 403 FORBIDDEN si el dominio no coincide.
· kamo-internal
Enforce KamoMail restricción de dominio en buzón, alias y creación de buzones compartidos
Cuando KamoMail es el proveedor de correo electrónico, los miembros sólo pueden crear buzones, alias, y buzones compartidos usando el dominio predeterminado verificado del org. Aplicación en tres capas independientes: interfaz de usuario frontend (dominio prefijo-bloqueado entrada con estado deshabilitado cuando no hay dominio), proxy Next.js (proveedor paralelo - comprobación de dominio de seguridad antes de reenviar), y capa de servicio Java.
· kamo-marketing
Leer el logoFullExt de config.json para la extensión dinámica del logo
· kamo-register
Leer logoFullExt de config.json; fix site.webmanifest ruta a favicon subdirectory
· kamo-login
Leer el logoFullExt de config.json para la extensión dinámica del logo
· kamo-internal
Aprovisionamiento de temas de Org . WebSocket hook, panel de provisiones, cableado de LabelManager, gatillo DNS, bg rediáceo, contexto de ThemeConfig
· MediaService
Relay NATS theme provision progress to STOMP WebSocket

Tu universo está esperando.
Comience gratis en minutos y agregue productos cuando esté listo, sin migración ni nuevos inicios de sesión.
Gratis para siempre: no se requiere tarjeta de crédito