Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· SecurityService
[04] fatia E2 InvestorConfig coleção CRUD (D31)
O domínio de configuração da segunda coleção (doc-04 §3.2 InvestorConfig) — por investidor Aprovação/entrega/autoridade que alimenta a execução dos mercados de capitais. Reutiliza a Unidade H formato da coleção exatamente: **************** na auditoria coluna (profileVersion bump + §4b.1 valid-ou-rollback + WORM change-log; hard apagar auditado {"deleted":true,row}; NoSuchRowException->404 fail-closed on a Linha de perfil estrangeiro). GET /investidores + POST + PUT/{id}(+active:false-remove); investidorCódigo + aprovaçãoEstatus exigido, ******************* Autoridade delegada opcional; validação enum + não-negativa-volta. O InvestidorConfig +3-Crianças (sobreposição/entrega/compromisso) sub-coleções permanecem em seguimento. 4 testes (+ sites de ctor existentes atualizados para o +InvestorConfigRepository arg; 16 config write teste verde).
· kamo-internal
Guia de licenciamento de MORTGAGE (lista/add/remove) — [04] fatia E2 (D31)
A página de configuração do 6o MORTGAGE: NMLS/state/agency/investor licenciando entradas com datas efetivas/expiração e um chip de hoje eficaz calculado pelo servidor (status is never conservado). Adicionar através de uma linha em linha, remover através da ação lixo (difícil excluir servidor-lado; para se aposentar sem excluir, definir o prazo de validade para o passado). configTypes LicensingView/ LicenciamentoPedido + LICENSE TYPES + licençaTypeLabel; configApi list/create/update/ removeLicensing; registrado como aba 'licenciamento' antes da guia de acordos sempre- on. As cordas inglesas enviam através do repositório de traduções. TSC limpo.
· SecurityService
[04] fatia E2 recolha de licenças CRUD (D31)
O primeiro domínio de configuração da COLECÇÃO (doc-04 §3.2 LicenciamentoEntry, muitos por perfil) — uma nova forma de escrita id-keyed na mesma coluna de auditoria que os singletons: - Está bem. / updateLicença / exclusãoLicença: perfilVersão bump + §4b.1 validate-or-rollback + WORM change-log por linha; identity server-setamped. Atualizar/deletar resolver a linha por id, em seguida, falha-fechada 404 (NoSuchRowException) se não é o perfil do operador org — nenhum oráculo de existência de perfil cruzado. - deleteLicença é uma exclusão HARD (auditado {" deleted":true,row}) porque Licenciamento Resolução lê entradas UNFILTERED by record state — a soft flag ainda conta como licenciado; para expirar sem apagar, defina o prazo de validadeData para o passado. - MlosConfigController: GET /licenciamento (lista, eficazHoje calculado via isEffectiveOn(hoje), nunca armazenado), POST/licenciamento, PUT/licenciamento/{id} (atualizar ou remover via {active:false} — o proxy de configuração não tem verbo DELETE); ISO-date + enum + expiração>=validação eficaz; NoSuchRowException->404. Os investidores (+3 crianças) e RiskOverlay reutilizam esta forma em fatias posteriores. 6 testes.
· kamo-shared-library
IDENTIFIER REGISTERED event type (mlos.identifier.registered)
A contraparte de registo inicial para IDENTIFIER SUPERSED — o sinal duradouro espelhos a jusante / caches de resolução global consomem quando um identificador nativo é Primeiro registo (doc 11 §5.3/§10, D29).
· kamo-internal
Tabela de sobreposição da autonomia por estágio na aba ai-autonomia (D28)
O mapa doc-04 §4.2/§4.5 por estágio sob o singleton de AiAutonomy: cada ciclo de vida palco com sua classificação de parede de plataforma (chip de parede legal / piso não ajustável) e o limiar de confiança eficaz que a porta utiliza (max(superior, piso)). Cada estágio não-parede tem um editor de sobreposição em linha (limiar + auto-execução) com salvar + remove (PUT ativo:false, uma vez que o proxy de configuração não tem verbo DELETE); legal-wall as fases são apenas leitura. Recarrega depois de cada escrita para que a postura eficaz reflete o servidor recompute. configTypes **************************** UpdateStageOverrideRequest + configApi get/update/removeStageOverride. Inglês strings (aiAutonomy.stageOverrides.*) vivem no repositório de tradução-dicionário.
· SecurityService
[04] pass-2 AutonomyStageOverride CRUD + mapa de autonomia por estágio (D28)
A autonomia por estágio superficial a configuração vertical diferida até StageWallRegistry Existiu (a sua nota de diferimento está agora satisfeita): - Está bem. upsert por (lenderProfile, stageKey) na coluna de escrita SAME (mutação listada em branco, perfilVersion bump, §4b.1 validate-or-rollback, WORM change-log add). Estágios JURÍDICOS FINANCIAMENTO/COLECÇÕES) são rejeitados 400 outright - o portão ignora substitui lá por design, e armazenar uma linha que nunca vai honrar é um artefato de auditoria enganosa. - deleteStageOverride: delete HARD (o solucionador lê sobreposições sem registro- filtragem de estado, assim que uma bandeira suave iria continuar mordendo o portão), auditado como um {"deletado":verdadeiro "linha":...} mudança-log snapshot + perfilVersion bump. Exposto como PUT {active:false} porque o proxy de configuração kamo-internal não tem verbo DELETE. - GET /ai-autonomia/estágio-overrides: o doc-04 §4.2 por-estágio mapa - cada Ciclo de vidaStage com sua classificação de parede (legalWall + piso não imperdível do StageWallRegistry), a linha de sobreposição do inquilino, e a postura EFICAZ o gate irá usar (max( sobreride; default, floor); auto-execute = config AND sobreset) via **************************** - Ponham o limite no máximo 3dp. como ASK do inquilino; o portão aplica sempre o chão - superfície como EffectiveThreshold on the GET). Todas as entidades passe-2 §3.2 + tabelas de prod já existem (mapeamento da descoberta - o a nota de 'necessidade de novas entidades' da fila estava estagnada: nenhuma alteração de compartilhamento de lib, nenhuma execução do KI. A aba Frontend + E2E é o ponto de currículo preso (D28 STATUS no documento de planos).
· DaemonService
[03] Load-side consumers - decision.routed steward fan-out + task.resolved seam (D26/D27)
O roteador de leitura doc-03 foi dobrado no host de consumo da frota (o único Implantação de estratégias de recriação - rebinds duráveis morrem sob RollingUpdate), de acordo com doc's explicit 'thin read service or folled' affair; a greenfield MLOSOrquestrationService mantém-se fechado. Adoptadores de primeira produção do núcleo de confiança do consumidor (doc 12) §4.2): todas as entregas são realizadas através do IdempotentEventProcessor - per-consumer dedup marcador no mesmo tx como efeito secundário, RETRY->nak (capado por tentativas máximas), MlosDeadLetter na tampa, corpos inparsáveis, imediatamente com letras mortas. - MlosDecisionRoutedConsumer ****************durante daemon-mlos-decision-routed): steward fan-out via StewardNotifier - por-org SMS através do VOIP POST /api/bulktext/send (cluster X-Internal-Auth) para configurar- números listados; padrão de EMPTY = somente registro até o modelo de atribuição de administrador lands member->resolução de contato (o administrador UI lê diretamente StewardTask). - MlosTaskResolvedConsumer ****************durante daemon-mlos-task-resolved): o auto-resume SEAM. DecisionSpine.resolve() RESOLVED + OrchestrationState GREEN síncrona (descoberto no mapeamento - a resolução do lado da coluna vertebral EXISTS; somente o ponto de unidade de ecrã de bordo); o motor volta a funcionar liga aqui quando o motor retoma As APIs aterraram. 6 testes.
· kamo-internal
Módulo Ferramentas de Marketing + retrabalho de navegação
- módulo /marketing com cabeçalho herói estilo conta + rota com direitos abas: Visão geral, mídia social (/social), materiais (/materiais), Códigos de referência (/descontos); placeholders em breve; acesso guardado POR VER MARKING + direitos per-tab - NavPri: item de marketing (icon Campaign, View MARKETING) entre Comércio e itens KB; Notas removidos - NavTop: Calendário + Contactos agora apenas com ícones (tooltips mantidas); Notas movidas aqui de NavPri (icon-on-on-only, o mesmo isNotes+VIEW NOTES gating) com um seguindo a regra vertical - SecurityRoleManager: seção de direitos de marketing (sempre visível)
· kamo-shared-library
Grupo de direitos de marketing — ServiceType.MARKETING + 6 direitos (ids 150-155)
VER MARKING, VER SOCIAL MÉDIA, GESTÃO SOCIAL MÉDIA, VER MATERIAIS, VER REFERRAL CODES, GESTÃO REFERRAL CODES. COMERCIALIZAÇÃO é um agrupamento de direitos módulo ( habilitado=falso, como LOS) — não é um aplicativo de org-able. Linhas de direitos auto-curar em todos os papéis no SecurityService boot.
· kamo-shared-library
AUS compliance event types - downgrade.forced, release.graved, validation.graved
Os sinais duradouros da unidade de validação da conformidade [10] (D22/D24): o TOTAL FHA Decisão de registo forçada-downgrade, e renúncia/validação de dados linhas de ciclo de vida (doc 10 §6.2/§7).
· kamo-internal
Reatribuir a quente – fluxo de chamada-transferência ao vivo da frente
Adiciona uma ação de reatribuição quente ao cartão de atribuição de visão principal (pessoal de mesa frontal em chamadas ao vivo): uma janela explicativa + chamada-nota necessária, em seguida, liberar o lead no crédito auto-atribuição e abrir uma janela animada 'encontrando um agente disponível'. Quando um agente de vendas o aceita, o janela revela o seu nome/email/extensão de trabalho para que o chamador possa ser transferido; um botão de fecho (com uma confirmação de encerramento precoce enquanto ainda espera) deixa o pessoal fiança sem esperar. Em tempo real via Atribuído. Também corrige o dropdown de atribuição para listar os membros do View LEADS pelo nome + extensão.
· SecurityService
Endpoint de membros atribuíveis + extensão de trabalho no perfil de membro
- Está bem. (Prémios VIEW LEADS para o dropdown de atribuição de visualização de lead (nome + extensão de trabalho, não e-mail). - GET /api/security/members/{id} agora inclui telefoneWorkExtension para que o Hot Reatribua espera A janela pode mostrar a extensão de transferência do atribuído.
· kamo-internal
Ícones da marca do provedor na gropdown do provedor de conexão + datagrid (compartilhado com o popup do chat via getProviderMeta)
· MediaService
X (Twitter) + Adaptadores de discórdia
- XAdapter: Webhook Atividade de Conta (recurso CRC + x-twitter-webhooks-assinature HMAC verificar), normalizeInbound (direct message events, echo-skip), OAuth 1.0a-assinado v2 DM send; consumer chave/segredo da plataforma X OAuth registro, por conexão token de acesso:segredo - DiscordAdapter + DiscordRestClient: DM normalize + REST send (aberto canal DM + mensagem / arquivo) - DiscordGatewayManager: persistente consumidor de Gateway JDK-WebSocket (um WSS por Discord ativo ligação, HELLO/heartbeat/IDENTIFY, MENSAGEM CREATE DM republicados em social.inbound.raw assim o oleoduto de consumo existente lida com eles), @Scheduled concily = reconnect, @PreDestroy cleanup - SocialCredsResolver: O ramo X resolve a chave/segredo do consumidor a partir do registro OAuth da plataforma
· kamo-internal
Adicionar X (Twitter) + Discórdia para provedores de conexão + logotipos do provedor; Cartão X na plataforma OAuth registra
· APIService
Encaminhar x-twitter-webhooks-assinatura na borda do webhook social (Atividade da Conta X/Twitter)
· kamo-shared-library
Adicionar X(4)/DISCORD(5) provedor enums + X(6) plataforma OAuth provedor + ativo-por-fornecedor repo pesquisa (sem esquema; provedor type id é um inteiro simples)
· kamo-shared-library
Lock-lifecycle outbox tipo de evento + BusinessDayCalendar promovido para mlos.compliance
- Está bem. (mlos.pricing.lock.lifecycle): um evento tipo para todo o ciclo de vida pós-bloqueio; o evento específico MlosLockEvent Tipo passeios em A carga. O compromisso inicial do LOCK mantém-se nos mercados de capitais. - BusinessDayCalendar (CFPB §1026.2(a)(6) réplica do Serviço de Divulgação bloqueado regras) muda de MLOSCapitalMarketsService para mlos. compliance por D16 - o preço lock-lifecycle escritor é o segundo consumidor da MLOS seu javadoc programado A promoção para. O teste move-se com ele (7/7 verde).
· kamo-internal
Páginas de configuração do Doc- 04 MORTGAGE — 5 singletons de domínio
modelo/autoridade/mercados de capitais/servidor/ai-autonomia GET+PUT via /api/security/mlos/config; mlosPut + parseWriteError surface the §4b.1 cross-field lista de rejeição em linha; nomes de campos booleanos simétricos com o JSON GET/entity; montado na faixa de tabulação do mercado MORTGAGE antes dos acordos getCommerceTypeLabel removido). TSC limpo.
· VOIPService
Sistema de modelos Doc-07 SMS — /api/voip/sms/templates + GSM-7/UCS-2 segment guard
* **************** sobre as entidades de SmsTemplate: mostra {{var}} e envia através do BulkText EXISTENTEProvider primitivo (nenhum segundo Caminho do portador); SmsSegmentCalculator (GSM-7 160/153, UCS-2 70/67) + sms.max-segments cap -> 422. @EnableJpaRepositórios += **************************** O InternalAuthFilter protege o novo prefixo; O X-Internal-Auth está fechado.
· SecurityService
Doc-04 camada de locação-configuração — auto-cura + resumo de ativação + 5 domínio GET/PUTs
mlos.config.enabled + com.kamo.z.shared.mlos.config em @EnableJpaRepositórios. MlosConfigSelfHealRunner: LenderProfile padrão + 5 singletons de domínio por ativo O mercado de Mortgage no arranque MlosConfigWriteService: whitelist -> §4b.1 valid-or-rollback -> profileVersion bump -> WORM MlosConfigChangeLog instantâneo. MlosConfigController /api/security/mlos/config: Sumário de activação do perfil do mutuante + validação + registo de alterações + modelo de negócio/autoridade/ **************************** * ******************************* gate, org/ator de sessão (SUDO-consciente). Campos booleanos simétricos com o JSON GET/entity.
· kamo-shared-library
Camada de configuração/ativação + endurecimento da porta de decisão + DecisionSpine procedureance + entidades de modelo SMS
- [04] mlos.config: enums + BusinessModelConfig/ **************** entidades+repos + ScreenState/ModuleState/ ModuleKey/StewardQueueKey + ActivationMatrix (§4b linha- por- linha); MlosActivation Serviço ganhos **************************** (união + autoridade/ CM/serviking refinamentos); MlosConfigChangeLog WORM auditoria; FornecedorCategoria. - [12] StageWallRegistry (auto-validação: ************* 0,90 Nível de crédito/moeda, carga de classe encerrada; Porta SO a parede de registro (somente em adição), impõe o piso por estágio, adiciona força-teward fail-safe. - [03] DecisãoSpina. DecisãoPedido ganhos opcionais ausFindingId procedência (tor back-compat). - [07] SmsTemplate/SmsTemplateCategory entities+repos (donotmodify.voip.template, espelhando os modelos de email bloqueados).
· kamo-internal
Seção de Registros do Cliente OAuth2 em Configurações avançadas ************* — cartões de provedor + diálogo de edição + segredos mascarados + proxy + cliente api
· VOIPService
RingCentral OAuth clientes creds resolver a partir da plataforma OAuth registro em ambos os consumidores (OAuthController + PhoneProviderFactory atualização) + boot-seed + plataforma-enc-key env
· EmailService
Os credos do cliente Google/Microsoft/Zoho OAuth resolvem a partir da plataforma OAuth registry (+ boot-seed do env); remove @Value client-id/secret + platform-enc-key env
· MediaService
Meta OAuth lê o app id/secret/verify-token da plataforma Registro OAuth (+ boot-seed do env); remove social.meta.* consumo + plataforma-enc-key env
· SecurityService
Registros do cliente OAuth2 CRUD (platform-admin gated, criptografado-em-descanso, segredos nunca vazados) + plataforma-enc-key env
· kamo-internal
Compositores Steward WRITE — gravar veredicto, publicar política pull-through, executar preços
Os três caminhos de escrita os consoles emergiram como vindo-em breve, ao vivo de ponta a ponta: - StewardFeedbackCompositor na gaveta do trilho de decisão: CONFIRM/MODIFY/OVERRIDE veredito segmentado (codificado em tom), motivo Reg-B selecionar (obrigatório em OVERRIDE), MODIFIY corrigido-valor editor JSON com validação do lado cliente, WORM nota somente do anexo, guarda no voo (a cadeia não tem chave de indempotência). - PullThrough PolicyComposer substitui a caixa de publicar em breve: duas etapas edit -> review-diff -> publique v(n+1); a validação do botão espelha o serviço (probs 4dp, percentis, vocabulário do horizonte doc-09, dica do piso da plataforma); publica através de proxy marcado por sessão que a propriedade verifica o grão. - RunPricingComposer por trás de uma ação de cabeçalho com preço de execução: cenário/produto prefils da execução selecionada, SHOPPING/WHAT IF somente, fatos opcionais (fico/ltv/dti/state), contadores pós-corrida, incl. produtos ignorados, view-run. Encanamento: rotas mlos release request.method + export POST; mlosPost (NO retry - WORM não-idepotente escreve); escrever tipos/fns na governançaApi/pricingApi. i18n: todo o texto novo via next-intl; substituído por PRICING PURPOSE LABEL/ ELEGIBILITY LABEL maps with t()-backed helpers; keys triple-written.
· kamo-shared-library
PlatformOAuthClientResolver (leia+decrypt registry) + PlatformOAuthSeeder (semente de arranque indepotente do env) + ResolvedOAuthClient
· kamo-shared-library
PlatformOAuthClient registry entity + repo + PlatformSecretCipher + provider enum
Registos OAuth2 verificados no nível da plataforma **************************** criptografado em repouso via PlatformSecretCipher (AES-256-GCM, platform.enc-key). Entidade autónoma; consumida por SecurityService (CRUD) e os serviços de resolução (leia + descriptografar).

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