Pular para o conteúdo principal

Histórico de versões do Lacuna TrustBridge

O TrustBridge tem duas linhas de release, lançadas de forma independente:

  • Servidor: a imagem de container trustbridge-server:<version>. As entradas têm o título Servidor X.Y.Z.
  • Estação de Trabalho: o Workstation Service e o Tray App num único MSI, TrustBridge-Workstation-<version>-x64.msi. As entradas têm o título Estação de Trabalho X.Y.Z.

Um Servidor e as suas estações de trabalho conversam por um protocolo das estações de trabalho versionado. Um Servidor aceita o próprio protocolo e o anterior, então a ordem habitual é: atualize primeiro o Servidor, depois a frota, com no máximo um protocolo de diferença. O Workstation 1.5.0 é a exceção: ele e o Servidor 1.13.0 são atualizados juntos.

ServidorProtocolos das estações de trabalho aceitos
1.15.0 – 1.24.05–6 (uma máquina no protocolo 5 se conecta e atende todas as sessões, exceto as de PIN por transação)
1.13.0 – 1.14.14–5 (uma máquina no protocolo 4 se conecta e assina pelas sessões já vinculadas a ela, mas nunca recebe uma sessão nova)
1.9.0 – 1.12.03–4
1.7.0 – 1.8.02–3
1.3.0 – 1.6.11–2
1.0.1 – 1.2.01 (nenhuma release da Estação de Trabalho usa esse protocolo)
Estação de TrabalhoProtocoloServidor necessário
1.8.1 – 1.10.061.20.0 ou posterior (o Servidor 1.15.0 a 1.19.0 a mantém conectada, mas não recebe o Relatório da Estação de Trabalho; o Servidor 1.23.0 ou posterior mostra o console que o Workstation 1.10.0 informa)
1.8.061.20.0 ou posterior (o Servidor 1.15.0 a 1.19.0 a admite, mas encerra a conexão dela quando o Relatório da Estação de Trabalho passa de 32 KB)
1.6.0 – 1.7.061.15.0 ou posterior
1.5.051.13.0 a 1.24.0 (a partir do Servidor 1.15.0, nunca é escolhida para uma sessão de PIN por transação)
1.4.0 – 1.4.241.9.0 a 1.12.0 (o Servidor 1.13.0 a 1.14.1 a admite, mas não lhe envia sessões novas; o Servidor 1.15.0 a recusa)
1.1.0 – 1.3.031.7.0 a 1.12.0 (1.8.0 ou posterior recomendado a partir do Workstation 1.2.0)
1.0.0 – 1.0.121.3.0 a 1.8.0

Uma máquina com protocolo mais novo que a janela do seu Servidor é recusada no handshake, não recebe a licença da PKI, e todos os certificados dela aparecem como UNTRUSTED até o Servidor ser atualizado. Uma máquina com protocolo mais antigo que a janela é recusada por precisar de atualização.

Uma release do Servidor que atualiza o modelo do banco de dados aplica as suas migrações na inicialização, e a versão anterior passa a recusar a inicialização com esse banco: voltar atrás exige restaurar o backup do banco feito antes da atualização, e não basta trocar a tag da imagem.

Workstation 1.10.0 (2026-10-26)​

Pacote TrustBridge-Workstation-1.10.0-x64.msi, protocolo 6 das estações de trabalho.

Notas de atualização: distribua-o com o Servidor 1.20.0 ou posterior, como o 1.9.0, e com o Servidor 1.23.0 ou posterior para ver o que ele acrescenta. As duas novidades usam o protocolo 6 sem mudá-lo: um Servidor anterior ignora o console e registra um pedido de PIN de início de sessão que a máquina não conseguiu mostrar apenas como Undeliverable. Nenhuma chave de configuração foi adicionada. Nos modelos de Política de Grupo atualizados, a explicação de Informar a situação desta máquina ao TrustBridge Server diz que o relatório traz a conta conectada no console.

Novas funcionalidades​

  • O Relatório da Estação de Trabalho traz o console da máquina: a Conta no console conectada na sessão de console (o SID dela, e o nome DOMAIN\user quando ele pode ser resolvido), ou ninguém; se essa sessão está bloqueada; se há um Tray App conectado ali, e a versão dele; e quantas outras sessões têm um Tray App conectado, sem citar as contas delas. O próprio Workstation Service lê a conta e o bloqueio, então eles são informados mesmo sem nenhum Tray App em execução. No Servidor 1.23.0 ou posterior, isso preenche a coluna Conta no console da tela Estações de Trabalho. Veja o console administrativo.
  • O console é informado de novo poucos segundos depois de uma entrada ou saída do Windows, de um bloqueio ou desbloqueio, de uma troca de usuário no console e de um Tray App que se conecta ou se desconecta, e não enquanto ele continua igual.
  • O console acompanha a opção do relatório: com WorkstationReport:Enabled desligado, nem a conta nem nenhuma outra parte dele sai da máquina. Veja Configuração da estação de trabalho.
  • O Workstation Service diz por que não conseguiu mostrar um pedido de PIN de início de sessão (NO_TRAY), como já faz para uma Autorização de assinatura desde o Workstation 1.9.0: um Tray App numa sessão que não é a do console (Área de Trabalho Remota, ou um console trocado), nenhum Tray App conectado em lugar nenhum, uma release sendo instalada, um Tray App do console que não está lendo, o Tray App fechado com o pedido na tela, ou um Tray App reiniciado na sessão enquanto o pedido esperava a vez. Um pedido em que todos os certificados são A1 sem PIN do Certificado A1 definido diz NO_A1_PIN. O Servidor 1.23.0 ou posterior mostra o motivo por extenso na aba Eventos da máquina.

Melhorias​

  • As linhas de log do Workstation Service para um pedido que ele não conseguiu mostrar dizem qual foi o caso: um Tray App em outra sessão ou nenhum em sessão alguma, e um console que mudou enquanto o pedido esperava a vez, em vez de um Tray App que não está lendo.

Servidor 1.24.0 (2026-10-26)​

Imagem trustbridge-server:1.24.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: distribua-o com qualquer Workstation: o Contrato SignSession, os códigos de erro dele e o protocolo das estações de trabalho não mudaram, e nenhuma chave de configuração foi adicionada. Nenhuma migração é nova, mas no SQL Server o índice da Trilha de Auditoria que o Servidor 1.23.0 cria (IndexTheAuditLogByWorkstationAndTime) passa a ser construído online onde a edição permite: com baixa prioridade no Banco de Dados SQL do Azure, na Instância Gerenciada de SQL do Azure e no SQL Server 2022 ou posterior Enterprise ou Developer, online nas versões anteriores do Enterprise, e offline no Standard, no Express e no Web. Uma construção offline segura as gravações na Trilha de Auditoria enquanto roda, e linhas gravadas nesse meio-tempo podem se perder por timeout; então uma implantação na 1.22.0 ou anterior deve atualizar direto para a 1.24.0, e uma com uma Trilha de Auditoria grande numa edição que constrói offline, ou no PostgreSQL, deve atualizar num horário tranquilo. Um banco que já aplicou o índice com a 1.23.0 não precisa de nada, e voltar para a 1.23.0 é só trocar a tag da imagem. Veja Atualização para o Servidor 1.23.0 ou posterior.

Novas funcionalidades​

  • A Trilha de Auditoria mostra o código de erro com que uma chamada da API foi respondida, depois do status HTTP na célula Evento: GET /v1/certificates/info 401 SESSION_EXPIRED. O status sozinho não diz qual erro quem chamou recebeu (UNAUTHORIZED e SESSION_EXPIRED são ambos 401, SERVER_BUSY e TOO_MANY_PIN_ATTEMPTS ambos 429), e o código é o que um integrador informa ao suporte. A linha api.call guarda o código nos detalhes como errorCode; a mensagem e os detalhes da resposta não são guardados. Uma chamada respondida sem envelope de erro não tem código, e uma linha gravada antes desta release aparece como antes. O código continua em inglês onde quer que apareça. Veja o console administrativo.
  • Uma Assinatura de teste que falhou na etapa de assinatura diz por quê, pelo código do contrato: uma frase escolhida pelo código, nos dois idiomas, com o código e a resposta do contrato ao lado. CERT_INCOMPLETE_IDENTITY aponta para o campo Endereço de e-mail; PIN_NOT_AVAILABLE cita o PIN do titular, na maioria das vezes recusado ou não respondido no Tray App, ou um token bloqueado; SIGN_TIMEOUT diz que a chave do titular pode já ter assinado; TOO_MANY_PIN_ATTEMPTS é o bloqueio do CPF. Uma execução cujo prazo passou enquanto esperava a confirmação de um titular com PIN por transação diz isso. Um lote diz o motivo para cada documento que falhou. As frases das outras etapas não mudaram. Veja Solução de problemas.

Servidor 1.23.0 (2026-10-26)​

Imagem trustbridge-server:1.23.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: ReportWorkstationConsole, IndexTheAuditLogByWorkstationAndTime, RecordTheRunsFailureCause)

Notas de atualização: distribua-o com qualquer Workstation: o console é uma parte opcional do Relatório da Estação de Trabalho, então o protocolo 6 não muda, e o Contrato SignSession não mudou. Uma máquina numa release do Workstation anterior à 1.10.0 não informa o console, e a célula dela mostra Precisa da Estação de Trabalho 1.10.0. Nenhuma chave de configuração foi adicionada. No SQL Server, esta release constrói o novo índice da Trilha de Auditoria offline, o que segura as gravações na Trilha de Auditoria enquanto roda: atualize para o Servidor 1.24.0, que constrói o mesmo índice online onde a edição permite. Voltar para a 1.22.0 exige o backup do banco feito antes da atualização. Veja Atualização para o Servidor 1.23.0 ou posterior.

