Diretrizes de Desenvolvimento
Padrões e práticas para qualidade, consistência e escalabilidade da plataforma.
🧪
Estratégia de Testes
- Unidade (backend Flask): pytest para funções utilitárias (validação, normalização, hash BK).
- Integração: testes do
POST /api/propostascobrindo: 401/403, 400 (faltando campos), 201 (com e seminsurance_model_id), SCD-2 e persistência. - E2E: verificar ciclo completo: subir proposta → aprovar → emissão → visões/relatórios.
🚀
Pipeline de CI/CD
Ferramentas: GitHub Actions + pytest + flake8.
name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
backend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install deps
run: pip install -r requirements.txt
- name: Lint
run: flake8 .
- name: Tests
run: pytest -q
📊
Monitoramento e Observabilidade
- Erros: Sentry no Flask (backend) e no frontend.
- Logs: padronize logs estruturados (json) das chamadas de
/api/propostascom tenant, cliente, contrato. - Métricas: dashboards de latência/erro HTTP 4xx/5xx, tempo de DB e taxa de aprovação.
🎨
Padrão de Código
- Python: Black + isort + flake8. Evite lógica em views; extraia helpers.
- SQL: nomes explícitos, índices para filtros frequentes (
tenant_id,is_current,bk_hash). - Segurança: nunca logar CPFs completos; mascarar quando possível.
- Config: .env com
DB_*e credenciais da seguradora segregadas por ambiente (dev/homolog/prod).