Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· SecurityService
Expurgar a varredura, a configuração do OAuth e a varredura do repositório (IoT SP09)
· SecurityService
Revogação da subvenção interna para a administração de clientes IoTService e plataforma (IoT SP09)
· kamo-login
Modo OAuth — a página padrão não tocada, o inquilino cromado fora (IoT SP09)
/?oauth request=<64 hex> é a página de entrada de OAuth por uma reescrita antesFiles em next.config.mjs para /oauth/sign-in (o navegador mantém o URL), não por um switch inside app/page.tsx: um interruptor nos parâmetros de pesquisa faz / qualquer um renderização dinâmica (searchParams) ou resgate de um cliente para um Suspense vazio backback (useSearchParams) — ambos alteram a primeira renderização da página padrão. Com o aplicativo/página reescrita. tsx não é editado em tudo, / permanece uma estática pré-render, e seu HTML é idêntico ao original/main's mas para o aleatório sufixo de nome de campo que ele desenha em cada construção. O padrão é o modo. mjs OAUTH REQUEST VALUE; Next ancora-o e lê o último valor de um repetido parâmetro, assim éOAuthMode lê o último valor também (pined contra Next's próprio matchHas em testes/modo-outh). analyticsA Analytics não renderiza nada no contexto OAuth (/oauth/... or the URL OAuth-mode) — verificado na renderização do servidor também, porque um afterInteractive Script ainda emite uma pré-carga <link> para analytics.kamocrm.com lá; DynamicMetaLoader e org da fita a formulação se afasta no mesmo contexto (efeitos apenas). Nada muda para qualquer outra rota. A placa de erro é um componente cliente (OAuthErrorView): MUI de um servidor componente hidratado com um descompasso (#418) na compilação real.
· SecurityService
Endpoint Token com PKCE, rotação com graça de 24 horas, detecção de reutilização e revogação RFC 7009 (IoT SP09)
· kamo-shared-library
Classes de fretamento «OPERATION DEVICE» e «OPERATION SECURITY DEVICE» (SP11-D2)
IoT SP11 (master §6.14, §10 SP11-D2): as ações físicas através do pacote iot do Plano de Ferramentas são aprovadas por classe. A AiActionClass anexa OPERA DEVICE (funções de CONFORTO/EQUIPAMENTO, comutadores de automação) e OPERA SECURITY DEVICE (Funções de segurança, automações com uma acção de segurança, avisos de alarme CRITICAL/MAJOR) após a reunião conjunta, ambos APPROVE BEFORE: uma classe sem nome resolve em seu padrão, então cada charter pergunta a uma pessoa até que ela diga o contrário. CharterSection.APPROVAL detém 24 (um por classe). Cada charter resolvido ganha as duas classes, então cada charter selo move-se uma vez (O legado do CharterStampTest move-se de ouro, como fez o COMEND MEETING). AiAutonomyModeTest's rascunho-kind pin falha na origem/principal também, intocado aqui.
· SecurityService
Perspectiva de consentimento e decisão de uso único vinculada à sessão de entrada, sob reserva de subvenções e códigos (IoT SP09)
· SecurityService
O3 liga um novo sinal ao pedido de autorização com uma chave atomicamente passada (IoT SP09)
· SecurityService
Pedidos de autorização O1/O2 com RFC 6749 regras de redirecionamento, PKCE S256 e limites de taxa (IoT SP09)
· SecurityService
Principal-fornecedor SPI e provedor de ligação de voz IoT (IoT SP09)
· SecurityService
Gasto de chave única atômica, loja de pedidos, limites de taxa e URLs de redirecionamento (IoT SP09)
· kamo-login
O sinal OAuth com o passo MFA em falta e a tela de consentimento (IoT SP09)
/api/login, /api/session/select e /api/login/mfa aceitam uma opção oauthRequestId (64 hex). Ausente, nada muda (testes/***-cookie pinos resposta de cada rota e Set-Cookie). Presente mas malformado: 400 antes tudo é solicitado ao Serviço de Segurança. Válido, uma vez respondido o SecurityService com uma chave única e o *** id foi lido de OTK<otk> como hoje: O3 anexar gasta a chave, o navegador recebe {sucesso, oauthNext} e nunca o chave ou o redirecionamento da área de trabalho, e o cookie *** é plantado exatamente como uma instalação de registo comum — apenas quando o consentimento for posterior (expirado) request ou uma falha não deixa nenhum cookie). Uma chave impendável é dita como uma culpa, nunca como um erro credencial. MFA e respostas de espaço de trabalho são retransmitidos como hoje; a página mantém o ID de solicitação e envia-o com a próxima chamada. OAuthSign In (marcação própria no OAuthShell): nome de utilizador/senha com o mesmo prova de trabalho capcha, StrikeMeter/LockoutPanel inalterado, MfaStep (novo: código de seis dígitos ou código de recuperação, seu próprio bloqueio), WorkspacePicker inalterado com logotipos deixados de fora (eles vivem no tema.<apex>). MfaStep é usado somente aqui; a página padrão não é tocada. /outh/consent: cliente e escopos, a explicação iot.voice (spec 4.24.3), Novo link (nome 1-120, Alexa padrão) ou REPLACE por link listado, razões de elegibilidade em palavras (SI, não AI), Link Alexa / Cancelar; segue redirecionarPara somente quando for https: (O4 não lista URIs redirecionados para comparar com). **************************** relé O2/O4/O5 com *** cookie como X-***-Token, apenas consentimento de encaminhamentoToken/decision/link, e limpar o cookie quando uma decisão é feita. Handoff é handoff.mjs (não .ts) para que o nó --test possa importá-lo.
· InitializerService
Digitalizar os repositórios do servidor OAuth (IoT SP09)
· kamo-shared-library
Alexa link, sensor virtual e entidades de endpoint; IotCommand.voiceLinkId; ALEXA * tipos de atividade (IoT SP09)
· kamo-login
/outh/autorize, /token e /revoke, um escritor de cookies de sessão compartilhado (IoT SP09)
Os endpoints públicos do servidor Kamo OAuth, retransmitidos para o SecurityService (O1, O6, O7) sobre DNS de cluster em SECURITY SERVICE URL (padrão kamowssecurity-service, como aplica/api/Recover faz: - GET /oauth/autorize apenas os sete parâmetros OAuth e responde a relativo 303: /?oauth request=<id> para uma requisição válida, https registrados: redirecionar para um erro de redirecionamento, /oauth/error de outra forma (uma cliente desconhecido ou não registrado redirecionar URI é mostrado, nunca redirecionado para). - POST /oauth/token e /oauth/revoke encaminhar o byte do corpo para byte com Autorização e apenas tipo de conteúdo (mais o endereço do chamador para Limite do serviço de segurança), retransmissão WWW-Authenticate, sempre sem loja; uma falha, quer qualquer estado que não seja próprio do endpoint (200/400/401/429/503), 503 temporariamente indisponível — nunca inválido grant. - Em OAuthShell. Logotipo Kamo, Privacidade e Termos em www.kamocrm.com, nada de outro origem). app/lib/***Cookie.ts é a única cópia do bloco *** desobstruído que /api/login, /api/session/select e /api/login/mfa cada transportado. A três cópias eram atributos-para-atributo idênticos, então nada é parametrizado; o helper leva o cabeçalho Host as rotas lidas. Encontrar, preservado de propósito: o pote de cookies do Next é marcado pelo nome, então apenas o último set() atinge o fio — os três clears nunca chegaram. testes/***-cookie fixa os cabeçalhos exatos do Set- Cookie contra o bloco interno antigo, para cada fim da rota até ao fim. teste npm = nó --experimental-strip-types --test tests/*.test.mjs (Node 22 não leva nenhum argumento de diretório, e planCheckout.test.mjs importa a .ts).
· kamo-shared-library
Entidades de servidor OAuth, repositórios, verificador de token somente para leitura e tipos de eventos de log de acesso (IoT SP09)
· kamo-shared-library
Geração de tokens, PKCE S256 e análise de escopo para o servidor Kamo OAuth (IoT SP09)
· kamo-shared-library
**************************** (SP04 Tarefas 21-22)
A coluna existe na produção (SP04 DDL, padrão TRUE).
· KlusterServices
Google Trust Services emite o certificado da máquina de login da plataforma (IoT SP09)
O link da conta do Amazon recusa o Let's Encrypt, então login.kamouniverse.com sozinho se move para um gts-prod ClusterIssuer (ACME with External Account Binding); todas as outras máquinas mantêm o letsencrypt-prod. O ID da chave EAB é um placeholder até que o operador passo B1: este commit não é empurrado para main antes disso.
· KlusterServices
Google Trust Services emite o certificado da máquina de login da plataforma (IoT SP09)
O link da conta do Amazon recusa o Let's Encrypt, então login.kamouniverse.com sozinho se move para um gts-prod ClusterIssuer (ACME with External Account Binding); todas as outras máquinas mantêm o letsencrypt-prod. O ID da chave EAB é um placeholder até que o operador passo B1: este commit não é empurrado para main antes disso.
· kamo-internal
IOT nos subsistemas de auditoria NoReply
Dispositivos de IoT SP06: EmailService auditorias letras de alarme (iot.alarm notice) em NoReplySubsystem.IOT; o filtro de auditoria sabe disso.
· kamo-internal
Os eventos de auditoria OAuth nos filtros de log de acesso (IoT SP09)
· EmailService
Visualização das variáveis de amostra para as letras de compartilhamento iot
Reconstruído na nova biblioteca compartilhada ANTES do IoTService enviar (uma chave de modelo ausente 404s para sempre).
· SecurityService
Reserve o nome iot; pin iot.<domínio> resolução
A reconstrução carrega DomainAliasType.IOT da biblioteca compartilhada. Aliases conhecidas / SSL PROBE LABELS seguem somente após iot.<apex> respostas sobre TLS (um commit posterior), então nenhum domínio confirmado é desclassificado. IotEntityMappingOn62Test mapeia as quatro entidades de compartilhamento SP04 na linha Hibernate 6.2.
· kamo-marketing
Parágrafos associados à voz na política e termos de privacidade (IoT SP09)
· SecurityService
Tabelas de servidores de autorização do Kamo OAuth e o cliente iot.alexa (IoT SP09)
· kamo-shared-library
Iot.share link e iot.share code modelos canônicos, IotShareEmail
· kamo-shared-library
Entidades de partilha e repositórios
· kamo-shared-library
Regras de partilha, fichas, códigos únicos e destinos mascarados
· kamo-internal
Guia de configuração do conector e ajuda de campo no cartão Advanced-tab (IoT SP08)
· kamo-internal
Os cartões de controlo remoto — progresso RPM, leituras domiciliares, limites clínicos e a lista de alertas

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