Novas funcionalidades​

  • A tela Estações de Trabalho diz quem está no console de cada máquina. Uma coluna Conta no console substitui o sistema operacional, que continua no cabeçalho do painel de detalhes: a conta conectada no console com o que há de errado com o Tray App dela ao lado, o mais grave primeiro (sem Tray, um Tray App de versão diferente da do service, bloqueada), ou Ninguém no console. Uma máquina desconectada mostra quando informou isso, e uma com o relatório desligado aparece como Sem relatório. O Servidor guarda o último console informado, também para uma máquina desconectada ou revogada, e não grava linha na Trilha de Auditoria quando ele muda. Veja o console administrativo.
  • Um chip de filtro Conta no console, sem Tray lista as máquinas admitidas e conectadas cujo titular está conectado no console sem nenhum Tray App em execução ali, então uma máquina que recusaria uma chamada de PIN por transação é encontrada antes que alguém chame (show=console-no-tray).
  • As recusas com problema de cada máquina nas últimas 24 horas aparecem num chip N recusas (24h) na célula de situação, e um chip de filtro Com recusas (24h) lista as máquinas admitidas que têm um (show=refusals). Uma recusa do titular e uma Aplicação Cliente que desistiu de esperar não contam; um PIN errado conta.
  • A busca encontra uma máquina pela Conta no console, e pelo nome, CPF ou CNPJ de um titular cujo certificado ela guarda; um e-CNPJ também pela Empresa. Um CPF ou CNPJ digitado com pontos, traço e barra também é encontrado, aqui e nas buscas das telas Sessões de Assinatura e Operações de Assinatura.
  • O painel de detalhes tem uma seção do console: a conta com o SID, o bloqueio, a situação e a versão do Tray App (com uma observação quando ela é anterior à do service), e as outras sessões com um Tray App, ou por que a máquina não mostra nada.
  • A aba Eventos do painel de detalhes descreve cada Recusa da Estação de Trabalho por extenso, com o que perguntar ao titular quando ele pode resolver, e o código e a sessão em letra menor ao lado. Uma recusa do titular e uma Aplicação Cliente que desistiu são marcadas como escolha de alguém; toda outra recusa, um PIN errado inclusive, é um problema da máquina. Uma opção Somente recusas lista as últimas recusas da máquina em vez dos últimos eventos, e já vem ligada quando o painel abre numa máquina com uma recusa com problema nas últimas 24 horas. Ver tudo na Trilha de Auditoria abre as linhas da máquina na Trilha de Auditoria.
  • A Trilha de Auditoria tem um filtro Id da Estação de Trabalho que encontra todas as linhas de uma máquina, de todos os tipos de evento e também de uma máquina removida, e se combina com os outros filtros; um link workstationId= o preenche.
  • pin.prompt-answered traz detail quando um pedido de PIN de início de sessão foi respondido Undeliverable porque nenhum Tray App pôde mostrá-lo, no mesmo formato que signing.authorization-refused traz desde o Servidor 1.22.0, com um motivo só dele: NO_A1_PIN. Uma máquina anterior ao Workstation 1.10.0 não envia esse detalhe. A recusa vista pelo cliente não muda.
  • A tela Sessões de Assinatura diz quem, por qual aplicação e em qual máquina. O titular aparece pelo nome que o certificado traz, com o CPF embaixo; uma coluna Aplicação Cliente mostra a aplicação que criou a sessão; a máquina vinculada é um link para o painel dela na tela Estações de Trabalho, com a Conta no console embaixo. Uma sessão ativa numa máquina com uma Recusa da Estação de Trabalho com problema nas últimas 24 horas fica destacada e diz quantas foram. A busca também encontra o nome do titular, a Aplicação Cliente e o hostname da máquina. Veja o console administrativo.
  • Um chip Criações recusadas (24h) na tela Sessões de Assinatura (show=refused) lista as criações de sessão recusadas nas últimas 24 horas: quando, o titular com o CPF, a Aplicação Cliente, o motivo por extenso com o código, e cada máquina a que se pediu o PIN com a resposta dela, ou que nenhuma máquina foi consultada. São listadas as 200 mais recentes, e a tela avisa quando havia mais.
  • A tela Operações de Assinatura diz o que deu errado numa execução. Uma falha aparece por extenso, com o que perguntar ao titular quando ele pode agir, e diz se o token do titular assinou (e então pode existir um documento assinado no serviço de assinatura), se não assinou ou se não se sabe. Uma execução pendente há mais tempo do que uma execução ativa pode durar fica destacada e diz o que está esperando. Um filtro Aplicação Cliente fica ao lado da busca, o titular aparece pelo nome com o CPF embaixo, e a máquina é um link para o painel dela na tela Estações de Trabalho. Veja o console administrativo.
  • Uma execução com falha registra o que a estação de trabalho respondeu ao lado do código, já que quatro causas diferentes terminam todas como PIN_NOT_AVAILABLE; uma execução que falhou antes da atualização aparece só pelo código.
  • Uma Assinatura de teste pode assinar mais de um documento: uma quantidade em Documentos, de 1 a 50, ou Signing:MaxBatchItems quando ele é menor, assina cópias numeradas numa única chamada de lote. Os documentos assinados voltam num único ZIP, test-signatures.zip, e cada um que não foi assinado aparece com a etapa em que falhou. Uma execução de um documento só continua sendo a chamada única de sempre. A linha de auditoria test_signature.* registra quantos documentos foram pedidos e, numa execução concluída, quantos foram assinados. Veja o console administrativo.

Melhorias​

  • O seletor de filtro da tela Estações de Trabalho virou uma linha de chips, cada um com quantas máquinas ele contém, com a busca aplicada. Os links show= da faixa de situação e do Painel continuam selecionando o seu.
  • O seletor de filtro da tela Sessões de Assinatura virou uma linha de contagens que funcionam como filtros: Todas, Ativas, Ativas com recusas (24h), Encerradas e Criações recusadas (24h).
  • O seletor de filtro da tela Operações de Assinatura virou uma linha de contagens: Todas, Pendentes, Com falha (24h) e Concluídas (24h). A menos que uma busca as restrinja, as duas contagens de 24 horas incluem todas as execuções terminadas no período, além das 200 mais recentes que a tabela lista. Com Com falha (24h) escolhido, uma linha de chips agrupa as falhas por causa.
  • A página da Assinatura de teste devolve todos os campos preenchidos depois de uma execução, a chave de API e o PIN inclusive, e Assinar de novo mostra o formulário preenchido, então uma segunda execução é um clique. A página da resposta é marcada como no-store, então o navegador não a guarda; num computador compartilhado, feche a aba ao fim da demonstração. O Servidor continua sem registrar no log a chave e o PIN, e esquece os dois assim que a página é gerada.

Servidor 1.22.0 (2026-10-25)​

Imagem trustbridge-server:1.22.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: distribua-o com qualquer Workstation. Nada do que o cliente vê mudou: uma chamada de PIN por transação recusada porque não havia a quem perguntar continua sendo PIN_NOT_AVAILABLE com details no Tray at the console. Nem o contrato, nem o schema, nem a configuração mudaram, então voltar para a 1.21.0 é só trocar a tag da imagem. Uma máquina anterior ao Workstation 1.9.0 não envia o detalhe, e as linhas dela mostram detail: null.

Novas funcionalidades​

  • A linha de auditoria signing.authorization-refused traz detail num NO_TRAY: qual foi o motivo da máquina (TRAY_NOT_AT_CONSOLE, NO_TRAY_RUNNING, TRAY_CANNOT_SHOW_TRANSACTIONS, INSTALLING_RELEASE, TRAY_NOT_READING, TRAY_DETACHED ou SERVICE_STOPPING), a sessão do Windows no console, as sessões em que havia um Tray App conectado e o build do Tray App. Descobrir o motivo antes exigia alguém na máquina. Ele é nulo em todos os outros motivos, e um motivo que este Servidor não conhece é registrado como veio. Veja Por que nenhum Tray App pôde ser consultado.
  • A linha de log do Servidor para uma autorização recusada cita o motivo do detalhe ao lado do motivo da recusa.

Correções de bugs​

  • Os botões Revogar e Remover do painel de detalhes da estação de trabalho ficam numa linha própria, abaixo do cabeçalho; na mesma linha do hostname e do chip de situação, os rótulos deles escapavam dos contornos e cobriam o chip.

Workstation 1.9.0 (2026-10-25)​

Pacote TrustBridge-Workstation-1.9.0-x64.msi, protocolo 6 das estações de trabalho.

Notas de atualização: distribua-o com o Servidor 1.20.0 ou posterior, como o 1.8.0, por causa do Relatório da Estação de Trabalho. O novo detalhe do NO_TRAY usa o protocolo 6 sem mudá-lo, e um Servidor anterior à 1.22.0 o ignora. Nenhuma chave de configuração foi adicionada. O pacote cria um atalho no menu Iniciar para todos os usuários.

Novas funcionalidades​

  • Um atalho no menu Iniciar, TrustBridge, instalado para todos os usuários e removido com o pacote, abre a janela do Tray App: se já há um Tray App em execução na sessão, ele traz essa janela para a frente; se não há, inicia um. Um Tray App que travou, parou, foi fechado por um reparo ou foi encerrado com Sair não fica mais ausente até a próxima entrada no Windows. Veja Instalação da estação de trabalho.
  • Uma inicialização ao lado de um Tray App que não responde em 5 segundos o encerra, só naquela sessão, e toma o lugar dele; a substituição é registrada como Error, que chega ao Relatório da Estação de Trabalho. Um Tray App que não pode ser encerrado continua em execução, e uma inicialização pelo atalho avisa isso antes de sair.
  • O Workstation Service diz por que respondeu NO_TRAY a uma Autorização de assinatura: um Tray App numa sessão que não é a do console (Área de Trabalho Remota, ou um console trocado), nenhum Tray App conectado em lugar nenhum, um Tray App do console antigo demais para mostrar uma transação, uma release sendo instalada, um Tray App do console que não está lendo, o Tray App fechado com o pedido na tela, ou o service parando. Junto vão a sessão do console, as sessões em que havia um Tray App conectado e o build do Tray App. O Servidor 1.22.0 registra isso na Trilha de Auditoria, e o Servidor 1.23.0 mostra por extenso na aba Eventos da máquina.

