SkillAgentSearch skills...

Audit

Este repositório apresenta a implementação de um sistema de auditoria de dados, desenvolvido para demonstrar de forma prática a aplicação de um mecanismo de CDC (Change Data Capture).

Install / Use

/learn @Waelson/Audit
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Solução de Auditoria Baseada em CDC

Golang Debezium React

Este repositório contém a implementação de um sistema de auditoria de dados utilizando a técnica de Change Data Capture (CDC). O objetivo é capturar e registrar alterações realizadas em bancos de dados relacionais de forma transparente para a aplicação, oferecendo uma solução prática para auditoria e rastreamento de eventos.

Motivação

Sistemas onde a rastreabilidade de dados é essencial, como ambientes financeiros, e-commerce, ou qualquer aplicação sujeita a regulamentações, a auditoria de alterações nos dados é uma necessidade crítica. Este projeto demonstra como o CDC pode ser integrado a uma arquitetura moderna para capturar, armazenar e consultar eventos de forma estruturada.

Arquitetura

Architecture

Componentes

| Componente | Descrição | |------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| | Payment UI | Interface gráfica (frontend) que permite ao usuário iniciar pagamentos. | | Payment API | Serviço de backend responsável por processar e registrar transações no banco de dados PostgreSQL. | | PostgreSQL | Banco de dados utilizado para armazenar os registros das transações. | | Debezium Connector | Plataforma de Change Data Capture (CDC) que monitora o PostgreSQL por meio de seus arquivos WAL (Write-Ahead Logs) para capturar mudanças. | | Kafka Cluster | Sistema de mensageria que recebe as alterações capturadas pelo Debezium e distribui mensagens para os consumidores. | | Audit Consumer | Serviço que consome as mensagens do Kafka, realiza transformações nos dados e os insere no banco de dados ImmuDB. | | ImmuDB | Banco de dados imutável utilizado para armazenar os registros de auditoria, garantindo integridade e rastreabilidade dos eventos. | | Audit API | Serviço de backend que expõe endpoints para consulta e acesso aos registros de auditoria armazenados no ImmuDB. | | Audit UI | Interface gráfica (frontend) que permite a consulta e análise das trilhas de auditoria. |

Tecnologias

| Categoria | Ferramenta/Descrição | |---------------------|-----------------------------| | Linguagem | Golang, JavaScript (NodeJS) | | Bibliotecas | React | | Banco de Dados | ImmuDB, Postgres | | Mensageria | Apache Kafka |

Instalação

A aplicação está configurada para ser executada com Docker Compose. Siga os passos logo abaixo, mas assegure-se de ter os pré-requisitos instalados:

Pré-requisitos:

  • Docker
  • Go 1.21 ou superior
  • Node 20.12 ou superior (para executar projeto localmente)
  1. Clonar o repositório
git clone https://github.com/Waelson/audit.git
cd audit
  1. Inicializar a stack
docker-compose up --build
  1. Criar o conector
curl --location 'http://localhost:8083/connectors' \
--header 'Content-Type: application/json' \
--data '{
  "name": "postgres-connector",
  "config": {
    "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
    "database.hostname": "postgres",
    "database.port": "5432",
    "database.user": "postgres",
    "database.password": "password",
    "database.dbname": "payment_db",
    "database.server.name": "payment-postgres",
    "slot.name": "debezium_slot",
    "plugin.name": "pgoutput",
    "publication.name": "audit_events",
    "database.history.kafka.bootstrap.servers": "kafka:9092",
    "database.history.kafka.topic": "schema-changes.audit-trail",
    "topic.prefix": "audit",
    "table.include.list": "public.payments",
    "transforms": "RouteToTopic,AddAppName",
    "transforms.RouteToTopic.type": "org.apache.kafka.connect.transforms.RegexRouter",
    "transforms.RouteToTopic.regex": "audit.public.payments",
    "transforms.RouteToTopic.replacement": "audit-trail",
    "decimal.handling.mode": "string",
    "transforms.AddAppName.type": "org.apache.kafka.connect.transforms.InsertField$Value",
    "transforms.AddAppName.static.field": "application",
    "transforms.AddAppName.static.value": "payment-api"
  }
}'
  1. Acessar a UI de Simulação de Pagamentos
  • Digite a URL http://localhost:3000/ no browser.
  • Realize simulações de transações de pagamento de cartão de crédito clicando no botão Pay.
  1. Acessar a UI de Consulta de Trilhas de Auditoria
  • Digite a URL http://localhost:4000/ no browser.
  • Preencha os filtros, lembrando de que a única operação contemplada é Create e depois clique no botão Search.

Interface de Usuário

Simulador de Pagamentos

payment

Consulta de Trilhas de Auditoria

audit

Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias, correções ou novas funcionalidades.

Licença

Este projeto está licenciado sob a Licença MIT.

Related Skills

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated1y ago
Forks1

Languages

Go

Security Score

75/100

Audited on Feb 20, 2025

No findings