DevOps-as-code para a topologia de três planos: host, droplet e CI.
@alembic/infra codifica a topologia operacional do Alembic:
O pacote envia artefatos Terraform, Docker Compose, Caddy, launchd e GitHub Actions como diretórios irmãos, e expõe um validador de config tipado sem dependências externas.
Pense assim… um plano urbano: residencial (host), centro (droplet) e canteiro de obras (CI), cada um com suas próprias regras de zoneamento.
parseInfraConfig valida config de DigitalOcean e GitHub sem lançar. findExposureViolations impõe que apenas workloads droplet podem ser públicos. Helpers de provisionamento para Terraform, docker compose e launchd são stubs dry-run atualmente. Segredos são referenciados por nome de env-var, nunca inline.
# workflow de CI existente .github/workflows/ci.yml # diretórios de artefatos de infra packages/infra/terraform packages/infra/docker packages/infra/caddy packages/infra/host
O workflow de CI instala pnpm, executa typecheck/build/test, roda alembic doctor --json e executa impeccable detect como design gate. Helpers de provisionamento de infra são TODOs aguardando credenciais reais e lógica de apply.
Leia packages/infra/src/topology.ts e liste os workloads padrão. Em qual plano cada um está?