Melhorias​

  • A inicialização automática na entrada do Windows passa --background, assim como a reinicialização feita pelo service depois de uma instalação ou atualização: iniciado assim, o Tray App mostra só o ícone, como antes, e sai sem aviso se já houver na sessão um Tray App que responde. Iniciado pelo atalho ou pelo executável, ele abre a janela.
  • A linha de log do Workstation Service para um pedido que ele não conseguiu mostrar diz qual foi o caso: um Tray App em outra sessão, nenhum em sessão alguma, ou um que não consegue mostrar uma transação.

Workstation 1.8.1 (2026-10-24)​

Pacote TrustBridge-Workstation-1.8.1-x64.msi, protocolo 6 das estações de trabalho.

Notas de atualização: distribua-o assim que puder. Nada muda na comunicação e nenhuma chave de configuração foi adicionada. Ao contrário do 1.8.0, ele continua conectado a um Servidor de 1.15.0 a 1.19.0, que não recebe o Relatório da Estação de Trabalho; é o Servidor 1.20.0 ou posterior que recebe e mostra o relatório. A atualização reinicia um Tray App que já tem a correção, então a própria atualização não dispara o problema.

Correções de bugs​

  • Fechar um pedido de PIN não encerra mais o Tray App. Num Tray App cuja janela não tinha sido aberta desde a entrada no Windows, ou desde que uma atualização o reiniciou, um pedido de PIN que se fechava (inclusive um Pedido de PIN na inserção respondido, recusado ou expirado) o encerrava sem nenhuma linha de log, e até a saída do Windows uma chamada de assinatura de PIN por transação naquela máquina era recusada (PIN_NOT_AVAILABLE) e abrir o Tray App de novo não fazia nada. Agora ele só se encerra pelo Sair do menu, pela janela fechada quando não tem ícone por onde voltar, ou pela saída do Windows.
  • O encerramento do Tray App não pode mais travar: ele espera no máximo 3 segundos pela finalização e então libera a sessão, então a próxima inicialização abre um Tray App.
  • Uma exceção que nada capturou é registrada pelo Tray App como Error, com o tipo e a mensagem, na aba Log; uma de que o Tray App se recupera também chega ao Relatório da Estação de Trabalho.
  • Um Relatório da Estação de Trabalho fica abaixo de 32 KB até o Servidor aceitar um naquela conexão, então uma máquina com um relatório grande não perde mais a conexão com um Servidor anterior à 1.20.0. Depois que um relatório é aceito, os relatórios da conexão vão inteiros.

Melhorias​

  • A recusa de uma máquina revogada não diz mais que não há volta: desde o Servidor 1.21.0 um Administrador pode removê-la, e ela volta à fila de admissão como uma máquina nova. As linhas de log do Workstation Service e a recusa que o Tray App mostra, em inglês e em português, dizem isso.

Servidor 1.21.0 (2026-10-22)​

Imagem trustbridge-server:1.21.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migração: RecordTheBindingsWorkstationId)

Notas de atualização: a forma do Contrato SignSession não mudou e nenhum código de erro é novo, mas uma chamada de assinatura numa sessão ativa cuja máquina foi removida responde 422 WORKSTATION_OFFLINE com details workstation removed, assim como uma criação de sessão que escolheu uma máquina removida no meio dela. Uma linha de auditoria workstation.disconnect pode trazer o novo motivo removed. Nenhuma chave de configuração foi adicionada. Voltar para a 1.20.0 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • Um Administrador pode Remover uma estação de trabalho pelo painel de detalhes dela na tela Estações de Trabalho, ao lado de Revogar, depois de digitar o hostname da máquina para confirmar. Os certificados dela, o Relatório da Estação de Trabalho e as Provas de PIN que falharam vão junto; todas as Sessões de Assinatura, Operações de Assinatura e linhas da Trilha de Auditoria em que ela aparece continuam.
  • Uma máquina que já assinou pode ser removida: as listas de sessões e de operações passam a mostrá-la como estação de trabalho removida com o primeiro grupo do id dela, e a Atividade de assinatura do Painel fica igual antes e depois. Uma sessão ainda ativa nela não é encerrada nem cobrada; uma chamada de assinatura nela responde WORKSTATION_OFFLINE até ela expirar.
  • Uma máquina conectada é desconectada quando é removida. Se ainda estiver instalada, ela pede admissão de novo e chega à fila de admissão como uma máquina nova.
  • Uma máquina revogada também pode ser removida, e a recusa dela vai junto com a linha: a mesma chave poderia pedir de novo e ser admitida.
  • A fila de admissão oferece Remover numa linha que já foi admitida uma vez e voltou a pendente.
  • Novo evento de auditoria admin.workstation-removed, com a identificação completa da máquina.
  • O deploy-docker.ps1 implanta o Servidor no Docker com PostgreSQL, RustFS e REST PKI Core num único script: ele pede o nome do host, a licença da PKI e o endereço de e-mail do primeiro Administrador, gera todas as senhas, as chaves e o certificado TLS, inicia os containers e espera o /healthz. Uma segunda execução mantém todos os valores, então atualiza ou repara sem trocar as chaves, e -ConnectRestPki conecta o Servidor ao REST PKI Core quando já existe uma chave Worker. Ele recusa uma imagem anterior à 1.20.0. Veja Instalação do Servidor.

Melhorias​

  • A confirmação de Revogar diz que uma máquina revogada continua recusada enquanto a linha dela existir, e não mais que a revogação é permanente.
  • Revogar uma máquina que foi removida nesse meio-tempo informa que a máquina não existe mais e fecha o painel de detalhes.

Workstation 1.8.0 (2026-10-22)​

Pacote TrustBridge-Workstation-1.8.0-x64.msi, protocolo 6 das estações de trabalho.

Notas de atualização: distribua-o com o Servidor 1.20.0 ou posterior. O protocolo continua no 6, então o Servidor 1.15.0 ou posterior o admite, mas só o Servidor 1.20.0 aceita um Relatório da Estação de Trabalho maior que 32 KB, e um Servidor anterior encerra a conexão de uma máquina cujo relatório passe disso (uma com muitos tokens, middlewares ou erros). Há duas chaves de configuração novas, cada uma com uma propriedade do MSI, ambas ligadas por padrão: WorkstationReport:Enabled (WORKSTATION_REPORT) e Certificates:RestartFailedReaders (RESTART_FAILED_READERS). Um valor diferente de 0 ou 1 é lido como desligado e registrado como Error. Os modelos de Política de Grupo atualizados trazem Informar a situação desta máquina ao TrustBridge Server e Reiniciar uma leitora de cartão que o Windows não conseguiu iniciar.

Novas funcionalidades​

  • O Relatório da Estação de Trabalho: o Workstation Service informa ao seu Servidor a licença da PKI e o runtime do .NET da máquina, as opções dela, os middlewares que carregou, os tokens e quanto falta para o PIN de cada um ser bloqueado, as leitoras que ficaram com falha e os erros que o Service e o Tray App registraram, agrupados pelo modelo da mensagem. Ele informa depois de cada handshake aceito e de novo pouco depois de qualquer mudança, e um relatório nunca custa à máquina a conexão, as assinaturas nem o Cache de PIN.
  • WorkstationReport:Enabled (propriedade WORKSTATION_REPORT do MSI, ou Política de Grupo) desliga o relatório numa máquina; o Servidor então esquece o que guardava sobre ela.
  • A aba Tokens diz quando o Windows não conseguiu iniciar uma leitora de cartão, onde antes dizia só que nenhum token foi visto.
  • O Workstation Service reinicia uma leitora de cartão USB que o Windows deixou com falha (código de problema 10), até três vezes, e a aba Tokens mostra isso enquanto acontece; só então pede ao titular que desconecte a leitora e a conecte de novo. Ele nunca pede elevação nem reinicia o computador.
  • Certificates:RestartFailedReaders (propriedade RESTART_FAILED_READERS do MSI, ou Política de Grupo) desliga o reinício; a aba Tokens então pede de imediato que a leitora seja reconectada.
  • Conectar um dispositivo USB inicia uma verificação de certificados, então uma leitora que falha ao ser conectada é percebida na hora.

Melhorias​

  • A janela de PIN foi reorganizada: um cabeçalho com os detalhes do pedido logo abaixo, uma faixa laranja que encolhe conforme o prazo se esgota, e a contagem regressiva e os botões no rodapé.
  • Um e-CPF aparece com o nome do titular, e não com o sujeito inteiro, no Pedido de PIN na inserção, na lista de certificados, na aba Tokens, nos balões e no seletor da janela de PIN; o seletor marca um certificado A1, que usa um PIN diferente do token do mesmo titular.
  • O Pedido de PIN na inserção diz uma vez só o que fazer, e mostra o token e a leitora em duas linhas.
  • O Tray App em português mostra (definido por Política de Grupo) quando uma política define a URL do Servidor, como o modelo de Política de Grupo.

Servidor 1.20.0 (2026-10-21)​

Imagem trustbridge-server:1.20.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: SpellThumbprintsUpperCase, RecordWorkstationReports, ReportWorkstationReportingOff, ReportWorkstationTokens, ReportWorkstationFailedReaders, ReportWorkstationMiddleware, ReportWorkstationErrors, KeepTheReportingVersionAndAgeUnlistedErrors, AgeErrorGroupsByTheServersClock)

