RF-008 – TCE-Push – Serviço de Acompanhamento de Processos por E-mail

Funcionalidade que permite a qualquer cidadão ou entidade receber notificações por e-mail sobre movimentações em processos autuados no Tribunal de Contas do Estado de Goiás, sem necessidade de cadastro com senha. O acesso ao serviço ocorre diretamente na página do processo, via widget inline, e o gerenciamento das inscrições é realizado por links presentes nos próprios e-mails recebidos.

Local de acesso:

  • Widget de inscrição: /processo/{id} (bloco abaixo do cabeçalho do processo)
  • Página de confirmação: /acompanhar-processo/confirmar?token={token}
  • Página de gerenciamento: /acompanhar-processo/gerenciar?token={token}
  • Página de cancelamento: /acompanhar-processo/cancelar?token={token}&processo={id}

Nível Perfil Autenticação
Público Cidadão, advogado, empresa, contador ou qualquer interessado Não requerida

Bloco exibido inline na página do processo, logo abaixo do cabeçalho, permitindo ao usuário se inscrever para receber notificações por e-mail. O widget transita entre estados sem recarregar a página.

Estado idle

Estados formulario e loading

Estado confirmacao-pendente

Estado inscrito

ElementoTipoObrigatórioValores PossíveisValor PadrãoObservação
Botão “Quero acompanhar”Botão---Exibido no estado idle. Abre o formulário de e-mail na própria página, sem diálogo sobreposto.
Cabeçalho do formulárioTexto--“Acompanhar processo nº {numero}“Exibido nos estados formulario e loading. O número do processo é preenchido dinamicamente.
E-mailCampo textoSimFormato RFC 5322VazioExibido nos estados formulario e loading. Deve conter um endereço de e-mail válido (RN01). Exibe a mensagem “Informe um e-mail válido.” abaixo do rótulo do campo quando o valor informado é inválido ou quando o campo não é preenchido.
Botão “Quero acompanhar” (submit)Botão submit---Exibido no estado formulario. No estado loading, é substituído por spinner com texto “Enviando…”. Desabilitado durante o processamento.
Botão “Cancelar”Botão---Exibido no estado formulario. Retorna o widget ao estado idle sem enviar a solicitação. Desabilitado durante o processamento.
Mensagem “Verifique seu e-mail para confirmar”Alerta informativo---Exibido no estado confirmacao-pendente. Inclui o e-mail informado na mensagem: “Enviamos uma mensagem para {email}. Clique no link para ativar o acompanhamento deste processo.” (RN02 RN03)
Botão “Fechar” (confirmação pendente)Botão---Exibido no estado confirmacao-pendente. Retorna ao estado idle.
Mensagem “Você já está acompanhando este processo”Alerta de aviso---Exibido no estado inscrito. Inclui o e-mail informado na mensagem: “O e-mail {email} já está inscrito para receber notificações.” Acionado quando a resposta do servidor é JA_INSCRITO (RN04).
Botão “Fechar” (já inscrito)Botão---Exibido no estado inscrito. Retorna ao estado idle.
Mensagem “Não foi possível processar sua solicitação”Alerta de erro---Exibido no estado erro. Exibe a mensagem retornada pelo servidor ou “Tente novamente em instantes.” como fallback.
Botão “Tentar novamente”Botão---Exibido no estado erro. Retorna ao estado formulario com o e-mail preservado.

Tela acessada pelo link presente no e-mail de confirmação. Valida o token recebido e exibe o resultado da operação. Não possui campos editáveis além do redirecionamento.

Confirmação bem sucedida

Link expirado

ElementoTipoObrigatórioValores PossíveisValor PadrãoObservação
Indicador de carregamentoSpinner---Exibido no estado loading enquanto o token é validado. Acompanha o texto “Validando seu link de confirmação…”.
Título “Inscrição confirmada!”Texto---Exibido no estado sucesso após validação bem-sucedida do token (RN02).
Mensagem de confirmaçãoTexto---Exibido no estado sucesso. Texto: “Você receberá notificações por e-mail sempre que o processo nº {numero} for movimentado.” O número do processo é extraído do token.
Botão “Consultar processo”Botão---Exibido no estado sucesso. Redireciona para /processo/{id} do processo recém-confirmado.
Botão “Gerenciar meus acompanhamentos”Botão---Exibido no estado sucesso. Redireciona para /acompanhar-processo/gerenciar?token=…, reaproveitando o token recebido no link de confirmação (RN02, RN09).
Lista “Seus processos acompanhados”Lista de cards---Exibida no estado sucesso. Lista os 3 processos mais recentes vinculados ao e-mail confirmado (ordenados pela data de inclusão do acompanhamento, do mais recente para o mais antigo), incluindo o processo recém-confirmado (RN13). Para ver a lista completa, o usuário acessa “Gerenciar meus acompanhamentos”.
Título “Link inválido ou expirado”Texto---Exibido no estado erro quando o token é inválido ou expirou após 48h (RN02).
Mensagem de erroTexto---Exibido no estado erro. Texto: “Este link de confirmação não é mais válido. Os links expiram em 48 horas após o envio. Retorne à página do processo e solicite um novo link.”
Botão “Tentar novamente”Botão---Exibido no estado erro. Redireciona para /processos.

Tela acessada pelo link presente nos e-mails de notificação. Exibe a lista de processos acompanhados pelo e-mail associado ao token e permite o cancelamento individual de acompanhamentos. Em caso de token expirado, exibe formulário para reenvio do link.

