Skip to content

Releases: alonso3107/SATA

v3.0.0 · La entrega a Drive y la produccion como codigo

Choose a tag to compare

@alonso3107 alonso3107 released this 02 Aug 05:53

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: release publica imagenes ARM64 nativas a GHCR al etiquetar (por SHA, nunca latest), y deploy solo 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

Choose a tag to compare

@alonso3107 alonso3107 released this 02 Aug 05:52

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

Choose a tag to compare

@alonso3107 alonso3107 released this 02 Aug 05:52

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.