Release Notes

v3.0

Destacados:

  • Se consolida la versión actual del sistema sobre Java 17, WildFly 34 y despliegue Docker como mecanismo principal de instanciación.
  • El proyecto queda documentado para adopción por cualquier organización: autenticación local APP, gestión manual y perfil Docker autocontenido no dependen de servicios de LACNIC; las integraciones externas son opcionales.
  • La cadena de actualización posterior a v2.4 queda resumida en release-files/3.0/v3.0_script.sql; para instalaciones históricas en v2.3 o v2.3.1 se mantiene la secuencia v2.3.1 -> v2.4 -> v3.0.
  • Se normaliza el uso de ORGID como identidad operativa de organizaciones y padrón, con controles previos e índices únicos por elección.
  • Se consolida la operación electoral actual: configuración por tipo de elección, calendario N_1..N_23, nominaciones y apoyos, auditoría previa y final, links públicos, votación y resultados.

Nuevas funcionalidades y correcciones:

  • release-files/3.0/v3.0_script.sql consolida los cambios intermedios posteriores a v2.4 en un único script de actualización.
  • La migración completa election.election_type cuando falta y rellena uservoter.orgid desde mail si es recuperable.
  • La actualización crea los índices únicos uq_organization_election_orgid_norm y uq_uservoter_election_orgid_norm, y aborta si detecta ORGID duplicados por elección o votantes sin ORGID recuperable.
  • El modelo de elección incorpora authorized_user_emails, authorized_support_emails, authorized_nominate_emails, callspanish, callenglish, callportuguese, callset y public_link_recovery_mode.
  • public_link_recovery_mode queda inicializado por tipo de elección (ONLY_BR, ALL o NONE) y gobierna la recuperación pública de links desde la landing.
  • La gestión de elecciones usa presets por tipo para calendario, tareas, padrón y organizaciones, y mantiene switches manuales para acceso público, revisión y cierre irreversible.
  • Padrón y organizaciones soportan gestión manual o automática, cargas XLSX, sincronización desde external sync dentro de N_23 y reconciliación por ORGID; el padrón automático toma organizaciones locales elegibles y preserva links existentes cuando corresponde.
  • El circuito de candidaturas soporta alta manual, nominación desde organización, aceptación o rechazo por token, apoyos por organización o contacto y publicación final de boleta sólo para candidatos CONFIRMED_AND_PUBLISHED.
  • El flujo del candidato incorpora declaraciones, preguntas estatutarias y no estatutarias, preguntas de comunidad moderadas, progreso por tareas y validación posterior por auditores.
  • La auditoría separa predecisión y decisión final, incorpora conformidad de resultados y habilitación coordinada de revisión interna de votos por auditores comisionados.
  • Resultados y reportes incorporan dashboard interno, pre-reportes operativos HTML y códigos de verificación por voto, además de resultados públicos y auditoría final por ventana.
  • La experiencia pública/tokenizada consolida landing, padrón público estatutario, recuperación de links por email, nominaciones, apoyo, tareas de candidatura, votación simple o conjunta, resultados públicos y rate limit por accesos inválidos.
  • La autenticación administrativa y de WS sigue gobernada por WS_AUTH_METHOD, con modo local APP o autenticación centralizada externa, más CAPTCHA por IP y rate limits públicos configurables.
  • LOGIN_CAPTCHA_ENABLED, AI_TEXT_IMPROVEMENT_ENABLED y PUBLIC_NOMINATION_ENABLED permiten controlar explícitamente CAPTCHA, asistencia de texto con IA y nominación pública (incluido el tipo OTHER).
  • En autenticación local APP, Campus queda deshabilitado y no genera solicitudes ni errores de conexión visibles.
  • Se amplía la configuración global con personalización visual, templates base y por elección, fallbacks de idioma y parámetros base para revisión asistida de texto con IA.
  • Los servicios REST mantienen autenticación obligatoria, snapshots públicos v2, paginación por WS_MAX_PAGE_SIZE y endpoints de tablas/monitoreo alineados al estado actual del sistema.
  • Docker es la forma vigente de instanciación; la instalación manual queda como alternativa avanzada y se retira el restore Ansible legado junto con sus dumps de test.
  • El perfil docker-fresh.sh construye aplicación, PostgreSQL y Mailpit para evaluación o desarrollo. No es una configuración productiva lista para Internet; producción requiere servicios y controles administrados por cada organización.

Procedimiento de actualización:

Base de datos

Antes de ejecutar v3.0_script.sql, revise duplicados de ORGID y votantes sin ORGID recuperable, porque la migración crea índices únicos y corta ante inconsistencias. Las consultas previas y el procedimiento detallado están documentados en la guía de actualización.

Si la instalación ya está en v2.4, se debe aplicar el siguiente script:

  • v3.0_script.sql: consolida los cambios de base de datos posteriores a v2.4.

Si la instalación está en v2.3.1, se deben aplicar, en orden, los siguientes scripts:

Si la instalación está en v2.3, se deben aplicar, en orden, los siguientes scripts:

Aplicación y despliegue
  • La versión actual compila con Java 17 y se despliega sobre WildFly 34.
  • Para despliegue manual, se deben publicar los artefactos generados por elections-ejb, elections-admin-web y elections-services, junto con los módulos y configuración de WildFly correspondientes.
  • Para despliegue Docker, se debe reconstruir o publicar la imagen vigente y redeployar con docker-compose.yml; las migraciones de base se toman de release-files/.
  • Después de actualizar, se recomienda validar al menos login administrativo, listado de elecciones, acceso a una elección existente y disponibilidad del servicio web si está habilitado en la instalación.

v2.4 (16/03/2026)

