Pular para o conteúdo principal

Log de Auditoria

O DokStamp registra automaticamente toda operação de escrita em todas as entidades. O log de auditoria fornece um histórico completo e à prova de adulteração de alterações: quem as realizou, quando, de qual IP e URL, e exatamente o que mudou (diffs por campo com valores antigos e novos).

O que é registrado

Cada operação POST, PATCH, PUT, DELETE e de restauração gera uma entrada de auditoria. Os seguintes eventos são registrados:
EventoAcionado por
createdUma nova entidade é criada
updatedQualquer campo de uma entidade é alterado
deletedUma entidade sofre exclusão lógica
restoredUma entidade com exclusão lógica é restaurada

Estrutura do registro de auditoria

Cada entrada de auditoria captura:
CampoDescrição
eventcreated, updated, deleted ou restored
auditable_typeO modelo que foi alterado (ex: App\Models\Certificate)
auditable_idO ID do registro alterado
user_type + user_idO usuário autenticado que realizou a alteração
tenant_idO tenant no qual a alteração ocorreu
old_valuesJSON object com os valores anteriores dos campos alterados
new_valuesJSON object com os novos valores dos campos alterados
urlO endpoint da API que foi chamado
ip_addressEndereço IP do cliente
user_agentIdentificador do cliente HTTP
created_atTimestamp da alteração
Timestamps (created_at, updated_at) são excluídos intencionalmente dos diffs de auditoria. Apenas alterações de campos significativos aparecem em old_values / new_values.

Exemplos de entradas de auditoria

Certificado emitido

{
  "event": "created",
  "auditable_type": "App\\Models\\Certificate",
  "auditable_id": 142,
  "user_id": 3,
  "tenant_id": 1,
  "old_values": {},
  "new_values": {
    "status": "issued",
    "student_id": 88,
    "course_id": 12,
    "institution_id": 1,
    "issued_at": "2024-12-01 00:00:00"
  },
  "url": "https://api.dokstamp.eu/certificates",
  "ip_address": "203.0.113.42",
  "created_at": "2024-12-01T10:15:30Z"
}

Nome do curso alterado

{
  "event": "updated",
  "auditable_type": "App\\Models\\Course",
  "auditable_id": 12,
  "user_id": 2,
  "tenant_id": 1,
  "old_values": {
    "name": "Bachelor of Computer Science"
  },
  "new_values": {
    "name": "Bachelor of Computer Science and Engineering"
  },
  "url": "https://api.dokstamp.eu/courses/c3d4e5f6-a7b8-9012-cdef-123456789012",
  "ip_address": "203.0.113.10",
  "created_at": "2025-03-15T09:05:00Z"
}

Certificado revogado

{
  "event": "updated",
  "auditable_type": "App\\Models\\Certificate",
  "auditable_id": 142,
  "user_id": 1,
  "tenant_id": 1,
  "old_values": {
    "status": "issued",
    "revoked_at": null,
    "revocation_reason": null
  },
  "new_values": {
    "status": "revoked",
    "revoked_at": "2025-06-01 14:22:00",
    "revocation_reason": "Issued in error"
  },
  "url": "https://api.dokstamp.eu/certificates/a1b2c3d4-.../revoke",
  "ip_address": "203.0.113.10",
  "created_at": "2025-06-01T14:22:05Z"
}

Isolamento por tenant

Os registros de auditoria têm escopo definido por tenant. Os administradores de cada tenant só podem ver as entradas de auditoria dos seus próprios dados. Não há acesso de auditoria entre tenants.

Casos de uso para integrações

Depuração de problemas de sincronização: Se o seu sistema acredita ter enviado uma atualização mas o DokStamp exibe um valor diferente, o log de auditoria mostrará exatamente quando o valor foi alterado e qual usuário/IP causou a mudança. Conformidade: Para ambientes regulamentados, o log de auditoria fornece evidência de que a emissão e a revogação de certificados seguiram um fluxo de trabalho autorizado. Detecção de conflitos: Se dois sistemas estiverem gravando no DokStamp simultaneamente e sobrescrevendo as alterações um do outro, o log de auditoria revelará o padrão de conflito por meio da sequência de old_values / new_values. Rastreamento do histórico do certificado: Cada transição de status pela qual um certificado passa (draftissuedrevoked) é registrada como uma entrada de auditoria separada, fornecendo um histórico completo.

Acessando o log de auditoria

O log de auditoria está atualmente acessível pelo painel administrativo do DokStamp (painel Nova). Ele não está disponível como endpoint público da API. Para consultar o histórico de auditoria de uma entidade específica, acesse o painel e navegue até a visualização de detalhe da entidade — uma aba Auditoria exibe o histórico completo de alterações daquele registro.

O que NÃO é registrado

  • Campos de timestamp (created_at, updated_at) — estes são campos de sistema excluídos por design
  • Campos array/JSON não são comparados individualmente — o valor JSON inteiro é capturado
  • Operações de leitura (requisições GET) — apenas escritas são auditadas
  • Jobs de sistema em background (ex: renovação de token, operações internas de cache)