MantovaniTec API
Referência completa de todos os endpoints do ecossistema MantovaniTec.
Autenticação
A maioria dos endpoints exige um Bearer token JWT RS256 emitido por id.mantovanitec.com.
Authorization: Bearer <access_token>
Identity Provider
Base URL: https://id.mantovanitec.com
/auth/register
Cria uma nova conta de usuário. Envia e-mail de verificação.
Body (JSON)
{ "name": "string", "email": "string", "password": "string (min 8)" }
Response 201
{ "ok": true, "message": "Conta criada. Verifique seu e-mail." }
/auth/password/forgot
Envia link de recuperação de senha por e-mail.
{ "email": "string" }
/auth/password/reset
{ "token": "string", "password": "string (min 8)" }
OAuth2 / OIDC
/.well-known/openid-configuration
Discovery document OIDC. Sem autenticação.
/.well-known/jwks.json
Chave pública RSA para verificação de tokens (RS256).
/oauth/authorize
Inicia o fluxo Authorization Code. Redireciona para login.
Query params
response_type=code client_id=<seu_client_id> redirect_uri=<sua_uri> scope=openid+profile+email state=<random_state>
/oauth/token
Troca código por tokens ou renova com refresh_token.
grant_type=authorization_code
code=<code>
client_id=<id>
client_secret=<secret>
redirect_uri=<uri>
# Response
{
"access_token": "eyJ...",
"id_token": "eyJ...",
"refresh_token": "...",
"token_type": "Bearer",
"expires_in": 3600
}
/oauth/userinfo
Retorna claims do usuário autenticado. Requer Bearer token.
/oauth/introspect
Valida um token e retorna seus metadados. Requer client credentials.
token=<token>&client_id=<id>&client_secret=<secret>
Perfil
/profile
Retorna dados do perfil do usuário autenticado. Requer Bearer token.
Response 200
{ "id": "uuid", "name": "string", "email": "string", "emailVerified": true, "mfaEnabled": false, "createdAt": "iso8601" }
/profile
Atualiza nome ou senha do usuário.
{ "name": "string", "currentPassword": "string", "newPassword": "string (min 8)" }
/profile/verify-email
Reenviar e-mail de verificação.
# Response 200
{ "ok": true, "message": "E-mail de verificação enviado." }
MFA (TOTP)
/mfa/setup
Inicia configuração de MFA. Retorna QR code e secret TOTP.
{ "secret": "BASE32STRING", "qrCode": "data:image/png;base64,..." }
/mfa/verify
Ativa MFA confirmando com um código TOTP válido.
{ "code": "123456" }
# Response 200
{ "ok": true, "backupCodes": ["xxxx-xxxx", "..."] }
/mfa
Desativa MFA. Requer código TOTP atual e senha.
{ "code": "123456", "password": "string" }
Security Platform
Base URL por serviço: https://<serviço>.mantovanitec.com
Autenticação via Bearer token do MantovaniTec ID, exceto onde indicado.
Vault — Gestão de Secrets
Base URL: https://vault.mantovanitec.com
/api/secrets
Lista secrets do namespace do usuário (nomes apenas, sem valores).
[{ "id": "uuid", "name": "DB_PASSWORD", "createdAt": "iso8601", "lastAccessedAt": "iso8601" }]
/api/secrets
Cria ou atualiza um secret. Valor é cifrado em repouso (AES-256).
{ "name": "DB_PASSWORD", "value": "secret_value", "description": "string" }
/api/secrets/:name
Recupera o valor de um secret. Registra acesso no audit log.
{ "name": "DB_PASSWORD", "value": "secret_value" }
/api/secrets/:name
Remove um secret permanentemente.
Security Platform
Base URL: https://siem.mantovanitec.com
/ingest
Ingesta eventos de segurança no SIEM. Autenticação via header.
X-SIEM-KEY: <sua_chave>
Content-Type: application/json
{
"service": "shield | edr | manual",
"eventType": "AUTH_FAILED | WAF_BLOCK | HONEYPOT_HIT | ...",
"severity": "LOW | MEDIUM | HIGH | CRITICAL",
"source": "string",
"ip": "1.2.3.4",
"payload": {}
}
IAM — Gestão de Identidade
Base URL: https://iam.mantovanitec.com
/api/groups
Lista todos os grupos de acesso. Requer Bearer token.
Response 200
[{ "id": "uuid", "name": "string", "memberCount": 12, "permissions": ["string"] }]
/api/groups
Cria um novo grupo de acesso.
{ "name": "string", "permissions": ["vault:read", "siem:ingest", "..."] }
/api/groups/:id/members
Adiciona um usuário a um grupo.
{ "userId": "uuid" }
/api/audit
Log de auditoria de ações de IAM. Suporta filtros por query string.
Query params
?userId=uuid&action=GROUP_ASSIGN&from=2025-01-01&limit=50
Awareness — Treinamentos
Base URL: https://awareness.mantovanitec.com
/api/modules
Lista módulos de treinamento disponíveis.
Response 200
[{ "id": "uuid", "title": "string", "category": "phishing|lgpd|senhas", "durationMin": 15 }]
/api/enrollments
Retorna progresso dos treinamentos do usuário autenticado.
[{ "moduleId": "uuid", "status": "pending|in_progress|completed", "score": 85, "completedAt": "iso8601" }]
/api/enrollments/:moduleId/quiz
Submete respostas do quiz de um módulo.
{ "answers": [{ "questionId": "uuid", "choice": "A" }] }
# Response 200
{ "score": 85, "passed": true, "certificate": "https://awareness.mantovanitec.com/cert/uuid" }
Backup Manager
Base URL: https://backup.mantovanitec.com
/api/policies
Lista políticas de backup configuradas.
[{ "id": "uuid", "name": "string", "schedule": "0 3 * * *", "retention": 30, "status": "active" }]
/api/policies/:id/run
Dispara um backup imediato fora do agendamento.
# Response 202
{ "jobId": "uuid", "status": "queued", "startedAt": "iso8601" }
/api/jobs
Histórico de execuções de backup.
?policyId=uuid&status=success|failed&limit=50
# Response 200
[{ "id": "uuid", "policyId": "uuid", "status": "success", "sizeBytes": 104857600, "duration": 42, "completedAt": "iso8601" }]
/api/jobs/:id/restore
Solicita restauração de um backup específico.
{ "target": "original | staging", "confirm": true }
SOAR — Orquestração e Resposta
Base URL: https://soar.mantovanitec.com
/api/incidents
Lista incidentes de segurança. Filtros por status e severidade.
Query params
?status=OPEN|INVESTIGATING|RESOLVED&severity=LOW|MEDIUM|HIGH|CRITICAL&limit=50
# Response 200
[{ "id": "uuid", "title": "string", "severity": "HIGH", "status": "OPEN", "source": "siem|manual", "createdAt": "iso8601" }]
/api/incidents
Cria um incidente manualmente.
{ "title": "string", "severity": "HIGH", "description": "string", "sourceIp": "1.2.3.4" }
/api/incidents/:id
Atualiza status ou adiciona notas a um incidente.
{ "status": "INVESTIGATING | RESOLVED", "note": "string" }
/api/playbooks/:id/run
Executa um playbook de resposta automática para um incidente.
{ "incidentId": "uuid" }
# Response 202
{ "executionId": "uuid", "steps": ["block_ip", "notify_team", "create_ticket"], "status": "running" }