API · v1
API JSON
Una API JSON gratuita y de solo lectura sobre el catálogo. Se prerenderiza como JSON estático (el conjunto es pequeño y el sitio es estático), así que es rápida, cacheable y no requiere clave. Ruta base /api/v1.
¿Prefieres probarla en el navegador? Abre la referencia interactiva de la API y usa «Try it out». Abrir la referencia de la API →
Colecciones
Cada recurso devuelve su lista completa dentro de un pequeño envoltorio.
- GET /api/v1/images.json — Imágenes de contenedor endurecidas en el catálogo. (195 elementos)
- GET /api/v1/charts.json — Helm charts firmados en el catálogo. (136 elementos)
- GET /api/v1/roadmap.json — Apps en cola, aún no construidas. (256 elementos)
{
"apiVersion": "v1",
"resource": "images",
"total": 195,
"data": [ /* every item */ ]
}Paginación
Las páginas se prerenderizan con 24 elementos cada una, así que el número de página va en la ruta (no en un ?page). Cada página incluye meta + links.
GET /api/v1/{resource}/{page}.json
{
"apiVersion": "v1", "resource": "images",
"page": 2, "perPage": 24, "total": 195, "totalPages": 9,
"links": { "self": "…/2.json", "first": "…/1.json", "last": "…/9.json", "next": "…/3.json", "collection": "/api/v1/images.json" },
"data": [ /* this page */ ]
}Seguridad
Conteos de CVE en vivo del escaneo Trivy de ArtifactHub sobre cada digest de imagen fijado en el chart, actualizados en cada despliegue. El resumen da el total del catálogo + un desglose por severidad; cada elemento de images/charts incluye además un objeto security propio (225 CVE abiertos en el catálogo ahora mismo).
{
"apiVersion": "v1", "resource": "security",
"total": 225,
"bySeverity": { "critical": 0, "high": 0, "medium": 0, "low": 0, "unknown": 0 },
"imagesWithCves": 0,
"images": { "<name>": { "critical": 0, "high": 0, "medium": 0, "low": 0, "unknown": 0, "total": 0 } }
}
# per-item too: each images/charts entry gains a "security" field
curl https://quench-works.com/api/v1/images.json | jq '.data[] | {slug, security}'Para saber qué es realmente cada problema, consulta por imagen: los endpoints de detalle traen la lista de CVE deduplicada (id, gravedad, paquete, versión instalada y corregida, título, URL del aviso, objetivos afectados) de la última versión y de cada versión publicada. El resumen anterior se queda solo con los conteos y enlaza a ellos con un href.
- GET /api/v1/security/index.json — Índice de descubrimiento: cada imagen escaneada con su nota, totales y href de detalle.
- GET /api/v1/security/{image}.json — Una imagen con el detalle completo de CVE: la última versión y cada versión publicada.
- GET /api/v1/security/{image}/{version}.json — Una versión de una imagen, con su propia lista de CVE.
{
"apiVersion": "v1", "resource": "security",
"slug": "alertmanager", "image": "ghcr.io/quenchworks/images/alertmanager",
"latest": {
"version": "0.33.1", "total": 0, "fixable": 0, "grade": "A+", "score": 100,
"cves": [ { "id": "CVE-0000-0000", "severity": "HIGH", "pkg": "…", "installed": "…",
"fixed": "…", "title": "…", "url": "…", "targets": [ "…" ] } ]
},
"versions": [ /* the same shape per published version */ ]
}Insignias de estado
Insignias endpoint de shields.io, para cualquier README. En vivo (shields las obtiene al renderizar; se actualizan en cada despliegue). El estilo, el logo y los colores van en la respuesta del endpoint, así que el aspecto for-the-badge de abajo se renderiza sin parámetros de consulta adicionales:
       
Ejemplos
curl https://quench-works.com/api/v1/images.json curl https://quench-works.com/api/v1/charts/2.json curl https://quench-works.com/api/v1/security.json curl https://quench-works.com/api/v1/security/alertmanager.json | jq '.latest.cves'
Notas
- Solo lectura, sin autenticación, CORS abierto, en caché durante una hora.
- Los campos de cada elemento coinciden con lo que muestran las páginas del catálogo (slug, nombre, categoría, nivel, licencia, versiones, …).
- No se ofrece filtrado en el servidor vía ?query: el hosting estático no lee cadenas de consulta. Filtra la colección en el cliente.