Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · kamo-internal

    Criar uma sessão para conversas de grupo abertas pelos membrosIds

    ChatTool ignorou props.memberIds: um grupo aberto chegou com um vazio userId e nenhuma sessãoGuid, assim que o 1:1 createSession A janela nunca teve uma sessão. Agora quando membrosIds está presente ChatTool resolve a sessão via POST /sessions/chat/find-or-create { memberIds} (o mesmo caminho inicial do ChatBox do MemberIds usa; a infraestrutura adiciona o próprio chamador). A lista de membros é chaveada como uma string ordenada estável assim o efeito não re-fire na identidade do array, e os fluxos de guid resolvidos através do writeback existente para que a janela do grupo seja Dedup.

  2. · APIService

    Passagem pública para e-mail chamada de provedor OAuth

    Avançar GET ************* para o Serviço de Email sem sessão (strips auth, sem redirecionamento seguindo), espelhando o retorno de chamada RingCentral OAuth. Este é o URI de redirecionamento público fixo registrado na Microsoft/Google/Zoho.

  3. · EmailService

    Reencaminhamento público fixo + retorno de chamada de entrada

    O email da plataforma OAuth (Microsoft 365 / Google / Zoho) não tinha público válido redirecionar URI: o redirecionamento foi derivado da máquina request, que em prod é o endereço de serviço interno do cluster, e o único Só para pós. Adicionar um único URI fixo e acessível ao público usado para ambos o pedido de autorização e a troca de fichas, e uma chamada pública GET que o provedor redireciona o navegador para (org é transportado em estado, então não sessão é necessária). Devolve uma página HTML auto- fechada.

  4. · kamo-internal

    Gate lead contact-info por atribuição + novos direitos de privacidade

    Espelho dos três novos direitos de CRM. Na página principal detalhe, máscara / bloqueio o Contato Primário, Endereço de Correio e Campos de Endereço de Propriedade para leads não atribuído ao membro atual, a menos que mantenha a visão/edição direitos de contacto (e, para leads não atribuídos, VER UNASSIGNED LEADS); campo de estado é sempre visível. Alternar o portão de reatribuição do painel de atribuição ASSIGN LEADS. Na grade /leaders, gate a opção filtro não atribuído por VEZ UNASSIGNED LEADS, solte os filtros de e-mail/rua vazios e o valor da coluna de e-mail, e mostrar o estado de propriedade-vs-mail através de um flip.

  5. · SecurityService

    Forçar os direitos de privacidade de contato-info

    getAllLeads agora retorna o LeadListDTO magro e esconde leads não atribuídos de membros sem VER UNASSIGNED LEADS. getLeadById contato máscaras info (estado preservado) para leads não atribuídos ao chamador, a menos que hold View LEAD CONTACT INFO OTHERS, e 403s leads não atribuídos para aqueles Falta de view Unassigned leads. atualizaçãoReatribuição manual de portões (ASSIGN LEADS) e edições de informações de contacto **************************** Contando campos de propriedade hipotecária apenas quando realmente alterados. Deus me livre.

  6. · kamo-shared-library

    Lead contact-info direitos de privacidade + lean list DTO

    Adicionar três direitos de CRM (161-163): "Atribuído a Outros: Ver/Editar Lider Informações de contato" e "Ver Chumbos não atribuídos". Adicionar LeadListDTO — um lean projecção para a grelha /leades que não contém informações de contacto excepto Campo estadual. Adicionar ************* para tirar telefone / e-mail/e-mail + endereço de propriedade (estado preservado) para leitores fechados.

  7. · kamo-register

    Enviar o tipo de membro dos caminhos /member e /team

    /team Signups create a TEAM MEMBER (criado PROSPECT, pendente ativação admin); /member As inscrições criam um MEMBRO. RegisterFlow leva um membroType prop fornecido por cada caminho wrapper e inclui-o no corpo de pedido do registo; a infra- estrutura cria a correspondência tipo de associação.

  8. · SecurityService

    /time cria um TEAM MEMBER (PROSPECTO), /member cria um MEMBRO

    Registro público agora homenageia o membroDigite o site do registro enviado (do /membro vs /team path): /team cria um TEAM MEMBER — como PROSPECT, então um administrador deve ativá-los antes de poderem entrar (por porta de login) — e /member cria um MEMBRO base. Aplicado tanto para o novo usuário quanto para os caminhos de reuso do usuário existente via createRegistrationMembership(). A segurançaProvider espelho é inalterado (sempre um MEMBRO base, e pulou quando a org é a sua Prestador próprio de segurança). Anteriormente, cada inscrição de registro criou um MEMBRO base, então um candidato / equipe pousou como um MEMBRO e então não poderia ser adicionado como membro da equipe através da UI (409 já-um-membro).

  9. · SecurityService

    Expor extensão de telefone de membro da equipe em membros da equipe-contratantes

    O filtro /leades Agent precisa da extensão do telefone de trabalho para as opções de etiqueta como "Nome (ext 8080). A extensão já existe no membro da equipe (getPhoneWorkExtension) mas não foi serializado — apenas o número nu foi.

  10. · kamo-internal

    O popup do request-suport mostra tópicos compartilhados do pai-org

    Apontar o tópico de criação de tickets para o novo /api/suporte/tópicos/endpoint disponível (org próprio + tópicos compartilhados pelos pais) para que os usuários do child-org possam entrar em contato com o suporte de seus pais tópico configurado pelo pai.

  11. · MediaService

    Surface pai-org temas compartilhados no popup request-suport

    Os usuários do Child-org não puderam ver os tópicos de suporte compartilhados de seus pais (atribuirToOwnOrg=false) ao solicitar suporte, porque o popup somente temas do próprio org. Adicionar GET /api/suporte/tópicos/disponível (próprio + pai-compartilhado, nenhum portão MANAGEM SUPPORT) e corrigir getPaintOrgTopics para usar a consulta Corrected AssignToOwnOrgFalse. Arquivar contra um pai-compartilhado tópico já encaminha o ticket para o org pai através de createTicket.

  12. · SecurityService

    Novas orgs de crianças herdam a segurança dos paisProvider

    Ao criar uma org infantil a partir do kamo-internal, defina a segurança da nova orgProvider para segurança do pai orgProvider (a org em que é criado) em vez de deixá-lo por omissão para si próprio. Emparelha com o preenchimento de dados que aponta todas as org's existentes segurançaForneça no alto nível KamoCRM org, por isso o espelhamento de membros todas as orgias e seus futuros filhos.

  13. · kamo-login

    Mostrar o aviso ligado à conta em ?linked=1

    Quando o registo liga uma conta existente a uma nova org, redirecciona aqui com ?linked=1. Mostrar "Você já tem uma conta Kamo — nós adicionamos esta organização a Ele. Entre com sua senha existente." e preencha o e-mail. Espelhos o existente ?email verified handling.

  14. · kamo-register

    Lidar com a resposta ligada à conta para os utilizadores existentes

    Quando o e- mail introduzido já pertence a uma conta activa, a infra- estrutura liga isto org a ele e retorna CONTON LINKED. Roteie esses usuários diretamente para entrar (?linked=1) em vez do fluxo de e-mail-verificação - eles entram com o seu existente Senha. Novos usuários e placeholder-claim inscrições manter o caminho verificar-email.

  15. · kamo-internal

    Ligar membro/equipe-member create + UI Prospect-gate

    - Adicionar as rotas de proxy POST falta /api/security/members/create e /criar-equipe-membro (estes 405'd antes, para que a criação nunca chegou à infra- estrutura). Status + JSON body passar por assim que o formulário 409 "já um membro" reuso manuseio Funciona. - MemberCreateForm: fixe o campo Estado de Composição onde o rótulo flutuante se sobrepôs o placeholder "Selecionar um status" (encolher rótulo + entalhe EsboçadoInput), e adicionar um note que apenas os membros da equipe "Active" podem entrar.

  16. · SecurityService

    Reutilizar usuários existentes, espelho para segurançaProvider, gate team-member sign-in

    Reutilização (sem contas duplicadas para a mesma pessoa): - MemberCreateController agora reutiliza um usuário existente por e-mail pessoal CASO-INSENSIVEMENTE (foi caso-sensível, e-mails do legado missing). - SecurityController.register reutiliza uma conta existente em vez de sempre criar um novo usuário: já um membro da org -> 409 ALREADY MEMBER (“assinar”); conta ativa existente -> vincular o org, manter sua senha, retornar CONTA LINKED; placeholder não ativado (nunca verificado E nunca logado) -> reivindicá-lo com o senha digitada. Um formulário público nunca pode substituir a senha global de uma conta ativa. segurançaEspelho do fornecedor: - Tanto a criação de membro interno / equipe-membro e registro público agora chamar Por isso, todos os novos membros também aterram. sob a segurança do orgProvider org (como membro de base). Porta de activação do membro da equipa: - login bloqueia um membro da equipe cujo status de membro != ACTIVO com "Sua conta existe mas não está ativo neste momento." Membros regulares e membros ativos da equipe passam. Endurecimento de resolução de org (irmãos X-Forwarded-Host): - getExternaProviders e PortalController.resolveOrg usam o alias-fallback resolvedor e soltar o getServerName() fail- open (falha fechada em vez de vazar a plataforma org).

  17. · kamo-shared-library

    SegurançaProvider espelho de associação + reutilização / patch base

    - Espelha um utilizador para a segurança do orgProvider org como membro de base (deduped; no-op quando o org segura-se ou o usuário já está lá). Apoia a regra de que cada novo a adesão também aterra sob a plataforma / segurança-fornecedor org. - Está bem. insensíveis à caixa, procura de e-mail multiplery-safe para reutilização de conta cross-org (email não é global único, para que um único localizador opcional iria lançar). - * * **************** parar de reiniciar a segurançaProvider para si mesmo cada org edit (apenas backfill quando null), então uma criança org mantém seu link para fornecedor de plataforma do espelho depende.

  18. · kamo-internal

    Guia de Tarefas de Fio para infra- estrutura real + excluir ação + contagem ao vivo

    Adiciona as rotas do proxy seguinte para /leades/{id}/tarefas[/{taskId}] (as tarefas da aba addTask/updateTask/completeTask calls foram 404ing), uma ação deleteTask grade de tarefas, e deriva a estatística 'Abrir tarefas' da lista de tarefas ao vivo para que fique atual como eventos TASK CHANGED refetch tasks.

  19. · SecurityService

    Tarefas principais API REST + TAXA CHANGED em tempo real

    Implementa a infraestrutura que a aba /leades/view Tasks já estava chamando, mas isso nunca existiu: GET/POST/PUT/DELETE **************************** (LeadTaskController + LeadTaskService), org-guardado como os terminais de bloqueio. Cada create/update/delete emite TASK CHANGED para que as visualizações de lead abertas refresquem ao vivo.

  20. · kamo-shared-library

    Entidade responsável pelas tarefas de acompanhamento

    Retorna a aba /leads/view Tasks (anteriormente um stub somente de frontend sem persistência). O LeadTask (tabela LEAD DASK) reflete a forma do frontend TaskItem **************************** + LeadTaskDTO e repositório. Mutações de tarefa transmitem TASK CHANGED no canal de liderança em tempo real existente.

  21. · kamo-internal

    Datagrid em tempo real + live view com bloqueios de edição por painel

    /leaders grid está agora totalmente ao vivo sobre websocket (NATS→STOMP): linhas adicionar/remover/atualizar contra o filtro ativo automaticamente e as células mudadas piscam uma vez para outra as edições dos membros; o botão de atualização morto é removido. /leades/view/[id] aplica-se ao vivo lead/history/task/stats atualiza e ganha bloqueios de edição exclusivos por painel com um 'atualmente edição' roster, contagem regressiva ao vivo e salvamento automático em ocioso/desconexão. Adiciona useLeadsRealtime hook, leadLocksApi + Next proxy routes, and a reusable MemberContactCard (nome + extensão de trabalho, softphone de clique para chamada / chat aberto). As atualizações de lead fundem null-preservingly assim que as cargas parciais nunca em branco células.

  22. · MediaService

    Org-guarda a subscrição /topic/leaders/rt/{orgId} em tempo real

    Subscribe guarda Cross-tenant para o novo tópico líder em tempo real, espelhando o existente /topic/social/feed guard: um membro só pode subscrever o seu próprio O fluxo de chumbo do org. O já existente. relés de segurança.leades.rt.* para /topic/leaders/rt/*, por isso não é necessária nenhuma mudança de relé.

  23. · SecurityService

    Per-pane edit-lock REST API + varredor de salvamento automático

    Adiciona /api/security/leades/{id}/locks * * * * * * Apoiado por LeadLockService: reserva exclusiva por painel, batimentos cardíacos de rascunho que redefinir um TTL inativo de 5 minutos e um varredor programado que salva automaticamente o buffer rascunhos e libertações no tempo de expiração em marcha lenta sem carga ou no tempo de espera. Expiração inativa é emitido como milis de época absoluta. Config under lead.lock.* (configmap).

  24. · kamo-shared-library

    Publicação NATS em tempo real + entidade edit-lock por painel

    Publique eventos de liderança em org- scoped no security.leades.rt.{orgId} (criado/atualizado/ apagado com chaves de campo alteradas, o histórico foi aplicado) para que a grade /leades e /leades/ver página pode atualizar ao vivo. * * * * * * * * * Agora retorna as chaves de registro alteradas usadas para conduzir o piscar de UI. Adiciona a entidade LeadPaneLock (quadro LEAD PANE LOCK, único (LEAD UID, PANE)) e repositório que suporta os bloqueios de edição exclusivos por painel; o editor emite o expiração ociosa como milis de época absoluta (número seguro de fuso horário) para a contagem regressiva.

  25. · kamo-internal

    Integrar as abas primárias no cabeçalho nas páginas restantes do Estilo A

    Seguimento da varredura Style A→B, cobrindo páginas que não passam ConfiguraçãoVer: - /kb: KbNavBar torna- se um cabeçalho de herói gradiente com os Artigos/Recursos/ Páginas de revisão integradas e a ação Novo Artigo alinhada à direita; layout obtém o fundo radial partilhado. - Está bem. o cabeçalho mini retroseta + Geral / As abas MUI dos domínios tornam-se um cabeçalho de herói gradiente com abas integradas. - /leaders/view/[id]: as abas de registro primárias se movem para o gradiente da Barra de Cabeçalhos header; o editor de status/sub-status em linha é adicionado ao cabeçalho ações alinhadas à direita (desenhadas para o gradiente), substituindo a Cartão de tabulação.

  26. · kamo-internal

    Relocalizar as barras de contagem de fundo no cabeçalho através das páginas sociais, importações

    Aplica o tratamento de fornecedores-tab para as superfícies de configurações de CRM irmão standalone "x • y" barra sumária na parte inferior já não come página imobiliário: - Conexões Sociais & Importações Automatizadas: ações de cabeçalho inferior-align e o a linha de contagem empilha diretamente acima dos botões Atualizar + Adicionar/Criar. - Importações manuais sub- tabs (Importações passadas, Importações de Modelos): a contagem move- se para a esquerda do ícone de atualização solitário (espaço-entre), deixando cair a barra inferior.

  27. · kamo-internal

    Mover a contagem de fornecedores/produtos acima das ações do cabeçalho, atualização inferior-align + Adicionar Fornecedor

    Recaptura a página imobiliário a barra de resumo de fundo standalone usado para Ocupar — a linha "x fornecedores • x produtos" agora empilha acima da ação botões no cabeçalho, e os botões inferior- alinhado com o bloco de título.

  28. · kamo-internal

    Integre abas primárias no cabeçalho da página (Estilo B) nas páginas Estilo A

    Cada página do gradiente-herói que renderizou suas abas primárias em uma carta separada abaixo do cabeçalho agora os torna dentro do próprio cabeçalho gradiente, combinando /conta e /suporte. - ConfiguraçõesView: a barra de abas foi movida para o cabeçalho gradiente (converte todos ~23 /settings/* páginas de uma vez); coluna de ajuda, headerAction, backHref, e o tab icon/glow/alignRight extras preservados; hideTitle ainda mantém suas abas. - /leads/reports: as páginas de relatórios foram movidas para o cabeçalho. - /commerce (PipelineView): tabulações por mercado (com ícones verticais) movidas para o cabeçalho; estados de mercado único/onboarding inalterados.

  29. · kamo-internal

    Seta para trás no cabeçalho retorna para /leads

    Adicionar um backHref/backTooltip opcional ao SettingsView que renderiza um branco seta para trás esquerda do título, e fio a página de configurações de CRM para enviar o membro de volta para /leaders. A dica reutiliza a localização existente leads.view.header.backToBrowser ('Voltar para leads').

  30. · kamo-internal

    Prefixo 'CRM Settings' negrito, separadores de tubos, sublinhado apenas por hover nas ligações das páginas

    Prefácio os links da aba de configurações de CRM com um rótulo em negrito 'Configurações de CRM:' (novo * *******************chave), ligações separadas com ''' em vez de um espaço nu, e mudar as ligações de sempre sublinhado para Sublinhado-em-caminhada.

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