docs: add changelog, contributing guide and gitea issue/pr templates

This commit is contained in:
Claudecio Martins
2026-10-20 14:35:04 -03:00
parent 6093879aa9
commit fa93e31ca1
5 changed files with 196 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
---
name: "Relato de Bug"
about: "Relate um problema ou comportamento inesperado no CyberCore Signer"
title: "[BUG] "
labels:
- "bug"
---
### Descrição do Problema
Uma descrição clara e concisa do comportamento inesperado ocorrido.
### Passos para Reproduzir
1. Iniciar o CyberCore Signer com o comando `...`
2. Acessar a aplicação web ou endpoint `...`
3. Tentar executar a operação de assinatura `...`
4. Observar o erro reportado.
### Comportamento Esperado
O que você esperava que acontecesse normalmente.
### Logs e Mensagens de Diagnóstico
```text
Cole aqui o trecho relevante de log do agente (sem expor dados sensíveis ou chaves).
```
### Informações do Ambiente
* **Sistema Operacional:** Windows 10 / Windows 11 / Ubuntu / Outro (especifique)
* **Versão do Java:** 25 LTS (especifique a vendor: Temurin, Corretto, Oracle)
* **Tipo de Certificado Utilizado:** A1 (arquivo `.pfx`) / A3 (Token USB / Smart Card / Windows-MY)
* **Fabricante do Hardware A3 (se aplicável):** SafeSign / SafeNet / GD Burti / Outro
* **Navegador e Versão (se aplicável ao SDK):** Chrome / Edge / Firefox
+26
View File
@@ -0,0 +1,26 @@
---
name: "Solicitação de Funcionalidade"
about: "Sugira uma nova funcionalidade ou melhoria para o agente ou SDK"
title: "[FEAT] "
labels:
- "enhancement"
---
### Problema ou Necessidade
Descreva o cenário de uso ou o desafio que motivou esta solicitação.
### Solução Proposta
Uma descrição clara do recurso ou melhoria que você gostaria de ver implementado no CyberCore Signer.
### Módulos Afetados
* [ ] `modules/cybercore-core` (regras criptográficas, provedores, protocolo CCSP)
* [ ] `modules/cybercore-ui` (telas JavaFX, diálogos, selo visual, system tray)
* [ ] `modules/cybercore-app` (ponto de entrada, empacotamento nativo)
* [ ] `sdk/` (SDK Web JavaScript)
* [ ] `docs/` (especificações e manuais)
### Alternativas Consideradas
Descreva quaisquer alternativas ou soluções de contorno que você considerou.
### Contexto Adicional
Adicione qualquer imagem, rascunho de tela ou especificação relevante.
+21
View File
@@ -0,0 +1,21 @@
### Descrição das Alterações
Resuma de forma clara o objetivo deste Pull Request e as alterações realizadas.
### Tipo de Mudança
* [ ] Correção de bug (`fix`)
* [ ] Nova funcionalidade (`feat`)
* [ ] Refatoração sem alteração de comportamento (`refactor`)
* [ ] Atualização de documentação (`docs`)
* [ ] Ajuste de testes ou métricas de cobertura (`test`)
* [ ] Manutenção de infraestrutura ou CI (`ci` / `chore`)
### Checklist de Qualidade e Segurança
* [ ] O código segue o padrão e regras de arquitetura do projeto.
* [ ] Nenhuma credencial, PIN, senha ou chave privada real foi comitada.
* [ ] A validação `./mvnw clean verify` foi executada e passou com 100% de sucesso.
* [ ] A cobertura mínima do JaCoCo foi respeitada em todos os módulos afetados.
* [ ] As mensagens de commit seguem a convenção *Conventional Commits*.
* [ ] A documentação técnica foi atualizada (quando aplicável).
### Issue Relacionada
Fecha #
+56
View File
@@ -0,0 +1,56 @@
# Changelog
Todas as mudanças relevantes deste projeto serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/),
e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/).
---
## [Não publicado]
### Adicionado
- Pipeline de integração contínua (CI) via Gitea Actions para Linux e Windows.
- Verificação de cobertura mínima de testes via meta `jacoco:check` calibrada por módulo.
- Configuração de atualização automatizada de dependências via Renovate com agrupamento específico.
- Templates de issues e pull requests para Gitea em `.gitea/`.
- Guia de contribuição `CONTRIBUTING.md` e especificação de release em `docs/release-and-versioning.md`.
### Modificado
- Alinhamento da documentação e scripts de automação para exigir estritamente o JDK 25 LTS.
- Refinamento do `.gitignore` para ignorar a pasta `scratch/` e mover script utilitário para `scripts/`.
- Atualização do filtro de exclusão do SpotBugs com justificativas técnicas detalhadas para garantir verificação completa e limpa.
---
## [0.1.0] - 2026-10-08
### Adicionado
- **Núcleo Criptográfico (`cybercore-core`):**
- Gerenciador central de certificados digitais (`CertificateManager`).
- Provedor para certificados em arquivo A1 PKCS#12 (`.pfx` / `.p12`).
- Provedor para repositório do Windows (`Windows-MY` via SunMSCAPI / CNG).
- Provedor para dispositivos criptográficos A3 PKCS#11 (tokens USB e smartcards).
- Assinatura digital padrão PAdES (PDF) em conformidade com as normas ICP-Brasil (Apache PDFBox e Bouncy Castle).
- Assinatura digital padrão XAdES-BES / XMLDSig para notas e documentos fiscais eletrônicos.
- Suporte a carimbo de tempo TSA e validação de longo prazo (LTV).
- Servidor HTTP local CCSP/1 (`127.0.0.1:21325`) com bind exclusivo em loopback, proteção anti-replay via nonce e controle de concorrência por fila.
- **Interface Gráfica Nativa (`cybercore-ui`):**
- Aplicação moderna em JavaFX 25 com suporte a tema Claro e Escuro (Dual-Theme).
- Dashboard de status do agente e leitor de certificados em tempo real.
- Diálogos de autorização prévia de aplicações web e confirmação visual de assinaturas.
- Designer e visualizador de selos visuais em PDF com renderização SVG e Java2D.
- Integração com a bandeja do sistema operacional (System Tray).
- **Módulo Executável (`cybercore-app`):**
- Ponto de entrada consolidado (`CyberCoreSignerApplication`), rotinas de telemetria diagnóstica e testes de arquitetura com ArchUnit.
- Empacotamento de Fat JAR autocontido via Maven Shade Plugin.
- **SDK JavaScript (`@cybercore/signer-sdk`):**
- Cliente web com métodos `connect()`, `isInstalled()`, `getCertificates()`, `sign()`, `verify()`.
- Página de demonstração interativa para testes de integração web.
- **Documentação Técnica:**
- Especificação do protocolo CCSP/1 (`docs/CCSP.md`).
- Diretrizes de segurança, arquitetura, diagnóstico e manuais de instalação.
### Segurança
- Isolamento estrito de chaves privadas e senhas na máquina do usuário local (nunca trafegadas pela rede nem registradas em logs).
- Destruição segura de senhas em memória após uso via `Arrays.fill(..., '\0')`.
+62
View File
@@ -0,0 +1,62 @@
# Guia de Contribuição — CyberCore Signer
Agradecemos o interesse em contribuir com o **CyberCore Signer**! Para garantir a segurança criptográfica, a estabilidade e a manutenibilidade do projeto, siga as orientações descritas abaixo.
---
## 1. Pré-requisitos do Ambiente
* **Java Development Kit (JDK):** Versão 25 LTS (Eclipse Temurin, OpenJDK ou Amazon Corretto).
* **Maven Wrapper:** Utilize sempre o executável `./mvnw` (Linux/macOS) ou `mvnw.cmd` (Windows) embutido no projeto.
* **Git:** Com suporte a quebra de linha `LF`.
---
## 2. Princípios de Segurança Invioláveis
Como este é um software de assinatura digital e custódia de credenciais criptográficas:
1. **Nunca exponha credenciais:** É estritamente proibido registrar, logar ou comitar PINs, senhas de arquivos A1, chaves privadas ou certificados de produção.
2. **Testes isolados:** Use fixtures mockadas ou certificados autoassinados temporários gerados dinamicamente nos testes.
3. **Loopback estrito:** O servidor CCSP escuta exclusivamente em `127.0.0.1:21325`. Nunca altere o bind para interfaces externas.
---
## 3. Padrão de Commits
Adotamos a especificação [Conventional Commits](https://www.conventionalcommits.org/pt-br/v1.0.0/). Cada commit deve representar uma alteração coesa e atômica:
* `feat:` Nova funcionalidade no agente, SDK ou UI.
* `fix:` Correção de bug sem alteração de escopo.
* `docs:` Alterações exclusivas na documentação.
* `test:` Adição ou melhoria de suítes de testes.
* `refactor:` Alterações de código que não mudam o comportamento funcional.
* `chore:` Tarefas de manutenção de build, scripts ou dependências.
* `ci:` Alterações no pipeline de CI/CD.
Exemplo: `feat(core): add support for custom pkcs11 pin retry limit`
---
## 4. Validação Pré-Commit / Pré-PR
Antes de submeter um Pull Request, certifique-se de que o build completo e todas as análises de qualidade passam localmente:
```bash
# Executa compilação, testes, checagem JaCoCo, SpotBugs e ArchUnit:
./mvnw clean verify
```
Critérios obrigatórios:
* Todos os testes unitários e de integração devem passar com sucesso.
* A cobertura mínima definida no `jacoco:check` de cada módulo deve ser mantida ou superada.
* Nenhum novo apontamento de segurança ou erro do SpotBugs deve ser introduzido.
---
## 5. Fluxo de Pull Requests
1. Crie uma branch descritiva a partir de `main` (ex: `feature/suporte-token-safenet` ou `fix/pades-timestamp-timeout`).
2. Mantenha os commits organizados e pequenos.
3. Abra o Pull Request preenchendo o template oficial do repositório em `.gitea/pull_request_template.md`.
4. Garanta que o pipeline de CI do Gitea Actions finalize com status verde.