Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · kamo-signer-monorepo

    Formatação local e metadados por local

  2. · kamo-signer-monorepo

    Adicionar o interruptor de idioma à barra superior do sinalizador

    Menu marcado com endonym sobre os 22 locais suportados. Preserva a consulta string on switch — ?t= é a única credencial do assinante.

  3. · kamo-signer-monorepo

    Disposição do espelho para locais RTL via stylis-plugin-rtl

    A direção do tema MUI sozinho muda a lógica do componente, mas deixa física Propriedades CSS intocadas, então em árabe com espaçamento LTR. Troca a Chave de cache de emoção e plugins na direção. Também adiciona stylis como uma dependência direta (anteriormente apenas transitivo via Emoção) e @types/stylis, desde que este repo's isolado pnpm nó-linker não resolve dependências fantasma e stylis 4.2.0 navios sem pacote declarações de tipo.

  4. · kamo-signer-monorepo

    Roteie o sinalizador em /{locale} com o middleware do próximo- intl

    Adiciona i18n/routing.ts (localePrefix sempre), i18n/navigation.ts, e middleware.ts, e move a árvore de rota sob src/app/[locale]/. request.ts agora resolve a partir do URL em vez do cookie kamo-locale, A manter a fusão inglesa. Links assinantes notáveis continuam trabalhando: o middleware 307-redirects URLs desprefixadas e preserva o token ?t=.

  5. · kamo-internal

    Blink o ícone de e- mail enquanto um indicador não lido está mostrando

    O crachá não lido sozinho foi fácil de perder no bar superior. NavItemButton ganha um blinkIcon prop que pulsa o ícone (e seu crachá) — mantido distinto do 'blink' existente, que apenas pulsa o ponto lead-alert — e MailButton gira ele ligado desde que não lidoContar > 0. Honras preferem movimento reduzido.

  6. · kamo-marketing

    Iniciação com 5 usuários, Negócios com 25

    Reposiciona as tampas de assento publicadas sobre /pricing (e a calculadora, JSON-LD oferece, e resumos llms.txt) para corresponder à assinatura catálogo: Starter 25 -> 5 usuários, Business 100 -> 25 usuários.

  7. · kamo-internal

    Clarify MeridianLink market secret é a credencial de serviço de sincronização de entrada (ingressos por LO no perfil de membro)

  8. · kamo-internal

    MeridianLink cartão de crédito de escritório-empréstimo no perfil de membro + botão de comando LO pré-warn

    Fase L3 do mapeamento LOS empréstimo-oficial MeridianLink (por §3.4-3.6 do especificação de projecto: - Novo proxy LOS-credencial **************************** e cliente digitado **************************** tipos em app/lib/los/types.ts) encaminhando GET/PUT/DELETE/POST para SecurityService. - Novo Cartão de Seção "Acesso de Empréstimo MeridianLink" **************************** colocado logo após o estado-baseado Licenciamento. Visível apenas quando o membro tem um ID NMLS E pelo menos um O mercado de org tem uma ligação MeridianLink activa; Os direitos. Uma linha por mercado (nome de utilizador/secreto/activado/chip de estatuto/teste); o segredo é apenas escrita e Nunca retribuído. - Lead-view Create Application button pre-warns: quando um lead não tem LOS pedido ainda e seu loan officer atribuído não está ligado a MeridianLink, o botão está desativado com uma dica que nomeia a LO em vez disso de apenas falhar no clique. Extende o MarketConfig com o losLoName/losLoLinked (defensivos defaults for older SecurityService builds). A infra- estrutura 422 continua a ser a verdadeira garantia.

  9. · SecurityService

    Criar LO-scoped (bloquear se não mapeado) + membro MeridianLink credencial API + status de link LO de configuração de mercado

    Fase L2 do projeto de mapeamento empréstimo-oficial MeridianLink (kamo-internal **************************** §3.3-3.6), construído sobre o esquema/resolver de lib partilhado L1 (MarketLosUserCredencial, **************************** Todos os SOAP zombados (vendor a bordo Ainda pendente). Agora cria o empréstimo como o principal é atribuído loan officer via resolveForMember em vez do serviço compartilhado da conexão identidade (decisão bloqueada B: bloco, não recuar). Não atribuído LO -> 422; um LO atribuído sem um utilizador MeridianLink ligado -> 422 com um accionável Mensagem. A verificação já ligada 409 agora é executada antes da ligação/ LO verifica, por uma revisão anterior, para que uma tentativa de criação duplicada não possa voltar 403/422 à frente do 409. - Novo... **************************** (GET/PUT/{marketId}/ DELETE/{marketId}/POST /{marketId}/test), fechado como Controlador de Licenciamento dos Estados-Membros (STATE LICENSING VIEW/EDIT OWN/ ALL, Deus bypass). Criptografar- em- escrita via PlatformSecretCipher, mantém em branco o segredo o texto cifrado, tem somente visão Credencial, soft-delete, nunca-jogar Ação de teste. - LeadController market-config ganha losLoName/losLoLinked para o lead-view botão pode pré-alertar antes de bater no 422. - Adiciona BaseLosController#inprocessável (422 helper). TDD: 54 testes em LeadLosControllerTest (estendido), **************************** (novo), e Controlador de chumboMarketConfigTest (extendido) — todos verdes. L3 (IU kamo-interna + proxy) é um trabalho de acompanhamento separado.

  10. · kamo-shared-library

    Credencial MeridianLink por membro (MarketLosUserCredencial) + resoluçãoForMember + LO-scoped outbound push

  11. · kamo-internal

    Campanhas de e-mail em massa UI — grid, editor, guia provedor, leads action

    Adiciona a superfície de marketing de e-mail de nível org sob /marketing/email: - Guia de e-mail em massa (após Social Media) + campanhas AG Grid workspace com live status/enviar-vs-total contagens sobre STOMP (/tópico/campanhas/{orgId}); corrige o Jogo de marketing / lógica ativa para rotas aninhadas. - Editor de campanha (/marketing/email/campaign): Quill compõe reutilizando o cabeçalho/sistema de rodapé da assinatura + tokens de mesclagem, destinatários do upload de arquivos (mapa da coluna de correio electrónico), IDs de chumbo/conta/aplicação (resolver o ponto final) ou manual entrada, um painel pré-voo (skip/opt-out/masked/inválida desagregação + CAN-SPAM guardas), e envio/draft/agenda + acelerador (todos em uma vez / uniforme / naturalizado + aquecimento). Aceita a entrega dos leads a granel. - Guia de configurações do provedor de e-mail em massa (separar SMTP config + real Send Test Email). - Leads: "Bulk email (N)" ação no editor de campanha multi-selecionado →. - Departamentos: e-mail + telefone/campos de extensão; marcação de comportamento: e-mail da empresa. - APIs do cliente (emailCampaignApi, bulkEmailProviderApi, recetorResolveApi), useEmailCampaignsWebSocket hook e a rota proxy de resolução de segurança.

  12. · SecurityService

    Resolução do destinatário em massa-email + campos de contato do departamento

    - Está bem. POST /api/segurança/marketing-email/ destinatários/resolver transforma IDs de lead/conta/aplicação em destinatários de email. Gated on MANAGEM BULK EMAIL; aplica mascaramento de contato de chumbo sob o remetente Conta. aceitaMarketing opt-in gate, mutuário e-mail para aplicações, validação sintática, dedupe cross-source + repartição pulada/contada. - DepartmentController: coloque os novos campos de pedido de e-mail/telefone/extensão Serviço de Departamento criar/atualizar.

  13. · kamo-shared-library

    Suporte de compartilhamento de lib para resolução de destinatário de e-mail + email de contato da empresa

    - Está bem. contactEmail branch (contato da empresa Editável por e-mail via PUT /api/security/org, usado como campanha company-scope De) - ApplicationRepository: localizador de lote polimórfico (findByUidInAndOrganização Id) para resolver o e-mail de mutuário de um aplicativo para destinatários de campanha - AccountBorrowerPartyRepository: findByAccount UidIn batch finder (sem N+1) Apenas aditivos; pacotes já cobertos por..

  14. · EmailService

    Infraestrutura de campanha de email em massa — fornecedor, expedidor, conformidade, em tempo real

    Infra- estrutura para campanhas de e-mail em massa em nível de org, totalmente separada do dia a dia provedor de e-mail para que ele não pode ser estrangulado / blocklisted ao lado do correio comercial: - Fornecedor de SMTP em massa (BulkEmailProviderService + BulkProviderController): configuração de org criptografada reutilizando EmailProviderEncryptionService; real Send Test Email (abre uma sessão SMTP ao vivo e envia). - Campaign CRUD + máquina de status (CampaignService/Controller): rascunho, programação, send-now, pausar, retomar, cancelar, duplicar; dedupe, marcação de supressão, fichas de cancelamento de subscrição por destinatário; portão CAN-SPAM (sujeito + endereço físico + >= 1 destinatário obrigado a deixar rascunho). - Despachador entortado (CampaignDispatcher @Scheduled): all-at-one/ uniformemente-sobre-janela / naturalizado-rondom pacing via per-recipiente próximoReleaseAt (reset-safe), rampa de aquecimento no maxPerHour, hard-bounce -> auto-supress. - Compliance: SupressãoService, público de um clique RFC 8058 UnabscribeController (+ Lista-Dessubscrever cabeçalhos), supressão verificada novamente no envio. - Em tempo real: STOMP directo para /topic/campaigns/{orgId} + hora de inscrição org ChannelInterceptor (fecha exposição tópica de cross-tenant). - EmailSmtpService: extraHeaders additive send() sobrecarga (List- Unsubscribe).

  15. · kamo-shared-library

    Andaimes de aviso de ação adversa ECOA/FCRA + temporizador de satisfação

    A metade do mecanismo de emissão é compartilhada. ComplianceTimerGanhos de serviço ******************* SATISFIED (deixa OFERTA/INCOMPLETE NOA e já satisfeito intocado), para que um aviso de ação adversa SENT possa fechar o relógio Reg B enquanto Um não-enviado permanece ARMED para a varredura. Dois modelos de correio eletrónico canónicos — ADVERSE ACTION NOTICE (ECOA/Reg B + FCRA § 615(a)) e RISCO BASED PRICING NOTICE (FCRA § 615(h)/Reg V) — registados em CanonicalTemplateLoader. Ambos são andaimes ESTRUTURAIS apenas: [APROVADO POR SUA CONFORMIDADE ... ]] placeholder o advogado do credor preenche em, mais variáveis de dados estruturados (aplicante, data, razões principais / gatilho). O Kamo não fornece nenhuma prosa de aviso legal.

  16. · kamo-internal

    Adicionar máquina mestre lançador remoto-desktop (god-gated)

    Terceiro desktop de um clique ao lado do Linux/Windows: entrada navRegistry (ComputerIcon), meta 'master' através do openKamoDesktop + rota proxy SSO, e despacho em todos os três manipuladores de ação.

  17. · SecurityService

    Adicionar "master" alvo para Master Machine SSO deep-link

    buildAutoConnectUrl agora menta uma conexão Master Machine (KAMO GUAC MASTER HOSTNAME, padrão 192.168.4.46); incluído em cada token para reutilização de sessão. Mantido em sincronia com o SQL inicial do KlusterServices.

  18. · KlusterServices

    Adicionar o dispositivo "Master Machine" (kamo-dev-1) RDP ao Guacamole

    A estação de trabalho local do Kubuntu compartilha sua sessão de Plasma/Wayland ao vivo sobre o RDP via KRdp. Adiciona uma conexão de bootstrap SQL idempotent (192.168.4.46:3389, sage/shared pw, security=any, ignore-cert, color-profunde 24) e LED submit. Inclui especificação de design.

  19. · kamo-shared-library

    Entidades de fundação de campanha em massa-email + campos de contato departamento/org

    Adiciona a base bibliotecária compartilhada para campanhas de e-mail de nível org: - OrgBulkEmailProviderEntity (separar do provedor diário; UNIQUE org id) - EmailCampaignEntity / EmailCampaignRecipientEntity (+ status/scope/trottle/ source enums) modelando a fila de envio durável por destinatário - EmailSuppressionEntity (lista de supressão CAN-SPAM) - Departamento: e-mail + telefone / extensão (número de telefone) campos de contato - Organização: contatoEmail (campanha do escopo da empresa Default) - RoleRightType: View BULK EMAIL(175), MANAGEM BULK EMAIL(176) no âmbito do COMERCIALIZAÇÃO Todos os novos pacotes estão em com.kamo.z.shared.email.* (já abrangidos por KamoInitializer **************************** Compila perfeitamente.

  20. · kamo-shared-library

    Modelo canônico STEWARD TASK ROUTED

    A notificação de administrador de decisão roteado precisa de um modelo de email canônico. Registos STEWARD TASK ROUTED em CANONICAL KEYS com seu par json/html; corpo carrega o empréstimo / contexto decisão/exceção e um link steward-queue. O conteúdo é autorizado por org O sistema de modelos existente.

  21. · SecurityService

    Relé Gateway para cunhar uma MERS MIN para um pacote de fechamento

    * ******************************* propriedade-checked (requerPackageOrg) assim um mordomo mentas apenas para o seu próprio inquilino. A a montante lê-se a ID MERS Org de 7 dígitos da conexão fornecedora MERS do inquilino na integrations tab; um 400 significa MERS não configurado ou o empréstimo não tem número de empréstimo.

  22. · kamo-internal

    Data de nascimento na visualização do lead + criar formulário

    Adiciona um campo "Data de Nascimento" em Contato Primário em /leades/view/[id] usando um MUI DatePicker que abre para a grade de ano primeiro (openTo=year, desactivarFuture, min 1900) — o fluxo intuitivo para datas de nascimento — mais o mesmo Forma de nova liderança. Data de ida e volta via data-fns processamentoISO/formato (local, sem UTC Off-by-one). O display é fechado pela privacidade no campo canViewContact; é opcional. Data do fioOfBirth através de tipos, leadsApi criar / atualizar guardas, e o lista de campos do wizard de importação.

  23. · SecurityService

    Data de nascimento (DOB)

    Mapas `dateOf Nascer no campo de importação manual e vendador com um analisador multiformato leniente (ISO mais formas comuns de M/d/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; os valores deixam o DOB desactivado em vez de lançar). Conta o DOB como contacto PII em requestTouchesContactInfo para editá-lo na liderança de outro membro requer EDIT LEAD CONTACT INFO OTHERS. Apoiado pela nova Libra compartilhada Lead.dateOfBirth.

  24. · kamo-shared-library

    Adicionar a data de nascimento do contacto nulo ao chumbo

    Adiciona um nível de contato `dateOfBirth` (java.time. Data Local, coluna DATA) Lead base: entidade + Criar/Atualizar/LeadDTO (deLead), copiado no LeadService criar/atualizar e ambos subclasse hipoteca converter helpers para que ele sobrevive a Troca de mercado. Rastreado no registro de história (Contato) e mascarado como PII em máscaraContatoInfoDeOutros. Nulable, nenhum padrão — cofre ALTER ADD COLUNN.

  25. · kamo-internal

    Regras de sobreposição do documento-requisito do autor da consola de gestão

    A matriz de regras "que documentos este empréstimo precisa" não tinha superfície de autoria. Isto adiciona Seção de regras de exigência do documento para a tela Documentos & Condições (dobrado no possuindo tela, não uma nova aba) onde um mordomo lista, autores, e se aposenta de seu inquilino Regras de sobreposição. A cópia de ajuda é honesta sobre o escopo: uma sobreposição no topo da linha de base da plataforma e o AUS/agência constatações (DU/LP/GUS), que permanecem a fonte da verdade; uma regra não pode aprovar Emprestar ou limpar uma condição, e nada aqui é um mandato legal. O formulário oferece o 23 RequisitosDriverType values and a free-text doc-type code (the backend validals it contra o catálogo de imagens da org e retorna um 400 em linha clara se a org não pode coletar — sem lista de documentos codificada). Um emblema de parede legal e bloqueios-avanço vs emblema consultivo renderizar em cada regra; Aposentadoria confirma primeiro.

  26. · SecurityService

    Reencaminhar a autoria da regra de substituição do documento

    Releases POST/GET/aposentadoria em ********** para MLOSDocService, com organizationId server-stamped from the operator session so a steward autores and lists only As regras de sobreposição do inquilino.

  27. · kamo-internal

    Autor condicional LLPAs do painel de catálogo

    Os ajustes não podiam variar por mutuário: MlosAdjustmentCondition não tinha escritor, e o preço motor trata um ajuste sem condições como sempre-aplica, então cada LLPA Demitido por cada mutuário e um mutuário 780-FICO levou o mesmo golpe que um 620. Este formulário autores um ajuste junto com as condições que o prendem. Modelado no formulário de política de bloqueio no mesmo painel: um ID de taxa-folha-versão, o preço delta e etiqueta, e uma lista repetitiva de linhas de condições (atributo + operador + numlow, com NumHigh mostrado apenas para BETWEEN). O cliente espelha os guardas do servidor — pelo menos um condição, um limite em todas as condições, ambos os limites para BETWEN com baixo <= alto — tão ruim A regra é apanhada em linha em vez de numa viagem de ida e volta.

  28. · kamo-internal

    Confirmar o e- mail ao reatribuir um lead a partir da visão principal

    O cartão de atribuição agora reatribui via leadsApi.reassignLead, que server's assigneeNotificado flag. Em uma mudança para um novo membro o brinde lê-se "Atribuição salva - {nome} foi notificada por e-mail"; em um no-op ou auto- atribuição (onde o servidor não envia nada) permanece a confirmação simples.

  29. · SecurityService

    Enviar um e- mail ao novo proprietário quando um único lead for transferido

    Espelha o caminho para a placa de atribuição de visão de lead. Quando PUT /leades/ {id} move um lead para um membro diferente, esse membro agora recebe o mesmo LEADS ASSIGNED e-mail (conte 1) o fluxo em massa envia. Melhor esforço — o envio é executado após o atualizar commits e nunca falha. Dispara apenas numa reatribuição real: salta o no- op salva onde o assignee está inalterado (então editar informações de contato não envia nada), e ignora a auto- atribuição — um oficial que reclame uma pista atribuindo-a a si próprio não tem razão para enviar um e-mail eles mesmos. A resposta carrega a atribuiçãoNotificada para que a UI possa confirmar a nova O dono foi enviado por e-mail. O lead pré-atualizado agora é obtido uma vez e reutilizado tanto para authz quanto para o captura anterior-assignee, em vez de apenas dentro do ramo não-deus authz.

  30. · SecurityService

    Retransmissão de autoria condicional-LLPA

    Relés POST * ******************* através do assistente de escrita de estampagem de org, então Os autores de um administrador só podem proceder a ajustamentos condicionais para o seu próprio inquilino.

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