ElementoTipoObrigatórioValores PossíveisValor PadrãoObservação
Indicador de carregamentoSpinner---Exibido no estado loading enquanto o token é validado e a lista é carregada. Acompanha o texto “Carregando seus acompanhamentos…”.
Identificação do e-mailTexto---Exibido no estado lista. Texto: “Processos acompanhados pelo e-mail: {email mascarado}”. O e-mail é parcialmente ocultado pelo servidor.
Card de processoCard---Exibido no estado lista para cada processo acompanhado. Contém: número do processo (link clicável para /processo/{id}), interessado, assunto e ano.
Botão “Parar de acompanhar”Botão---Exibido em cada card no estado lista. Abre a confirmação inline no próprio card (RN11).
Confirmação inline de remoçãoExpansão inline--RecolhidoExibida no card após clique em “Parar de acompanhar”. Exibe o alerta “Deseja parar de acompanhar este processo?” com os botões “Confirmar” e “Cancelar” (RN11).
Botão “Confirmar” (remoção)Botão destrutivo---Executa a remoção do processo. Exibe spinner no item durante o processamento. Remove o card da lista ao concluir, sem recarregar a página (RN11).
Botão “Cancelar” (remoção)Botão---Fecha a confirmação inline sem executar nenhuma ação (RN11).
Mensagem de lista vaziaTexto---Exibida quando todos os processos são removidos ou quando o e-mail não possui acompanhamentos ativos. Texto: “Você não está acompanhando nenhum processo no momento.” Acompanha link “Consultar processos no portal” → /processos.
PaginaçãoComponente de paginação---Exibida no estado lista somente quando a quantidade de processos acompanhados ultrapassa 12 itens. Reaproveita o componente Pagination já usado em /processos (mesmo padrão visual). Necessária porque não há limite máximo de processos por e-mail (RN10, RN14).
Título “Link expirado”Texto---Exibido no estado token-expirado quando o token é inválido (RN02).
E-mail (reenvio de link)Campo textoSimFormato RFC 5322VazioExibido no estado token-expirado. Utilizado para solicitar novo link de gerenciamento (RN08).
Botão “Receber novo link”Botão submit---Exibido no estado token-expirado. Envia a solicitação de reenvio. Após o envio, exibe a mensagem: “Se este endereço possui acompanhamentos ativos, você receberá o link de acesso em breve.” (RN08)

Tela acessada pelo link “Parar de receber este acompanhamento” presente nos e-mails de notificação. Executa o cancelamento imediato do processo referenciado no token e exibe o resultado da operação. Não possui campos editáveis.

Cancelamnto bem sucedido

Link expirado ou já utilizado

ElementoTipoObrigatórioValores PossíveisValor PadrãoObservação
Indicador de carregamentoSpinner---Exibido no estado loading enquanto o token é validado e o cancelamento é processado. Acompanha o texto “Processando cancelamento…”.
Título “Acompanhamento cancelado”Texto---Exibido no estado sucesso após remoção bem-sucedida (RN06).
Mensagem de cancelamentoTexto---Exibido no estado sucesso. Texto: “Você não receberá mais notificações sobre o processo nº {numero}.” O número do processo é extraído do token.
Botão “Ver todos os meus acompanhamentos”Botão---Exibido no estado sucesso. Redireciona para /acompanhar-processo/gerenciar?token=…, reaproveitando o token recebido no link de cancelamento (RN02, RN07, RN09).
Botão “Consultar processos”Botão---Exibido no estado sucesso. Redireciona para /processos.
Título “Link inválido”Texto---Exibido no estado erro quando o token é inválido ou já foi utilizado.
Mensagem de erroTexto---Exibido no estado erro. Texto: “Este link de cancelamento não é mais válido ou já foi utilizado. Acesse seu painel para gerenciar os acompanhamentos.”
Botão “Acessar painel de acompanhamentos”Botão---Exibido no estado erro. Redireciona para /acompanhar-processo/gerenciar?token=….

Todos os e-mails seguem o padrão visual institucional do TCE-GO, são remetidos pelo endereço `push@tce.go.gov.br` e despachados pelo servidor `smtp.tce.go.gov.br`, reaproveitando a camada de serviço compartilhada `IServicoDeEmail`/`ServicoDeEmail` (`TCE.Compartilhado.Servico.Servicos.Contato`), a mesma já utilizada por `ServicoDeUsuarioPush` no legado. O RF-008 não deve implementar um novo mecanismo de envio — apenas montar `DtoEmail` (remetente, destinatário, assunto, corpo HTML) e chamar essa camada compartilhada, como já ocorre em `ServicoDeUsuarioPush.EnviaEmail`. Nenhuma ação dos e-mails depende de login — cada link carrega o token correspondente (RN02, RN09) e o ID de autuação do processo, quando aplicável.


Disparado ao final do Fluxo 01 (passo 07.1), sempre que uma inscrição em um processo aguarda confirmação — inclusive para e-mails que já confirmaram outros processos anteriormente (RN03).

ElementoConteúdoObservação
Remetente`push@tce.go.gov.br`Endereço institucional único para os três e-mails do RF-008.
Assunto“Serviço de acompanhamento de processos TCE-GO — Confirme o acompanhamento do processo Nº {numero}“O número do processo é usado apenas para exibição; a comunicação interna do link usa o ID de autuação.
Corpo“Você solicitou o acompanhamento do processo Nº {numero} no Serviço de acompanhamento de processos TCE-GO. Clique no link abaixo para confirmar este acompanhamento.”Não há saudação por nome nem qualquer referência a cadastro/senha — o usuário não preenche esses dados (RN12).
Botão “Confirmar acompanhamento”Redireciona para /acompanhar-processo/confirmar?token={token}Aciona o Fluxo 02. Token único do serviço, validade de 48h, reaproveitável nos demais fluxos (RN02, RN09).
Rodapé“Se você não solicitou este acompanhamento, ignore este e-mail.”Nenhum vínculo é criado até o clique de confirmação — mitigação de abuso (RN03).


