Ir para o conteúdo principal

[Assine Aqui] Manual Documental da API do Assine Aqui

Data de elaboração 24/08/2022
Responsável pelo estudo

Gabriel Santi Binda

Raissa de Sousa Stolduski
Taillon Miguel Gonçalves

Vinicius da Rosa Pereira
Ádelle Camarão Monteiro

Equipe do estudo Tambakiss
Alvo Assine Aqui
Origem


Casos de novas implementações

Objetivo Documentar as rotas da API do Sistema Gov.Doc
Documentação correlata (opcional)
Observações


1. Introdução

Assine Aqui é um sistema de autenticação de assinaturas para o cidadão e o servidor que tem como objetivo criar assinaturas simples e avançadas, para os sistemas do estado de Rondônia, os sistemas que utilizam o Assine Aqui são (Gov Doc, Portal do cidadão, Sisne etc).

2. Desenvolvimento

 2.1 Assinaturas

Rota POST/api​/Assinaturas
Descrição esta rota serve para o usuário assinar um documento de maneira simples, apenas com o usuário logado e senha.
Request Body


  • "cpf": "string" cpf do usuário logado.
  •   "senha": "string" senha do usuário logado.
  •   "sistemaClientId": Guid - o Id do sistema que está assinando.
  •   "documentosIds": ["string"] - aceita uma lista de documentos para assinar. 
Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-26T05:30:59.797Z",
  "dataDeRevogacao": "2022-08-26T05:30:59.797Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}

 2.2 Assinar Com Token

Rota POST​/api/Assinaturas/AssinarComToken
Descrição a rota para assinar com token utiliza como forma de autenticação para o documento a partir de um token que será enviado para o e-mail.
Request Body  
  • "cpf": "string"- cpf do usuário logado
  •   "token": "string" - o token que será enviado para o e-mail do usuário logado. 
  •  "sistemaClientId": Guid - Id do sistema que está assinando.
  •   "documentosIds": ["string"] - aceita uma lista de documentos(lista de Id)
  •   "documentosCorposEmHash": ["string"] é o Hash que será criado no corpo do documento, quando documento for alterado o Hash também deverá ser alterado.

Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-26T05:38:17.776Z",
  "dataDeRevogacao": "2022-08-26T05:38:17.776Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}

 2.3 Revogar

Rota POST/api/Assinaturas/Revogar
Descrição revoga assinatura apenas com o usuário logado e senha.
Request Body


  • "cpf": "string" - cpf do usuário logado
  •   "senha": "string" - senha do usuário
  •   "assinaturaId": Guid - Id da assinatura que irá revogar
Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-26T05:46:48.885Z",
  "dataDeRevogacao": "2022-08-26T05:46:48.885Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}

 2.4 Gerar Token

Rota POST/api/Assinaturas/GerarToken
Descrição gera um token após o usuário validar as suas credenciais.
Request Body


  •   "cpf": "string" - cpf do usuário logado
  •   "senha": "string" - senha do usuário.
  •   "sistemaClientId": Guid - Id do sistema que está gerando token.
Response retornar um código para o e-mail do usuário logado.

 2.5 Revogar Por DocumentoId

Rota POST​/api/Assinaturas/RevogarPorDocumentoId
Descrição irá revogar a assinatura a partir do id do documento.
Request Body


  •   "cpf": "string" - cpf do usuário logado
  •   "senha": "string" - senha do usuário
  •   "documentoId": "string" - Id da assinatura que irá revogar
  •   "sistemaClientId": Guid  - Id do sistema que está revogando a assinatura.
Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-26T05:55:43.261Z",
  "dataDeRevogacao": "2022-08-26T05:55:43.261Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}

 2.6 {id}

Rota GET/api/Assinaturas/{id}
Descrição irá retornar o nome do usuário que assinou o documento.
Request Body


  • "id": Guid - Id da assinatura
Response
{
  "assinaturaId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "nome": "string",
  "cpf": "string",
  "matricula": "string",
  "cargo": "string",
  "dataDaAssinatura": "2022-08-29T05:17:12.979Z",
  "documentoId": "string",
  "dataDeRevogacao": "2022-08-29T05:17:12.979Z",
  "assinaturaRevogada": true,
  "ehUsuarioExterno": true
}

 2.7 Buscar Por CPF

Rota POST​/api​/Assinaturas​/BuscarPorCPF
Descrição essa rota busca todas as assinaturas que o usuário tem no sistema.
Request Body


  • cpf: "string" - cpf do usuário logado
  •   senha: "string" - senha do usuário.
Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-29T05:22:37.233Z",
  "dataDeRevogacao": "2022-08-29T05:22:37.233Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}

 2.8 Buscar Por DocumentoId

Rota POST/api/Assinaturas/BuscarPorDocumentoId
Descrição busca a assinatura pelo id do documento, retornando todos detalhes do usuário que assinou.
Request Body


  • "documentoId": Guid - Id do ocumento que foi assinado pelo usuário
  •   "sistemaClientId": Guid - Id do sistema que está buscando documento.
Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-29T05:31:10.343Z",
  "dataDeRevogacao": "2022-08-29T05:31:10.343Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}

 2.9 Validar Assinatura

Rota POST/api/Assinaturas/BuscarAssinaturasValidasDoDocumento
Descrição essa rota irá validar assinatura de acordo com o corpo do documento.
Request Body


  • "documentoId": "string" - id do documento que foi assinado
  •   "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" - id do sistema que buscando as assinaturas.
  •   "corpo": "string" - o corpo do documento que foi assinado.
Response
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cpf": "string",
  "sistemaClientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "documentoId": "string",
  "cargo": "string",
  "matricula": "string",
  "nome": "string",
  "data": "2022-08-29T05:35:52.446Z",
  "dataDeRevogacao": "2022-08-29T05:35:52.446Z",
  "corpo": "string",
  "revogada": true,
  "ehUsuarioExterno": true
}
Rota POST/api/Assinaturas/ValidarAssinatura
Descrição

irá validar a assinatura de acordo com o hash do corpo do documento, se o hash do documento estiver de acordo com a assinatura irá retornar true.

Request Body


  • "assinaturaId": "Guid" - Id da assinatura do usuário
  •   "sistemaClientId": "Guid" - Id do sistema que foi criado o documento
  •   "hashDoCorpo": "string" - o hash do corpo do documento criado após assinar
Response retorna true.


3.Conclusão

Concluímos que após analisar todas as funcionalidades do sistema Assine Aqui o mesmo está apto para ser utilizado em todos por os sistemas do Governo de Rondônia.