Notas de atualização: nada muda para uma implantação com SQL Server enquanto ela não pedir: Database:Engine tem o padrão SqlServer, e nenhuma implantação passa de um banco para o outro. SpellThumbprintsUpperCase passa para maiúsculas os thumbprints do Registro de Certificados, do Cofre de Certificados e das Autoridades Certificadoras Confiáveis (a Trilha de Auditoria nunca é reescrita); num banco com collation que diferencia maiúsculas de minúsculas, ela recusa, sem mudar nada, se duas linhas diferirem só nisso, e cita a tabela. O Contrato SignSession não mudou, e a janela de protocolos das estações de trabalho continua 5–6. Novas chaves de configuração: Database:Engine e WorkstationReports:ErrorRetentionDays. Voltar para a 1.19.0 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • O PostgreSQL 16 ou posterior é um segundo banco suportado no Docker, escolhido uma vez por implantação em Database:Engine (SqlServer ou PostgreSql). Uma connection string que só o driver do outro banco lê, ou um valor que não cita nenhum dos dois, recusa a inicialização. No PostgreSQL, o Servidor cria o banco e o schema como faz no SQL Server. Os arquivos de implantação ganham docker-compose.postgresql.yml e POSTGRES_PASSWORD, e os backups usam pg_dump. O App Service continua no Azure SQL. Veja Instalação do Servidor.
  • O Relatório da Estação de Trabalho: o Servidor guarda o que cada máquina informou por último sobre a própria situação e mostra isso numa coluna Relatório da tela Estações de Trabalho, numa seção do painel de detalhes, em dois itens do Painel (uma leitora que ficou com falha, um token bloqueado) e na nova tela Relatórios das Estações de Trabalho, cujas linhas abrem as máquinas correspondentes. Uma máquina numa release do Workstation anterior à 1.8.0 não envia relatório e aparece como Sem relatório.
  • Os grupos de erros informados aos quais nenhum relatório acrescentou nada há WorkstationReports:ErrorRetentionDays dias (30 por padrão) são apagados por uma limpeza diária.
  • A página de login lembra o caminho usado por último neste navegador: com o Acesso com Certificado ligado, um acesso aceito com certificado faz a página abrir direto na página do certificado da próxima vez (cookie TrustBridge.SignInCredential), e uma chave Senha | Certificado digital nas duas páginas fica a um clique.
  • A página do certificado lista os certificados em linhas com titular, emissor, validade e um selo A3 ou A1, uma busca a partir de seis certificados, e os certificados expirados sob um título próprio.

Melhorias​

  • Todas as páginas de quem não está conectado (login, a página do certificado, as duas páginas de segundo fator e acesso negado) são desenhadas como um único cartão no mesmo estilo.
  • O hub das estações de trabalho aceita mensagens de até 1 MB, por causa do Relatório da Estação de Trabalho; todos os outros hubs continuam com 32 KB.
  • Os thumbprints são gravados e procurados em hexadecimal maiúsculo pelo próprio Servidor, e todo instante é gravado em UTC, nos dois bancos.
  • A busca da Trilha de Auditoria encontra o nome de um autor sem diferenciar maiúsculas de minúsculas.
  • Salvar as configurações da plataforma é repetido quando perde uma disputa com outro salvamento, em até três tentativas.
  • A etapa do schema descreve com palavras próprias mais duas falhas: um limite de tempo de comando ou de lock definido no banco, e uma migração que perdeu um lock para outra sessão.

Servidor 1.19.0 (2026-10-20)​

Imagem trustbridge-server:1.19.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: nem o contrato, nem o schema, nem a configuração mudaram, então voltar para a 1.18.0 é só trocar a tag da imagem. A frota não precisa de nada.

Melhorias​

  • O Painel tem um novo layout: três abas (Hoje, Este mês, Últimos 30 dias) escolhem uma frase como Hoje, até agora, foram assinados 11 documentos e 538 hashes. 4 Estações de Trabalho participaram. Documentos e hashes são sempre dois números, nunca somados.
  • O que precisa de você, ao lado da frase, lista a Atividade de assinatura atrasada, as falhas das últimas 24 horas, as estações de trabalho recusadas até se atualizarem, as estações admitidas que não estão conectadas e os certificados que vão expirar, cada item com o mesmo link do chip correspondente na faixa de situação.
  • Os painéis da janela são as etapas por que uma assinatura passa: quem pediu, quanto tempo o titular levou para autorizar, onde ela foi feita e o resultado. A tabela de tempos fica recolhida abaixo deles.
  • A tela Estações de Trabalho tem um filtro Admitidas, desconectadas (?show=admitted-offline), que é o que a linha das estações não conectadas do Painel abre; o filtro Desconectadas também lista as máquinas revogadas.

Correções de bugs​

  • A release oferecida a uma máquina e a última atualização dela ficam em duas linhas na célula Atualizações, em vez de aparecerem coladas.

Workstation 1.7.0 (2026-10-19)​

Pacote TrustBridge-Workstation-1.7.0-x64.msi, protocolo 6 das estações de trabalho.

Notas de atualização: nada muda no Servidor: ele exige o Servidor 1.15.0 ou posterior, como o 1.6.0. Há uma chave de configuração nova, Tray:InsertionPrompt, com a propriedade INSERTION_PROMPT do MSI, ligada por padrão. Os modelos de Política de Grupo atualizados trazem Pedir o PIN do token na inserção, que prevalece sobre o valor do instalador.

Novas funcionalidades​

  • O Pedido de PIN na inserção: um token colocado numa leitora no console pede o PIN ali mesmo, e o que o token aceitar fica no Cache de PIN para todos os certificados dele, então as assinaturas seguintes não precisam de pedido.
  • Ele é oferecido uma vez por token, enquanto o Tray App está conectado ao console, para um token com pelo menos um certificado ACTIVE, que não seja A1, não esteja com o PIN bloqueado e não tenha PIN em cache. A janela mostra o token, a leitora e o titular (e a Empresa) de cada certificado, abre sem tomar o foco do teclado, e tem Agora não e a contagem regressiva de 90 segundos de todo pedido. Um PIN errado é digitado de novo na mesma janela.
  • Ele nunca chega ao Servidor e nunca autoriza uma chamada de assinatura de PIN por transação: essa chamada continua pedindo o PIN no Tray App toda vez.
  • Tray:InsertionPrompt (propriedade INSERTION_PROMPT do MSI, ou Política de Grupo) o desliga numa máquina, mantendo o balão do token.

Melhorias​

  • O Pedido de PIN na inserção cede a vez ao pedido de PIN de uma sessão ou a uma Autorização de assinatura, e é oferecido de novo quando a tela fica livre, se o token ainda estiver inserido e o PIN ainda não estiver em cache. Ele fecha quando o token é retirado, quando o PIN vai para o cache por outro caminho ou quando o Tray App se desconecta.
  • Ele nunca abre atrás da tela de bloqueio: um token inserido com o console bloqueado é oferecido no desbloqueio.
  • Com o Pedido de PIN na inserção ligado, o Tray App não mostra mais o balão de desbloqueio para um token que chega.
  • O Error do log de inicialização para uma opção do registro ilegível cita a chave de configuração que ele passa a ler como desligada.

Servidor 1.18.0 (2026-10-19)​

Imagem trustbridge-server:1.18.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: SignDocumentsWithRestPkiCore, WaiveTheSessionPin)

Notas de atualização: nada muda enquanto um Administrador não ligar uma das chaves novas: toda Aplicação Cliente assina com o Signer, e o pin continua obrigatório em POST /v1/sessions. Há três chaves de configuração novas, opcionais e todas as três ou nenhuma: RestPkiCore:Endpoint, RestPkiCore:ApiKey (de uma aplicação com o papel Worker) e RestPkiCore:SecurityContextId; algumas sem as outras, ou uma malformada, recusa a inicialização. Signing:StrandedAfter agora precisa ser maior que o dobro de Signing:RequestBudget mais Signing:SignerCancelBudget: os padrões atendem a isso, mas uma implantação que a definiu abaixo disso não inicia, e o erro cita a chave. Antes de passar uma aplicação para o REST PKI Core, defina do lado dele o que ele decide (a política de assinatura, a política de marcação de PDF da organização e um contexto de segurança que confie nas ACs dos titulares), e deixe o Servidor acessar tanto o endpoint do REST PKI Core quanto o endereço do site dele. Veja a página de configuração. Voltar para a 1.17.0 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • Assinar documentos com o REST PKI Core: um Administrador liga essa opção numa Aplicação Cliente na tela Aplicações Cliente, e a partir da próxima chamada de assinatura dela o REST PKI Core prepara e conclui cada PDF em torno da assinatura do titular, e guarda o documento assinado. A opção é recusada enquanto o Servidor não tiver a seção RestPkiCore.
  • Nesse caminho as respostas mantêm a forma, o signatureId é o id do documento no REST PKI Core, e GET /v1/signatures/{signatureId}/document busca o documento no REST PKI Core. Os ids gerados pelo Signer continuam sendo buscados no Signer, como antes.
  • As falhas do REST PKI Core chegam com os códigos que já existiam: um certificado que ele recusa é 422 CERT_NOT_ACTIVE, antes de o titular receber o pedido; um PDF que ele não consegue assinar é 422 UNSUPPORTED_DOCUMENT; uma indisponibilidade ou cota esgotada é 502 SIGNER_ERROR; uma chave, papel ou contexto de segurança que ele recusa é 500 INTERNAL_ERROR, com um Error que diz qual; e um documento que ele não tem mais é 422 DOCUMENT_UNAVAILABLE.
  • PIN dispensado na criação: numa Aplicação Cliente com o PIN por transação ligado, uma segunda opção torna o pin opcional em POST /v1/sessions. Uma sessão criada sem ele só é vinculada onde exatamente um certificado pode atendê-la, e, caso contrário, a resposta é 400 INVALID_REQUEST; toda chamada de assinatura nela continua pedindo o PIN ao titular. Desligar o PIN por transação desliga essa opção também.
  • Uma Assinatura de teste segue a forma de assinar da aplicação cuja chave é digitada, e pode ser feita sem digitar o PIN.
  • Novos eventos de auditoria admin.application-document-signer-changed, admin.application-session-pin-waived e admin.application-session-pin-required. Toda linha que uma execução de assinatura grava traz documentSigner, e session.created traz pin: "proven" ou "none".

Melhorias​

  • No caminho do REST PKI Core, um lote executa cada documento da mesma forma, e um documento que falha é o ERROR daquele item, enquanto os outros continuam sendo assinados.
  • Um certificado sem endereço de e-mail pode assinar pelo REST PKI Core; só o Signer exige um.

Servidor 1.17.0 (2026-10-19)​

Imagem trustbridge-server:1.17.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: CountSettledSigningActivity, SetTheSignatureAllowancePerClientApplication, FoldSigningTimingHistograms, ConstrainSigningActivity)