Disparado sempre que houver uma movimentação em um processo já confirmado. O disparo e a montagem da mensagem ocorrem na rotina PL/SQL de notificação, dentro do banco (ver Mecanismo de Disparo da Notificação). O RF-008 especifica o conteúdo, o layout e os links; a implementação do template é feita onde o disparo acontece.

ElementoConteúdoObservação
Remetente`push@tce.go.gov.br`Endereço institucional único para os três e-mails do RF-008.
Assunto“Serviço de acompanhamento de processos TCE-GO — Movimentação no processo Nº {numero}“
Corpo — identificaçãoNúmero do processo
Corpo — Andamento atual“Órgão ou Setor Atual: {setor}” (ex.: “DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO - DI-TI”) e data da movimentaçãoInforma para onde o processo foi movimentado — é o dado que motiva a notificação.
Corpo — Dados da autuação“Data Autuação: {data}” e “Ano Referência: {ano}“Contextualizam o processo para quem acompanha vários.
Link “Ver processo completo”Redireciona para /processo/{id}Consulta pública do processo, sem necessidade de token.
Link “Solicitar link de gerenciamento”Redireciona para /acompanhar-processo/gerenciarsem tokenA rota sem token apresenta o formulário de solicitação, acionando o Fluxo 05. Este e-mail não carrega token de sessão: chega semanas ou meses após a inscrição, quando qualquer token de 48h já expirou (RN02).
Link “Parar de acompanhar este processo”Redireciona para /acompanhar-processo/cancelar?token={tokenDescadastro}&processo={id}Aciona o Fluxo 04, com o token de descadastro (RN16) — persistente e de escopo único. Remove apenas o processo referenciado, e não dá acesso ao painel (RN07).


Disparado ao final do Fluxo 05, somente quando o e-mail informado possui acompanhamentos ativos na base — o backend nunca confirma nem nega essa condição na resposta exibida ao usuário (RN08). O envio (ou não) deste e-mail é a única diferença observável entre “e-mail existe” e “e-mail não existe”.

ElementoConteúdoObservação
Remetente`push@tce.go.gov.br`Endereço institucional único para os três e-mails do RF-008.
Assunto“Serviço de acompanhamento de processos TCE-GO — Seu link de gerenciamento”
CorpoLink de acesso ao painel de gerenciamentoO reenvio não invalida tokens de gerenciamento já emitidos e ainda válidos (RN09) — pode haver mais de um link de gerenciamento válido simultaneamente para o mesmo e-mail.
Link “Gerenciar meus acompanhamentos”Redireciona para /acompanhar-processo/gerenciar?token={token}Aciona o Fluxo 03.

PassoAçãoRegraTela
01Usuário acessa a página de um processo autuado em /processo/{id} Tela 01
02O sistema exibe o widget TCE-Push no estado idle com o botão “Quero acompanhar” Tela 01
03Usuário clica em “Quero acompanhar” Tela 01
04O sistema exibe o formulário com o campo “Seu e-mail” e o cabeçalho “Acompanhar processo nº {numero}“ Tela 01
05Usuário informa o e-mail e clica em “Quero acompanhar”RN01Tela 01
05.1E-mail inválido ou não preenchido: o sistema exibe a mensagem “Informe um e-mail válido.” abaixo do rótulo do campo e aguarda nova entradaRN01Tela 01
06O sistema transiciona o widget para o estado loading e processa a solicitação Tela 01
07O sistema valida que o e-mail não está inscrito neste processoRN03 RN04
07.1O sistema envia o e-mail de confirmação com token de validade de 48h. A confirmação é obrigatória para qualquer inscrição, independentemente de histórico anterior do e-mailRN02 RN03E-mail 01
07.2O sistema exibe o estado confirmacao-pendente: “Verifique seu e-mail para confirmar”RN02 RN03Tela 01
08O sistema identifica que o e-mail já está inscrito para este processoRN04
08.1O sistema exibe o estado inscrito: “Você já está acompanhando este processo” com o e-mail informadoRN04Tela 01
09O sistema identifica que o número do processo não existeRN05
09.1O sistema exibe o estado erro com a mensagem retornada pelo servidorRN05Tela 01
PassoAçãoRegraTela
01Usuário recebe o e-mail de confirmação com o assunto “Serviço de acompanhamento de processos TCE-GO — Confirme o acompanhamento do processo Nº {numero_processo}“ E-mail 01
02Usuário clica no link “Confirmar acompanhamento” contido no e-mail
03O sistema redireciona para /acompanhar-processo/confirmar?token={token} Tela 02
04O sistema exibe o estado loading: “Validando seu link de confirmação…” e processa o tokenRN02Tela 02
05Token válido e não expiradoRN02
05.1O sistema vincula o processo ao e-mailRN02
05.2O sistema exibe o estado sucesso: “Inscrição confirmada!” com o número do processoRN02Tela 02
05.3O sistema exibe os 3 processos mais recentes acompanhados pelo e-mailRN13Tela 02
06Token inválido ou expiradoRN02
06.1O sistema exibe o estado erro: “Link inválido ou expirado” com botão “Tentar novamente”RN02Tela 02
06.2Usuário clica em “Tentar novamente”: o sistema redireciona para /processos Tela 02
PassoAçãoRegraTela
01Usuário acessa o painel por uma de duas origens: o link “Gerenciar meus acompanhamentos” do E-mail 03 (com token de sessão), ou o link “Solicitar link de gerenciamento” do E-mail 02, que leva ao formulário do Fluxo 05 e resulta no envio do E-mail 03RN02 RN16E-mail 02 · E-mail 03
02Usuário clica no link
03O sistema redireciona para /acompanhar-processo/gerenciar?token={token}; sem token, a rota apresenta o formulário de solicitação (Fluxo 05)RN02Tela 03
04O sistema exibe o estado loading: “Carregando seus acompanhamentos…” e valida o token de sessãoRN09Tela 03
05Token válidoRN09
05.1O sistema exibe a primeira página da lista de processos acompanhados pelo e-mail associado ao token, com o e-mail mascaradoRN09Tela 03
05.2Lista vazia: o sistema exibe o empty state “Você não está acompanhando nenhum processo no momento.” Tela 03
05.3Lista com mais de 12 processos: o sistema exibe o componente de paginação; usuário navega entre páginas sem recarregar a telaRN14Tela 03
06Usuário clica em “Parar de acompanhar” em um processoRN11
06.1O sistema exibe, inline no card, o alerta “Deseja parar de acompanhar este processo?” com os botões “Confirmar” e “Cancelar”RN11Tela 03
06.2Usuário clica em “Cancelar”: o sistema fecha a confirmação sem executar nenhuma açãoRN11
06.3Usuário clica em “Confirmar”: o sistema exibe spinner no item e executa a remoção, autenticada pelo token de sessão da própria telaRN11 RN17Tela 03
06.4O sistema remove o processo da lista sem recarregar a página e oculta o spinner Tela 03
06.5Lista esvaziada: o sistema exibe o empty state automaticamente Tela 03
07Token inválido ou expiradoRN02
07.1O sistema exibe o estado token-expirado: “Link expirado” com o formulário de reenvioRN02Tela 03
07.2Executa o Fluxo 05
PassoAçãoRegraTela
01Usuário recebe o e-mail de notificação com link “Parar de acompanhar este processo” E-mail 02
02Usuário clica no link
03O sistema redireciona para /acompanhar-processo/cancelar?token={tokenDescadastro}&processo={id}RN16Tela 04
04O sistema exibe o estado loading: “Processando cancelamento…” e valida o token de descadastroRN06 RN16Tela 04
05Token válidoRN06
05.1O sistema remove imediatamente o processo da lista de acompanhamentos do e-mailRN06
05.2O sistema exibe o estado sucesso: “Acompanhamento cancelado” com o número do processoRN06Tela 04
05.3O sistema exibe o link “Solicitar link de gerenciamento” → /acompanhar-processo/gerenciar (sem token)RN07 RN16Tela 04
06Token inválido
06.1O sistema exibe o estado erro: “Link inválido” com botão “Solicitar link de gerenciamento” Tela 04

