Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
| pres:gerti:gestao_de_ativos:portal:er_008 [06/07/2026 19:58] – pramorim | pres:gerti:gestao_de_ativos:portal:er_008 [08/09/2026 16:49] (atual) – pramorim | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | ====== RF-008 – TCE-Push – Acompanhamento de Processos por E-mail ====== | + | ====== 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. | 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:** | **Local de acesso:** | ||
| - | * Widget de inscrição: | + | * Widget de inscrição: |
| * Página de confirmação: | * Página de confirmação: | ||
| * Página de gerenciamento: | * Página de gerenciamento: | ||
| - | * Página de cancelamento: | + | * Página de cancelamento: |
| ---- | ---- | ||
| Linha 19: | Linha 19: | ||
| ===== Telas ===== | ===== Telas ===== | ||
| + | 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. | ||
| - | ==== Tela 01 – Widget de Inscrição (/processos/{id}) ==== | + | ==== Tela 01 – Widget de Inscrição (/processo/{id}) ==== |
| + | |||
| + | --- | ||
| //Estado idle//\\ | //Estado idle//\\ | ||
| {{: | {{: | ||
| + | --- | ||
| // Estados formulario e loading//\\ | // Estados formulario e loading//\\ | ||
| {{: | {{: | ||
| + | --- | ||
| //Estado confirmacao-pendente// | //Estado confirmacao-pendente// | ||
| {{: | {{: | ||
| + | --- | ||
| //Estado inscrito// | //Estado inscrito// | ||
| {{: | {{: | ||
| - | |||
| - | 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. | ||
| ^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| | ^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| | ||
| - | |Botão "Quero acompanhar" | + | |Botão "Quero acompanhar" |
| |Cabeçalho do formulário|Texto|-|-|" | |Cabeçalho do formulário|Texto|-|-|" | ||
| - | |E-mail|Campo texto|Sim|Formato RFC 5322|Vazio|Exibido nos estados // | + | |E-mail|Campo texto|Sim|Formato RFC 5322|Vazio|Exibido nos estados // |
| |Botão "Quero acompanhar" | |Botão "Quero acompanhar" | ||
| |Botão " | |Botão " | ||
| Linha 52: | Linha 56: | ||
| 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. | 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. | ||
| + | |||
| + | --- | ||
| + | // | ||
| + | {{: | ||
| + | |||
| + | --- | ||
| + | //Link expirado// | ||
| + | {{: | ||
| ^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| | ^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| | ||
| Linha 57: | Linha 69: | ||
| |Título " | |Título " | ||
| |Mensagem de confirmação|Texto|-|-|-|Exibido no estado // | |Mensagem de confirmação|Texto|-|-|-|Exibido no estado // | ||
| - | |Botão " | + | |Botão " |
| - | |Botão " | + | |Botão " |
| - | |Lista "Seus processos acompanhados" | + | |Lista "Seus processos acompanhados" |
| |Título "Link inválido ou expirado" | |Título "Link inválido ou expirado" | ||
| |Mensagem de erro|Texto|-|-|-|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." | |Mensagem de erro|Texto|-|-|-|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." | ||
| Linha 71: | Linha 83: | ||
| |Indicador de carregamento|Spinner|-|-|-|Exibido no estado //loading// enquanto o token é validado e a lista é carregada. Acompanha o texto " | |Indicador de carregamento|Spinner|-|-|-|Exibido no estado //loading// enquanto o token é validado e a lista é carregada. Acompanha o texto " | ||
| |Identificação do e-mail|Texto|-|-|-|Exibido no estado //lista//. Texto: " | |Identificação do e-mail|Texto|-|-|-|Exibido no estado //lista//. Texto: " | ||
| - | |Card de processo|Card|-|-|-|Exibido no estado //lista// para cada processo acompanhado. Contém: número do processo (link clicável para ''/ | + | |Card de processo|Card|-|-|-|Exibido no estado //lista// para cada processo acompanhado. Contém: número do processo (link clicável para ''/ |
| |Botão "Parar de acompanhar" | |Botão "Parar de acompanhar" | ||
| |Confirmação inline de remoção|Expansão inline|-|-|Recolhido|Exibida no card após clique em "Parar de acompanhar" | |Confirmação inline de remoção|Expansão inline|-|-|Recolhido|Exibida no card após clique em "Parar de acompanhar" | ||
| Linha 77: | Linha 89: | ||
| |Botão " | |Botão " | ||
| |Mensagem de lista vazia|Texto|-|-|-|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." | |Mensagem de lista vazia|Texto|-|-|-|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." | ||
| + | |Paginação|Componente de paginação|-|-|-|Exibida no estado //lista// somente quando a quantidade de processos acompanhados ultrapassa **12 itens**. Reaproveita o componente '' | ||
| |Título "Link expirado" | |Título "Link expirado" | ||
| |E-mail (reenvio de link)|Campo texto|Sim|Formato RFC 5322|Vazio|Exibido no estado // | |E-mail (reenvio de link)|Campo texto|Sim|Formato RFC 5322|Vazio|Exibido no estado // | ||
| Linha 84: | Linha 97: | ||
| Tela acessada pelo link "Parar de receber este acompanhamento" | Tela acessada pelo link "Parar de receber este acompanhamento" | ||
| + | |||
| + | --- | ||
| + | // | ||
| + | {{: | ||
| + | |||
| + | --- | ||
| + | //Link expirado ou já utilizado// | ||
| + | {{: | ||
| ^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| | ^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| | ||
| Linha 89: | Linha 110: | ||
| |Título " | |Título " | ||
| |Mensagem de cancelamento|Texto|-|-|-|Exibido no estado // | |Mensagem de cancelamento|Texto|-|-|-|Exibido no estado // | ||
| - | |Botão "Ver todos os meus acompanhamentos" | + | |Botão "Ver todos os meus acompanhamentos" |
| |Botão " | |Botão " | ||
| |Título "Link inválido" | |Título "Link inválido" | ||
| |Mensagem de erro|Texto|-|-|-|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." | |Mensagem de erro|Texto|-|-|-|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 " | |Botão " | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== E-mails Enviados ===== | ||
| + | |||
| + | 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`**, | ||
| + | |||
| + | ==== E-mail 01 – Confirmação de Inscrição ==== | ||
| + | {{: | ||
| + | |||
| + | 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). | ||
| + | |||
| + | ^Elemento^Conteúdo^Observação| | ||
| + | |Remetente|`push@tce.go.gov.br`|Endereço institucional único para os três e-mails do RF-008.| | ||
| + | |Assunto|" | ||
| + | |Corpo|" | ||
| + | |Botão " | ||
| + | |Rodapé|" | ||
| + | |||
| + | ==== E-mail 02 – Notificação de Movimentação ==== | ||
| + | {{: | ||
| + | |||
| + | 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, | ||
| + | |||
| + | ^Elemento^Conteúdo^Observação| | ||
| + | |Remetente|`push@tce.go.gov.br`|Endereço institucional único para os três e-mails do RF-008.| | ||
| + | |Assunto|" | ||
| + | |Corpo — identificação|Número do processo| | | ||
| + | |Corpo — **Andamento atual**|" | ||
| + | |Corpo — **Dados da autuação**|" | ||
| + | |Link "Ver processo completo" | ||
| + | |Link " | ||
| + | |Link "Parar de acompanhar este processo" | ||
| + | |||
| + | ==== E-mail 03 – Reenvio de Link de Gerenciamento ==== | ||
| + | {{: | ||
| + | |||
| + | 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 " | ||
| + | |||
| + | ^Elemento^Conteúdo^Observação| | ||
| + | |Remetente|`push@tce.go.gov.br`|Endereço institucional único para os três e-mails do RF-008.| | ||
| + | |Assunto|" | ||
| + | |Corpo|Link de acesso ao painel de gerenciamento|O 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 " | ||
| ---- | ---- | ||
| Linha 102: | Linha 167: | ||
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| | ||
| - | |01|Usuário acessa a página de um processo autuado em ''/ | + | |01|Usuário acessa a página de um processo autuado em ''/ |
| |02|O sistema exibe o widget TCE-Push no estado idle com o botão "Quero acompanhar" | |02|O sistema exibe o widget TCE-Push no estado idle com o botão "Quero acompanhar" | ||
| |03|Usuário clica em "Quero acompanhar" | |03|Usuário clica em "Quero acompanhar" | ||
| |04|O sistema exibe o formulário com o campo "Seu e-mail" | |04|O sistema exibe o formulário com o campo "Seu e-mail" | ||
| |05|Usuário informa o e-mail e clica em "Quero acompanhar" | |05|Usuário informa o e-mail e clica em "Quero acompanhar" | ||
| - | |05.1|E-mail inválido: o sistema exibe mensagem | + | |05.1|E-mail inválido |
| |06|O sistema transiciona o widget para o estado loading e processa a solicitação| |Tela 01| | |06|O sistema transiciona o widget para o estado loading e processa a solicitação| |Tela 01| | ||
| |07|O sistema valida que o e-mail não está inscrito neste processo|RN03 RN04| | | |07|O sistema valida que o e-mail não está inscrito neste processo|RN03 RN04| | | ||
| - | |07.1|O sistema envia e-mail de confirmação com token de validade de 48h. A confirmação é obrigatória para qualquer inscrição, | + | |07.1|O sistema envia o e-mail de confirmação com token de validade de 48h. A confirmação é obrigatória para qualquer inscrição, |
| |07.2|O sistema exibe o estado confirmacao-pendente: | |07.2|O sistema exibe o estado confirmacao-pendente: | ||
| |08|O sistema identifica que o e-mail já está inscrito para este processo|RN04| | | |08|O sistema identifica que o e-mail já está inscrito para este processo|RN04| | | ||
| |08.1|O sistema exibe o estado inscrito: "Você já está acompanhando este processo" | |08.1|O sistema exibe o estado inscrito: "Você já está acompanhando este processo" | ||
| - | |10|O sistema identifica que o número do processo não existe|RN05| | | + | |09|O sistema identifica que o número do processo não existe|RN05| | |
| - | |10.1|O sistema exibe o estado erro com a mensagem retornada pelo servidor|RN05|Tela 01| | + | |09.1|O sistema exibe o estado erro com a mensagem retornada pelo servidor|RN05|Tela 01| |
| ==== Fluxo 02 – Confirmação de Inscrição ==== | ==== Fluxo 02 – Confirmação de Inscrição ==== | ||
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| | ||
| - | |01|Usuário recebe e-mail de confirmação com o assunto " | + | |01|Usuário recebe |
| |02|Usuário clica no link " | |02|Usuário clica no link " | ||
| |03|O sistema redireciona para ''/ | |03|O sistema redireciona para ''/ | ||
| Linha 127: | Linha 192: | ||
| |05.1|O sistema vincula o processo ao e-mail|RN02| | | |05.1|O sistema vincula o processo ao e-mail|RN02| | | ||
| |05.2|O sistema exibe o estado sucesso: " | |05.2|O sistema exibe o estado sucesso: " | ||
| - | |05.3|O sistema exibe a lista de todos os processos acompanhados pelo e-mail| |Tela 02| | + | |05.3|O sistema exibe os 3 processos |
| |06|Token inválido ou expirado|RN02| | | |06|Token inválido ou expirado|RN02| | | ||
| |06.1|O sistema exibe o estado erro: "Link inválido ou expirado" | |06.1|O sistema exibe o estado erro: "Link inválido ou expirado" | ||
| Linha 135: | Linha 200: | ||
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| | ||
| - | |01|Usuário | + | |01|Usuário |
| |02|Usuário clica no link| | | | |02|Usuário clica no link| | | | ||
| - | |03|O sistema redireciona para ''/ | + | |03|O sistema redireciona para ''/ |
| - | |04|O sistema exibe o estado loading: " | + | |04|O sistema exibe o estado loading: " |
| |05|Token válido|RN09| | | |05|Token válido|RN09| | | ||
| - | |05.1|O sistema exibe a lista de todos os processos acompanhados pelo e-mail associado ao token, com o e-mail mascarado|RN09|Tela 03| | + | |05.1|O sistema exibe a primeira página da lista de processos acompanhados pelo e-mail associado ao token, com o e-mail mascarado|RN09|Tela 03| |
| |05.2|Lista vazia: o sistema exibe o empty state "Você não está acompanhando nenhum processo no momento." | |05.2|Lista vazia: o sistema exibe o empty state "Você não está acompanhando nenhum processo no momento." | ||
| + | |05.3|Lista com mais de 12 processos: o sistema exibe o componente de paginação; | ||
| |06|Usuário clica em "Parar de acompanhar" | |06|Usuário clica em "Parar de acompanhar" | ||
| |06.1|O sistema exibe, inline no card, o alerta " | |06.1|O sistema exibe, inline no card, o alerta " | ||
| |06.2|Usuário clica em " | |06.2|Usuário clica em " | ||
| - | |06.3|Usuário clica em " | + | |06.3|Usuário clica em " |
| |06.4|O sistema remove o processo da lista sem recarregar a página e oculta o spinner| |Tela 03| | |06.4|O sistema remove o processo da lista sem recarregar a página e oculta o spinner| |Tela 03| | ||
| |06.5|Lista esvaziada: o sistema exibe o empty state automaticamente| |Tela 03| | |06.5|Lista esvaziada: o sistema exibe o empty state automaticamente| |Tela 03| | ||
| Linha 155: | Linha 221: | ||
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| | ||
| - | |01|Usuário recebe e-mail de notificação com link "Parar de receber | + | |01|Usuário recebe |
| |02|Usuário clica no link| | | | |02|Usuário clica no link| | | | ||
| - | |03|O sistema redireciona para ''/ | + | |03|O sistema redireciona para ''/ |
| - | |04|O sistema exibe o estado loading: " | + | |04|O sistema exibe o estado loading: " |
| |05|Token válido|RN06| | | |05|Token válido|RN06| | | ||
| |05.1|O sistema remove imediatamente o processo da lista de acompanhamentos do e-mail|RN06| | | |05.1|O sistema remove imediatamente o processo da lista de acompanhamentos do e-mail|RN06| | | ||
| |05.2|O sistema exibe o estado sucesso: " | |05.2|O sistema exibe o estado sucesso: " | ||
| - | |05.3|O sistema exibe o link "Ver todos os meus acompanhamentos" → ''/ | + | |05.3|O sistema exibe o link "Solicitar link de gerenciamento" → ''/ |
| |06|Token inválido| | | | |06|Token inválido| | | | ||
| - | |06.1|O sistema exibe o estado erro: "Link inválido" | + | |06.1|O sistema exibe o estado erro: "Link inválido" |
| + | |||
| + | <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, | ||
| + | </ | ||
| ==== Fluxo 05 – Reenvio de Link de Gerenciamento ==== | ==== Fluxo 05 – Reenvio de Link de Gerenciamento ==== | ||
| Linha 172: | Linha 242: | ||
| |02|Usuário clica em " | |02|Usuário clica em " | ||
| |03|O sistema processa a solicitação|RN08| | | |03|O sistema processa a solicitação|RN08| | | ||
| + | |03.1|Se 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 RN09|E-mail 03| | ||
| |04|O sistema exibe a mensagem: "Se este endereço possui acompanhamentos ativos, você receberá o link de acesso em breve." | |04|O sistema exibe a mensagem: "Se este endereço possui acompanhamentos ativos, você receberá o link de acesso em breve." | ||
| |04.1|Nota: o sistema não confirma nem nega a existência do e-mail na base de dados, independentemente do resultado interno|RN08| | | |04.1|Nota: o sistema não confirma nem nega a existência do e-mail na base de dados, independentemente do resultado interno|RN08| | | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Integrações ===== | ||
| - | |||
| - | ^ Sistema ^ Tipo ^ Descrição ^ | ||
| - | | Catálogo de Serviços TCE (api/ | ||
| - | | Banco de Dados Oracle | Interno | Armazena os vínculos entre e-mails e processos acompanhados | | ||
| - | | Servidor SMTP (smtp.tce.go.gov.br) | E-mail | Envia os e-mails de confirmação, | ||
| ---- | ---- | ||
| Linha 190: | Linha 252: | ||
| ^ Regra ^ Descrição ^ | ^ Regra ^ Descrição ^ | ||
| |RN01|**Validaçã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.| | |RN01|**Validaçã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.| | ||
| - | |RN02|**Expiração | + | |RN02|**Dois 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, |
| |RN03|**Confirmaçã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, | |RN03|**Confirmaçã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, | ||
| |RN04|**Vedaçã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" | |RN04|**Vedaçã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" | ||
| |RN05|**Existê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.| | |RN05|**Existê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.| | ||
| |RN06|**Cancelamento 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.| | |RN06|**Cancelamento 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.| | ||
| - | |RN07|**Escopo do cancelamento por link** – O link "Parar de receber | + | |RN07|**Escopo do cancelamento por link** – O link "Parar de acompanhar |
| |RN08|**Resposta neutra no reenvio de link** – Ao solicitar reenvio do link de gerenciamento, | |RN08|**Resposta neutra no reenvio de link** – Ao solicitar reenvio do link de gerenciamento, | ||
| - | |RN09|**Token de gerenciamento de uso múltiplo** – O token enviado no link de gerenciamento | + | |RN09|**Uso múltiplo |
| |RN10|**Sem limite de processos por e-mail** – Não há limite máximo de processos que podem ser associados a um único e-mail.| | |RN10|**Sem limite de processos por e-mail** – Não há limite máximo de processos que podem ser associados a um único e-mail.| | ||
| |RN11|**Confirmação antes de remover na tela de gerenciamento** – Na página de gerenciamento, | |RN11|**Confirmação antes de remover na tela de gerenciamento** – Na página de gerenciamento, | ||
| |RN12|**Cadastro implícito de usuário (sem tela de cadastro)** – Não existe formulário de nome/senha para o usuário. Internamente, | |RN12|**Cadastro implícito de usuário (sem tela de cadastro)** – Não existe formulário de nome/senha para o usuário. Internamente, | ||
| + | |RN13|**Lista resumida na tela de confirmação** – Na tela de confirmação de inscrição (Tela 02), a lista "Seus processos acompanhados" | ||
| + | |RN14|**Paginaçã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 '' | ||
| + | |RN15|**Conformidade de acessibilidade** – Todas as telas do RF-008 seguem a diretriz **e-MAG 3.1** adotada pelo Portal. São verificáveis, | ||
| + | |RN16|**Token de descadastro** – Gerado **na confirmação da inscrição**, | ||
| + | |RN17|**Dois endpoints de cancelamento, | ||
| ---- | ---- | ||
| Linha 212: | Linha 279: | ||
| ^ Tabela ^ Papel no legado ^ Reaproveitamento no novo modelo ^ | ^ 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).| | |`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" | + | |`PRO_ACOMPANHAPROCESSO`|Tabela de associação entre `PSH_USUARIOS` (`PSHUSUA_ID`) e `PRO_AUTUACAO` (`PROAUTU_ID`) — representa "quais processos este usuário acompanha" |
| |`PRO_AUTUACAO`|Tabela de processos autuados|**Reaproveitada apenas para leitura** (validação de existência do processo — RN05 — e composição dos dados exibidos: número, interessado, | |`PRO_AUTUACAO`|Tabela de processos autuados|**Reaproveitada apenas para leitura** (validação de existência do processo — RN05 — e composição dos dados exibidos: número, interessado, | ||
| Linha 233: | Linha 300: | ||
| |`WEB_PACKAGE.PWEB_REMOVEACOMPPROCESSO`|ID interno da autuação (`P_PROAUTU`), | |`WEB_PACKAGE.PWEB_REMOVEACOMPPROCESSO`|ID interno da autuação (`P_PROAUTU`), | ||
| - | ==== Endpoints da API Legada | + | ==== Endpoints da API do Catálogo |
| ^ Endpoint legado ^ Reaproveitamento no RF-008 ^ | ^ Endpoint legado ^ Reaproveitamento no RF-008 ^ | ||
| |`POST api/ | |`POST api/ | ||
| + | |Portal legado `/Push` (formulário de inscrição)|**Desligado no corte.** Encerra a criação de acompanhamentos por fora do fluxo de confirmação do RF-008, garantindo que toda linha nova de `PRO_ACOMPANHAPROCESSO` nasça com hash de descadastro (RN16).| | ||
| |`POST api/ | |`POST api/ | ||
| - | |`GET api/ | + | |`GET api/ |
| |`PUT api/ | |`PUT api/ | ||
| - | |`DELETE api/ | + | |`DELETE api/ |
| + | |— (não existe no legado)|**Desenvolvimento novo:** `DELETE / | ||
| |`GET api/ | |`GET api/ | ||
| - | |Autenticação `BasicAuthorizationPush` (header `Authorization: | + | |Autenticação `BasicAuthorizationPush` (header `Authorization: |
| + | |||
| + | ==== Serviço de Envio de E-mail Reaproveitado ==== | ||
| + | |||
| + | ^ Componente ^ Papel no legado ^ Reaproveitamento no RF-008 ^ | ||
| + | |`IServicoDeEmail` / `ServicoDeEmail` (`TCE.Compartilhado.Servico.Servicos.Contato`)|Camada compartilhada de envio, usada por `ServicoDeUsuarioPush`, | ||
| + | |`smtp.tce.go.gov.br`|Host SMTP institucional, | ||
| + | |`push@tce.go.gov.br`|—|**Endereço | ||
| + | |||
| + | ==== Mecanismo | ||
| + | |||
| + | 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: | ||
| + | |||
| + | - **Enfileiramento (imediato).** Todo registro de andamento gravado em `PRO_ANDAMENTO` marca, via // | ||
| + | - **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`, | ||
| + | |||
| + | 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 **lê** o token; a geração ocorre na inscrição, | ||
| + | * 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, | ||
| + | * **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: | ||
| + | |||
| + | Os demais processos são notificados normalmente — inclusive os marcados | ||
| + | |||
| + | **O comportamento atual não será alterado pelo RF-008.** //Decisão de Requisitos, 06/ | ||
| + | |||
| + | === 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 ^ | ||
| + | |**Granularidade**|Se 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, | ||
| + | |**Escopo do " | ||
| + | |**Confiabilidade do envio**|Falhas 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.| | ||
| + | |**Tratamento especial de uma conta**|Uma regra fixa no banco, acionada a cada autuação nova, dá tratamento diferenciado às inscrições de **uma conta identificada por ID literal**, atualizando o campo de andamento delas. Não cria acompanhamentos — a criação é exclusiva do fluxo de confirmação.|Confirmar a quem a regra pertence e se deve ser preservada. O RF-008 não depende dela, mas quem alterar o mecanismo de disparo precisa saber que existe.| | ||
| ==== Riscos e Pontos de Atenção para o Backend ==== | ==== Riscos e Pontos de Atenção para o Backend ==== | ||
| Linha 250: | Linha 367: | ||
| * **ID de Autuação como identificador único do processo:** todo o contrato do RF-008 (requisições da API, tokens de confirmação/ | * **ID de Autuação como identificador único do processo:** todo o contrato do RF-008 (requisições da API, tokens de confirmação/ | ||
| * **Nenhuma estrutura de token existente é reaproveitável tal como está:** o legado não possui tabela/ | * **Nenhuma estrutura de token existente é reaproveitável tal como está:** o legado não possui tabela/ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Histórico de Revisões ===== | ||
| + | |||
| + | ^ Data ^ Alteração ^ Motivo ^ | ||
| + | |2026-09-06|RN16 — hash gerado **na confirmação** (não na inscrição), | ||
| + | |2026-09-06|**Decisões técnicas registradas: | ||
| + | |2026-09-06|**RN17 acrescentada** — cancelamento aceita os dois tipos de token, em endpoint único, com escopo determinado pelo tipo; Fluxo 03 passo 06.3 passou a citá-la|A 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-06|**RN02 desdobrada em dois tipos de token** (sessão, 48h; descadastro, | ||
| + | |2026-09-06|E-mail 02 — corpo passou a incluir **Órgão ou Setor Atual**, **Data Autuação** e **Ano Referência**; | ||
| + | |2026-09-06|Registrado que **o template do E-mail 02 é implementado em PL/SQL**, onde ocorre o disparo; `PRO_ACOMPANHAPROCESSO` pode requerer coluna adicional|Decisã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-06|**Acrescentada a subseção " | ||
| + | |2026-08-31|Tela 01 e Fluxo 01 passo 05.1 — a mensagem " | ||
| + | |2026-08-31|Fluxo 01 — passos 10 e 10.1 renumerados para 09 e 09.1|Lacuna de numeração corrigida a pedido de Requisitos (PD-13)| | ||
| + | |2026-08-31|RN02 reescrita — token **único** do serviço, validade de 48h, reaproveitável nos fluxos de confirmação, | ||
| + | |2026-08-31|RN09 reescrita — uso múltiplo em qualquer fluxo dentro das 48h|Alinhamento à RN02 (PD-04, PD-09)| | ||
| + | |2026-08-31|Telas 02 e 04 — botões de acesso ao painel passaram a declarar o reaproveitamento do token recebido|O conflito apontado na análise de estratégia de tokens deixou de existir com a decisão da RN02 (PD-04)| | ||
| + | |2026-08-31|RN14 — registrado que o tamanho da página é fixo, sem seletor de itens|Decisão de Requisitos (PD-15)| | ||
| + | |2026-08-31|**RN15 acrescentada** — conformidade de acessibilidade e-MAG 3.1|O RF não declarava requisito de acessibilidade, | ||
| + | |2026-08-31|E-mail 02 — o disparo passou a ser atribuído a outro serviço interno do TCE-GO|Decisão de Requisitos: a regra que decide quando enviar está fora do escopo do RF-008 (PD-16)| | ||
| + | |2026-08-31|Rota do detalhe do processo padronizada como ''/ | ||
| + | |2026-08-31|Tela 01 — o botão "Quero acompanhar" | ||
| --- | --- | ||
| //Gerado com: documentar-funcionalidade-v1.md// | //Gerado com: documentar-funcionalidade-v1.md// | ||
| //Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br// | //Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br// | ||
| - | |||