Notas de atualização: Sessions:SignatureAllowance não é mais lida, então uma implantação que a define fica com sessões sem limite depois desta atualização até um Administrador definir o valor em cada Aplicação Cliente que precisar de um: nada leva o valor da chave adiante. Logo depois de atualizar, defina a Franquia de Assinaturas na tela Aplicações Cliente para cada aplicação cujas sessões ela limitava, e depois remova a chave; um Servidor que ainda a encontra definida inicia, com um Warning. Há uma chave de configuração nova, Dashboard:TimeZone (padrão UTC), o fuso IANA cuja meia-noite começa um dia do Painel; um fuso que o Servidor não encontra, ou um id de fuso do Windows, recusa a inicialização. A primeira inicialização conta a Atividade de assinatura sobre toda a Trilha de Auditoria, e a limpeza da auditoria não apaga nada até isso terminar. O contrato não mudou. Voltar para a 1.16.0 exige o backup do banco feito antes da atualização. Veja a página de configuração.

Novas funcionalidades​

  • Franquia de Assinaturas por Aplicação Cliente: um Administrador a define, altera ou remove pelo cartão da aplicação na tela Aplicações Cliente. Toda Sessão de Assinatura que a aplicação criar depois fica Esgotada depois desse número de chamadas de assinatura; uma sessão que já existe mantém a franquia que recebeu. Um campo vazio significa sem limite, e zero ou menos é recusado.
  • O console administrativo abre num Painel, /admin/dashboard: documentos assinados e hashes assinados, nunca somados, e as estações de trabalho que assinaram, hoje, neste mês e desde a instalação, com uma tendência de 30 dias e o momento até o qual os números estão consolidados.
  • A Atividade de assinatura é contada a partir da Trilha de Auditoria, alguns minutos atrás, sem deixar nenhuma assinatura mais lenta, e não identifica nenhum titular. As Assinaturas de teste são contadas à parte. Uma contagem atrasada avisa isso no Painel e na faixa de situação.
  • O Painel mostra os tempos aproximados de p50 e p95 de cada etapa da assinatura e da espera da Autorização de assinatura, e painéis sobre uma janela escolhida (Hoje, Este mês ou Últimos 30 dias): falhas por código, Aplicações Cliente, custódia, o minuto mais movimentado e a frota admitida.
  • Novo evento de auditoria admin.application-signature-allowance-changed.

Melhorias​

  • A contagem de assinaturas da faixa de situação lê a Atividade de assinatura, então conta documentos e hashes de fato assinados, e não Operações de Assinatura iniciadas.
  • Toda chamada de assinatura é cronometrada, qualquer que seja o valor de Diagnostics:ServerTiming, que agora decide só se o header Server-Timing é enviado; os tempos são gravados no details das linhas de auditoria signing.completed/failed e hash-signing.completed/failed.

Servidor 1.16.0 (2026-10-18)​

Imagem trustbridge-server:1.16.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: nem o contrato nem o schema mudaram, então voltar para a 1.15.0 é só trocar a tag da imagem. A configuração da Assinatura de teste mudou: TestSignature:Cpfs, ApiKey, FallbackEmail, Turnstile:SiteKey e Turnstile:SecretKey não são mais lidas, e TestSignature:Timeout passa a se chamar TestSignature:MaxTimeout. Uma implantação que ainda define alguma delas inicia, com um Warning que as cita. Remova-as e revogue a chave que TestSignature:ApiKey guardava na tela Aplicações Cliente: ela continua sendo uma chave válida da Aplicação Cliente dela. TestSignature:MaxTimeout e TestSignature:LoopbackAddress agora são verificadas na inicialização mesmo com a página pública desligada, então um valor inválido que antes era ignorado recusa a inicialização.

Novas funcionalidades​

  • A Assinatura de teste é feita com a chave que quem a pede digita: /test-signature pede o CPF, o PIN, um CNPJ opcional, a chave de API de uma Aplicação Cliente, um endereço de e-mail alternativo opcional e um timeout, limitado por TestSignature:MaxTimeout (no máximo uma hora). A lista de CPFs e a verificação do Cloudflare Turnstile foram removidas.
  • O console administrativo tem uma página própria de Assinatura de teste, /admin/test-signature, em Sistema, sempre disponível para os Administradores, qualquer que seja o valor de TestSignature:Enabled; um Auditor vê se a página pública está ligada, e nenhum formulário.
  • Uma Assinatura de teste tem as próprias linhas na Trilha de Auditoria: novos eventos test_signature.completed, test_signature.failed (com a etapa) e test_signature.refused (com o motivo). Elas nunca trazem o PIN nem a chave.
  • Uma Assinatura de teste funciona para uma Aplicação Cliente com o PIN por transação ligado.

Melhorias​

  • A página de Assinatura de teste mostra que está aguardando e desiste depois do timeout digitado mais uma margem, ou com Esc, apagando o PIN e a chave.
  • O documento de teste assinado traz os dados públicos do certificado que assinou, com a cadeia, no idioma da página, e nada sobre a implantação.
  • Uma Assinatura de teste que falha cita a etapa: sessão, certificado, documento, assinatura, Signer, timeout ou loopback.

Correções de bugs​

  • Excluir uma Versão da Estação de Trabalho não esgota mais o tempo num banco Azure SQL pequeno (Basic, 5 DTU): a exclusão tem o mesmo prazo de 10 minutos do upload, e a tela avisa que a exclusão começou e pode levar alguns minutos.
  • O menu administrativo abre em qualquer largura na tela de Assinatura de teste.
  • O título de uma página não mostra mais um contorno de foco depois de uma navegação.

Workstation 1.6.0 (2026-10-18)​

Pacote TrustBridge-Workstation-1.6.0-x64.msi, protocolo 6 das estações de trabalho.

Notas de atualização: exige o Servidor 1.15.0, e o Servidor vai primeiro: um Servidor anterior à 1.15.0 recusa esta release no handshake com update the Server first, não entrega a licença à máquina, e todos os certificados dela aparecem como UNTRUSTED. O Servidor 1.15.0, por sua vez, recusa o Workstation 1.4.x, então uma frota ainda na 1.4.x passa para a 1.5.0 antes da atualização do Servidor, e para esta release depois dela. Os PINs em cache, os PINs do Certificado A1 e a admissão da máquina são mantidos, e nenhuma propriedade do MSI ou configuração mudou. Voltar para a 1.5.0 exige antes uma desinstalação completa, o que faz a máquina pedir admissão de novo.

Novas funcionalidades​

  • PIN por transação: para uma Aplicação Cliente que o tem ligado, o Tray App pede o PIN ao titular a cada chamada de assinatura, com o título Uma transação de assinatura precisa do seu PIN. Ele mostra a Aplicação Cliente que está pedindo e o que ela vai assinar: o número de hashes, ou o número de documentos e os cinco primeiros nomes. Os botões são Autorizar e Recusar.
  • O PIN de um token digitado ali é verificado pelo token, e o de um A1, contra o PIN do Certificado A1; um PIN errado é digitado de novo na mesma janela. O PIN aceito fica em memória só para aquela chamada, e nunca vem do Cache de PIN nem vai para ele.
  • A aba Serviço do Tray App tem um botão Trocar de Servidor…, que abre o próprio diálogo de manutenção do pacote instalado para apontar a máquina para outro Servidor. Quando uma política define a URL, o botão fica desativado e o endereço aparece com (definido por Diretiva de Grupo).
  • Apontar a máquina para um novo endereço de Servidor não reinstala mais os arquivos do pacote, então funciona numa máquina cujo MSI foi apagado por uma atualização entregue pelo Servidor.

Melhorias​

  • O runtime incluído é o .NET 10.0.13, posterior aos alertas de segurança de outubro de 2026.
  • O modelo de Política de Grupo em português diz "Política de Grupo" e "política", como o Windows pt-BR.

Servidor 1.15.0 (2026-10-18)​

Imagem trustbridge-server:1.15.0, aceita os protocolos 5–6 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migração: RequireThePinPerTransaction)

Notas de atualização: antes de atualizar, procure na tela Estações de Trabalho alguma máquina admitida ainda no Workstation 1.4.x e atualize-a para a 1.5.0: este Servidor recusa o protocolo 4 no handshake. Depois, atualize o Servidor e faça upload do Workstation 1.6.0. Uma máquina na 1.5.0 continua atendendo todas as sessões como antes, mas nunca é escolhida para uma sessão de PIN por transação, então só ligue o PIN por transação numa Aplicação Cliente quando as máquinas dos titulares dela já rodarem a 1.6.0. Integradores: um pin enviado numa chamada de assinatura, que os Servidores anteriores ignoravam, agora é recusado com 400 INVALID_REQUEST, a menos que a sessão seja de PIN por transação "client". Novas chaves de configuração: Signing:AuthorizationTimeout, Signing:MaxPendingAuthorizations e Diagnostics:ServerTiming; nenhuma foi renomeada ou removida. Voltar para a 1.14.1 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • PIN por transação: um Administrador pode configurar uma Aplicação Cliente para exigir o PIN do titular em toda chamada de assinatura, na tela Aplicações Cliente. Isso vale para as sessões que a aplicação criar depois.
  • POST /v1/sessions e GET /v1/sessions/status respondem transactionPin: null, "workstation" (o titular autoriza cada chamada no Tray App) ou "client" (um Certificado do Cofre: o cliente envia pin em cada chamada). A tela Sessões de Assinatura mostra esse valor.
  • POST /v1/signatures, /signatures/batch e /signatures/hashes aceitam um pin opcional, obrigatório numa sessão "client" e recusado em todas as outras.
  • Numa sessão "workstation", cada chamada de assinatura abre uma Autorização de assinatura na máquina vinculada; um lote pede uma vez só. Um pedido recusado, sem resposta ou que não pôde ser entregue responde 422 PIN_NOT_AVAILABLE com uma palavra em details, e nada chega ao serviço de assinatura.
  • Novos eventos de auditoria admin.application-transaction-pin-enabled, admin.application-transaction-pin-disabled, signing.authorization-requested, signing.authorization-granted e signing.authorization-refused.
  • Com Diagnostics:ServerTiming ligado (desligado por padrão; deixe-o desligado em produção), as respostas do contrato trazem um header Server-Timing que mostra onde o tempo da chamada foi gasto.