<WRAP center round info> Nota de segurança (RN16). O token de descadastro autoriza apenas a remoção do acompanhamento referenciado. Concluído o cancelamento, a tela não exibe a lista de processos acompanhados nem oferece acesso direto ao painel — quem quiser ver a lista completa precisa passar pelo Fluxo 05, informando o e-mail e recebendo um token de sessão. </WRAP>

PassoAçãoRegraTela
01Usuário informa o e-mail no formulário da Tela 03 (estado token-expirado)RN08Tela 03
02Usuário clica em “Receber novo link” Tela 03
03O sistema processa a solicitaçãoRN08
03.1Se o e-mail possuir acompanhamentos ativos, o sistema despacha o e-mail de reenvio com o link de gerenciamento (passo interno, não observável pelo usuário)RN08 RN09E-mail 03
04O sistema exibe a mensagem: “Se este endereço possui acompanhamentos ativos, você receberá o link de acesso em breve.”RN08Tela 03
04.1Nota: o sistema não confirma nem nega a existência do e-mail na base de dados, independentemente do resultado internoRN08

Regra Descrição
RN01Validação de formato de e-mail – O e-mail informado deve ser válido conforme o formato RFC 5322. E-mails inválidos bloqueiam o envio do formulário com mensagem de erro inline.
RN02Dois tipos de token, com finalidades distintas – O TCE-Push emite: (a) Token de sessão – válido por 48 horas a partir do envio, emitido quando o usuário age (inscrição ou pedido de reenvio) e utilizável nos fluxos de confirmação e gerenciamento. É reaproveitado nos links das telas seguintes — não é emitido token novo a cada etapa. Após as 48 horas, o sistema exibe a mensagem de link inválido e o usuário deve solicitar novo link. (b) Token de descadastro – persistente e de escopo único, presente apenas no e-mail de notificação de movimentação (RN16). A separação existe porque o e-mail de movimentação não responde a uma ação do usuário: chega muito depois da inscrição, quando um token de 48 horas já expirou.
RN03Confirmação obrigatória por inscrição (controle de abuso) – Toda inscrição em um processo requer confirmação explícita por e-mail, independentemente de o endereço ter sido confirmado em processos anteriores. Como o serviço não possui autenticação, a confirmação por link é o único mecanismo que garante que apenas o titular do endereço pode ativar um vínculo processo/e-mail. Sem essa exigência, qualquer usuário poderia inscrever endereços de terceiros em processos arbitrários sem o consentimento do titular.
RN04Vedação de inscrição duplicada – O mesmo e-mail não pode ser inscrito duas vezes no mesmo processo. O sistema retorna a resposta JA_INSCRITO e exibe a mensagem: “Você já está acompanhando este processo”.
RN05Existência do processo – O número de processo informado deve existir no sistema antes de aceitar a inscrição. Processos inexistentes bloqueiam o cadastro com mensagem de erro.
RN06Cancelamento imediato via link – O cancelamento acionado pelo link do e-mail é executado imediatamente após a validação do token, sem etapa de confirmação adicional. O processo é removido no mesmo request.
RN07Escopo do cancelamento por link – O link “Parar de acompanhar este processo” presente nos e-mails remove apenas o processo referenciado naquele link, e não concede nenhum outro acesso (RN16). O link “Solicitar link de gerenciamento” leva ao formulário que dá acesso à lista completa.
RN08Resposta neutra no reenvio de link – Ao solicitar reenvio do link de gerenciamento, o sistema sempre retorna a mensagem: “Se este endereço possui acompanhamentos ativos, você receberá o link de acesso em breve.”, independentemente de o e-mail existir ou não na base de dados.
RN09Uso múltiplo dentro da validade – O token de sessão pode ser utilizado múltiplas vezes, em qualquer dos fluxos, enquanto estiver dentro das 48 horas de validade (RN02). O reenvio do link de gerenciamento não invalida os tokens já emitidos e ainda válidos.
RN10Sem limite de processos por e-mail – Não há limite máximo de processos que podem ser associados a um único e-mail.
RN11Confirmação antes de remover na tela de gerenciamento – Na página de gerenciamento, ao clicar em “Parar de acompanhar”, o sistema exibe uma confirmação inline no card do processo com os botões “Confirmar” e “Cancelar”. A remoção só é executada após o usuário clicar em “Confirmar”.
RN12Cadastro implícito de usuário (sem tela de cadastro) – Não existe formulário de nome/senha para o usuário. Internamente, porém, o backend deve localizar ou criar um registro de usuário Push a partir do e-mail informado (reaproveitando a estrutura de dados existente do legado), preenchendo os campos obrigatórios do legado (nome e senha) com valores técnicos não expostos ao usuário. Essa criação/localização de registro é transparente e não pode alterar nome, senha ou o estado “Habilitado” de um cadastro que já exista para aquele e-mail (ver Reaproveitamento de Estruturas do Legado).
RN13Lista resumida na tela de confirmação – Na tela de confirmação de inscrição (Tela 02), a lista “Seus processos acompanhados” exibe apenas os 3 processos mais recentes vinculados ao e-mail, ordenados pela data de inclusão do acompanhamento (mais recente primeiro), incluindo o processo recém-confirmado. Não há paginação nesta tela — para consultar a lista completa, o usuário deve acessar “Gerenciar meus acompanhamentos” (Tela 03).
RN14Paginação na tela de gerenciamento – Como não há limite máximo de processos por e-mail (RN10), a lista de acompanhamentos da Tela 03 é paginada em 12 processos por página, exibindo o componente de paginação somente quando esse total é ultrapassado. O tamanho da página é fixo — não há seletor de itens por página. Reaproveita o componente Pagination já utilizado em /processos (mesmo padrão visual e de navegação).
RN15Conformidade de acessibilidade – Todas as telas do RF-008 seguem a diretriz e-MAG 3.1 adotada pelo Portal. São verificáveis, em cada tela: nome acessível dos controles e dos campos, contraste mínimo do texto e dos elementos de interface, e aumento de fonte/zoom até 200% sem perda de conteúdo ou de função.
RN16Token de descadastro – Gerado no momento da inscrição e vinculado ao par e-mail/processo, é persistente (não expira), de escopo único — remove exclusivamente o acompanhamento a que se refere — e não concede acesso ao painel de gerenciamento. É o único token presente no e-mail de notificação de movimentação. Garante o cancelamento em um clique, a qualquer tempo, sem expor a lista de processos acompanhados pelo endereço: um link de descadastro vazado custa uma inscrição, enquanto um link de gerenciamento vazado revelaria todos os interesses processuais daquela pessoa. A forma de materialização — coluna dedicada em `PRO_ACOMPANHAPROCESSO` ou derivação criptográfica determinística — é decisão técnica de implementação, a cargo do time de desenvolvimento; em qualquer das formas, a rotina de disparo deve apenas ler o token, nunca gerá-lo.
RN17

