docs: add changelog, contributing guide and gitea issue/pr templates
This commit is contained in:
@@ -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
|
||||||
@@ -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.
|
||||||
@@ -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 #
|
||||||
@@ -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')`.
|
||||||
@@ -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.
|
||||||
Reference in New Issue
Block a user