Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· SecurityService
Extrair RoleRightsSyncService e adicionar o endpoint sync-rights
- RoleRightsSyncService: centraliza a lógica de sincronização de direitos de papel para ambos OrgRole E... tabelas; inicialização e sob demanda - DataLoader: delegados para RoleRightsSyncService.syncAll() na inicialização - SecurityRoleController: POST /sync-rights ativa a sincronização sem reiniciar
· kamo-shared-library
Fazer direitos de papel DTOs enum-driven e adicionar direitos de modelo de segurança sincronizar
- SecurityRoleDTO.fromOrgRole(): enumerar todos os RoleRight Tipo de valores com DB configurações como pesquisa — novos direitos aparecem com NOT SPECIFIED automaticamente - Está bem. a mesma abordagem orientada para a enum para funções padrão do modelo de segurança - OrgRoleRight.type: adicionar anotação explícita @EnumType.ORDINAL - * * * * * * * * * Adicione a inserção de absent native pesquisa para iniciar e sincronizar sob demanda
· kamo-internal
Permitir várias janelas de ticket de suporte com deduplicação ticketId
· kamo-internal
Adicione o chip do tipo de membro e promova/demote ao cartão de status de membro, remova o campo de tempo de sessão
· SecurityService
Adicionar PATCH /membership-type endpoint para promoção/demoção de membros
· kamo-shared-library
Adicione a atualização nativaMemberType e assegure as consultas do MemberRow ao MemberRepository
· kamo-shared-library
Adicionar Allow PROMOTING MEMBERS à direita (id 132)
· kamo-internal
Promover o POS e o ESIG desde a PLANEAMENTO até à fase completa
· kamo-shared-library
Promover o POS e o ESIG desde a PLANEAMENTO até à fase completa
· kamo-internal
Mostrar cidade e subdivisão na linha geo do visitante do bilhete
Exibe como "Cidade, Região, País (IP)" — nulos são filtrados por isso degrada-se graciosamente quando apenas os dados do país estão disponíveis
· MediaService
Expor cidade e subdivisão no geo de visitantes
- Estender o registro GeoResult com cidades e campos de subdivisão - Switch SupportTicketService.toDTO() para usar o GeoLookupService (nível IP) pesquisa) em vez de geoLocalização somente país Repositório, assim cidade e subdivisão são povoadas a partir do bloco GeoLite correspondente
· kamo-shared-library
Adicionar visitanteCidade e visitanteSubdivisão ao SuporteTicketDTO
· kamo-internal
Adicionar parâmetros de URL da aba / página de conta para a persistência profunda de ligação e atualização
O estado da tabulação está agora sincronizado com o estado da tabulação. para as abas específicas funcionam e a aba correta permanece selecionada na atualização da página.
· kamo-internal
Mostrar a bandeira do visitante, o país e o IP no cabeçalho do ticket
- Adicionar visitanteIpAddress, visitorCodeCountry, visitorCountryName to SupportTicketDTO type - Render flag emoji + country name + IP address row in TicketHeader for public chat tickets
· kamo-shared-library
Adicionar campos geovisuais ao SupportTicketDTO
· MediaService
Mostrar a bandeira e a localização do visitante no cabeçalho do ticket de suporte
- Injete PublicChatVisitorRepository e GeoLiteLocationRepository em SupportTicketService - Popular visitanteIpAddress, visitorCode, visitorCountryName in toDTO() via geo lookup - GeoLookupService já preenche visitor.countryCode na criação de sessão
· kamo-marketing
Substituir WebSocket nativo por STOMP/SockJS no LiveSupportPanel
- Adicionar pacotes @stomp/stompjs e sockjs-client - Conectar à mídia. {domínio}/ws/public-chat via SockJS+STOMP em vez de WebSocket em bruto para api.{domínio} que era a máquina errada e protocolo errado - Após a ligação STOMP, subscrever /topic/chat/session/{guid} e notificar backend via /app/chat/subscribe para ativar o relé NATS JetStream - As respostas do agente agora fluem: MediaController -> NATS -> ChatWebSocketController -> corretor STOMP -> LiveSupportPanel do visitante em tempo real
· MediaService
Corrigir chat público de ponta a ponta em tempo real via STOMP/NATS
- Remova a exigência interna de autenticação do PublicChatWebSocketInterceptor assim os visitantes podem se conectar diretamente usando apenas o seu item de sessão - Incluir a exibição do visitanteName como remetenteName no ChatMessageDto so agent vê quem os está a enviar no TicketChat - Inclua o remetenteName na mensagem STOMPMapa enviado da assinatura NATS assim tanto agente como visitante ver nomes de remetentes em mensagens em tempo real
· kamo-shared-library
Adicionar o remetenteName ao ChatMessageDto para os nomes de exibição de chat de suporte
· kamo-internal
Abrir automaticamente o menu de contexto do ticket de suporte na notificação NEW TICKET NATS
Quando um novo ticket de suporte chega, a infraestrutura agora envia um NEW TICKET Mensagem STOMP além de PENDING COUNT. OContexto de Conta de Suporte lida com isso enviando ferramenta:abre para que a janela de bate-papo do ticket apareça automaticamente sem que o agente tenha que navegar para /suporte.
· kamo-marketing
Adicionar página /contact-confirmado com herói animado, timeline e CTAs
Substituir a mensagem de sucesso em linha no formulário de contato por um prêmio dedicado página de confirmação: marca de verificação SVG animada com explosão de partículas, 'O que acontece Próximo' linha do tempo de 3 passos, e 'While You Wait' cartões CTA. Todos os 23 ficheiros locais atualizado com novo contato Confirmed i18n chaves.
· kamo-internal
Adicionar a seção de configurações de org (timezone, age req, content flags, description, alias); remover os botões Preview/AddDomain
· kamo-internal
Redesign LabelManager — edição de seção em linha, correção de gravação quebrada, padrão somente de leitura
Reescreve LabelManager.tsx com padrão de leitura/edição por seção. Corrige o salvamento quebrado botão (validateForm bloqueado salva porque os campos de contato/empresa nunca foram preenchidos da API). Remove o envio global de formulários, validaForm, errors state, previewMode, and botões de gravação dispersos. Cada seção agora carrega dados da API na montagem, mostra limpo somente leitura linhas por padrão, e tem um fluxo Inline Editar/Salvar/Cancel. Todas as sete secções (Informação da empresa, Branding, imagens de fundo, informações de contato, etiquetas personalizadas, links sociais) salvar independentemente sem bloqueio de validação de campo cruzado.
· EmailService
Adicionar o validador de domínio KamoMail para bloquear os endereços de e- mail cross-tenant
Apresenta o componente KamoMailDomainValidator que verifica, na camada de serviço, se o domínio de email enviado corresponde ao domínio padrão verificado pelo org quando KamoMail é o provedor ativo. Injectado no MailboxProvisioningService, AliasService, e SharedMailboxService — chamado antes de qualquer provisionamento ocorrer. Retorna 403 FORBIDDEN se o domínio não corresponder.
· kamo-internal
Enforce a restrição de domínio KamoMail na caixa de correio, alias e criação compartilhada da caixa de correio
Quando KamoMail é o provedor de e-mail, os membros só podem criar caixas de correio, aliases e caixas de correio compartilhadas usando o domínio padrão verificado da org. Execução em três camadas independentes: interface interface (prefix+domínio bloqueado) input with disabled state when no domain), Next.js proxy (paralelo provedor + verificação de domínio de segurança antes do encaminhamento), e camada de serviço Java.
· kamo-marketing
Leia o logotipoFullExt do config.json para a extensão dinâmica do logotipo
· kamo-register
Ler logoFullExt do config.json; corrigir local.webmanifest caminho para o subdiretório favicon
· kamo-login
Leia o logotipoFullExt do config.json para a extensão dinâmica do logotipo
· kamo-internal
Org provisionamento tema — WebSocket gancho, painel de provisão, LabelManager fiação, gatilho DNS, bg redimension, contexto ThemeConfig
· MediaService
Relay NATS theme provision progress to STOMP WebSocket

Seu universo está esperando.
Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.
Gratuito para sempre — não é necessário cartão de crédito