Esta seção documenta, para o time de backend, quais estruturas do sistema legado (banco de dados, rotinas armazenadas e API) devem ser reaproveitadas na implementação do RF-008 modernizado, e quais precisam ser substituídas ou criadas. A diretriz central é: o novo modelo não expõe cadastro de usuário ao público, mas continua persistindo um registro de usuário “por baixo dos panos”, reutilizando a tabela e as rotinas já existentes, de modo a não quebrar os vínculos de quem já se cadastrou pelo fluxo antigo (Portal legado `/Push`).

Tabela Papel no legado Reaproveitamento no novo modelo
`TCE_GO.PSH_USUARIOS`Cadastro do usuário do serviço Push (nome, e-mail, senha, dados de contato, flag `Habilitado`)Reaproveitada como cadastro implícito. Ao inscrever um e-mail em um processo (RN03), o backend deve verificar se já existe uma linha com aquele e-mail; se não existir, criar uma nova (cadastro invisível ao usuário); se já existir, reutilizar o registro sem sobrescrever dados preexistentes (RN12).
`PRO_ACOMPANHAPROCESSO`Tabela de associação entre `PSH_USUARIOS` (`PSHUSUA_ID`) e `PRO_AUTUACAO` (`PROAUTU_ID`) — representa “quais processos este usuário acompanha”; a coluna `PROANDA_ID` funciona como fila de notificação pendenteReaproveitada. É exatamente a estrutura que sustenta a lista exibida nas telas de Confirmação e Gerenciamento (RF-008). Pode requerer uma coluna adicional para o token de descadastro (RN16), caso o time técnico opte por armazená-lo em vez de derivá-lo criptograficamente. Nenhuma outra alteração de schema é prevista.
`PRO_AUTUACAO`Tabela de processos autuadosReaproveitada apenas para leitura (validação de existência do processo — RN05 — e composição dos dados exibidos: número, interessado, assunto, ano).
Coluna (Oracle) Campo na entidade (`UsuarioPush`) Uso no legado Uso no RF-008 (novo modelo)
`PSHUSUA_ID``Id`Chave primária, gerada pelo bancoMantido — é o identificador interno vinculado ao token emitido por e-mail.
`DESC_EMAIL_A``Email`Identificação do usuário, único por cadastroMantido como chave de busca/upsert. É o único dado realmente fornecido pelo cidadão.
`DESC_NOME_A``Nome`Obrigatório (`NOT NULL`), informado no formulário de cadastroNão coletado do usuário. Como a coluna é obrigatória no legado, o backend deve gerar um valor técnico (ex.: o próprio e-mail, ou literal “Usuário Push”) apenas para satisfazer a constraint — nunca exibido nem solicitado nas telas do RF-008.
`DESC_SENHA_A``Senha`Obrigatório (`NOT NULL`), armazenado e comparado em texto puro no `Logar` (S1/S3 do relatório técnico)Não coletado nem utilizado. O backend deve gerar um valor aleatório apenas para satisfazer a constraint. O endpoint `api/push/login` e qualquer comparação de senha não fazem parte do novo fluxo — a autenticação passa a ser 100% por token de e-mail (contrato da seção 7 do PRD).
`HABILITADO_N``Habilitado`No legado, fica em `0` até o usuário clicar no link de ativação de conta (cadastro geral); operações de acompanhamento verificam esse flag e bloqueiam quem não ativouRessignificado. No RF-008 não existe “ativação de conta” separada — a confirmação é por processo (RN03). O backend deve tratar o e-mail como habilitado assim que a primeira inscrição for confirmada, para não herdar a mensagem legada “ative sua conta” (ver `ServicoDeUsuarioPush.AcompanharProcesso`, retorno `”0”` com `Habilitado == 0`).
`NUMR_CPF_A`, `DESC_ENDERECO_A`, `NUMR_CEP_A`, `NUMR_FONE_A`, `INDR_SEXO_A``Cpf`, `Endereco`, `Cep`, `Telefone`, `Sexo`Campos opcionais do cadastro completo do legadoFora de escopo. Não são coletados nem exibidos no RF-008; permanecem nulos nos novos registros.

