diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..26af0c1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,69 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true + +# Markdown files +[*.md] +trim_trailing_whitespace = false + +# YAML files +[*.{yml,yaml}] +indent_style = space +indent_size = 2 + +# JSON files +[*.json] +indent_style = space +indent_size = 2 + +# JavaScript/TypeScript files +[*.{js,ts,jsx,tsx}] +indent_style = space +indent_size = 2 + +# Python files +[*.py] +indent_style = space +indent_size = 4 + +# Shell scripts +[*.sh] +indent_style = space +indent_size = 2 + +# Makefiles +[Makefile] +indent_style = tab + +# Go files +[*.go] +indent_style = tab +indent_size = 4 + +# Ruby files +[*.rb] +indent_style = space +indent_size = 2 + +# HTML files +[*.html] +indent_style = space +indent_size = 2 + +# CSS/SCSS files +[*.{css,scss,sass}] +indent_style = space +indent_size = 2 + +# XML files +[*.xml] +indent_style = space +indent_size = 2 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..cb76d7b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,87 @@ +name: 🐛 Relatório de Bug +description: Crie um relatório para nos ajudar a melhorar +title: "[BUG]: " +labels: ["bug", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Obrigado por reportar um bug! Por favor, preencha o formulário abaixo com o máximo de detalhes possível. + + - type: textarea + id: description + attributes: + label: Descrição do Bug + description: Uma descrição clara e concisa do que é o bug. + placeholder: Descreva o bug... + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Passos para Reproduzir + description: Passos para reproduzir o comportamento + placeholder: | + 1. Vá para '...' + 2. Clique em '...' + 3. Role até '...' + 4. Veja o erro + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Comportamento Esperado + description: Uma descrição clara e concisa do que você esperava que acontecesse. + placeholder: O que deveria ter acontecido? + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Comportamento Atual + description: Uma descrição clara e concisa do que realmente aconteceu. + placeholder: O que realmente aconteceu? + validations: + required: true + + - type: textarea + id: screenshots + attributes: + label: Capturas de Tela + description: Se aplicável, adicione capturas de tela para ajudar a explicar o problema. + placeholder: Cole as capturas de tela aqui... + + - type: textarea + id: environment + attributes: + label: Informações do Ambiente + description: Forneça informações sobre seu ambiente + value: | + - OS: [ex. Windows 11, macOS 14, Ubuntu 22.04] + - Browser: [ex. Chrome 120, Firefox 121, Safari 17] + - Versão: [ex. 1.0.0] + render: markdown + validations: + required: true + + - type: textarea + id: additional + attributes: + label: Contexto Adicional + description: Adicione qualquer outro contexto sobre o problema aqui. + placeholder: Qualquer informação adicional relevante... + + - type: checkboxes + id: terms + attributes: + label: Checklist + description: Confirme que você verificou os seguintes itens + options: + - label: Verifiquei que não há issues similares já abertas + required: true + - label: Testei isso na versão mais recente + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..8c3e2cd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: 🔒 Reportar Vulnerabilidade de Segurança + url: https://github.com/webshield-admin/principal/security/advisories/new + about: Por favor, reporte vulnerabilidades de segurança de forma privada através do Security Advisory + - name: 💬 Discussões Gerais + url: https://github.com/webshield-admin/principal/discussions + about: Para discussões gerais sobre o projeto diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..93d5766 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,74 @@ +name: ✨ Solicitação de Feature +description: Sugira uma ideia para este projeto +title: "[FEATURE]: " +labels: ["enhancement", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Obrigado por sugerir uma nova feature! Por favor, preencha o formulário abaixo. + + - type: textarea + id: problem + attributes: + label: Problema Relacionado + description: Há algum problema relacionado? Por favor, descreva. + placeholder: Estou sempre frustrado quando... + validations: + required: false + + - type: textarea + id: solution + attributes: + label: Solução Proposta + description: Descreva a solução que você gostaria de ver + placeholder: Eu gostaria que... + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternativas Consideradas + description: Descreva quaisquer soluções alternativas ou features que você considerou + placeholder: Eu também considerei... + + - type: textarea + id: additional + attributes: + label: Contexto Adicional + description: Adicione qualquer outro contexto ou capturas de tela sobre a solicitação de feature aqui. + placeholder: Qualquer informação adicional relevante... + + - type: dropdown + id: priority + attributes: + label: Prioridade + description: Qual prioridade você daria para esta feature? + options: + - Baixa - Nice to have + - Média - Seria útil + - Alta - Importante para meu caso de uso + - Crítica - Bloqueador para mim + validations: + required: true + + - type: checkboxes + id: contribution + attributes: + label: Contribuição + description: Você estaria disposto a contribuir com esta feature? + options: + - label: Eu gostaria de trabalhar nesta feature + required: false + + - type: checkboxes + id: terms + attributes: + label: Checklist + description: Confirme que você verificou os seguintes itens + options: + - label: Verifiquei que não há solicitações similares já abertas + required: true + - label: Esta feature está alinhada com os objetivos do projeto + required: true diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 0000000..6b91d1b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,50 @@ +name: 📝 Pergunta ou Discussão +description: Faça uma pergunta ou inicie uma discussão +title: "[QUESTION]: " +labels: ["question"] +body: + - type: markdown + attributes: + value: | + Obrigado por abrir uma discussão! Por favor, preencha o formulário abaixo. + + - type: textarea + id: question + attributes: + label: Sua Pergunta + description: Descreva sua pergunta ou tópico de discussão + placeholder: Eu gostaria de saber... + validations: + required: true + + - type: textarea + id: context + attributes: + label: Contexto + description: Forneça qualquer contexto adicional que possa ser útil + placeholder: Para dar mais contexto... + + - type: dropdown + id: category + attributes: + label: Categoria + description: Qual categoria melhor descreve sua pergunta? + options: + - Uso Geral + - Configuração + - Desenvolvimento + - Documentação + - Outro + validations: + required: true + + - type: checkboxes + id: terms + attributes: + label: Checklist + description: Confirme que você verificou os seguintes itens + options: + - label: Procurei na documentação existente + required: true + - label: Procurei por issues similares + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..e5c6e89 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,59 @@ +## Descrição + + + +## Tipo de Mudança + + + +- [ ] 🐛 Correção de bug (mudança não-breaking que corrige uma issue) +- [ ] ✨ Nova feature (mudança não-breaking que adiciona funcionalidade) +- [ ] 💥 Breaking change (correção ou feature que causaria quebra de funcionalidade existente) +- [ ] 📝 Atualização de documentação +- [ ] 🔒 Correção de segurança +- [ ] ⚡ Melhoria de performance +- [ ] 🎨 Mudanças de estilo/formatação +- [ ] ♻️ Refatoração de código + +## Issue Relacionada + + +Fixes #(número da issue) + +## Mudanças Propostas + + + +- +- +- + +## Como Testar + + + +1. +2. +3. + +## Capturas de Tela (se aplicável) + + + +## Checklist + + + +- [ ] Meu código segue o guia de estilo deste projeto +- [ ] Realizei uma auto-revisão do meu próprio código +- [ ] Comentei meu código, particularmente em áreas difíceis de entender +- [ ] Fiz mudanças correspondentes na documentação +- [ ] Minhas mudanças não geram novos warnings +- [ ] Adicionei testes que provam que minha correção é efetiva ou que minha feature funciona +- [ ] Testes unitários novos e existentes passam localmente com minhas mudanças +- [ ] Quaisquer mudanças dependentes foram mescladas e publicadas em módulos downstream +- [ ] Verifiquei que não há vulnerabilidades de segurança introduzidas + +## Notas Adicionais + + diff --git a/.github/markdown-link-check-config.json b/.github/markdown-link-check-config.json new file mode 100644 index 0000000..fe75310 --- /dev/null +++ b/.github/markdown-link-check-config.json @@ -0,0 +1,15 @@ +{ + "ignorePatterns": [ + { + "pattern": "^http://localhost" + }, + { + "pattern": "^https://github.com/.*/issues/new" + } + ], + "timeout": "20s", + "retryOn429": true, + "retryCount": 3, + "fallbackRetryDelay": "30s", + "aliveStatusCodes": [200, 206] +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a4d033c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,134 @@ +name: CI + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + workflow_dispatch: + +permissions: + contents: read + +jobs: + # Job para verificar a qualidade da documentação + docs-check: + name: Verificação de Documentação + runs-on: ubuntu-latest + + steps: + - name: Checkout do código + uses: actions/checkout@v4 + + - name: Verificar arquivos de documentação obrigatórios + run: | + echo "Verificando arquivos de documentação..." + files=("README.md" "CONTRIBUTING.md" "SECURITY.md" "CODE_OF_CONDUCT.md" "LICENSE") + for file in "${files[@]}"; do + if [ ! -f "$file" ]; then + echo "❌ Arquivo obrigatório não encontrado: $file" + exit 1 + else + echo "✅ $file encontrado" + fi + done + echo "Todos os arquivos de documentação obrigatórios estão presentes!" + + - name: Verificar links quebrados no README + uses: gaurav-nelson/github-action-markdown-link-check@v1 + with: + use-quiet-mode: 'yes' + config-file: '.github/markdown-link-check-config.json' + continue-on-error: true + + # Job para validar estrutura de arquivos + structure-check: + name: Verificação de Estrutura + runs-on: ubuntu-latest + + steps: + - name: Checkout do código + uses: actions/checkout@v4 + + - name: Verificar estrutura de diretórios + run: | + echo "Verificando estrutura de diretórios..." + dirs=(".github" ".github/workflows" ".github/ISSUE_TEMPLATE") + for dir in "${dirs[@]}"; do + if [ ! -d "$dir" ]; then + echo "❌ Diretório obrigatório não encontrado: $dir" + exit 1 + else + echo "✅ $dir encontrado" + fi + done + echo "Estrutura de diretórios válida!" + + - name: Verificar arquivo .gitignore + run: | + if [ ! -f ".gitignore" ]; then + echo "❌ .gitignore não encontrado" + exit 1 + else + echo "✅ .gitignore encontrado" + fi + + - name: Verificar arquivo .editorconfig + run: | + if [ ! -f ".editorconfig" ]; then + echo "⚠️ .editorconfig não encontrado (recomendado)" + else + echo "✅ .editorconfig encontrado" + fi + + # Job para validar YAML e JSON + validate-files: + name: Validação de Arquivos + runs-on: ubuntu-latest + + steps: + - name: Checkout do código + uses: actions/checkout@v4 + + - name: Validar arquivos YAML + run: | + echo "Validando arquivos YAML..." + find . -name "*.yml" -o -name "*.yaml" | while read file; do + echo "Validando: $file" + python3 -c "import yaml; yaml.safe_load(open('$file'))" || exit 1 + done + echo "✅ Todos os arquivos YAML são válidos!" + + - name: Validar arquivos JSON + run: | + echo "Validando arquivos JSON..." + find . -name "*.json" | while read file; do + echo "Validando: $file" + python3 -c "import json; json.load(open('$file'))" || exit 1 + done + echo "✅ Todos os arquivos JSON são válidos!" + continue-on-error: true + + # Job de resumo + summary: + name: Resumo da CI + runs-on: ubuntu-latest + needs: [docs-check, structure-check, validate-files] + if: always() + permissions: {} + + steps: + - name: Verificar status dos jobs + run: | + echo "📊 Resumo da execução da CI:" + echo "- Verificação de Documentação: ${{ needs.docs-check.result }}" + echo "- Verificação de Estrutura: ${{ needs.structure-check.result }}" + echo "- Validação de Arquivos: ${{ needs.validate-files.result }}" + + if [ "${{ needs.docs-check.result }}" == "failure" ] || \ + [ "${{ needs.structure-check.result }}" == "failure" ]; then + echo "❌ Alguns checks obrigatórios falharam" + exit 1 + else + echo "✅ Todos os checks obrigatórios passaram!" + fi diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aedd42e --- /dev/null +++ b/.gitignore @@ -0,0 +1,109 @@ +# Dependencies +node_modules/ +vendor/ +bower_components/ + +# Build outputs +dist/ +build/ +*.exe +*.dll +*.so +*.dylib + +# Logs +logs/ +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Runtime data +pids/ +*.pid +*.seed +*.pid.lock + +# Coverage directories +coverage/ +*.lcov +.nyc_output/ + +# IDE and Editor files +.vscode/ +.idea/ +*.swp +*.swo +*~ +.DS_Store +*.sublime-project +*.sublime-workspace + +# Environment files +.env +.env.local +.env.*.local +.env.development +.env.test +.env.production + +# OS files +Thumbs.db +desktop.ini + +# Temporary files +tmp/ +temp/ +*.tmp +*.bak +*.cache + +# Package manager files +package-lock.json +yarn.lock +pnpm-lock.yaml + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +env/ +venv/ +ENV/ +.venv + +# Java +*.class +*.jar +*.war +*.ear +target/ + +# Ruby +*.gem +.bundle/ +.ruby-version + +# Go +*.test +*.out +go.work + +# Rust +target/ +Cargo.lock + +# Database +*.db +*.sqlite +*.sqlite3 + +# Compiled files +*.com +*.exe +*.out +*.app diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..75c734c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog + +Todas as mudanças notáveis neste projeto serão documentadas neste arquivo. + +O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/), +e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/). + +## [Unreleased] + +### Adicionado +- Estrutura inicial do repositório +- README.md completo com informações do projeto +- LICENSE (MIT) +- CODE_OF_CONDUCT.md +- CONTRIBUTING.md com guias de contribuição +- SECURITY.md com política de segurança +- .gitignore para múltiplas linguagens +- .editorconfig para padronização de código +- Templates de issue (bug report, feature request, question) +- Template de pull request +- GitHub Actions workflow para CI básico +- Estrutura de diretórios (docs, src, tests) +- Documentação inicial em cada diretório + +### Tipos de Mudanças +- `Added` - Para novas funcionalidades +- `Changed` - Para mudanças em funcionalidades existentes +- `Deprecated` - Para funcionalidades que serão removidas +- `Removed` - Para funcionalidades removidas +- `Fixed` - Para correções de bugs +- `Security` - Para correções de vulnerabilidades + +## [0.1.0] - 2026-01-07 + +### Adicionado +- Inicialização do repositório +- Configuração inicial do projeto diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..9ea91c3 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,41 @@ +# Código de Conduta do Pacto do Colaborador + +## Nosso Compromisso + +No interesse de promover um ambiente aberto e acolhedor, nós, como colaboradores e mantenedores, nos comprometemos a tornar a participação em nosso projeto e nossa comunidade uma experiência livre de assédio para todos, independentemente de idade, tamanho corporal, deficiência, etnia, identidade e expressão de gênero, nível de experiência, nacionalidade, aparência pessoal, raça, religião ou identidade e orientação sexual. + +## Nossos Padrões + +Exemplos de comportamento que contribuem para criar um ambiente positivo incluem: + +* Usar linguagem acolhedora e inclusiva +* Respeitar pontos de vista e experiências diferentes +* Aceitar críticas construtivas com elegância +* Focar no que é melhor para a comunidade +* Mostrar empatia para com outros membros da comunidade + +Exemplos de comportamento inaceitável por participantes incluem: + +* O uso de linguagem ou imagens sexualizadas e atenção ou avanços sexuais indesejados +* Trolling, comentários insultuosos/depreciativos e ataques pessoais ou políticos +* Assédio público ou privado +* Publicar informações privadas de outras pessoas, como endereços físicos ou eletrônicos, sem permissão explícita +* Outra conduta que poderia razoavelmente ser considerada inadequada em um ambiente profissional + +## Nossas Responsabilidades + +Os mantenedores do projeto são responsáveis por esclarecer os padrões de comportamento aceitável e devem tomar medidas corretivas apropriadas e justas em resposta a quaisquer instâncias de comportamento inaceitável. + +Os mantenedores do projeto têm o direito e a responsabilidade de remover, editar ou rejeitar comentários, commits, código, edições de wiki, issues e outras contribuições que não estejam alinhadas com este Código de Conduta, ou banir temporária ou permanentemente qualquer colaborador por outros comportamentos que considerem inadequados, ameaçadores, ofensivos ou prejudiciais. + +## Escopo + +Este Código de Conduta se aplica tanto nos espaços do projeto quanto em espaços públicos quando um indivíduo está representando o projeto ou sua comunidade. Exemplos de representação de um projeto ou comunidade incluem o uso de um endereço de e-mail oficial do projeto, postagem por meio de uma conta oficial de mídia social ou atuação como representante nomeado em um evento online ou offline. + +## Aplicação + +Casos de comportamento abusivo, de assédio ou de outra forma inaceitável podem ser relatados entrando em contato com a equipe do projeto. Todas as reclamações serão revisadas e investigadas e resultarão em uma resposta que seja considerada necessária e apropriada às circunstâncias. A equipe do projeto é obrigada a manter a confidencialidade em relação ao relator de um incidente. + +## Atribuição + +Este Código de Conduta é adaptado do [Contributor Covenant](https://www.contributor-covenant.org), versão 1.4, disponível em https://www.contributor-covenant.org/version/1/4/code-of-conduct.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..26738aa --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,104 @@ +# Guia de Contribuição + +Obrigado por considerar contribuir com o projeto Principal! Este documento fornece diretrizes para contribuir com o projeto. + +## Código de Conduta + +Este projeto segue o [Código de Conduta](CODE_OF_CONDUCT.md). Ao participar, você concorda em manter este código. Por favor, reporte comportamentos inaceitáveis. + +## Como Posso Contribuir? + +### Reportando Bugs + +Antes de criar um relatório de bug, por favor verifique se já existe uma issue sobre o problema. Se você encontrar uma, adicione um comentário em vez de abrir uma nova issue. + +Quando você estiver criando um relatório de bug, inclua o máximo de detalhes possível: + +* **Use um título claro e descritivo** para identificar o problema +* **Descreva os passos exatos para reproduzir o problema** com o máximo de detalhes possível +* **Forneça exemplos específicos** para demonstrar os passos +* **Descreva o comportamento observado** e explique qual comportamento você esperava ver e por quê +* **Inclua capturas de tela** se aplicável +* **Inclua informações sobre sua configuração** (sistema operacional, versão do navegador, etc.) + +### Sugerindo Melhorias + +Sugestões de melhorias são sempre bem-vindas! Antes de criar uma sugestão, verifique se já existe uma issue similar. + +Quando você estiver criando uma sugestão de melhoria, inclua: + +* **Use um título claro e descritivo** +* **Forneça uma descrição passo a passo** da melhoria sugerida +* **Forneça exemplos específicos** para demonstrar os passos +* **Descreva o comportamento atual** e explique qual comportamento você gostaria de ver +* **Explique por que essa melhoria seria útil** + +### Pull Requests + +1. **Fork** o repositório e crie sua branch a partir de `main` +2. Se você adicionou código que deve ser testado, **adicione testes** +3. Se você mudou APIs, **atualize a documentação** +4. Certifique-se de que **todos os testes passam** +5. Certifique-se de que seu código **segue o estilo de código** do projeto +6. **Emita seu pull request** + +#### Processo de Pull Request + +1. Atualize o README.md com detalhes de mudanças na interface, se aplicável +2. Atualize a documentação com quaisquer novas variáveis de ambiente, portas expostas, localizações de arquivos úteis e parâmetros de container +3. Aumente os números de versão em quaisquer arquivos de exemplo e no README.md para a nova versão que este Pull Request representaria +4. Você pode mesclar o Pull Request uma vez que você tenha a aprovação de dois outros desenvolvedores, ou se você não tiver permissão para fazer isso, pode solicitar ao segundo revisor que o mescle para você + +## Guia de Estilo + +### Mensagens de Commit Git + +* Use o tempo presente ("Adiciona feature" não "Adicionou feature") +* Use o modo imperativo ("Move cursor para..." não "Move cursor para...") +* Limite a primeira linha a 72 caracteres ou menos +* Referencie issues e pull requests liberalmente após a primeira linha +* Considere começar a mensagem de commit com um emoji aplicável: + * 🎨 `:art:` ao melhorar o formato/estrutura do código + * 🐛 `:bug:` ao corrigir um bug + * 🔥 `:fire:` ao remover código ou arquivos + * 📝 `:memo:` ao escrever docs + * 🚀 `:rocket:` ao melhorar performance + * ✅ `:white_check_mark:` ao adicionar testes + * 🔒 `:lock:` ao lidar com segurança + * ⬆️ `:arrow_up:` ao atualizar dependências + * ⬇️ `:arrow_down:` ao fazer downgrade de dependências + +### Convenções de Código + +* Use 2 espaços para indentação +* Prefira clareza sobre brevidade +* Escreva comentários para código complexo +* Mantenha funções pequenas e focadas +* Siga os princípios SOLID +* Escreva testes para novas funcionalidades + +## Configuração do Ambiente de Desenvolvimento + +1. Clone o repositório +```bash +git clone https://github.com/webshield-admin/principal.git +cd principal +``` + +2. Instale as dependências (quando aplicável) +```bash +# Adicionar comandos de instalação específicos aqui +``` + +3. Execute os testes +```bash +# Adicionar comandos de teste específicos aqui +``` + +## Perguntas? + +Sinta-se à vontade para abrir uma issue com suas perguntas ou entrar em contato com os mantenedores. + +--- + +Obrigado por contribuir! 🎉 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6546ac0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 WebShield Admin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index cc198a4..3f35472 100644 --- a/README.md +++ b/README.md @@ -1 +1,58 @@ -# principal \ No newline at end of file +# Principal + +**Principal** é o repositório principal do projeto WebShield Admin, servindo como ponto central de documentação, configuração e coordenação para todo o ecossistema. + +## 📋 Sobre o Projeto + +Este repositório serve como base para: +- Documentação centralizada do projeto +- Padrões e guidelines de desenvolvimento +- Configurações comuns compartilhadas entre sub-projetos +- Coordenação de issues e roadmap do projeto + +## 🚀 Começando + +Para começar a trabalhar com o projeto Principal, siga estas etapas: + +1. Clone o repositório: +```bash +git clone https://github.com/webshield-admin/principal.git +cd principal +``` + +2. Leia a [documentação de contribuição](CONTRIBUTING.md) +3. Consulte as [políticas de segurança](SECURITY.md) + +## 📁 Estrutura do Projeto + +``` +principal/ +├── .github/ # GitHub templates e workflows +├── docs/ # Documentação do projeto +├── src/ # Código fonte +├── tests/ # Testes +├── README.md # Este arquivo +├── CONTRIBUTING.md # Guia de contribuição +├── SECURITY.md # Política de segurança +└── LICENSE # Licença do projeto +``` + +## 🤝 Contribuindo + +Contribuições são bem-vindas! Por favor, leia nosso [guia de contribuição](CONTRIBUTING.md) antes de submeter pull requests. + +## 🔒 Segurança + +Se você descobrir uma vulnerabilidade de segurança, por favor siga as instruções em [SECURITY.md](SECURITY.md) para reportá-la de forma responsável. + +## 📄 Licença + +Este projeto está licenciado sob a licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes. + +## 📞 Contato + +Para questões e suporte, abra uma [issue](https://github.com/webshield-admin/principal/issues) neste repositório. + +--- + +Desenvolvido com ❤️ pela equipe WebShield Admin \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2f3d681 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,82 @@ +# Política de Segurança + +## Versões Suportadas + +Atualmente, estamos dando suporte às seguintes versões do projeto com atualizações de segurança: + +| Versão | Suportada | +| ------ | ------------------ | +| main | :white_check_mark: | + +## Reportando uma Vulnerabilidade + +A segurança do nosso projeto é levada muito a sério. Se você descobriu uma vulnerabilidade de segurança, agradecemos seus esforços e responsabilidade em divulgá-la de forma responsável. + +### Como Reportar + +**Por favor, NÃO reporte vulnerabilidades de segurança através de issues públicas do GitHub.** + +Em vez disso, siga estas etapas: + +1. **Envie um relatório privado** através da função de Security Advisories do GitHub: + - Vá para a aba "Security" do repositório + - Clique em "Report a vulnerability" + - Preencha o formulário com os detalhes da vulnerabilidade + +2. **Inclua as seguintes informações** (se possível): + - Tipo de vulnerabilidade (por exemplo, buffer overflow, SQL injection, cross-site scripting, etc.) + - Caminhos completos dos arquivos de código-fonte relacionados à manifestação da vulnerabilidade + - A localização do código-fonte afetado (tag/branch/commit ou URL direto) + - Qualquer configuração especial necessária para reproduzir o problema + - Instruções passo a passo para reproduzir o problema + - Prova de conceito ou código de exploração (se possível) + - Impacto da vulnerabilidade, incluindo como um invasor poderia explorar o problema + +### O que Esperar + +- **Confirmação inicial**: Você receberá uma confirmação de recebimento dentro de 48 horas +- **Avaliação**: Nossa equipe avaliará o relatório e poderá solicitar informações adicionais +- **Atualização de progresso**: Manteremos você informado sobre o progresso em direção a uma correção +- **Divulgação**: Coordenaremos com você sobre o timing da divulgação pública + +### Política de Divulgação + +- Pedimos que você nos dê um tempo razoável para investigar e resolver o problema antes de divulgá-lo publicamente +- Faremos o possível para corrigir vulnerabilidades confirmadas em tempo hábil +- Creditaremos você pela descoberta quando a vulnerabilidade for divulgada publicamente (a menos que você prefira permanecer anônimo) + +## Práticas de Segurança + +### Para Contribuidores + +Se você está contribuindo com código para este projeto, por favor: + +- Nunca commite credenciais, chaves de API, senhas ou outros dados sensíveis +- Use práticas seguras de codificação +- Mantenha as dependências atualizadas +- Revise o código em busca de vulnerabilidades potenciais antes de submeter +- Siga as diretrizes de segurança específicas da linguagem/framework utilizado + +### Para Usuários + +- Mantenha sua instalação atualizada com a versão mais recente +- Siga as melhores práticas de segurança ao configurar o projeto +- Reporte quaisquer comportamentos suspeitos ou anomalias + +## Vulnerabilidades Conhecidas + +Não há vulnerabilidades conhecidas no momento. Esta seção será atualizada se alguma vulnerabilidade for descoberta e corrigida. + +## Recursos de Segurança Adicionais + +- [OWASP Top 10](https://owasp.org/www-project-top-ten/) +- [CWE/SANS Top 25](https://www.sans.org/top25-software-errors/) +- [GitHub Security Best Practices](https://docs.github.com/en/code-security) + +## Contato + +Para questões relacionadas à segurança que não sejam vulnerabilidades, você pode abrir uma issue pública ou entrar em contato com a equipe através dos canais oficiais do projeto. + +--- + +Agradecemos sua ajuda em manter o projeto Principal seguro! diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..dd76454 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,28 @@ +# Documentação + +Esta pasta contém a documentação do projeto Principal. + +## Estrutura + +- `architecture.md` - Arquitetura do sistema +- `api.md` - Documentação da API +- `setup.md` - Guia de instalação e configuração +- `development.md` - Guia de desenvolvimento +- `deployment.md` - Guia de deploy + +## Contribuindo com a Documentação + +Ao adicionar ou modificar documentação: + +1. Mantenha um estilo consistente +2. Use exemplos práticos +3. Inclua diagramas quando apropriado +4. Mantenha a documentação atualizada com o código +5. Use linguagem clara e objetiva + +## Formatação + +- Use Markdown para todos os documentos +- Siga as convenções de formatação do projeto +- Inclua um índice para documentos longos +- Use títulos hierárquicos apropriadamente diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..d5dd845 --- /dev/null +++ b/src/README.md @@ -0,0 +1,31 @@ +# Código Fonte + +Esta pasta contém o código fonte principal do projeto. + +## Estrutura (exemplo) + +``` +src/ +├── components/ # Componentes reutilizáveis +├── services/ # Lógica de negócio +├── utils/ # Funções utilitárias +├── config/ # Arquivos de configuração +├── models/ # Modelos de dados +├── controllers/ # Controladores +└── index.js # Ponto de entrada principal +``` + +## Convenções de Código + +- Siga o guia de estilo definido no projeto +- Mantenha funções pequenas e focadas +- Escreva código auto-documentado +- Adicione comentários apenas quando necessário +- Use nomes descritivos para variáveis e funções + +## Organização + +- Um arquivo por classe/componente principal +- Agrupe arquivos relacionados em subpastas +- Mantenha dependências claramente definidas +- Evite acoplamento desnecessário diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..07896fe --- /dev/null +++ b/tests/README.md @@ -0,0 +1,53 @@ +# Testes + +Esta pasta contém os testes do projeto. + +## Estrutura + +``` +tests/ +├── unit/ # Testes unitários +├── integration/ # Testes de integração +├── e2e/ # Testes end-to-end +├── fixtures/ # Dados de teste +└── helpers/ # Funções auxiliares para testes +``` + +## Executando Testes + +```bash +# Executar todos os testes +npm test + +# Executar testes unitários +npm run test:unit + +# Executar testes de integração +npm run test:integration + +# Executar testes com coverage +npm run test:coverage +``` + +## Convenções de Teste + +- Um arquivo de teste por arquivo de código fonte +- Nomenclatura: `[nome-do-arquivo].test.js` ou `[nome-do-arquivo].spec.js` +- Organize testes usando `describe` e `it`/`test` +- Use nomes descritivos para os casos de teste +- Mantenha testes independentes uns dos outros +- Mock dependências externas quando apropriado + +## Cobertura de Testes + +- Objetivo: manter cobertura acima de 80% +- Priorize testar lógica de negócio crítica +- Inclua testes para casos edge e de erro +- Teste tanto cenários positivos quanto negativos + +## Ferramentas + +- Framework de testes: (a definir - Jest, Mocha, etc.) +- Asserções: (a definir) +- Mocking: (a definir) +- Coverage: (a definir)