Repository navigation
Releases: adriansmas/abscada
Releases · adriansmas/abscada
Release list
abSCADA v0.5.0b3
Cambiado
- Retirado el botón verde «+ Crear» de Studio; los documentos se crean desde el menú contextual del árbol.
- Retiradas las paletas de colores: cada objeto y estado conserva su HEX explícito. Los ocho ejemplos y generadores usan colores locales; las referencias de proyectos antiguos se convierten al abrirlos.
- Documentación revisada: menús actuales, layouts, protocolos implementados, persistencia, credenciales y ejecución desde macOS.
- Documentación agrupada:
docs/pasa de 23 a 9 Markdown, con guías únicas de Studio y operación, referencias técnicas e índice en README. Eliminados los informes antiguos y actualizados los enlaces y capturas. - El runtime espera hasta 30 s, en lugar de 5, a que el archivo SQLite esté listo al arrancar: en discos lentos o con el antivirus revisando archivos nuevos fallaba sin motivo.
- «Faceplates» pasa a llamarse «Librerías», y cada plantilla, «objeto de librería». El formato de archivo no cambia (
faceplates/*.json), así que los proyectos existentes abren igual. «Bibliotecas de faceplates» pasa a ser «Librerías externas».
Añadido
- Studio, ronda de usabilidad: un contenedor de pantalla puede existir sin pantalla asociada (se diseña primero el layout); «Nueva pantalla» pide solo el nombre y deriva de él el archivo; clic derecho sobre un elemento del lienzo con copiar, orden, alinear, agrupar, bloquear, propiedades dinámicas y suprimir.
- Variables: la última fila de la lista es donde se escribe una variable nueva (Intro para crear), con numeración, tipo editable en la propia fila y clic derecho para insertar encima o debajo, mover o eliminar. Tipos de datos y conexiones tienen numeración y menú contextual; los tipos, también fila de alta.
- Propiedades dinámicas: las condiciones sobre variables booleanas piden solo «Verdadero / Falso» (antes «igual a» y «distinto de» decían lo mismo).
- Scripts: la pantalla explica para qué sirven, crea scripts escribiendo el nombre en la última línea y tiene menú contextual; «Scripts al abrir la pantalla» remite a la sección Scripts si aún no hay ninguno. «Librerías externas» explica cómo importar una librería y se alcanza también desde el árbol del proyecto.
- Idiomas por proyecto con traducciones junto a cada texto, fallback, idioma de edición, tabla con filtro e intercambio CSV, cambio en runtime y scripts, preferencias por puesto/usuario y alarmas históricas traducidas. Los ocho ejemplos incluyen español e inglés.
- Studio y el runtime en inglés: Ayuda → Idioma / Language elige el idioma de la aplicación (español o inglés), que se aplica al volver a abrirla. Es un ajuste del usuario, independiente de los proyectos. Catálogo en
src/abscada/locales/en.jsony herramientastools/i18n_check.pyetools/i18n_wrap.py. - Librería estándar del sistema (solo lectura, viene con la aplicación y no se copia al proyecto): carpeta Gráficos con 35 símbolos SVG (depósitos, válvulas, bombas y motores, proceso, instrumentos y eléctrico) y carpeta Objetos con versiones animadas (bomba, motor y ventilador con marcha y fallo; válvula abierta o cerrada; interruptor; depósito con nivel). «Copiar al proyecto» crea una copia editable.
- Carpetas en la librería del proyecto: crear, renombrar, eliminar y arrastrar objetos entre carpetas (
library_foldersenproject.json). - Insertar objetos arrastrándolos desde el árbol de Librerías al lienzo, o con el selector con buscador de la herramienta «Objeto de librería».
- Las imágenes SVG se dibujan vectorialmente: nítidas a cualquier tamaño y zoom.
- Ejemplo Microcervecería La Tolva (
examples/brewery): cocción por lotes con recetas, tres fermentadores, servicios y panel del instructor. Lee el PLC por OPC UA cifrado, publica sus variables con el servidor OPC UA propio y trae los usuarios y roles activados. Simuladorabscada --simulador cerveceria. - Permiso
recipes(«Recetas y parámetros de proceso»): ningún control lo pide por defecto; se asigna conpermissiona las entradas y botones que deben quedar reservados.
Seguridad
- Las cuentas pasan a formar parte del proyecto:
users.json, versionado y copiado con él, en lugar deruntime/users.jsonen cada puesto. Solo contiene huellas scrypt. Los intentos fallidos y los bloqueos ya no se escriben en disco: viven en la memoria del runtime. Las cuentas existentes se mueven solas la primera vez. Quien tenga el proyecto o su repositorio tiene las huellas: usa contraseñas largas y protege el repositorio. - Las contraseñas de las conexiones y los certificados OPC UA también van en el proyecto:
secrets.json(codificado en base64, no cifrado: el runtime tiene que enviar la contraseña al PLC) ypki/. Al copiar el proyecto a otro PC, los PLC siguen confiando en él. El URI de aplicación pasa a depender de la carpeta del proyecto en lugar del nombre del equipo, así que el primer arranque genera un certificado nuevo que los PLC y clientes deben volver a aceptar. Los datos deruntime/de 0.5.0b2 se mueven solos; las contraseñas cifradas con DPAPI solo se recuperan en el equipo y la cuenta de Windows que las guardaron.
Descarga: abSCADA-0.5.0b3-windows.zip · descomprimir y ejecutar abscada.exe. Guía de prueba: docs/BETA.md.
Verificar la descarga: sha256sum -c SHA256SUMS.txt. Componentes incluidos: sbom.cdx.json (CycloneDX).
Procedencia firmada: gh attestation verify abSCADA-0.5.0b3-windows.zip --repo adriansmas/abscada.
abSCADA v0.5.0b2
Añadido
- Usuarios y roles (Proyecto → Usuarios y roles). Política en
security.jsony cuentas por instalación enruntime/users.json(hash scrypt). El runtime arranca sin sesión y pide usuario para mandos, consignas, scripts y reconocimiento de alarmas. Incluye bloqueo por intentos, cierre por inactividad y cambio de contraseña en el primer acceso. - Auditoría con el usuario real y el origen de cada orden (HMI, OPC UA o script), órdenes denegadas e inicios de sesión.
- Cliente OPC UA como conector: firma y cifrado por defecto, certificados por instalación con listas de confianza y contraseña cifrada con DPAPI fuera del proyecto.
- Servidor OPC UA (Proyecto → Servidor OPC UA) que publica las variables. Inicio de sesión con cuentas abSCADA y escrituras como órdenes auditadas.
- Propiedad
permissionen botones y entradas para exigir un permiso concreto. - Cadena de suministro:
pip-auditen CI, SBOM CycloneDX,SHA256SUMS.txty atestación de procedencia en cada versión, y Dependabot. - Documentación: SECURITY.md, docs/SECURITY_DEVELOPMENT.md, docs/THREAT_MODEL.md y docs/HARDENING.md.
Seguridad
- La seguridad de usuarios está desactivada por defecto para no cambiar el comportamiento de los proyectos existentes. Actívala en las instalaciones reales (docs/HARDENING.md).
Descarga: abSCADA-0.5.0b2-windows.zip · descomprimir y ejecutar abscada.exe. Guía de prueba: docs/BETA.md.
Verificar la descarga: gh attestation verify abSCADA-0.5.0b2-windows.zip --repo adriansmas/abscada y sha256sum -c SHA256SUMS.txt. Componentes incluidos: sbom.cdx.json (CycloneDX).
abSCADA 0.5.0b1 (beta)
Primera beta pública del ejecutable para Windows.