Padrão adotado no RF-008: toda a comunicação entre telas, e-mails e API é feita pelo ID interno da autuação (`PROAUTU_ID`). O número público do processo (`CODG_PROCESSO_N`) é usado apenas para exibição ao usuário — nunca como identificador em requisições, tokens ou parâmetros de rota.

Rotina Parâmetros Retorno Reaproveitamento
`WEB_PACKAGE.PWEB_ACOMPANHAPROCESSO`Código do processo (`P_CODGPROCESSO_N` — número público), ID do usuário Push (`P_PSHUSUA_ID`)`”0”` sucesso · `”00001”` já inscrito · `”00002”` processo inválidoNão segue o padrão do RF-008. É a única rotina legada que recebe o número público em vez do ID de autuação. O backend deve resolver ID de Autuação → número apenas nesta chamada pontual (conversão interna, nunca propagada para o restante do contrato do RF-008) — ou, preferencialmente, solicitar ao DBA uma versão da rotina que aceite `PROAUTU_ID` diretamente, eliminando a conversão.
`WEB_PACKAGE.PWEB_REMOVEACOMPPROCESSO`ID interno da autuação (`P_PROAUTU`), ID do usuário Push (`P_PSHUSUA`)`”0”` sucessoJá alinhada ao padrão do RF-008 — recebe o ID de autuação diretamente, sem necessidade de conversão.
Endpoint legado Reaproveitamento no RF-008
`POST api/push/login`Descontinuado. Dependia de senha; o novo modelo não tem login.
`POST api/push/email` (cadastro)Substituído pelo cadastro implícito descrito acima — o novo `POST /api/push/inscrever` (PRD §7) deve criar o registro em `PSH_USUARIOS` internamente, sem expor os campos `Nome`/`Senha` ao cliente.
`GET api/push/verifica/{numeroProcesso}`Reaproveitável como base, com correção de parâmetro: no RF-008 o parâmetro deve ser `idAutuacao`, não o número público — a página do processo (`/processo/{id}`) já tem o ID de autuação em contexto, o usuário não precisa informá-lo.
`PUT api/push/adiciona/processos`Reaproveitável como base, com a mesma correção: a lista recebida deve conter IDs de autuação, não números de processo, antes de repassar para `WEB_PACKAGE.PWEB_ACOMPANHAPROCESSO` (que exigirá a conversão pontual citada acima).
`DELETE api/push/remove/{numeroProcesso}`Reaproveitável como base: apesar do nome do parâmetro na rota legada, o valor é repassado como ID interno para `RemoveAcompanhamentoDeProcesso`. No RF-008 o parâmetro deve se chamar explicitamente `idAutuacao`, para não sugerir que aceita o número público.
`GET api/push/processos`Reaproveitável como base para `GET /api/push/gerenciar`.
Autenticação `BasicAuthorizationPush` (header `Authorization: Basic {id}@{tokenCriptografado}`, sem expiração — risco S4 do relatório técnico)Não reaproveitada. O RF-008 exige token de e-mail com expiração (RN02) e sem exigência de login prévio; é necessário um mecanismo novo de emissão/validação de token (ex.: JWT com `exp`).
Componente Papel no legado Reaproveitamento no RF-008
`IServicoDeEmail` / `ServicoDeEmail` (`TCE.Compartilhado.Servico.Servicos.Contato`)Camada compartilhada de envio, usada por `ServicoDeUsuarioPush`, `ServicoDeFaleConosco`, `ServicoDeOuvidoriaEletronica` e outros serviços do CompartilhadoReaproveitada integralmente. O RF-008 deve montar um `DtoEmail` (remetente `push@tce.go.gov.br`, destinatário, assunto, corpo HTML) e um `DtoConfiguracaoEmail { HostName = “smtp.tce.go.gov.br” }` e chamar `IServicoDeEmail.EnviaEmail(…)` — exatamente como já faz `ServicoDeUsuarioPush.EnviaEmail` para os e-mails de cadastro/alteração/lembrete de senha do Push legado. Não é necessário criar um novo mecanismo de disparo.
`smtp.tce.go.gov.br`Host SMTP institucional, configurado via `SmtpClient` do .NET (`ServicoDeEmail.EnviaEmail`)Confirmado como servidor a ser utilizado. Os três e-mails do RF-008 (seção “E-mails Enviados”) devem ser despachados por este host, seguindo o mesmo padrão do restante do portal.
`push@tce.go.gov.br`Endereço de remetente institucional definido para o RF-008. Utilizado no campo `From` do `DtoEmail` para os três e-mails (Confirmação, Notificação, Reenvio).

