Development e qualidade
Comandos principais
| Comando | Uso |
|---|---|
just lint | roda ruff check e ruff format --check |
just typecheck | roda ty check src tests |
just test | roda a suíte Python completa |
just quality | roda lint, typecheck e teste |
just db-init | aplica as migrations ClickHouse pendentes do banco de metadados |
just db-migrations-dry-run | lista as migrations ClickHouse pendentes sem aplicar |
just seed-local-model-definition | cria 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-manifests | aplica 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-training | roda o exemplo local direto, importável em notebook, sem HTTP nem Airflow |
just example-http-training | gera CSV local e submete treino pelo endpoint HTTP protegido |
Runtime local mínimo
cp .env.local.example .envjust db-initDocs localmente
cd docsbun installbun run devBuild da docs
cd docsbun installbun run buildMLflow local
No stack local via Compose:
open http://127.0.0.1:5000Observações
- o processo HTTP exige
DATABASE_URL,JWT_SECRETeAIRFLOW_API_BASE_URL. - o exemplo direto, jobs manuais e tasks do Airflow exigem
DATABASE_URLeMLFLOW_TRACKING_URI. - o exemplo direto, jobs manuais e tasks do Airflow também exigem storage de demanda:
DEMAND_STORAGE_ROOTemfilesystemouDEMAND_INGESTION_BUCKETems3. just db-initejust db-migrations-dry-runexigemDATABASE_URL.just config-apply-manifestsroda semDATABASE_URLquandoconfig/orgs/ainda não tem manifests; com manifests reais, exigeDATABASE_URL.- o CI/CD usa a imagem
ghcr.io/astral-sh/uv:python3.12-bookworm-slim, executauv sync --frozen --all-groupse chamauv rundiretamente em vez de depender dojustdentro da imagem.