Nuevas funcionalidades y correcciones:

  • Se incorpora el nuevo modelo de datos para elecciones, calendarios y candidatos.
  • Se renombra el atributo declarationsScope a electionType en el modelo de elecciones.
  • Se agregan las estructuras necesarias para soportar calendarios, tareas y configuración manual de padrón y organizaciones.
  • Se actualizan los parámetros y templates base del sistema.

Procedimiento de actualización:

Base de datos

Se deben aplicar, en orden, los siguientes dos scripts sobre la base de datos:

  • v2.4_ddl_script.sql: crea y ajusta la estructura necesaria para el nuevo modelo.
  • v2.4_data_script.sql: migra los datos legacy, inicializa calendarios y tareas, y actualiza parámetros y templates.

v2.3.1 (07/08/2023)

Nuevas funcionalidades y correcciones:

  • Se amplio la información que se muestra en WS que muestra el reporte de partición por email.

Script de actualización de base de datos:

Es necesario ejecutar el siguiente script de base de datos: v2.3.1_script.sql

v2.3 (29/09/2022)

Nuevas funcionalidades y correcciones:

  • El sistema ahora permite tener más de un Votante con el mismo e-mail en la misma elección.
  • El sistema ahora deja registro cuando un admin vé el link de un Auditor, así como ya sucedía con Link Votante.
  • Se actualizó el informe de Auditoría en el Home y ahora lo toma de un parámetro.
  • El sistema incluye ahora 2 mecanismos de Login Administrativo tanto para la aplicación como el WS, según el parámetro WS_AUTH_METHOD. Si está en APP, autentica contra la base de datos como siempre, pero si está en modo externo autentica contra un sistema centralizado.
  • Se agrega una actividad de log específica para el nuevo Login Administrativo.
  • Validación más sencilla de la dirección de e-mail.
  • Se corrigió un problema de formato y orden de Fecha en la lista de Actividades.
  • Mejoras y corrección de bugs menores.

Script de actualización de base de datos:

Es necesario ejecutar el siguiente script de base de datos: v2.3_script.sql

v2.2 (27/04/2022)

Nuevas funcionalidades y correcciones:

  • Nueva funcionalidad Cierre de elección permite eliminar el registro de candidato(s) elegido(s) por cada votante.

Script de actualización de base de datos:

Es necesario ejecutar el siguiente script de base de datos: v2.2_script.sql

v2.1 (11/11/2021)

Nuevas funcionalidades y correcciones:

  • Fix menor en servicio de tabla de Emails.

v2.0 (14/10/2021)

Destacados:

  • Refactor general de código.
  • Nuevos servicios.
  • Soporte archivos .xlsx.

Recomendación:

Se recomienda aplicar esta actualización mientras no tenga elecciones activas. Los enlaces que hayan sido enviados vía email ya no serán válidos (contexto de la aplicación cambia de /elecciones a /elections).

Nuevas funcionalidades y correcciones:

  • Traducción de todo el código y la estructura de base de datos a inglés.
  • Reorganización del código en módulo web.
  • Ajuste de funcionalidad para configuración de captcha en modo PROD.
  • Se agregó email al Candidato.
  • Soporte de archivos .xslx en importación y exportación de padrón electoral.
  • Nuevos servicios y autenticación contra servicio centralizado externo.
  • Mejoras y corrección de bugs menores.

Procedimiento de actualización:

Base de datos

Se deben aplicar, en orden, los siguientes dos scripts sobre la base de datos:

  • v2.0_ddl_script.sql: traducción a inglés, DROP de recursos no usados, nueva secuencia para Comisionados, mail en Candidato.
  • v2.0_data_script.sql: ajusta nombres de parámetros, templates, etc, a la nueva configuración en inglés.
Servidor de aplicaciones
  • Copiar nuevos módulos a Wildfly para el soporte de archivos .xlsx. Para esto, copiar el contenido del directorio ansible/roles/elections/files/modules del repositorio al directorio <Wildfly>/modules/system/layers/base de su instalación Wildfly. El módulo jxl ya no es necesario, se puede eliminar borrando el directorio <Wildfly>/modules/system/layers/base/jxl de su instalación Wildfly.
  • En el archivo de configuración <Wildfly>/standalone/configuration/standalone.xml, se debe actualizar el datasource para reflejar el nuevo nombre de la base. Cambiar elecciones por elections en connection-url, jndi-name y pool-name del datasource.
Aplicaciones
  • Publicar los nuevos artefactos (puede encontrarlos en ansible/roles/elections/files/deployments) y borrar los viejos (elecciones-ejb.jar, elecciones.war, elecciones-ws.war).

Tareas posactualización:

Si generó sus propios templates de email, debe regenerarlos ya que las referencias a objectos cambian de nombre. Por ejemplo, si tiene una referencia $eleccion.tituloIngles, cambia a $election.titleEnglish.

v1.2 (22/04/2021)

Nuevas funcionalidades y correcciones:

  • Corrección de dependencia en módulo de servicios.
  • Actualización de documentación.

v1.1 (22/03/2021)

Nuevas funcionalidades y correcciones:

  • Nueva funcionalidad de Personalización permite customizar el contenido de la home.
  • Correcciones menores.

Script de actualización de base de datos:

Para la nueva funcionalidad de Personalización, es necesario ejecutar el siguiente script de base de datos: v1.1_script.sql

v1.0 (21/01/2021)

Destacados:

  • Sistema de Elecciones liberado!

Funcionalidades:

  • Creación y gestión de elecciones.
  • Permite auditar y validar el proceso.
  • Notificaciones programables.
  • Carga y descarga de padrones.
  • Elecciones Conjuntas.