webmoney/.DIRETRIZES_DESENVOLVIMENTO_v4

260 lines
16 KiB
Plaintext

╔═══════════════════════════════════════════════════════════════════════════════╗
║ DIRETRIZES DE DESENVOLVIMENTO - v4.0 ║
║ ║
║ ⚠️ ESTE ARQUIVO NÃO DEVE SER EDITADO APÓS QUALQUER COMMIT/PUSH ║
║ ⚠️ Representa o contrato de desenvolvimento desde a versão 1.27.2 ║
║ ⚠️ Substitui .DIRETRIZES_DESENVOLVIMENTO_v3 (v3.0) ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
DATA DE CRIAÇÃO: 13 de Dezembro de 2025
VERSÃO INICIAL: 1.27.2
VERSÃO DAS DIRETRIZES: 4.0
STATUS: ATIVO E IMUTÁVEL
AMBIENTE: Windows (PowerShell)
═══════════════════════════════════════════════════════════════════════════════
REGRAS DE DESENVOLVIMENTO
═══════════════════════════════════════════════════════════════════════════════
───────────────────────────────────────────────────────────────────────────────
REGRA #1: CONTROLE DE VERSÃO SEMÂNTICO
───────────────────────────────────────────────────────────────────────────────
✓ Formato: MAJOR.MINOR.PATCH (exemplo: 1.27.2)
✓ Incrementar versão em CADA commit/push
✓ Manter sincronizado em: VERSION, CHANGELOG.md
Regra de Incremento:
- MAJOR (X.0.0): Mudanças incompatíveis, redesign completo
- MINOR (0.X.0): Novas funcionalidades
- PATCH (0.0.X): Correções de bugs, ajustes menores
───────────────────────────────────────────────────────────────────────────────
REGRA #2: VALIDAÇÃO OBRIGATÓRIA EM PRODUÇÃO
───────────────────────────────────────────────────────────────────────────────
✓ TODAS as mudanças devem ser testadas em https://webmoney.cnxifly.com
✓ Workflow obrigatório:
1. Editar código
2. Deploy para servidor (.\deploy.ps1)
3. Testar no domínio
4. Commit/push apenas após validação
5. Só então editar novamente
✗ PROIBIDO commit sem teste em produção
───────────────────────────────────────────────────────────────────────────────
REGRA #3: DOCUMENTAÇÃO ESSENCIAL
───────────────────────────────────────────────────────────────────────────────
Arquivos de documentação mantidos (apenas estes):
| Arquivo | Propósito | Atualizar quando |
|---------|-----------|------------------|
| VERSION | Número da versão | Cada commit |
| CHANGELOG.md | Histórico de mudanças | Cada commit |
| README.md | Visão geral do projeto | Mudanças significativas |
| ESTRUTURA_PROJETO.md | Estrutura técnica | Novos arquivos/endpoints |
| CREDENCIAIS_SERVIDOR.md | Acessos | Mudança de credenciais |
| .DIRETRIZES_DESENVOLVIMENTO_v4 | Este arquivo | NUNCA (criar nova versão) |
Arquivos de referência (não atualizar frequentemente):
- ESPECIFICACIONES_WEBMONEY.md (especificação original)
- APRENDIZADOS_TECNICOS.md (soluções de problemas)
- ROTEIRO_INSTALACAO_SERVIDOR.md (guia de instalação)
- DKIM_DNS_RECORD.txt (configuração DNS)
───────────────────────────────────────────────────────────────────────────────
REGRA #4: SCRIPTS DE DEPLOY (WINDOWS)
───────────────────────────────────────────────────────────────────────────────
✓ SEMPRE usar os scripts PowerShell de deploy:
Frontend: cd frontend; .\deploy.ps1
Backend: cd backend; .\deploy.ps1
✗ NUNCA enviar arquivos manualmente para diretórios errados
✓ Os scripts garantem o caminho correto:
- Frontend → /var/www/webmoney/frontend/dist
- Backend → /var/www/webmoney/backend
Requisitos Windows:
- PuTTY instalado (plink.exe, pscp.exe no PATH)
- Node.js e npm instalados
- PowerShell 5.1 ou superior
Deploy manual (se necessário):
# Frontend - Build e enviar
cd frontend
npm run build
plink -batch -pw Master9354 root@213.165.93.60 "rm -rf /var/www/webmoney/frontend/dist/*"
pscp -r -batch -pw Master9354 dist\* root@213.165.93.60:/var/www/webmoney/frontend/dist/
# Backend - Enviar e atualizar
cd backend
pscp -r -batch -pw Master9354 app root@213.165.93.60:/var/www/webmoney/backend/
plink -batch -pw Master9354 root@213.165.93.60 "cd /var/www/webmoney/backend && php artisan migrate --force"
───────────────────────────────────────────────────────────────────────────────
REGRA #5: CHECKLIST DE COMMIT
───────────────────────────────────────────────────────────────────────────────
Antes de CADA commit:
☑ VERSION atualizado
☑ CHANGELOG.md atualizado
☑ Deploy executado (.\deploy.ps1)
☑ Testado em webmoney.cnxifly.com
☑ Sem erros no console do navegador
☑ Mensagem de commit descritiva
───────────────────────────────────────────────────────────────────────────────
REGRA #6: PROIBIÇÕES EXPLÍCITAS
───────────────────────────────────────────────────────────────────────────────
✗ NÃO editar arquivos sem commit anterior
✗ NÃO criar documentação específica de versão (ex: DEPLOY_v1.9.0.md)
✗ NÃO duplicar informação em múltiplos arquivos
✗ NÃO fazer deploy manual (usar scripts)
✗ NÃO commitar sem testar em produção
═══════════════════════════════════════════════════════════════════════════════
INFRAESTRUTURA
═══════════════════════════════════════════════════════════════════════════════
───────────────────────────────────────────────────────────────────────────────
SERVIDOR DE PRODUÇÃO
───────────────────────────────────────────────────────────────────────────────
IP: 213.165.93.60
Porta SSH: 22
Usuário: root
Senha: Master9354
Acesso Windows (PowerShell):
plink -batch -pw Master9354 root@213.165.93.60 "comando"
Estrutura:
/var/www/webmoney/
├── backend/ # Laravel API
└── frontend/
└── dist/ # React build (Nginx root)
───────────────────────────────────────────────────────────────────────────────
DOMÍNIOS
───────────────────────────────────────────────────────────────────────────────
| Subdomínio | Função |
|------------|--------|
| webmoney.cnxifly.com | Aplicação principal |
| phpmyadmin.cnxifly.com | Banco de dados |
| webmail.cnxifly.com | Email |
| mail.cnxifly.com | PostfixAdmin |
───────────────────────────────────────────────────────────────────────────────
STACK TECNOLÓGICA
───────────────────────────────────────────────────────────────────────────────
| Camada | Tecnologia |
|--------|------------|
| Backend | Laravel 12 + PHP 8.4-FPM |
| Frontend | React 18 + Vite 7 + Bootstrap 5 |
| Banco | MariaDB 11.4 |
| Cache | Redis |
| Servidor | Nginx + SSL (Let's Encrypt) |
| Auth | Laravel Sanctum (Bearer Tokens) |
───────────────────────────────────────────────────────────────────────────────
AMBIENTE DE DESENVOLVIMENTO (WINDOWS)
───────────────────────────────────────────────────────────────────────────────
Requisitos:
- Windows 10/11
- PowerShell 5.1+
- Node.js 20+
- PuTTY (plink.exe, pscp.exe)
- VS Code
Ferramentas de conexão:
| Comando Linux | Equivalente Windows |
|---------------|---------------------|
| ssh user@host | plink -batch -pw SENHA user@host |
| scp file user@host:path | pscp -batch -pw SENHA file user@host:path |
| scp -r dir user@host:path | pscp -r -batch -pw SENHA dir user@host:path |
Flags importantes:
-batch : Não solicita interação (senhas, confirmações)
-pw : Fornece senha diretamente
═══════════════════════════════════════════════════════════════════════════════
SEGURANÇA
═══════════════════════════════════════════════════════════════════════════════
Implementado em v1.19.0:
| Recurso | Configuração |
|---------|--------------|
| Rate Limiting | Login: 5/min, Register: 10/hour |
| CORS | Restrito a webmoney.cnxifly.com |
| Token Expiration | 7 dias |
| Cookies | HttpOnly, Secure, SameSite=lax, Encrypt=true |
| Headers | X-XSS-Protection, X-Content-Type-Options, X-Frame-Options, CSP |
| Cookie Consent | Banner LGPD/GDPR |
═══════════════════════════════════════════════════════════════════════════════
ESTADO ATUAL
═══════════════════════════════════════════════════════════════════════════════
Versão: 1.27.2
Data: 13 de Dezembro de 2025
Status: Produção estável
Funcionalidades:
✅ Autenticação (login, registro, logout)
✅ Dashboard (gráficos, análises, widget overdue)
✅ Contas bancárias (CRUD, multi-moeda)
✅ Transações (agrupamento por semana, filtros, categorização em lote com seleção)
✅ Categorias (175 pré-configuradas, auto-classificação, keywords)
✅ Centros de custo
✅ Importação de extratos (XLSX, CSV, OFX, PDF)
✅ Detecção de duplicatas (auto-delete)
✅ Detecção de transferências
✅ Contas passivo (financiamentos)
✅ Transações recorrentes (templates, instâncias, conciliação)
✅ Multi-idioma (ES, PT-BR, EN) com detecção por país
✅ Tema dark
✅ Cookie consent (LGPD/GDPR)
✅ Segurança hardening
═══════════════════════════════════════════════════════════════════════════════
HISTÓRICO DE DIRETRIZES
═══════════════════════════════════════════════════════════════════════════════
| Versão | Data | Mudanças |
|--------|------|----------|
| v1.0 | 2025-12-07 | Criação inicial |
| v2.0 | 2025-12-08 | Adicionada REGRA #8 (ESTRUTURA_PROJETO) |
| v3.0 | 2025-12-10 | Simplificação, remoção de redundâncias |
| v4.0 | 2025-12-13 | Migração para Windows (PowerShell, PuTTY) |
Arquivos de diretrizes:
- .DIRETRIZES_DESENVOLVIMENTO (v1.0 - EXCLUÍDO)
- .DIRETRIZES_DESENVOLVIMENTO_v2 (v2.0 - arquivado)
- .DIRETRIZES_DESENVOLVIMENTO_v3 (v3.0 - arquivado)
- .DIRETRIZES_DESENVOLVIMENTO_v4 (v4.0 - ATIVO)
═══════════════════════════════════════════════════════════════════════════════
⚠️ LEMBRETE FINAL
═══════════════════════════════════════════════════════════════════════════════
ANTES de editar qualquer arquivo:
1. ✓ Último commit foi feito?
2. ✓ VERSION será incrementado?
3. ✓ CHANGELOG será atualizado?
4. ✓ Deploy será feito via script (.\deploy.ps1)?
5. ✓ Teste em produção será realizado?
Este documento é IMUTÁVEL. Qualquer mudança requer criar v5.0.
═══════════════════════════════════════════════════════════════════════════════