Melhorias​

  • Protocolo 6 das estações de trabalho; o protocolo 4 sai da janela.
  • Uma máquina mantém no máximo Signing:MaxPendingAuthorizations chamadas esperando o titular (2 por padrão); a seguinte responde 422 PIN_NOT_AVAILABLE com too many calls waiting.
  • Signing:AuthorizationTimeout (60 s, no máximo dez minutos) limita a espera pelo titular, fora de Signing:RequestBudget.
  • Uma chamada por transação espera por uma máquina que se ausentou por pouco tempo, dentro de Signing:WorkstationReconnectGrace, antes de o titular receber o pedido.
  • Para uma Aplicação Cliente com o PIN por transação ligado, a criação de sessão ignora as máquinas no protocolo 5, com um Warning que cita cada uma.
  • Uma sessão "client" não guarda senha entre as chamadas, então sobrevive a um reinício do Servidor e volta a assinar com o pin da chamada seguinte.

Servidor 1.14.1 (2026-10-15)​

Imagem trustbridge-server:1.14.1, aceita os protocolos 4–5 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: nem a API nem a configuração mudaram; basta trocar a tag da imagem. Um console administrativo servido em inglês não vê diferença.

Melhorias​

  • O console administrativo em português diz "Política de Grupo" e "política", como o Windows pt-BR, no lugar de "Diretiva de Grupo" e "diretiva": a tela Estações de Trabalho mostra Atualizações desativadas por política, e não mais Atualizações desativadas por diretiva.
  • A coluna Assunto da Trilha de Auditoria passa a se chamar Objeto: ela mostra o objeto do registro (uma sessão, um documento, uma chave de API, uma máquina).
  • O modelo de Política de Grupo em português recebe a mesma mudança, mas é distribuído com os modelos da Estação de Trabalho e chega ao domínio com a próxima release dela, e não com esta imagem.

Servidor 1.14.0 (2026-10-14)​

Imagem trustbridge-server:1.14.0, aceita os protocolos 4–5 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: RecordTheVaultChainsEncodings, GrantHashSigningPerClientApplication)

Notas de atualização: o protocolo das estações de trabalho não mudou, então a frota não precisa de nada e o Workstation 1.5.0 continua sendo o atual. Uma Aplicação Cliente que não recebeu a Assinatura de hash não vê diferença além dos novos membros certificate e chain. Há oito chaves de configuração novas em TestSignature:, e o recurso vem desligado por padrão. Voltar para a 1.13.0 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • Assinatura de hash: POST /v1/signatures/hashes assina hashes que o próprio cliente calculou e responde assinaturas PKCS#1 v1.5 brutas, na ordem, no modo tudo ou nada. Ela fica desligada para todas as Aplicações Cliente até um Administrador concedê-la na tela Aplicações Cliente; quem chama sem a concessão é recusado com 403 HASH_SIGNING_NOT_GRANTED.
  • POST /v1/sessions e GET /v1/certificates/info respondem o certificate vinculado (DER, base64) e a chain dele, do emissor mais próximo para o mais distante. Um Certificado de Estação de Trabalho continua respondendo chain: [].
  • A Assinatura de teste: com TestSignature:Enabled ligado, a página inicial (Landing Page) pode fazer uma assinatura real, de ponta a ponta, pelo navegador. (Refeita na 1.16.0.)
  • Novos eventos de auditoria admin.application-hash-signing-granted, admin.application-hash-signing-revoked, hash-signing.digest-signed, hash-signing.completed e hash-signing.failed.

Melhorias​

  • O Acesso com Certificado tem uma página própria, /admin/login/certificate, aberta por um botão na página de login; a página de login não traz mais o script nem a licença do Web PKI. Com Admin:CertificateSignIn:Required ligado, a página de login encaminha todo visitante para ela.
  • A requisição do desafio do certificado desiste depois de trinta segundos, e o tempo de vida de um desafio é contado pelo relógio do Servidor.
  • A barra superior do console administrativo ficou compacta: a troca de idioma e o menu da conta viraram um botão cada, e a versão foi para o menu de navegação lateral.
  • Uma gravação na Trilha de Auditoria não pode mais ser cancelada e tem um limite próprio de quinze segundos, então fechar uma aba no meio de uma requisição não dispara mais um falso alerta de fallback da auditoria.
  • Só uma indisponibilidade do banco de dados aparece como não foi possível acessar o banco de dados numa tela administrativa.
  • O banner de licença recusada continua correto depois de uma renovação recusada: as máquinas que já estão rodando continuam assinando até o Workstation Service delas reiniciar.
  • A imagem passa para o .NET 10.0.13, posterior aos alertas de segurança de outubro de 2026.

Correções de bugs​

  • Um anúncio de certificado cujo thumbprint não tenha 40 ou 64 dígitos hexadecimais é recusado.

Workstation 1.5.0 (2026-10-04)​

Pacote TrustBridge-Workstation-1.5.0-x64.msi, protocolo 5 das estações de trabalho.

Notas de atualização: exige o Servidor 1.13.0; atualize o Servidor e a frota juntos. Um Servidor mais antigo recusa esta release no handshake. Os PINs em cache e os PINs do Certificado A1 definidos na 1.4.x são mantidos, e nenhuma propriedade do MSI ou configuração mudou.

Novas funcionalidades​

  • Certificados e-CNPJ são lidos, anunciados com a Empresa a um Servidor que os aceita e usados para assinar as Sessões de Assinatura de uma Empresa.
  • CNPJs alfanuméricos são aceitos.
  • A lista e o detalhe de certificados do Tray App mostram a Empresa de um e-CNPJ, e o pedido de PIN de uma sessão de Empresa mostra qual Empresa está sendo autorizada.
  • Com um Servidor que não aceita e-CNPJ, o Tray App mostra o certificado como não anunciado, com o motivo.

Melhorias​

  • O PIN não chega mais a esta máquina: o Service responde ao desafio do Servidor com uma Prova de PIN (PIN Proof) calculada sobre o PIN em cache ou o PIN do Certificado A1, e é o Servidor que decide se ela confere.
  • Um PIN digitado no pedido do Tray App continua sendo verificado localmente contra o token ou o PIN do Certificado A1; o pedido então aguarda o veredito do Servidor e fecha quando o timeout de pedido de PIN do Servidor se esgota.
  • O tempo de vida de um PIN em cache é renovado quando o Servidor vincula uma sessão a esta máquina.

Servidor 1.13.0 (2026-10-04)​

Imagem trustbridge-server:1.13.0, aceita os protocolos 4–5 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: RegisterACompanysCnpj, HoldACompanysCnpjInTheVault, KeyASessionByItsCompany, BudgetAMachinesFailedPinProofs, BudgetTheVaultsFailedUnlocks)

Notas de atualização: atualize o Servidor e a frota juntos e faça upload do Workstation 1.5.0 junto com esta atualização. Um titular cujas máquinas ainda rodam todas o Workstation 1.4.x recebe 422 WORKSTATION_OFFLINE até uma delas ser atualizada, e o Workstation 1.3.0 ou anterior é recusada. Nenhuma chave de configuração foi adicionada, renomeada ou removida. Voltar para a 1.12.0 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • Suporte a e-CNPJ: POST /v1/sessions aceita um cnpj opcional; uma sessão assim só se vincula ao e-CNPJ dessa Empresa e assina com ele, e as respostas só trazem cnpj quando ele se aplica.
  • O Cofre de Certificados importa certificados e-CNPJ e registra a Empresa deles.
  • As telas de certificados, Certificados do Cofre, sessões e Trilha de Auditoria mostram a Empresa quando há uma.
  • Novo evento de auditoria pin.proof-budget-spent.

Melhorias​

  • Protocolo 5 das estações de trabalho: as Provas de PIN substituem o envio do PIN às estações de trabalho; o Servidor desafia todas as máquinas candidatas ao mesmo tempo, dentro de Sessions:PinRelayTimeout, e verifica ele mesmo cada prova.
  • As Provas de PIN com falha de cada estação de trabalho para um titular são limitadas por Sessions:MaxPinFailures dentro de Sessions:PinFailureWindow; acima do limite, a máquina é ignorada para aquele CPF até as falhas expirarem.
  • As senhas do Cofre de Certificados que não abrem nada são limitadas da mesma forma, e um limite esgotado responde PIN_NOT_AVAILABLE com uma frase em details.
  • Uma criação de sessão bem-sucedida não zera mais as falhas de bloqueio de um CPF; elas expiram com a janela.
  • INVALID_PIN agora significa que todas as candidatas deram uma prova e nenhuma conferiu com o PIN enviado.
  • Quando Sessions:PinPromptTimeout se esgota, o pedido de PIN do Tray App é retirado na hora.
  • A página de login do console administrativo lista só certificados e-CPF.
  • Os chips da faixa de situação levam às telas que resumem.

Servidor 1.12.0 (2026-10-03)​

Imagem trustbridge-server:1.12.0, aceita os protocolos 3–4 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migração: RecordWhoSetABoundCpf)

Notas de atualização: uma implantação que desliga as senhas precisa de pelo menos dois Administradores, porque ninguém pode definir o próprio CPF vinculado. Voltar para a 1.11.0 exige o backup do banco feito antes da atualização.

Melhorias​

  • Um Administrador define ou substitui o CPF vinculado de outra conta (Definir CPF vinculado, ou no formulário de nova conta), só com Admin:CertificateSignIn:Enabled ligado e nunca na própria conta.
  • Vincular o próprio certificado pela tela da conta foi removido; não é mais preciso ligar as senhas para uma primeira vinculação.
  • A tela de contas mostra o CPF vinculado completo de cada conta a Administradores e Auditores; o dono o vê somente para leitura, com quem o definiu e quando.
  • Substituir um CPF vinculado encerra as sessões por certificado dessa pessoa em até cinco minutos.
  • Auditoria: novo admin.account-bound-cpf-set; admin.account-bound-cpf-cleared agora traz o CPF; admin.bound-cpf-enrolled não é mais gravado.
  • Definir e remover um CPF vinculado são repetidos em caso de deadlock no banco.

