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/propostas cobrindo: 401/403, 400 (faltando campos), 201 (com e sem insurance_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/propostas com 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).