Skip to content

emal0n/code_compliance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 Code Compliance Java - Sistema Completo de Compliance e Segurança de Código

Sistema completo e robusto para auditoria de dependências, análise de código, monitoramento de pipelines, detecção de vulnerabilidades e compliance desenvolvido em Java 17 com Spring Boot 3.

Java Spring Boot License

🚀 Funcionalidades Principais

📦 Análise de Dependências

  • 7 Linguagens Suportadas: Python, Node.js, Java, C#, Go, Rust e PHP
  • Múltiplos Gerenciadores: pip, npm, yarn, maven, gradle, nuget, go mod, cargo, composer
  • Detecção Automática: Identifica arquivos de dependências automaticamente
  • Análise Transitiva: Mapeia dependências indiretas com árvores hierárquicas

🔒 Análise de Vulnerabilidades com Trivy

  • Integração Completa: Usa Trivy CLI para detecção de vulnerabilidades
  • Classificação de Severidade: Critical, High, Medium, Low
  • Informações Detalhadas: CVE, CVSS Score, Exploit Maturity, Referências
  • Relatórios Avançados: PDF, JSON, CSV com análises detalhadas

⚖️ Detecção de Licenças

  • Classificação Inteligente: Open source, proprietárias, restritivas e desconhecidas
  • Validação de Compliance: Verifica compatibilidade de licenças
  • Base de Dados Atualizada: Licenças SPDX e customizadas

🕰️ Detecção de Dependências Obsoletas

  • Verificação de Versões: Compara versões atuais com as mais recentes
  • Múltiplos Registros: Consulta APIs de todos os gerenciadores de pacotes
  • Classificação Inteligente: Distingue entre obsoletas e desatualizadas

🔔 Sistema de Webhooks

  • 4 Plataformas: Slack, Discord, Microsoft Teams e APIs genéricas
  • 8 Eventos: Início, conclusão, falha, vulnerabilidades, licenças proprietárias, etc.
  • Formatação Inteligente: Mensagens otimizadas para cada plataforma
  • Retry Automático: Sistema robusto de tentativas e recuperação

🚀 Monitoramento de Pipelines GitHub Actions

  • Coleta Automática: Monitoramento em tempo real de execuções de pipeline
  • Métricas de Performance: Tempo médio de build, análise estatística (P95, P99)
  • Métricas de Qualidade: Taxa de sucesso, análise de falhas, estabilidade
  • Score de Saúde: Pontuação geral (0-100) com alertas e recomendações

🌐 API REST Completa

  • Endpoints RESTful: CRUD completo para todos os recursos
  • Documentação Automática: Swagger/OpenAPI com documentação interativa
  • Autenticação: Suporte a API Key e JWT
  • Rate Limiting: Proteção contra abuso com limites configuráveis
  • Paginação: Suporte a paginação em todas as listagens

📋 Requisitos do Sistema

Mínimos

  • Java: 17 ou superior
  • Maven: 3.8+ ou Gradle 8+
  • Memória: 1GB RAM
  • Disco: 500MB para instalação
  • Rede: Conexão com GitHub API

Recomendados

  • Java: 21+
  • Memória: 4GB+ RAM
  • Disco: 2GB+ para cache e logs
  • Banco de Dados: PostgreSQL 15+

Dependências Externas

  • GitHub: Token de acesso (obrigatório)
  • Trivy CLI: Para análise de vulnerabilidades (opcional mas recomendado)
  • PostgreSQL: Para ambiente de produção (opcional, H2 em memória por padrão)

🛠️ Instalação Rápida

Método 1: Usando Maven

# Clone o repositório
git clone https://github.com/seu-usuario/code-compliance-java.git
cd code-compliance-java

# Configure as variáveis de ambiente
cp application.yml.example application.yml
# Edite application.yml com suas configurações

# Compile o projeto
mvn clean package

# Execute a aplicação
mvn spring-boot:run

Método 2: Usando Docker

# Clone o repositório
git clone https://github.com/seu-usuario/code-compliance-java.git
cd code-compliance-java

# Configure as variáveis de ambiente
cp application.yml.example application.yml
# Edite application.yml com suas configurações

# Construa a imagem Docker
docker build -t code-compliance-java .

# Execute o container
docker run -p 8080:8080 -v $(pwd)/application.yml:/app/application.yml code-compliance-java

Método 3: Usando Gradle

# Clone o repositório
git clone https://github.com/seu-usuario/code-compliance-java.git
cd code-compliance-java

