Skip to content

Development e qualidade

Comandos principais

ComandoUso
just lintroda ruff check e ruff format --check
just typecheckroda ty check src tests
just testroda a suíte Python completa
just qualityroda lint, typecheck e teste
just db-initaplica as migrations ClickHouse pendentes do banco de metadados
just db-migrations-dry-runlista as migrations ClickHouse pendentes sem aplicar
just seed-local-model-definitioncria a definição local determinística usando o DATABASE_URL carregado pelo just
just config-validate <manifest>valida um manifesto JSON de configuração de cliente
just config-apply <manifest>aplica o manifesto no ClickHouse e ativa uma revisão efetiva de configuração
just config-apply-manifestsaplica todos os manifests versionados em config/orgs/
just setup-local-auth <organization_id> [subject]emite um header Authorization: Bearer ... para chamadas HTTP locais
just serve-http [host] [port]sobe a API HTTP local carregando .env pelo just
just example-direct-trainingroda o exemplo local direto, importável em notebook, sem HTTP nem Airflow
just example-http-traininggera CSV local e submete treino pelo endpoint HTTP protegido

Runtime local mínimo

Terminal window
cp .env.local.example .env
just db-init

Docs localmente

Terminal window
cd docs
bun install
bun run dev

Build da docs

Terminal window
cd docs
bun install
bun run build

MLflow local

No stack local via Compose:

Terminal window
open http://127.0.0.1:5000

Observações

  • o processo HTTP exige DATABASE_URL, JWT_SECRET e AIRFLOW_API_BASE_URL.
  • o exemplo direto, jobs manuais e tasks do Airflow exigem DATABASE_URL e MLFLOW_TRACKING_URI.
  • o exemplo direto, jobs manuais e tasks do Airflow também exigem storage de demanda: DEMAND_STORAGE_ROOT em filesystem ou DEMAND_INGESTION_BUCKET em s3.
  • just db-init e just db-migrations-dry-run exigem DATABASE_URL.
  • just config-apply-manifests roda sem DATABASE_URL quando config/orgs/ ainda não tem manifests; com manifests reais, exige DATABASE_URL.
  • o CI/CD usa a imagem ghcr.io/astral-sh/uv:python3.12-bookworm-slim, executa uv sync --frozen --all-groups e chama uv run diretamente em vez de depender do just dentro da imagem.