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 [31/08/2026 20:24] – pramorim | pres:gerti:gestao_de_ativos:portal:er_008 [08/09/2026 16:49] (atual) – pramorim | ||
|---|---|---|---|
| Linha 7: | Linha 7: | ||
| * 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 135: | Linha 135: | ||
| ==== E-mail 02 – Notificação de Movimentação ==== | ==== E-mail 02 – Notificação de Movimentação ==== | ||
| - | {{: | + | {{: |
| - | Disparado sempre que houver uma movimentação em um processo já confirmado. **O disparo | + | Disparado sempre que houver uma movimentação em um processo já confirmado. **O disparo |
| ^Elemento^Conteúdo^Observaçã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.| | |Remetente|`push@tce.go.gov.br`|Endereço institucional único para os três e-mails do RF-008.| | ||
| |Assunto|" | |Assunto|" | ||
| - | |Corpo|Número do processo, descrição da movimentação | + | |Corpo |
| + | |Corpo — **Andamento atual**|" | ||
| + | |Corpo — **Dados da autuação**|" | ||
| |Link "Ver processo completo" | |Link "Ver processo completo" | ||
| - | |Link "Gerenciar meus acompanhamentos" | + | |Link "Solicitar link de gerenciamento" |
| - | |Link "Parar de acompanhar este processo" | + | |Link "Parar de acompanhar este processo" |
| ==== E-mail 03 – Reenvio de Link de Gerenciamento ==== | ==== E-mail 03 – Reenvio de Link de Gerenciamento ==== | ||
| Linha 198: | 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 primeira página da lista de 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| | ||
| Linha 209: | Linha 211: | ||
| |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 219: | Linha 221: | ||
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| | ||
| - | |01|Usuário recebe o e-mail de notificação com link "Parar de receber | + | |01|Usuário recebe o e-mail de notificação com link "Parar de acompanhar |
| |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 246: | 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|**Token único do serviço, com validade de 48 horas** – O TCE-Push emite um único tipo de token, | + | |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, |
| |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|**Uso múltiplo dentro da validade** – O token 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.| | + | |RN09|**Uso múltiplo dentro da validade** – O **token de sessão** |
| |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, | ||
| Linha 260: | Linha 266: | ||
| |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 '' | |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, | |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 271: | 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 296: | Linha 304: | ||
| ^ 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: | ||
| Linha 309: | Linha 319: | ||
| |`smtp.tce.go.gov.br`|Host SMTP institucional, | |`smtp.tce.go.gov.br`|Host SMTP institucional, | ||
| |`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, | |`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, | ||
| + | |||
| + | ==== Mecanismo de Disparo da Notificação (legado) ==== | ||
| + | |||
| + | 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 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/ | ||
| + | |||
| + | === 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 322: | Linha 373: | ||
| ^ Data ^ Alteração ^ Motivo ^ | ^ 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|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|Fluxo 01 — passos 10 e 10.1 renumerados para 09 e 09.1|Lacuna de numeração corrigida a pedido de Requisitos (PD-13)| | ||
| Linha 336: | Linha 394: | ||
| //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// | ||
| - | |||