# Configure as variáveis de ambiente
cp application.yml.example application.yml
# Edite application.yml com suas configurações

# Compile o projeto
./gradlew build

# Execute a aplicação
./gradlew bootRun

🚀 Uso Rápido

1. Configuração Inicial

# application.yml
app:
  github:
    token: seu_token_aqui
    organization: sua_organizacao
    base-url: https://api.github.com
  
  trivy:
    enabled: true
    severity-threshold: LOW
    timeout: 300
  
  security:
    jwt:
      secret: mySecretKey
      expiration: 86400000
    api-key:
      key: your_api_key

2. Iniciando a Aplicação

# Via Maven
mvn spring-boot:run

# Via Gradle
./gradlew bootRun

# Via JAR
java -jar target/code-compliance-java-1.0.0.jar

3. Acessando a API

# Health check
curl http://localhost:8080/api/v1/system/health

# Documentação Swagger
open http://localhost:8080/swagger-ui.html

# Auditoria de repositório
curl -X POST -H "X-API-Key: your_api_key" \
  "http://localhost:8080/api/v1/repositories/audit?owner=owner&name=repo"

# Listar repositórios
curl -H "X-API-Key: your_api_key" \
  "http://localhost:8080/api/v1/repositories"

# Listar dependências
curl -H "X-API-Key: your_api_key" \
  "http://localhost:8080/api/v1/dependencies"

# Listar vulnerabilidades
curl -H "X-API-Key: your_api_key" \
  "http://localhost:8080/api/v1/vulnerabilities"

📖 Endpoints da API

Repositórios

  • GET /repositories - Listar repositórios
  • GET /repositories/{id} - Obter repositório específico
  • POST /repositories/{id}/audit - Auditar repositório
  • POST /repositories/audit - Auditar por nome e proprietário
  • POST /repositories/audit/organization/{organization} - Auditar organização
  • DELETE /repositories/{id} - Deletar repositório

Dependências

  • GET /dependencies - Listar dependências
  • GET /dependencies/{id} - Obter dependência específica
  • GET /dependencies/repository/{repositoryId} - Dependências por repositório
  • GET /dependencies/vulnerable - Dependências vulneráveis
  • GET /dependencies/obsolete - Dependências obsoletas
  • GET /dependencies/outdated - Dependências desatualizadas

Vulnerabilidades

  • GET /vulnerabilities - Listar vulnerabilidades
  • GET /vulnerabilities/{id} - Obter vulnerabilidade específica
  • GET /vulnerabilities/cve/{cveId} - Buscar por CVE
  • GET /vulnerabilities/repository/{repositoryId} - Vulnerabilidades por repositório
  • GET /vulnerabilities/severity/{severity} - Filtrar por severidade
  • POST /vulnerabilities/test/trivy - Testar Trivy em projeto
  • POST /vulnerabilities/install-trivy - Instalar Trivy

Relatórios de Auditoria

  • GET /audit-reports - Listar relatórios
  • GET /audit-reports/{id} - Obter relatório específico
  • GET /audit-reports/repository/{repositoryId} - Relatórios por repositório
  • GET /audit-reports/recent - Relatórios mais recentes
  • GET /audit-reports/best-scores - Melhores scores
  • GET /audit-reports/worst-scores - Piores scores

Webhooks

  • GET /webhooks - Listar eventos de webhook
  • GET /webhooks/{id} - Obter evento específico
  • GET /webhooks/failed - Eventos falhados
  • GET /webhooks/pending - Eventos pendentes
  • POST /webhooks/send/slack - Enviar webhook Slack
  • POST /webhooks/send/discord - Enviar webhook Discord
  • POST /webhooks/send/teams - Enviar webhook Teams
  • POST /webhooks/retry-failed - Retry de webhooks falhados

Sistema

  • GET /system/health - Health check
  • GET /system/info - Informações do sistema
  • GET /system/stats - Estatísticas do sistema
  • GET /system/config - Configurações do sistema
  • GET /system/metrics - Métricas de performance
  • GET /system/github/connectivity - Testar conectividade GitHub
  • GET /system/trivy/status - Status do Trivy
  • POST /system/trivy/install - Instalar Trivy
  • POST /system/cache/clear - Limpar cache

📊 Estrutura do Projeto

