Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· SecurityService
Administrador de mercados de capitais leu proxy para o Centro de Comando
Adicionar um proxy com o nome MLOS, somente leitura, que permite o capital & risco interno kamo Centro de Comando alcançar MLOSCapitalMarketsService sem expor o interno rede ou segredo para o navegador: - MlosBaseController: helpers de sessão OTK auto-suficientes (org + operador/deus) Portão). NÃO estende a base LOS de dinheiro duro e não introduz nenhum LOS-nomeado direita — MLOS é um sistema distinto. - MlosCapitalMarketsController resolve a operador org da sessão, portas no operador (modo deus), injeta o organização própria do operadorId para o MLOS org-scoped lê (nunca um cliente valor), e falha-fecha o compósito by-id lê contra acesso cross-org. - MlosCapitalMarketsCliente: RestTemplate to kamomloscapitalmarkets-service with o segredo compartilhado X-Internal-Auth (organizationId passou como param de consulta). - configmap: mlos.capital-markets.url (env-superável). Reusa o já ligado interno.auth.secret. Atingido através da manta do APIService /api/security/** relé.
· kamo-internal
Consola de bordo MLOS Capital & Risk Command Center
Adicione o console de administrador de hipotecas AI-native sob /commerce (mercado MORTGAGE aba), substituindo os sub-tabs de intenção/compromissos de placeholder por HipotecaStewardSection + abas de ecrã interno. Primeira tela: o Capital Centro de Comando de Risco no MLOSCapitalMarketsService é lido (locks by status/cenário + financiamento de tubagens P(fund) p5/p50/p95), atualmente apoiado por dispositivos atrás de um cliente digitado (uma troca de um arquivo para o caminho de leitura ao vivo). - Kit de consola de largura total reutilizável: ConsoleShell, SectionCard, KpiTile, StatusPill + invólucros de movimento (CountUp, Stagger, Crossfade) — movimento reduzido ciente, branco-label via --color-primary. - Ventilador de Probabilidade de Financiamento de Assinatura (p5/median/p95), oleoduto filtrado com contagem regressiva de tons de validade, gaveta de detalhes de bloqueio (tempo de vida útil + IA razão de decisão), quebra de segmento, honesto "em breve" tira. - Teclado/ARIA em todas as linhas interativas, WCAG-AA contraste, próximo-intl em toda.
· kamo-internal
Sistema Alternador amplo + editor de saldo de crédito + filtro em cascata; filtro/links/paginação do membro do histórico; ícone de injeção+ Confirmação do INJECT
- /leaders/créditos: 'Sistema Amplo' alinhado à direita Dedução ativa/suspendida; Saldo de crédito usa o InfinityCell (invalidando os inválidos, deixa como está); Filtro de produto cascatas do Fornecedor (desactivado/redefinido quando vendedor = Todos). - /leaders/história: filtro apenas para os membros (titular VIEW LEADS, alfabético), ID de chumbo + link de nome de contato para o lead, paginação completa do servidor. - /leades/disponível: Injete Test Lead é agora um botão somente para ícones com uma dica. - ConfirmaçãoDialog: opcional challengeWord prop (Inject uses 'INJECT'); fluxos de remoção manter a palavra aleatória inalterada.
· SecurityService
Comutador de sistema, visualizadores de leads, edição de saldo de crédito, paginação de histórico
- /créditos/GET+PATCH (org credit-suspend), /créditos/leader-viewers (VIEW LEADS) titulares incl. subsídio-all) para o filtro de membro do histórico. - Edição de saldo de crédito no PATCH /allotments/{id}: o número diminui por invalidação, nulo = . - /leaders/história agora paginada (página/tamanho/total) + devolve contacto principalName. - disponívelSummary + available() aceitação de crédito gate no interruptor Org System Wide.
· kamo-shared-library
Suspensão do crédito a nível do sistema, anulação do saldo do crédito, histórico paginado
- OrgLeadConfig (nova tabela ORG LEAD CONFIG): interruptor 'System Wide' de largura org que suspende Atribuição automática de chumbo BASED CREDIT (FFA não afetada); SYSTEM SUSPENDED Result). - Está bem. + repo invalidateCreditsByIds: reduzir a saldo disponível do membro para um alvo, invalidando o excesso mais antigo-primeiro. - CreditAssignmentHistoryService: server-side pagination (getHistoryPage/PagedHistory) + contacto principal por entradaNome (resolvido apenas para a página visível).
· kamo-internal
Dividir créditos de chumbo em ações disponíveis/história/gerir créditos
Reordena as ações /leaders da parte superior direita para: Adicionar novo lead, leads disponíveis (→/leaders/disponível, Ícone Bolt + indicador de disponibilidade ao vivo, mostrado com Spend/Receive), History (→/leaders/history, Ícone de histórico), Gerenciar créditos (→/leades/créditos, ícone de cartão de crédito, somente gerentes). Substitui o botão único 'Lead Credits' que apontou para o redirecionamento /leads/allotments.
· kamo-internal
Injete a ação Test Lead em /leads/disponível (apenas gerentes)
Adiciona um botão 'Inject Test Lead' ao lado de Aceitar para cada fornecedor/produto, mostrado apenas para membros com MANAGEM CREDITS. Abre uma janela de confirmação, depois POSTs para a nova injecção endpoint; o chumbo sintético pousa na piscina e a rede atualiza ao vivo.
· SecurityService
Injetar o lead de teste + corrigir a lista Gerenciar-Créditos para todos os administradores
- Novo posto. (MANAGEM CREDITS): cria um sintético 'Void > Test Lead' (John Doe / 555-555-5555 / noreply@<org domínio base>) com requiresAtribuição=verdadeira para o mercado/vendedor/conjunto de atribuição automática de produtos o fluxo de aceitação pode ser exercido de ponta a ponta; publica disponibilidade para atualizações ao vivo. - Gerenciar-Créditos lista de membros elegíveis agora sindicatos bolsa-todos os membros *** é povoado com todos os direitos) com a consulta de direitos explícitos, por isso uma concessão- tudo administrador que detém SPEND RECEIVE em sessão mas não tem nenhum direito de membro explícitoAplicado linha Agora aparece na lista. - Extraiu toda a detecção de concessão da sessão em GrantAllRoleResolver e reutilizá-la em PostAuth***Service (sem mudança de comportamento) e LeadCreditController.
· kamo-shared-library
Armazenar a chave original do arquivo carregado na execução LeadImport
Adiciona colunas SORCE FILE KEY + SORCE FILE CONTENT TYPE para que uma execução referencia o arquivo original arquivado em MinIO (KamoInitializer adiciona as colunas na próxima execução).
· kamo-internal
Arquivar e transferir o ficheiro importado original
No início Importar o arquivo bruto é carregado (melhor esforço) e sua chave passada para a importação POST; Importações Passadas mostra um botão Baixar para execução com um arquivo arquivado. +2 proxy routes (fonte-file upload + download), +2 chaves i18n.
· SecurityService
Arquivo de arquivo original para MinIO + final de download
Injeta MinIOStorageService; POST /source-file armazena o upload bruto no privado bucket interno; GET /{id}/source-file streams it back (org-checked); a chave é threaded através da importação POST e persistiImportRun; O histórico GET agora retorna o SourceFile.
· kamo-internal
Importar Modelos + Importações anteriores sub-tabs, detectar automaticamente, re-importar
- Barra de Sub-tab no LeadManualImportManager: Importação de Leads - LeadImportTemplateManager: template list/create/edit/delete + upload-contra-template (importação-como-é ou ajuste o mapeamento); reutiliza o FieldMappingInterface no modo diagnóstico de arquivos - LeadImportHistoryManager: lista de execução com ícone de erro importado/total +, relatório de erro, reimportar linhas falhadas (ajustar o mapeamento opcional) - Detectar automaticamente: no processamento de arquivos, cabeçalhos POST para /detectar; escolher um modelo ou fazer novo; salvar-como-template no final de uma importação fresca - FieldMappingInterface: analisadoData opcional + cabeçalhos prop para o modo de edição de modelo - Próximas rotas proxy para a importação de chumbo-templates/* e *************************************************************************************************************************************************************************************************
· SecurityService
Persistir runs/registros, modelo CRUD, cabeçalho auto-detectar e re-importar
- LeadImportPersistenceService: header normalize+SHA3 printprint (ordenado/desordenado), mapeamento/linha de viagens de ida e volta do JSON, persistir execução + registros não-sucesso, modelo detectar (Jaccard) - LeadImportTemplateController: CRUD + /detect (org-scoped) - LeadImportController: real paged GET history; POST persiste a execução + linhas não-sucesso e retorna a importação realId (fileName/templateId via param de consulta); +GET /{id}/registra e POST /{id}/reimportation- failed; processoImport refatored to emite per- row RowOutcomes (global índice de linha, criadoLeadUid) mantendo as correções de correção de Fase-0
· kamo-internal
Indicador de disponibilidade ao vivo no botão Créditos de Chumbo
Espelho do indicador NavPri Leads na ação /leades 'Créditos Líderes': a estado verde/vermelho ponto (verde = um chumbo é aceitável agora via FFA ou crédito, vermelho = nenhum) e um pulso / brilho verde quando um lead de crédito aceitável está esperando. Gated no sinal SPEND RECEIVE LEAD CREDIT (leaderAlert.active). Verde é fixado aqui (esta é a ação créditos), ao contrário do tema diagnóstico branco NavPri piscar.
· kamo-internal
Alerta de chumbo Live NavPri — ponto verde/vermelho, piscar, fogo popup, aparar bordas
- LeadAlertProvider (global, montado no nível NavPri): WS-driven / available-summary; drives all state - Ícone NavPri Leads: ponto verde (pode aceitar) / vermelho (não pode); piscar perceptível quando um lead de crédito é aceitável. Gated inteiramente em SPEND RECEIVE LEAD CREDIT — nenhum indicador/popup sem o direito. - NewLeadPopup: popup fogo de tela central (chama + chamas animadas), Aceitar Chumbo / Não Agora (ambos desactivado 1s), auto-fecha com um 1s desbotar se o pool for drenado, sem fundo-fechar. Apenas fogos sobre um novo líder de crédito aceitável quando o status de navegação é disponível. - LiveEdgeTrim: kamo-marketing LIVE shimmer enrolado em torno de todas as 4 bordas da tela, enquanto o popup é para cima. Todos vivem sobre NATS->STOMP.
· SecurityService
GET /leaders/disponível-síntese para o alerta de chumbo NavPri ao vivo
Agrega a aceitabilidade do chamador em todos os mercados ativos (comment gate + credit/FFA/ Regras de despesas diárias). Returns hasAcceptable / hasAcceptableCredit / blockedByComments / topCredit. Retorna tudo falso para os membros sem SPEND RECEIVE LEAD CREDIT.
· kamo-shared-library
Coluna de persistência para modelos de importação, execuções e registros por linha
Substitui as entidades vazias com as classes real @Entity (modelo na LeadIntake* precedente: UUID id, gen random uuid, DB-default timestamps, statusId + @Transient enum) mais repositórios, então modelos de importação manual, importação passada histórico e reimportação de linha falhada pode persistir: - LeadImportTemplate (+ headerHashOrdered / impressão digital não ordenada, useCount, soft-delete) - LeadImportTemplateMapping **************************** JSON) - LeadImport (cabeçalho executado: conta, instantâneo de mapeamento, linhagem modelo/fonte) - LeadImportRecords (por linha sem sucesso: rawRowJson, status, errorMessage) - LeadImportRecordStatus enum + 4 repositórios As tabelas são criadas por KamoInitializer (ddl-auto) na próxima execução; serviços ficam ddl-auto:none.
· kamo-internal
/account-style header+tabs, /leaders Card containers, right gating
- LeadsCreditLayout: gradiente cabeçalho herói + abas sublinhadas (correspondências /conta); filtros + grelha em cartão arredondado /leades-estilo; aba disponível fechado por SPEND RECEIVE LEAD CREDIT - Gerenciar a grade de créditos povoada de membros que possuem SPEND RECEIVE (member x product matrix, create-on-edit); /leads-style filter container - /leades/guardas disponíveis à direita; /leades/allotments redirecionar é certo-saber - Vista principal: Mark-as-Requires-Reatribuction action (MARK right) + atribuição reatribuída por REASSIGN LEADS MANUALMENTE - RoleRightType.ts: 3 novos direitos
· SecurityService
Marca-reatribuição fechada por MARK à direita; Gerenciar-Créditos retorna membros com direito de Gasto/Receção
LeadAcceptController: a mudança de marca requer MARK LEADS REQUIRES ASSIGNMENT. LeadCreditController.manage: retorna membros elegíveis (suportadores SPEND RECEIVE LEAD CREDIT).
· kamo-shared-library
3 direitos de CRM + membros-com-direita consulta
RightType: SPEND RECEIVE LEAD CREDIT(147), ******************************************************************************************************************* REASSIGN LEADS MANUALMENTE(149) sob CRM. **************************** Para listar os membros titulares de um direito. Auto-cura na inicialização SecurityService; nenhuma mudança de esquema.
· InitializerService
Codificar o ponto §4.2 do requirement-writer com um único backstop
No máximo ONE LIVE requirement per (loan file uid, img doc type id, party) Célula de obrigação. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * não pode capturar um duplo-instanciado concorrente (ambos lidos em zero-vivo; condição + requisito INSERT para tabelas diferentes → nenhum conflito CRDB). Esta unidade parcial torna estrutural uma vida única. Espelhos **************************** DocumentRequirementStatus is @Enumerated(STRING). CRIAR IMPORTENTE SE NÃO EXISTE.
· kamo-shared-library
**************************** (Coluna de hoje aceite)
Contagens lidera um membro aceito através de crédito / FFA para um produto fornecedor desde um instante UTC (membro local do início do dia). Consumido por LeadAcceptController /leades/disponível.
· kamo-internal
Tarefa de chumbo baseada em crédito UI (disponível/história/créditos)
- /leades/disponível: fornecedor em tempo real / grade de produto, aceitação atômica (rotas para o chumbo), estado bloqueado do comment-gate, as linhas animam o momento em que um lead é reivindicado - /leaders/história: credit live + timeline de atribuição com filtro tipo evento - /leaders/créditos: MANAGEM CREDITS-gated quadrícula agrupada; Equilíbrio / Max Gasto Diário / Crédito Saldo, Activo / Suspenso alternar, distribuir, piscar ao vivo - Shared LeadsCreditLayout (nav tabs + market sub-tabs + 'CRM não configurado' states + Quick Tips) - Gancho STOMP (useCreditAssignmentWebSocket) sobre o MediaService; useLeadMarkets - 10 rotas proxy; **************************** /leades/allotments agora redireciona tsc --noEmit: 0 erros em novos arquivos.
· kamo-shared-library
Adicione a metade da decisão do registo
doc 11 §5.3 Etapa 4 / §10 Completude de auditoria — cada registro menta/receita/supersede emite um par WORM AiDecision + LoanIdentifierEvent. Isto adiciona a AiFunction a ********************** coluna foi reservado para. Aditive enum constant only (no version bump, no DDL: ai function has no Lista branca CHECK — aplica-se o varrimento genérico enum-CHECK).
· DaemonService
Trabalho diário de auditoria perdido (horário horário, por membro)
Registros FORFEITED linhas para os membros com colocação gotejamento que não se inscrever em seus dia local completo. Idempotente, rende-se a linhas CONCEDIDAS. Compila limpo (mvn).
· MediaService
Reencaminhar eventos NATS de crédito/lead-atribuition para STOMP
Subscreve security.leades.> e security.credits.>, espelha cada um para /topic/... O front-end CRM atualiza a grade Leads-Disponível, os campos Gerenciar-Credits e o histórico ao vivo. Compila limpo (mvn).
· SecurityService
API de atribuição de crédito
- Controlador de Accept: GET /leaders/disponível, POST /leaders/aceito (atómico, com comentários, FFA + crédito), GET /leaders/descomentário, POST /leaders/{id}/mark-reatribuition, GET /leaders/history - LeadCreditController (MANAGE CREDITS): GET /credits/manage grid, POST /credits/distribute, POST/PATTCH /créditos/alocações, POST /créditos/subvenção diária - CreditAssignmentPublisher: eventos NATS de org-scoped **************************** - PostAuth***Serviço: conceder colocação diária na primeira entrada do dia local do membro Compila limpo (mvn).
· kamo-shared-library
Serviços de orquestração de créditos
- LeadLotment.isInfiniteBalance (? saldo de crédito → ment-on-the-fly accept) - CreditLeadAssignmentService: atomize Accept-Lead (select→lock→recheck→claim, multi-instance seguro), bypass FFA, porta de comentários, mark-for-reassignment ( história MARKED FOR REASSIGNMENT) - DailyLotmentService: subsídio diário por membro do fuso horário (idempotente) + auditoria perdida - CreditAssignmentHistóricoServiço: atribuição unificada + ciclo de vida do crédito - Está bem. (história de crédito em todo o org) Compõe Lead*Service existente; nenhuma lógica duplicada. Compila limpo (mvn).
· kamo-shared-library
Ajudantes de compartilhamento de lib
- * **************** aceitando outro portão de lead (comentário = MediaObj não removido do membro no fluxo de lead) - ******************* gastar para o fluxo de chumbo de aceitação baseado no crédito Compila limpo (mvn). Aditivo; consumido pelo serviço de aceitação-orquestração (próximo).
· kamo-shared-library
Modelo de dados de atribuição de crédito (shared-lib)
- Lead: requiredAssignment flag + markedForReassignmentAt/By (nullable; null actor = fornecedor/importação API) - Está bem. + eventTypeForKey roteamento + descritor de registro - Está bem. (org-wide history via construtor predicado compartilhado) - RoleRightType.MANAGE CREDITS (146, CRM group) — auto-cura na inicialização SecurityService - Colocação diária Entidade concedente + repositório (subvenção uma vez por dia local, idempotente) - Está bem. limite de dias por membro - LeadRepository: atribuível-pool count/fetch + pessimistic-lock reivindication (multi-instance segura) - LeadCreditRepositório: saldo por produto + contagens diárias Esquema aditivo apenas (novas colunas nulas/defaulted + nova tabela). Reusa o existente **************************** Compila limpo (mvn).

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