Workstation 1.4.2 (2026-10-02)​

Pacote TrustBridge-Workstation-1.4.2-x64.msi, protocolo 4 das estações de trabalho.

Notas de atualização: uma máquina na 1.4.0 ou na 1.4.1 pode receber esta release do seu Servidor; uma máquina na 1.3.0 ou anterior precisa de instalação manual ou por Política de Grupo.

Correções de bugs​

  • Um certificado A3 com lista de extensões indecifrável não esconde mais os certificados de todos os tokens; só esse certificado é ignorado, com um Warning que o identifica.
  • O log do Service cita cada certificado que sai do inventário.
  • Um pedido de PIN pendente não pode mais imprimir o PIN caso seja formatado para um log.
  • A ausência de âncoras de confiança configuradas é informada como tal, e não como um problema de licença.

Servidor 1.11.0 (2026-10-02)​

Imagem trustbridge-server:1.11.0, aceita os protocolos 3–4 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: BindCpfToAdminAccounts, RenameEnrolledAtToFirstSeenAt)

Notas de atualização: a coluna Workstations.EnrolledAt passa a se chamar FirstSeenAt, então uma consulta ou relatório sobre ela precisa mudar. Uma implantação Docker atrás do próprio proxy reverso deve trocar ASPNETCORE_FORWARDEDHEADERS_ENABLED=true por ForwardedHeaders:TrustedProxies. Voltar para a 1.10.0 exige o backup do banco feito antes da atualização.

Novas funcionalidades​

  • Acesso com Certificado: Administradores e Auditores podem entrar no console administrativo com um e-CPF ICP-Brasil pelo Lacuna Web PKI; desligado por padrão (Admin:CertificateSignIn:Enabled, que exige Admin:CertificateSignIn:WebPkiLicense).
  • A conta é vinculada pelo CPF, não pelo certificado, então um certificado renovado continua funcionando.
  • Admin:CertificateSignIn:Required desliga o login por senha; uma conta sem CPF vinculado passa a não conseguir entrar.
  • O Web PKI é servido pelo próprio Servidor, então uma implantação isolada da rede (air-gapped) funciona.
  • A tela de Autoridades Certificadoras Confiáveis conta os administradores que entram com certificado de cada autoridade.
  • Nova configuração ForwardedHeaders:TrustedProxies: X-Forwarded-For e X-Forwarded-Proto só são considerados quando vêm dos proxies listados, e uma lista malformada recusa a inicialização.
  • POST /v1/signatures responde o fileName do documento que assinou, e o lote identifica cada item pela mesma regra.
  • Novos eventos de auditoria admin.certificate-sign-in, admin.certificate-sign-in-refused e admin.account-bound-cpf-cleared.

Melhorias​

  • certificate.encoding-dropped e certificate.announcement-refused gravam uma linha de auditoria por snapshot, com detalhes { count, entries: [...] }; as linhas gravadas antes mantêm os campos planos.
  • certificate.inserted registra encodingVerified.
  • O limite por endereço da admissão conta um endereço IPv6 pelo seu /64.
  • O SignSession Contract tem uma nova especificação normativa, escrita a partir deste Servidor, e a lista de divergências em relação à implementação de referência foi retirada.

Correções de bugs​

  • POST /v1/signatures/batch sem sessionId responde 400 INVALID_REQUEST em vez de 401 SESSION_EXPIRED.
  • ClockOffset numa recusa por relógio agora é sempre agora − IssuedAt (positivo quando a máquina está atrasada); revise um ClockSkewTolerance ajustado a partir de valores de log antigos.
  • Um certificado cujos campos do titular não podem ser lidos é recusado (422 CERT_INCOMPLETE_IDENTITY ao assinar), em vez de passar pela verificação do titular.
  • Um anúncio sem a codificação do certificado não consegue mais reescrever o titular de um certificado verificado.
  • Atrás de um proxy TLS, o redirecionamento para o login não aponta mais para http://.
  • Sair do console verifica o token antiforgery.
  • O cookie administrativo só é avaliado nos caminhos administrativos.
  • Um acesso com certificado pela metade é descartado quando a conta cadastra um Segundo Fator em outro lugar, e as etapas de código recusam uma conta sem fator.
  • Uma recusa por relógio no caminho da admissão é registrada na máquina correspondente.
  • Uma inicialização recusada por banco inacessível informa quanto tempo de fato esperou.
  • A ausência de âncoras de confiança configuradas é informada como tal, e não como um problema de licença.
  • Uma alteração de conta administrativa que sofre deadlock no banco é repetida, em vez de mostrar uma tela de erro.
  • Comandos e respostas que contêm um segredo são mascarados quando impressos.

Servidor 1.10.0 (2026-09-29)​

Imagem trustbridge-server:1.10.0, aceita os protocolos 3–4 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migração: RecordValidatedChain)

Notas de atualização: voltar para a 1.9.0 exige o backup do banco feito antes da atualização: a 1.9.0 recusa o banco migrado e não consegue resgatar um Código de Recuperação que esta release já transformou em hash.

Melhorias​

  • Os Códigos de Recuperação são guardados como hash; os códigos existentes são convertidos em segundo plano na inicialização e continuam funcionando.
  • Cada Certificado do Cofre registra a cadeia montada na sua última validação, então a contagem de remoção de uma Autoridade Certificadora Confiável intermediária é exata para o cofre depois da primeira revalidação horária.
  • A tela do Cofre de Certificados mostra o aviso sobre a senha de importação sob demanda (Sobre a senha de importação).

Correções de bugs​

  • Uma recusa estruturada do Signer é tratada como recusa: um 400 ou 403 estruturado responde 422 SIGNER_REJECTED, e um 404 estruturado no download do documento responde 404 DOCUMENT_NOT_FOUND, em vez de 502 SIGNER_ERROR.
  • Uma tela administrativa com falha não quebra mais o restante do console até a página ser recarregada.

Workstation 1.4.1 (2026-09-28)​

Pacote TrustBridge-Workstation-1.4.1-x64.msi, protocolo 4 das estações de trabalho.

Melhorias​

  • Mesmo código da 1.4.0, lançado para que uma máquina na 1.4.0 tenha uma release mais nova para receber do seu Servidor.

Workstation 1.4.0 (2026-09-28)​

Pacote TrustBridge-Workstation-1.4.0-x64.msi, protocolo 4 das estações de trabalho.

Notas de atualização: exige o Servidor 1.9.0; atualize o Servidor primeiro. Esta release é instalada manualmente ou por Política de Grupo. Os modelos de Política de Grupo atualizados trazem Receber atualizações do Servidor TrustBridge (ServerUpdates), ligada a menos que desabilitada.

Novas funcionalidades​

  • Atualizações entregues pelo Servidor: o Service baixa a release que o Servidor oferece, a verifica (hash, assinatura Authenticode e carimbo de tempo, Publisher Pin, revogação, produto e versão), instala num momento ocioso e informa o resultado.
  • A política ServerUpdates desliga as atualizações entregues pelo Servidor numa máquina.

Correções de bugs​

  • A aba Log para de receber o log do serviço numa sessão que deixa o console.
  • A aba Log volta a acompanhar o log do serviço depois que o Service reinicia.
  • Atualizar ou ler o status com o Service parado desiste após dez segundos, em vez de esperar para sempre.
  • A aba Tokens marca a lista quando ela pode estar desatualizada.

Servidor 1.9.0 (2026-09-27)​

Imagem trustbridge-server:1.9.0, aceita os protocolos 3–4 das estações de trabalho.

Atualiza modelo do banco de dados: sim (migrações: WorkstationReleases, WorkstationReleaseOffers)

Notas de atualização: as máquinas no Workstation 1.0.x (protocolo 2) são recusadas depois desta atualização, então atualize-as antes; a tela Estações de Trabalho mostra a versão de cada máquina. O upload de uma Versão da Estação de Trabalho exige o diretório temporário gravável /tmp/trustbridge-releases.

Novas funcionalidades​

  • Tela Versões da Estação de Trabalho: um Administrador faz upload de um MSI da Estação de Trabalho assinado, de até 256 MB, e o Servidor lê do arquivo a versão, o protocolo e o signatário.
  • As versões são oferecidas às máquinas e retiradas delas na tela Estações de Trabalho, que mostra Atualizações desativadas por diretiva, Precisa de atualização manual e as instalações que falharam.
  • As máquinas baixam a versão oferecida por GET /workstations/releases/{version}, com retomada e um limite próprio, WorkstationReleases:MaxConcurrentDownloads (padrão 20).
  • Uploads, ofertas, retiradas e o resultado da atualização de cada máquina são auditados.

Workstation 1.3.0 (2026-09-26)​

Pacote TrustBridge-Workstation-1.3.0-x64.msi, protocolo 3 das estações de trabalho.

Novas funcionalidades​

  • Uma aba Tokens no Tray App mostra cada token que o Service vê: o middleware, o estado, se há PIN armazenado e os certificados.
  • A aba Tokens identifica uma leitora com um cartão que nenhum middleware instalado lê, ou um cartão que não responde.
  • Depois de uma instalação ou atualização, o Service inicia o Tray App em todas as sessões do Windows com usuário conectado.
  • O pacote traz o Publisher Pin e declara o protocolo que usa, para as atualizações entregues pelo Servidor.

Correções de bugs​

  • Os avisos do próprio Tray App aparecem na aba Log, ao lado dos do Service.
  • Um módulo PKCS#11 que não carrega é informado como falho, com o motivo.

Workstation 1.2.2 (2026-09-25)​

Pacote TrustBridge-Workstation-1.2.2-x64.msi, protocolo 3 das estações de trabalho.

Correções de bugs​

  • Atualiza a 1.2.0 in-place: o mesmo produto assinado da 1.2.1, com um runtime .NET não mais antigo que o da 1.2.0.