code-compliance-java/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── compliance/
│   │   │           ├── CodeComplianceApplication.java
│   │   │           ├── controller/
│   │   │           │   ├── RepositoryController.java
│   │   │           │   ├── DependencyController.java
│   │   │           │   ├── VulnerabilityController.java
│   │   │           │   ├── AuditReportController.java
│   │   │           │   ├── WebhookController.java
│   │   │           │   └── SystemController.java
│   │   │           ├── model/
│   │   │           │   ├── Repository.java
│   │   │           │   ├── Dependency.java
│   │   │           │   ├── Vulnerability.java
│   │   │           │   ├── AuditReport.java
│   │   │           │   ├── WebhookEvent.java
│   │   │           │   ├── PipelineExecution.java
│   │   │           │   ├── CodeAnalysis.java
│   │   │           │   ├── CodeIssue.java
│   │   │           │   ├── Ticket.java
│   │   │           │   ├── MlAnomaly.java
│   │   │           │   └── LicenseCompliance.java
│   │   │           ├── repository/
│   │   │           │   ├── RepositoryRepository.java
│   │   │           │   ├── DependencyRepository.java
│   │   │           │   ├── VulnerabilityRepository.java
│   │   │           │   ├── AuditReportRepository.java
│   │   │           │   ├── WebhookEventRepository.java
│   │   │           │   ├── PipelineExecutionRepository.java
│   │   │           │   └── LicenseComplianceRepository.java
│   │   │           └── service/
│   │   │               ├── AuditService.java
│   │   │               ├── GitHubService.java
│   │   │               ├── DependencyAnalyzerService.java
│   │   │               ├── VulnerabilityAnalyzerService.java
│   │   │               ├── LicenseAnalyzerService.java
│   │   │               ├── ObsoleteDetectorService.java
│   │   │               └── WebhookService.java
│   │   └── resources/
│   │       ├── application.yml
│   │       └── application-prod.yml
│   └── test/
│       └── java/
│           └── com/
│               └── compliance/
│                   └── CodeComplianceApplicationTests.java
├── pom.xml
├── build.gradle
├── Dockerfile
├── docker-compose.yml
└── README-JAVA.md

🔧 Tecnologias Utilizadas

  • Java 17: Linguagem de programação
  • Spring Boot 3.2.0: Framework principal
  • Spring Data JPA: Acesso a dados
  • Spring Web: API REST
  • Spring Security: Segurança e autenticação
  • Spring Actuator: Monitoramento e métricas
  • Spring Mail: Envio de emails
  • Spring Cache: Cache de dados
  • Spring Quartz: Agendamento de tarefas
  • H2 Database: Banco de dados em memória (desenvolvimento)
  • PostgreSQL: Banco de dados (produção)
  • GitHub API: Integração com GitHub
  • Trivy: Análise de vulnerabilidades
  • Swagger/OpenAPI: Documentação da API
  • Apache POI: Geração de relatórios Excel
  • iText PDF: Geração de relatórios PDF
  • Jackson: Processamento JSON
  • JWT: Autenticação
  • Maven: Gerenciamento de dependências

🔐 Segurança e Compliance

Medidas de Segurança

  • API Key: Autenticação por chave de API
  • JWT: Tokens de autenticação
  • Rate Limiting: Proteção contra abuso
  • CORS: Controle de origens
  • Validação: Validação automática de dados

Compliance

  • LGPD: Conformidade com lei de proteção de dados
  • GDPR: Adequação ao regulamento europeu
  • SOX: Suporte a auditoria financeira
  • ISO 27001: Alinhamento com padrões de segurança

🤝 Contribuição

  1. Fork o repositório
  2. Crie uma branch para sua feature (git checkout -b feature/nova-funcionalidade)
  3. Commit suas mudanças (git commit -am 'Adiciona nova funcionalidade')
  4. Push para a branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

📞 Suporte

Para suporte e dúvidas:

🎯 Roadmap

Versão 1.1 (Q1 2025)

  • Interface web para visualização
  • Dashboard em tempo real
  • Integração com SonarQube
  • Suporte a mais linguagens de programação

Versão 1.2 (Q2 2025)

  • Machine Learning para detecção de anomalias
  • Análise de código em tempo real
  • Integração com mais ferramentas de CI/CD
  • SDK para integrações

Versão 2.0 (Q3 2025)

  • Marketplace de plugins
  • Kubernetes native
  • Multi-tenancy
  • Advanced analytics

🙏 Agradecimentos

  • Spring Framework Team
  • GitHub API Team
  • Trivy Team
  • Open Source Community

Desenvolvido com ❤️ em Java com Spring Boot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published