Qué protege
- DML destructivo, con la acción de tu workspace: VERICTO-001 (DELETE sin WHERE), 042 (UPDATE sin WHERE) y 033 (DELETE sin WHERE en una subquery o CTE).
- Esquema y DDL, VERICTO-010 a 019 (DROP, TRUNCATE, DROP COLUMN, RENAME, ALTER COLUMN TYPE): en CI y MCP se limitan a FLAG, porque una migración versionada los contiene con razón. El pipeline los reporta y no falla; en runtime, el proxy y la API los bloquean.
- Reglas de seguridad como VERICTO-080 (COPY … PROGRAM) y 082 (GRANT y REVOKE), con su acción completa.
- Reglas custom en YAML (desde Builder) para lo propio de tu equipo, por ejemplo prohibir borrados físicos en una tabla.
Latencia y disponibilidad
El check corre en el pipeline, fuera del runtime: no añade latencia a tu aplicación. Con --changed, la CLI revisa solo los .sql modificados respecto al merge base, para que los PRs sigan rápidos.
Cada statement analizado cuenta como una validación: 1K al mes en Free, 10K en Builder, ilimitadas en Team y Enterprise. Un lote que no cabe en lo que queda se rechaza entero con 429.
La API de runtime, la API de validación y MCP corren en Vericto Cloud, con un SLA de 99,5% en Builder y de 99,9% en Team y Enterprise (99,95% y 99,99% con despliegue dedicado). El estado del servicio, en la página de estado.
Cómo implementarlo
- Crea una API key con el scope
ci_dryrun:executey guárdala como secreto del repositorio, o usa OIDC para no guardar una key estática. - Agrega la Action:
uses: vericto/check-sql@v1conapi-key. Instala una versión fija de la CLI, verifica su SHA-256 y sube los hallazgos como SARIF a Code Scanning: CI/CD. - En GitLab CI, CircleCI o Jenkins, usa la CLI:
vericto initgenera la plantilla de GitHub Actions y de GitLab CI. - En un repo con SQL existente, registra un baseline (
vericto baseline) para que solo fallen los hallazgos nuevos: baseline. - Opcional:
vericto init --hookinstala el hook de pre-commit, y el servidor MCP deja que tu agente de código valide la migración mientras la escribe. - Si cambias reglas desde CI, simula el cambio contra el tráfico de producción con una key
rules:simulate(Builder, Team y Enterprise).
Cuándo no usar esta opción
- SQL que se genera en runtime (un ORM, un agente, una consola): CI nunca lo ve. Para eso está el proxy TCP o la API de runtime: ver aplicación web.
- Migraciones que no están en archivos .sql, como las migraciones en código de un ORM: genera primero el SQL, o envía las sentencias a la API de validación.
Disponibilidad por plan
| Función | Free | Builder | Team | Enterprise |
|---|---|---|---|---|
| CLI y GitHub Action | Sí | Sí | Sí | Sí |
| Validaciones de CLI y MCP | 1K al mes | 10K al mes | Ilimitadas | Ilimitadas |
| Reglas custom (YAML) | — | 5 | 20 | Ilimitadas |
| Simulador de reglas | — | Hasta 30 días | Hasta 90 días | Según contrato (hasta 180 días) |
| MCP (check_sql) | Sí | Sí | Sí | Sí |
Precios y todos los límites en Precios.