Repository navigation
Releases: alonso3107/SATA
Release list
v3.0.0 · La entrega a Drive y la produccion como codigo
El reporte aprobado llega solo al Google Drive de la empresa, y el servidor de produccion queda descrito en codigo.
La entrega automatica (robot de n8n)
- SATA no sabe que el robot existe: sin webhook, sin cola, sin cliente saliente. El robot consume la API publica cada 30 minutos con el rol nuevo
Lector, de solo lectura, y el unico cambio en el nucleo fueron tres permisos que ya existian. - El registro de lo entregado vive en el propio Drive (propiedades de aplicacion en cada archivo): el robot no recuerda nada entre corridas, y una maquina apagada una semana se pone al dia en una corrida.
- Una copia solo cuenta como entregada si sigue dentro de la carpeta de su empleado; un PDF que alguien saca de ahi se repone solo. La marca se escribe al final de la subida: un archivo a medias nunca cuenta.
- Flujo de alarma enlazado y probado: si una corrida muere, el diagnostico aparece como archivo en la raiz del Drive, donde el dueno ya mira.
- El contrato de JSON que el robot consume quedo fijado por pruebas de integracion que afirman sobre el JSON crudo.
La produccion como codigo
- Terraform describe la maquina (Ampere A1) y cloud-init su configuracion; quadlets de systemd corren los contenedores.
- Dos workflows y ningun camino automatico a produccion:
releasepublica imagenes ARM64 nativas a GHCR al etiquetar (por SHA, nunca latest), ydeploysolo se dispara a mano. - Copias de seguridad cifradas a Backblaze B2 con repositorio de solo anadir.
- La espera tras un 429 ahora se obedece en el cliente: cuenta atras visible en el ingreso (sobrevive a una recarga) y cola de subida que espera lo que pida el servidor.
Verificacion: 517 pruebas de backend, 440 de frontend, lint, build de produccion y smoke E2E, todas en verde sobre el arbol final.
v2.0.0 · El asistente y la portada
Un asistente informativo dentro de la aplicacion y una portada publica con identidad propia.
El asistente, aislado por diseno
- Sin herramientas, sin base de datos, sin acciones: su unico conocimiento es una guia operativa embebida en el ensamblado, cuya revision es el hash SHA-256 de sus bytes.
- Politicas deterministas de entrada y salida (DLP en ambas direcciones), separacion estricta entre lo confiable y lo no confiable, y un corpus adversarial versionado que se evalua contra el proveedor real antes de encender.
- Paso la evaluacion del spec: 12 de 12 preguntas canonicas y 18 de 18 casos adversariales contra DeepSeek, con p50 de 1.6 segundos.
- Encenderlo exige dos llaves (permiso y configuracion); apagado de fabrica, y el repositorio arranca sin clave de proveedor.
La portada publica
- Deck de tres tramos con su propio sistema visual, arte a curvas (la fuente no viaja al repositorio: su licencia prohibe redistribuirla), fondos por tramo y revelado que nunca esconde contenido.
- Respeta prefers-reduced-motion y quedo verificada en pantallas bajas y con teclado.
Verificacion: 405 pruebas de backend, 393 de frontend, lint y smoke E2E; el interruptor apagado del asistente quedo fijado por pruebas que hubo que darle la vuelta a proposito al encenderlo.
v1.0.0 · El MVP
El ciclo del producto cierra de punta a punta: el admin crea y asigna la orden, el empleado sube fotos de antes, durante y despues desde el celular, el admin aprueba o devuelve con observaciones, y al aprobar sale el PDF del reporte.
Lo que entra en esta version
- Cinco modulos sobre un monolito modular con fronteras verificadas por pruebas de arquitectura: Identity (RBAC, JWT con refresh rotativo), Sites, WorkOrders con evidencias, Audit y Reporting.
- Subida de fotos idempotente: la misma foto en la misma fase es una sola (indice unico por SHA-256), con miniaturas en segundo plano y lectura de EXIF antes de comprimir.
- Bitacora de auditoria en toda escritura, con pantalla de consulta.
- Gestion de usuarios con contrasena temporal de un solo vistazo; las cuentas se desactivan, nunca se borran.
- Rate limiting configurable, cabeceras de seguridad y CSP desde la API.
- Pulido UX pantalla por pantalla con el dueno: panel que responde que necesita atencion hoy, revision unificada, confirmaciones en lo irreversible.
Verificacion: 209 pruebas de backend (126 de integracion contra PostgreSQL real), 211 de frontend y un smoke E2E que recorre el flujo completo en Chromium.