O e-mail de movimentação do Push legado não é disparado pela aplicação. Ele nasce inteiramente dentro do banco Oracle, em duas etapas:

  1. Enfileiramento (imediato). Todo registro de andamento gravado em `PRO_ANDAMENTO` marca, via trigger, as inscrições daquele processo como “pendentes de notificação”.
  2. Envio (a cada 3 minutos). Uma rotina agendada varre as inscrições pendentes, monta o e-mail e o despacha por `smtp.tce.go.gov.br`, com remetente `push@tce.go.gov.br`.

O mecanismo foi verificado de ponta a ponta em 06/09/2026 e está operacional. O detalhamento técnico — objetos de banco, defeitos catalogados (D1–D10) e procedimento de teste — está no PRD, seção 12.

Onde o template é implementado

O template do E-mail 02 é implementado na própria rotina de disparo, em PL/SQL. O RF-008 especifica conteúdo, layout e links; a construção da mensagem permanece onde o envio acontece. Decorre daí:

  • Os campos acrescentados ao E-mail 02 — Órgão ou Setor Atual, Data Autuação e Ano Referência — já estão disponíveis nas views consultadas pela rotina. Não é necessária nova fonte de dados.
  • O token de descadastro (RN16) precisa estar acessível à rotina no momento da montagem do link. A rotina apenas o token; a geração ocorre na inscrição, no serviço do RF-008.
  • Os links passam a usar HTTPS e deixam de transportar o e-mail do destinatário em query string, corrigindo a falha de segurança do modelo legado.

Quais movimentações geram notificação

  • Enfileiramento sem filtro. Toda gravação de andamento entra na fila, sem distinção de situação, setor, tipo de documento ou sigilo — inclusive os andamentos gerados em cascata para processos apensados.
  • Filtragem apenas no envio. A notificação deixa de ser enviada quando o usuário está desabilitado, quando a inscrição não tem usuário correspondente, ou quando a autuação está marcada com bloqueio total de documento.
  • Eventos de pauta e julgamento também alimentam a fila, por caminho próprio e independente do fluxo de tramitação.

Sigilo — regra vigente (decidida)

Processos sigilosos não geram notificação de movimentação. A definição de sigilo para este serviço é a regra já aplicada na view de acompanhamento: a notificação é suprimida quando a autuação está marcada com bloqueio total de documento.

Os demais processos são notificados normalmente — inclusive os marcados como reservados e os de bloqueio parcial. O fundamento é que os dados levados pelo e-mail (setor atual, situação, assunto, datas de autuação e referência) já estão disponíveis publicamente na consulta de processos do Portal: a notificação não amplia a exposição existente, apenas avisa o interessado de que ela mudou.

O comportamento atual não será alterado pelo RF-008. Decisão de Requisitos, 06/09/2026.

Decisões de negócio pendentes

Comportamentos do legado que não estão documentados como decisão e precisam ser confirmados por Requisitos antes da implementação do RF-008:

Tema Comportamento atual do legado Decisão necessária
GranularidadeSe o processo se movimenta duas vezes dentro da janela de 3 minutos, apenas a última movimentação é notificada — a anterior é descartada silenciosamente. É efeito colateral da implementação, não regra deliberada.Definir se cada movimentação gera um e-mail, ou se movimentações próximas são consolidadas em uma única notificação.
Escopo do “desabilitado”O indicador de habilitação vive no usuário, não na inscrição. Desabilitar um e-mail interrompe as notificações de todos os processos daquela pessoa de uma só vez.O novo modelo exige controle por inscrição (RN03 e Fluxo 04) — não há como cancelar um processo isoladamente reaproveitando o indicador atual.
Confiabilidade do envioFalhas de envio são descartadas sem registro, e não existe histórico de e-mails enviados. Uma notificação perdida é indetectável e irrecuperável.Definir se o RF-008 exige registro de envio e reenvio automático em caso de falha.
Inscrição automáticaUma conta específica é inscrita automaticamente em toda autuação nova, por regra fixa no banco, sem dono documentado.Confirmar se a regra deve ser preservada, e a quem pertence.
  • Não sobrescrever cadastros existentes: e-mails que já possuem registro em `PSH_USUARIOS` (vindos do Push legado, com `Nome`/`Senha`/`Habilitado` reais) devem ser localizados por `DESC_EMAIL_A` e reaproveitados como estão — o upsert do cadastro implícito (RN12) só deve inserir quando não houver registro; nunca deve atualizar `Nome`, `Senha` ou rebaixar `Habilitado` de um cadastro pré-existente.
  • Descolar “Habilitado” de “ativação de conta”: o significado de `HABILITADO_N` muda de “conta ativada” (legado) para “e-mail confirmado em ao menos um processo” (RF-008); é preciso garantir que usuários migrados do legado com `Habilitado = 0` (nunca ativaram a conta) não fiquem bloqueados ao usar o novo fluxo de confirmação por processo.
  • ID de Autuação como identificador único do processo: todo o contrato do RF-008 (requisições da API, tokens de confirmação/gerenciamento/cancelamento, parâmetros de rota) deve referenciar o processo pelo ID de autuação. O número público do processo é apenas informação de exibição nas telas e nos e-mails. A única exceção no legado é `WEB_PACKAGE.PWEB_ACOMPANHAPROCESSO`, que exige o número público — tratar como conversão isolada no ponto de integração, sem propagar o número para o restante do fluxo (ver tabela de rotinas acima).
  • Nenhuma estrutura de token existente é reaproveitável tal como está: o legado não possui tabela/mecanismo de token com expiração para os links de confirmação/gerenciamento/cancelamento; isso é desenvolvimento novo, não reaproveitamento.

