Saltearse al contenido
ES EN

Subida de Findings

El endpoint de findings es el punto de entrada para todos los hallazgos generados por los scanners. La CLI lo usa automáticamente al ejecutar gerion scan ... --push.

Prerequisito

Obtén un JWT previamente con el endpoint de autenticación M2M.

Endpoint

POST https://api.gerion.dev/api/v1/findings
Authorization: Bearer <jwt>
Content-Type: application/json

El JWT debe haber sido generado con una API Key que tenga el permiso write:findings.

Body

{
"metadata": {
"repository_name": "mi-org/mi-repo",
"branch_name": "main",
"scan_type": "SECRETS",
"build_id": "build-2026-001",
"code_path": "/src",
"commit_hash": "abc123def456",
"commit_author": "elihu@gerion.dev"
},
"findings": [
{
"finding_id": "secret-001",
"title": "AWS Access Key expuesta",
"severity": "CRITICAL",
"scan_type": "SECRETS",
"repository_name": "mi-org/mi-repo",
"branch_name": "main",
"build_id": "build-2026-001",
"code_path": "/src",
"active": true,
"mitigated": false,
"false_positive": false,
"creation_date": "2026-03-19T10:00:00Z",
"last_update_date": "2026-03-19T10:00:00Z",
"file_path": "config/deploy.sh",
"line_number": 42
}
]
}

Campos de metadata

CampoTipoRequeridoDescripción
repository_namestringNombre del repositorio (org/repo).
branch_namestringRama escaneada.
build_idstringIdentificador del build/pipeline.
code_pathstringRuta raíz del código escaneado.
scan_typestringSAST, SCA, SECRETS, IAC. Si se omite, se infiere de los findings.
commit_hashstringHash del commit escaneado.
commit_authorstringAutor del commit.

Campos de cada finding

CampoTipoRequeridoDescripción
finding_idstringID único del hallazgo (generado por el scanner). Usado para deduplicación.
titlestringTítulo descriptivo.
severitystringCRITICAL, HIGH, MEDIUM, LOW. Se normaliza a mayúsculas.
scan_typestringSAST, SCA, SECRETS, IAC.
repository_namestringDebe coincidir con metadata.repository_name.
branch_namestringRama del hallazgo.
build_idstringBuild en el que se detectó.
code_pathstringRuta raíz del proyecto.
activebooltrue si el hallazgo sigue presente.
mitigatedbooltrue si fue mitigado en este scan.
false_positivebooltrue si está marcado como falso positivo.
creation_datestringISO 8601.
last_update_datestringISO 8601.
file_pathstringRuta del fichero afectado.
line_numberintLínea del hallazgo.
cvestringCVE relacionado (p.ej. CVE-2021-44228).
cwestring[]Lista de CWEs relacionados.
descriptionstringDescripción detallada.
component_namestringComponente afectado (SCA/IAC).
component_versionstringVersión del componente.
component_fixstringVersión que corrige el problema.

Respuesta exitosa (201)

{
"success": true,
"message": "Findings processed successfully",
"result": {
"created": 3,
"updated": 1,
"mitigated": 0,
"duplicates": 2
}
}

Deduplicación

El servidor deduplica por la clave (finding_id, organization_id, repository_name, branch_name, scan_type). Si un hallazgo ya existe, se actualiza en lugar de crearse. Los findings presentes en ejecuciones anteriores pero ausentes en el payload actual se marcan como mitigados automáticamente.

Errores comunes

CódigoCausa
401JWT ausente, expirado o inválido.
403El JWT no tiene el permiso write:findings.
422Body con campos inválidos o faltantes.
429Rate limit superado (30 req/s, burst 10).