Imagen pública: cormaza/ats-validator:1.3.0 (y latest).
Servicio HTTP independiente que expone el motor oficial de validación del
Anexo Transaccional del SRI (plugin DIMM ats.plugin.1.19.0, vigencia
09/2026) para que cualquier plataforma lo consuma sin instalar Eclipse:
la app principal lo llama, él valida y devuelve errores + talón resumen.
Desarrollo independiente, versionado aparte, mismo contrato para todos
los consumidores (hoy: ERPNext l10n_ec, reporte SRI ATS).
| Método | Endpoint | Auth | Qué hace |
|---|---|---|---|
GET | /health | no | Liveness: {"status":"up"} (healthcheck del contenedor). |
GET | /version | sí¹ | Identidad para staleness: servicio, plugin SRI (zip + fecha), fecha de libs y versiones live de los 5 bundles. |
POST | /validateXml | sí¹ | Valida un ATS: esquema XSD + duplicados + reglas fiscales. |
¹ Cuando ATS_VALIDATOR_TOKEN está seteado, todo (salvo nada) exige header
X-Validator-Token. Sin token, el servicio debe bindearse a localhost
o red interna (ver despliegue).
POST /validateXmlForm param xml_file con el XML del ATS como texto (máx. 20 MB).
Respuesta 200:
{
"talon_resumen": "<!DOCTYPE html>… (talón DIMM con CSS y logo incrustados)",
"messages": ["…errores y advertencias…"],
"has_errors": false,
"has_warning": false
}
talon_resumen es HTML autocontenido (CSS oficial + logo inline):
se renderiza tal cual en un iframe sin dependencias externas.GET /version{
"service": "1.3.0",
"sriPluginZip": "ats.plugin.1.19.0",
"sriPluginDate": "2026-09-07",
"sriLibsDate": "2026-09-07",
"bundles": {
"ec.gob.sri.dimm.ats.validacion": "1.2.0",
"ec.gob.sri.dimm.ats.ui": "1.2.0",
"ec.gob.sri.dimm.ats.modelo": "1.2.0",
"ec.gob.sri.dimm.api": "1.9.3",
"ec.gob.sri.dimm.data": "1.23.0"
}
}
Contrato "estoy desactualizado": el consumidor guarda los valores
esperados (sriPluginZip + sriLibsDate) y los compara en cada uso.
Diferencia —o ausencia— = validador desactualizado: se advierte en UI y
se registra en el recibo, pero nunca se finge validez.
# 1. Token compartido con la app consumidora
export ATS_VALIDATOR_TOKEN=$(openssl rand -hex 32)
# 2. Levantar (imagen pública, sin compilar nada)
docker compose up -d
El docker-compose.yml de este repo usa la imagen pública con red
dedicada y healthcheck; el puerto no se publica (consumo por red
interna). Si la app corre en el host (bench/bench serve), publicalo solo
en loopback:
ports:
- "127.0.0.1:8080:8080"
Y en producción exponelo detrás de un reverse-proxy con TLS, siempre con
ATS_VALIDATOR_TOKEN seteado en ambos lados. Sin token, asumí red
confiable (localhost o VPC) — la API no tiene otro control de acceso.
ats_validator_rest y se publica imagen
con nuevo tag (el sriPluginZip/sriLibsDate cambian)./version y dejan de mostrar
el aviso en cuanto coinciden con lo esperado.Los ats_libs/*.jar son del Servicio de Rentas Internas del Ecuador y
viajan solo dentro de la imagen construida, no como fuente versionada
aquí (el target/*.jar está ignorado). Revisá los términos del SRI antes
de redistribuir la imagen fuera de tu organización.
Content type
Image
Digest
sha256:6408d75d5…
Size
138.1 MB
Last updated
13 days ago
docker pull cormaza/ats-validator