Data Alteração Motivo
2026-09-06RN17 acrescentada — cancelamento aceita os dois tipos de token, em endpoint único, com escopo determinado pelo tipo; Fluxo 03 passo 06.3 passou a citá-laA tela de gerenciamento precisa cancelar acompanhamentos com o token de sessão, o que a RN16 não cobria. A regra também explicita que o processo informado na requisição é ignorado quando o token é de descadastro — sem isso, um link vazado alcançaria outros acompanhamentos do mesmo endereço
2026-09-06RN02 desdobrada em dois tipos de token (sessão, 48h; descadastro, persistente) e RN16 acrescentada; E-mail 02, RN07, RN09 e Fluxo 04 alinhadosO e-mail de movimentação não responde a uma ação do usuário — chega muito depois da inscrição, quando um token de 48h já expirou, e é montado por rotina que não emite tokens. Além disso, o link de gerenciamento expõe toda a lista de processos do endereço, exigindo escopo de segurança distinto do link de cancelamento
2026-09-06E-mail 02 — corpo passou a incluir Órgão ou Setor Atual, Data Autuação e Ano Referência; link “Gerenciar meus acompanhamentos” renomeado para “Solicitar link de gerenciamento” e sem tokenDecisão de Requisitos sobre o conteúdo da notificação; o rótulo anterior prometia acesso direto ao painel, que deixou de ocorrer no clique
2026-09-06Registrado que o template do E-mail 02 é implementado em PL/SQL, onde ocorre o disparo; `PRO_ACOMPANHAPROCESSO` pode requerer coluna adicionalDecisão de Requisitos; a afirmação anterior de que a tabela não requeria alteração de schema deixou de ser incondicional com a RN16
2026-09-06Acrescentada a subseção “Mecanismo de Disparo da Notificação (legado)“, com as movimentações que geram notificação e cinco decisões de negócio pendentesO disparo do e-mail de movimentação não estava especificado; a engenharia reversa do banco (PRD §12) revelou comportamentos — sigilo, granularidade, escopo do “desabilitado” — que são regra de negócio e não estavam documentados como decisão
2026-08-31Tela 01 e Fluxo 01 passo 05.1 — a mensagem “Informe um e-mail válido.” passou a cobrir também o campo não preenchido, exibida abaixo do rótuloDecisão de Requisitos; o comportamento do campo obrigatório não estava especificado (PD-02)
2026-08-31Fluxo 01 — passos 10 e 10.1 renumerados para 09 e 09.1Lacuna de numeração corrigida a pedido de Requisitos (PD-13)
2026-08-31RN02 reescrita — token único do serviço, validade de 48h, reaproveitável nos fluxos de confirmação, gerenciamento e cancelamentoDecisão de Requisitos: não se emite token novo a cada etapa (PD-04, PD-09)
2026-08-31RN09 reescrita — uso múltiplo em qualquer fluxo dentro das 48hAlinhamento à RN02 (PD-04, PD-09)
2026-08-31Telas 02 e 04 — botões de acesso ao painel passaram a declarar o reaproveitamento do token recebidoO conflito apontado na análise de estratégia de tokens deixou de existir com a decisão da RN02 (PD-04)
2026-08-31RN14 — registrado que o tamanho da página é fixo, sem seletor de itensDecisão de Requisitos (PD-15)
2026-08-31RN15 acrescentada — conformidade de acessibilidade e-MAG 3.1O RF não declarava requisito de acessibilidade, embora o escopo de teste o exija (PD-12)
2026-08-31E-mail 02 — o disparo passou a ser atribuído a outro serviço interno do TCE-GODecisão de Requisitos: a regra que decide quando enviar está fora do escopo do RF-008 (PD-16)
2026-08-31Rota do detalhe do processo padronizada como /processo/{id}Decisão de Requisitos: é a rota já desenvolvida na funcionalidade anterior (PD-11)
2026-08-31Tela 01 — o botão “Quero acompanhar” passou a declarar que o formulário abre na própria página, sem diálogo sobrepostoDecisão de Requisitos; o CA02 do PRD deixava a apresentação entre modal e expansão inline (PD-18)

Gerado com: documentar-funcionalidade-v1.md
Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br

  • pres/gerti/gestao_de_ativos/portal/er_008.txt
  • Última modificação: 07/09/2026 13:14
  • por pramorim