Appearance
Fluxos
Inicializacao
server.tscarrega o.env.server.tscria dois clientes Axios: um para login e outro para/api/{versao}.server.tsinstanciaAuthService, os services/controllers especificos de jobs, repositories, scale-out repositories e seus exporters.app.tscria o Fastify.routers.tsregistra as rotas.
GET /jobs/vm-backup
- A rota chama
VmBackupJobsController.list. - O controller chama
VmBackupJobsService.listJobs. - O service pede token ao
AuthService. - O service consulta
GET /vbrJobs/vmBackupJobs. - O service preserva as chaves originais do payload Veeam ONE, como
items,vmBackupJobUid,lastRunDurationSeceavgDurationSec. - O controller retorna esse JSON bruto para a rota REST.
GET /jobs/backup-copy
- A rota chama
BackupCopyJobsController.list. - O controller chama
BackupCopyJobsService.listJobs. - O service consulta
GET /vbrJobs/backupCopyJobs. - O controller retorna o JSON no contrato original desse endpoint.
GET /jobs/backup-to-tape
- A rota chama
BackupToTapeJobsController.list. - O controller chama
BackupToTapeJobsService.listJobs. - O service consulta
GET /vbrJobs/backupToTapeJobs. - O controller retorna o JSON no contrato original desse endpoint.
GET /api/veeam-one/repositories
- A rota chama
RepositoriesController.list. - O controller chama
RepositoriesService.listRepositories. - O service pede token ao
AuthService. - O service consulta
GET /vbr/repositoriesrepassando a query string recebida. - O controller retorna exatamente o payload recebido do Veeam ONE.
GET /api/veeam-one/scaleout-repositories
- A rota chama
ScaleoutRepositoriesController.list. - O controller chama
ScaleoutRepositoriesService.listScaleoutRepositories. - O service pede token ao
AuthService. - O service consulta
GET /vbr/scaleoutRepositoriesrepassando a query string recebida. - O controller retorna exatamente o payload recebido do Veeam ONE.
GET /metrics
- Prometheus chama
/metrics. JobsExporter.collectchama os services especificos de jobs.RepositoriesExporter.collectchama os services de repositórios e SOBR.- Os exporters normalizam internamente os payloads brutos somente para calcular metricas.
- Os exporters atualizam gauges do
prom-client. - A rota retorna texto no formato Prometheus.
Renovacao De Token
AuthService.getAccessTokenretorna o token cacheado enquanto estiver valido.- Quando expira, tenta
grant_type=refresh_token. - Se refresh falhar, limpa o cache e faz login com usuario e senha.