Workstation 1.2.1 (2026-09-25)​

Retirada: o pacote trazia um runtime .NET mais antigo que o da 1.2.0, e uma atualização a partir da 1.2.0 deixava o Service sem conseguir iniciar. Use a 1.2.2.

Melhorias​

  • O MSI e todos os executáveis e bibliotecas do TrustBridge nele são assinados por LACUNA SOFTWARE LTDA, com carimbo de tempo.

Workstation 1.2.0 (2026-09-24)​

Pacote TrustBridge-Workstation-1.2.0-x64.msi, protocolo 3 das estações de trabalho. O Servidor 1.8.0 é o recomendado.

Novas funcionalidades​

  • Um Certificado A1 pode assinar: o titular define um PIN do Certificado A1 no Tray App, e o PIN de um cliente é verificado contra ele; o Service guarda só um verificador.

Melhorias​

  • O Service envia um ping ao Servidor a cada 5 segundos, então, com o Servidor 1.8.0, uma conexão perdida é percebida em até 15 segundos.
  • A coluna de PIN do Tray App diz "Armazenado" em vez de "Em cache".

Correções de bugs​

  • A digitação do PIN acompanha a sessão de console quando a máquina é acessada pela Área de Trabalho Remota.
  • Um Certificado A1 não recebe mais o pedido de PIN de token.

Servidor 1.8.0 (2026-09-24)​

Imagem trustbridge-server:1.8.0, aceita os protocolos 2–3 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: a nova Workstations:ClientTimeout tem padrão de 30 segundos; mantenha esse valor até todas as máquinas rodarem o Workstation 1.2.0 ou posterior.

Novas funcionalidades​

  • Uma estação de trabalho que cai sem fechar a conexão aparece offline mais cedo, e uma linha online mostra quando a máquina se conectou.
  • As linhas de auditoria workstation.disconnect trazem o motivo do fim da conexão.
  • O chip de falhas da faixa de situação abre a Trilha de Auditoria filtrada por essas falhas.

Correções de bugs​

  • Revogar uma máquina ou devolvê-la à fila também fecha as conexões mais antigas e deslocadas dela.
  • O handshake relê a admissão da máquina, então uma máquina revogada no meio do handshake é desconectada.
  • Buscas sobrepostas na Trilha de Auditoria não misturam mais os resultados.
  • O chip de implantação da barra do aplicativo ficou legível.

Workstation 1.1.0 (2026-09-23)​

Pacote TrustBridge-Workstation-1.1.0-x64.msi, protocolo 3 das estações de trabalho.

Notas de atualização: exige o Servidor 1.7.0; atualize o Servidor primeiro. A licença da PKI agora vem do Servidor: a propriedade PKI_LICENSE do MSI e a política PkiLicense foram removidas, e um PKI_LICENSE na linha do msiexec é ignorado.

Novas funcionalidades​

  • A máquina recebe a licença da PKI do Servidor a cada conexão.
  • O Tray App diz por que uma máquina está sem licença e o que resolve.

Melhorias​

  • A nota de PIN armazenado diz que a máquina guarda o PIN criptografado para evitar que o token seja bloqueado.

Correções de bugs​

  • O MSI não instala mais o arquivo de configuração de desenvolvimento do Service, e uma atualização o remove.

Servidor 1.7.0 (2026-09-23)​

Imagem trustbridge-server:1.7.0, aceita os protocolos 2–3 das estações de trabalho.

Atualiza modelo do banco de dados: não

Notas de atualização: Certificates:Validation:License agora é obrigatória em toda implantação, com ou sem o Cofre de Certificados; defina-a antes de atualizar, ou o Servidor recusa a inicialização.

Novas funcionalidades​

  • O Servidor entrega a sua licença da PKI a cada máquina admitida no handshake; renová-la é trocar o valor e reiniciar o Servidor.
  • Uma licença da PKI que o SDK recusa é registrada como Critical e mostrada num banner em todas as páginas administrativas.

Correções de bugs​

  • Criações de sessão simultâneas para o mesmo CPF esperam a vez em vez de falhar com 500.

Workstation 1.0.1 (2026-09-21)​

Pacote TrustBridge-Workstation-1.0.1-x64.msi, protocolo 2 das estações de trabalho.

Correções de bugs​

  • O Tray App se conecta ao Workstation Service instalado, que na 1.0.0 ele recusava como não legítimo.

Workstation 1.0.0 (2026-09-21)​

Pacote TrustBridge-Workstation-1.0.0-x64.msi, protocolo 2 das estações de trabalho.

Novas funcionalidades​

  • Primeira release da linha da Estação de Trabalho: o Workstation Service e o Tray App num único MSI, com modelos de Política de Grupo. O pacote não é assinado, então o Windows exibe um aviso na instalação.

Servidor 1.6.1 (2026-09-16)​

Atualiza modelo do banco de dados: não

Correções de bugs​

  • O arquivo de log e o Application Insights respeitam Logging:LogLevel.

Servidor 1.6.0 (2026-09-16)​

Atualiza modelo do banco de dados: não

Novas funcionalidades​

  • O log do Servidor também vai para um arquivo diário com rotação (Logging:File:Directory, Logging:File:RetainedDays) e, opcionalmente, para o Application Insights (Logging:ApplicationInsights:ConnectionString).
  • Uma tela Log do Servidor no console administrativo.

Servidor 1.5.0 (2026-09-11)​

Atualiza modelo do banco de dados: sim (migração: KeepBagChainCertificates)

Novas funcionalidades​

  • O Servidor pode buscar um emissor ausente por AIA; nada é guardado até um Administrador confirmar.
  • Um Certificado do Cofre UNTRUSTED oferece confiar no seu emissor.
  • Uma importação no cofre guarda os certificados de AC que o arquivo PKCS#12 trazia.
  • O upload de Autoridades Certificadoras Confiáveis aceita pacotes PKCS#7 (.p7b).

Correções de bugs​

  • Um certificado com extensão Basic Constraints corrompida é tratado como não sendo AC, e o upload registra um Warning para cada certificado que ignora.
  • A confirmação de remoção diz que as contagens são aproximadas.

Servidor 1.4.0 (2026-08-31)​

Atualiza modelo do banco de dados: sim (migração: WorkstationTrustedCaReport)

Novas funcionalidades​

  • A página da frota mostra se cada máquina tem as Autoridades Certificadoras Confiáveis atuais do Servidor e, se não tem, por quê.
  • Remover uma Autoridade Certificadora Confiável conta os Certificados de Estação de Trabalho afetados, além dos Certificados do Cofre.

Servidor 1.3.0 (2026-08-28)​

Atualiza modelo do banco de dados: sim (histórico de migrações substituído por um único InitialCreate)

Notas de atualização: um banco criado pela 1.2.0 ou anterior é recusado; apague-o e deixe o Servidor criar um novo. Audit:FallbackLogPath foi removida: uma entrada de auditoria que o banco recusa vai para o log do Servidor como Critical.

Novas funcionalidades​

  • Admissão de estações de trabalho: a máquina cria uma chave não exportável e aguarda na fila de admissão até um Administrador admiti-la; o Enrollment Token deixou de existir.
  • Uma Autoridade Certificadora Confiável adicionada no Servidor chega a todas as máquinas admitidas em segundos.
  • Um throttling global responde 429 SERVER_BUSY (Throttle:ConcurrencyLimit, Throttle:QueueLimit).
  • GET /healthz informa se o Servidor e o banco de dados estão funcionando.
  • Uma Operação de Assinatura que ficou Pendente por um processo interrompido é encerrada por uma varredura (RUN_STRANDED).
  • Sessões de Assinatura e Chaves de API abrem a própria trilha na Trilha de Auditoria, e uma sessão mostra quanto já gastou da sua Franquia de Assinaturas.

Melhorias​

  • POST /v1/signatures aceita qualquer parte de arquivo como documento, e uma requisição que não indica sessão responde 400 INVALID_REQUEST.
  • Um Signer em throttling (429 ou 408) responde 502 SIGNER_ERROR em vez de uma recusa.

Servidor 1.2.0 (2026-08-24)​

Atualiza modelo do banco de dados: sim (migração: SessionSignatureAllowance)

Notas de atualização: o Servidor aplica as próprias migrações na inicialização (Database:MigrateOnStart, padrão true), então dotnet ef database update deixou de fazer parte de uma atualização.

Novas funcionalidades​

  • Franquia de Assinaturas: Sessions:SignatureAllowance limita quantas chamadas de assinatura uma sessão pode fazer.
  • Fazer upload do certificado de um titular na tela de Autoridades Certificadoras Confiáveis resolve a cadeia emissora e a oferece para confirmação.

Servidor 1.1.0 (2026-08-23)​

Atualiza modelo do banco de dados: não

Notas de atualização: a imagem vem com o Cofre de Certificados desligado; defina Vault:Enabled se você o usa.

Novas funcionalidades​

  • A tela Autoridades Certificadoras Confiáveis: upload, listagem e remoção das autoridades certificadoras em que o Servidor confia.

Correções de bugs​

  • Um pacote de certificados DER concatenados é lido inteiro, em vez de manter só o primeiro.
  • Os certificados guardados por um upload que falhou no meio entram em vigor na hora, e não só depois de um reinício.
  • Texto antes do primeiro marcador BEGIN, como um comentário ou uma saída do openssl, não é mais contado como bloco ilegível.

Servidor 1.0.1 (2026-08-23)​

Atualiza modelo do banco de dados: sim (migração: TrustedCas)

Notas de atualização: Certificates:Validation:TrustedRootPaths não é mais considerada no Servidor; no Workstation Service, continua valendo.

Novas funcionalidades​

  • As autoridades certificadoras em que o Servidor confia são guardadas no banco de dados e aplicadas sem reinício.
  • Certificates:Validation:UseLacunaTestPki faz confiar na PKI de teste da Lacuna.

Melhorias​

  • Os caches em disco do PKI SDK ficam em /tmp/trustbridge-pki.
Ver em Markdown