Arquitetura
Como os serviços do runtz se comunicam.
Arquitetura
O runtz é dividido em três partes principais.
Frontend
O frontend é uma aplicação Next.js com shadcn/ui. Ele cuida de:
- Configuração inicial.
- Login e seleção do workspace.
- Dashboards de scans.
- Configurações de usuários, workspaces e perfis.
O navegador chama a API backend por meio de NEXT_PUBLIC_API_URL.
Engine backend
A engine backend é o serviço Go em runtz/. Ela cuida de setup e autenticação, persistência dos workspaces, gestão de usuários, ingestão dos resultados e APIs de consulta usadas pelo frontend.
O MongoDB armazena usuários, workspaces e scans.
CLI
A CLI executa scans localmente e envia resultados normalizados para:
POST /api/v1/ingest/sca
POST /api/v1/ingest/sast
POST /api/v1/ingest/host
POST /api/v1/ingest/container
POST /api/v1/ingest/k8sA requisição usa Authorization: Bearer <token>. Tokens gerados na plataforma identificam o workspace automaticamente.
Fluxo de dados
manifests de dependências (package.json, requirements.txt, go.mod, ...)
-> runtz sca
-> GitHub Global Security Advisories
-> API de ingestão do backend runtz
-> MongoDB
-> dashboard do frontend