Agosto de 2026
Núcleo 65.7587 a 65.7623 y SDK 10.15.0.32 a .42: API Flex por HTTP, inicio de sesión con código, campos autoincrementales y avisos por correo.
Notas de las versiones publicadas en agosto de 2026: primero el núcleo (Server Linux) y después el SDK .NET. El detalle de las numeraciones está en Cómo leer las versiones.
65.7623
31 de agosto de 2026
Sin cambios visibles.
65.7622
31 de agosto de 2026
Incluye las imágenes 65.7619 a 65.7621, publicadas sin etiqueta propia.
Mejoras
- Avisos por correo al cliente: integración caída y recuperada, API que vuelve a dar errores tras horas sin fallos, y un resumen diario.
- Solo se avisa cuando cambia el estado. Cada persona recibe como mucho 20 avisos al día.
- Recap: once resúmenes periódicos por correo.
recappreviewdevuelve el HTML de un resumen entre dos fechas, sin enviar nada. - Tres comandos administran las suscripciones al Recap y devuelven siempre la lista resultante.
- Cuando un webhook saliente agota sus reintentos, se avisa al cliente.
- Al confirmar una subida, el servidor rechaza un archivo cuyo original no está en ninguna réplica.
Correcciones
- La caché de informes vuelve a escapar bien los textos. Sin ello, su sincronización fallaba sin avisar.
65.7618
29 de agosto de 2026
Mejoras
- Se puede hacer como mucho una copia del esquema cada 3 horas. Si todavía no se puede, el motivo dice cuánto falta.
- La copia sale de la réplica de lectura cuando la hay.
Correcciones
- Los correos del servidor se ven igual con tema claro y con tema oscuro.
65.7617
29 de agosto de 2026
Correcciones
dumpschemayrestoreschemavuelven a funcionar: usan la conexión directa a Postgres. Antes de reponer, se comprueba que esa conexión responde.
65.7616
28 de agosto de 2026
Mejoras
dumpschemayrestoreschemacopian y reponen el esquema de la licencia por la API. Cada comando lleva un token derivado de la clave maestra.
65.7615
27 de agosto de 2026
Mejoras
- La forma de los mensajes que el servidor publica en Redis está declarada en el SDK:
Dinaup.Redis.MonitoringEvent,MonitoringChangeyServerStatus. El JSON no cambia.
65.7614
27 de agosto de 2026
65.7607 a 65.7613: sin cambios visibles.
Mejoras
- Las marcas de modificación de cada sección se copian en Redis:
dinaup.srvs.kv.{serie}.seccion.{seccion}, con variantes por campo y por tabla. - Con esas marcas, una app externa sabe si un campo pudo cambiar desde un instante, sin preguntar al servidor.
flexlistadevuelve las columnas de informe en su orden (posicion).ordendeja de escribirse: nada lo lee.flexobjetopublica, en solo lectura, cómo se une un algoritmo: 56 columnas de relación.- Catorce columnas de configuración con una lista cerrada de valores publican su enumerado en
flexeditables. El editor las muestra como desplegable.
Correcciones
- La API Flex no podía escribir columnas de informe: su lista de columnas permitidas nombraba nueve ya retiradas.
- Ocho parámetros de columna parecían guardarse y no se guardaban:
subtitulo,abreviatura,prefijo,sufijo,ancho,decimales,saltoDeColumnayfiltroDefecto. - El
iconode informes y scripts se leía como texto, y un valor mal formado lo borraba sin avisar. - El archivado nocturno del histórico archivaba filas antes de tiempo, y la propagación dinámica dejaba de verlas.
- El cierre automático de fichajes se revisa cada 10 minutos.
65.7606
24 de agosto de 2026
Correcciones
- El tiempo máximo de la API vuelve a ser de 30 s. Desde la 65.7601,
lic_max_api_timeoutrecortaba a 4 s informes que siempre terminaban. Admite de 1 a 60 segundos. - Una columna
datede Postgres llega comoDateOnlyy ya no hace fallar la consulta.
65.7605
24 de agosto de 2026
65.7602 a 65.7604: sin cambios visibles.
Correcciones
- Catorce llamadas SQL fallaban antes de llegar a la base de datos, entre ellas el listado paginado de
datosydatos2.
65.7601
24 de agosto de 2026
Mejoras
- API Flex por HTTP para el editor web de estructura:
flexobjeto,flexlista,flexeditables,flexenums,flexeditar,flexborrar,flexrestaurar,flexlayoutyflexcrear. - Cubre sección, campo, informe, columna de informe, documento dinámico y script. Editar es un cambio parcial. Borrar es siempre una baja lógica, y
flexrestaurarla deshace. - El autor de cada cambio sale siempre de la sesión HTTP.
- Editor de scripts:
flexfuncionesdevuelve el catálogo de funciones DinaScript, con las obsoletas marcadas. flexvalidarcompila sin guardar y devuelve el rango de caracteres del error.flexrutaslista los campos y relaciones que un script puede nombrar.flexconsolidaraplica los cambios de esquema y bloquea la edición Flex mientras tanto.- Paneles por HTTP:
flexdashboard,flexdashboardsave,flexdashboardwidgetadd,flexdashboardwidgetupdate,flexdashboardwidgetdeleteyflexdashboardpositions. - Cada operación sobre un panel bloquea su fila mientras la lee, la cambia y la escribe. Dos personas en el mismo panel ya no se pisan.
- Módulos y roles por HTTP:
modulosgaleria,moduloplan,moduloinstalar,modulopublicar,objetoscorruptosyrol. objetoscorruptoslista los objetos rotos con su motivo.rollee o guarda un rol condinaup_comando(leeroguardar).- Se retira el Terminal de Windows: el servidor sirve las aplicaciones web por HTTP.
- Quince funciones DinaScript que solo podía ejecutar el Terminal pasan a obsoletas: mapas, exportación de tablas, envío del búfer y manipulación de registros.
- Un script que llama a una de esas funciones recibe «función retirada» con su nombre. Los permisos 12, 16, 17 y 18 se retiran y sus números no se reutilizan.
Correcciones
- Dar de alta un campo con
obligatorioactivo fallaba. - Guardar un panel sin mover nada ya no falla. Colocar una copia desactualizada se rechaza, en vez de responder bien sin guardar.
- 223 columnas que nadie leía desaparecen de
camposp,informes,relacionesindirectas,informescolumnas,impresionhtml,plantillaspyalgoritmos.widget01sale de la API Flex. - Desaparece la etiqueta abreviada de los campos: cuando la etiqueta no cabe, se recorta.
etiquetaabreviadasale de la escritura Flex. - El informe enlazado de un script nunca se resolvía.
65.7600
12 de agosto de 2026
Mejoras
esquemadocumentosdevuelve el código de la plantilla en forma legible.
65.7599
12 de agosto de 2026
Mejoras
- Los campos con funcionalidad Autoincremental quedan bloqueados a la edición manual.
65.7598
12 de agosto de 2026
Mejoras
- Funcionalidad Autoincremental para cualquier campo Entero. Al insertar, si el valor llega vacío o a cero, el servidor asigna el siguiente número libre.
- Solo actúa en el alta, y respeta el valor si viene informado.
65.7597
11 de agosto de 2026
65.7596: sin cambios visibles.
Correcciones
- El cierre automático de los fichajes abiertos fallaba en Linux al convertir zonas horarias, y ningún fichaje con plan se cerraba solo.
65.7595
11 de agosto de 2026
Mejoras
- Iniciar cualquier descanso desde el kiosco exige un fichaje abierto, no solo los descansos retribuidos.
Correcciones
- Los códigos de inicio de sesión no se publican en el canal de eventos Redis.
- Mientras el fichaje sigue abierto, el tramo fuera de plan no escribe hora de salida.
65.7594
11 de agosto de 2026
Mejoras
- Inicio de sesión con código de un solo uso:
iniciarsesionconcodigo. Sindinaup_codigopide un código de 6 dígitos; con él, lo canjea por una sesión. - El servidor devuelve el código y no lo envía: hacerlo llegar al usuario es cosa de la integración.
- El código vale 10 minutos y 5 intentos, y queda atado a la IP y al navegador. La respuesta es 200 exista o no la cuenta.
65.7593
10 de agosto de 2026
Mejoras
fichajeconaccion=estadoresponde sin escribir: si hay jornada abierta, desde qué hora, los minutos del día y el fin del plan. Sinaccionsigue fichando.descansodevuelveTiposJornadacon todos los descansos de la jornada, y los bloqueados con su motivo.- Un descanso retribuido exige un fichaje abierto de menos de 12 horas.
Correcciones
descansosin el parámetroaccionya no responde conNullReference.
65.7592
10 de agosto de 2026
65.7591: sin cambios visibles.
Mejoras
- El estado de impago de la licencia (Activa, Gracia, Aviso, Restringida, SoloLectura, Suspendida) se publica en
estadolicencia. El servidor no lo aplica en ningún punto. - Un campo nuevo creado desde un formulario abierto nace en la pestaña activa, no en General.
- Los empleados se administran siempre desde el área de clientes. Desaparece el ajuste
lic_syncempleados.
Correcciones
- Las salidas de lote excluyen los lotes cuyo estado no admite venta.
65.7590
4 de agosto de 2026
Mejoras
- Las clases
_ESgeneradas exponen_FieldIDs, y el GUID de cada campo en su comentario.
65.7589
2 de agosto de 2026
Mejoras
- Los campos ProtoBuf de los informes se numeran por el ID de su columna: mover una columna no renumera las demás.
- Cada fila lleva
SchemaHash(SHA256 de etiqueta, nombre y tipo) para descartar datos serializados con otro esquema.
65.7588
2 de agosto de 2026
65.7587: sin cambios visibles.
Mejoras
- Las licencias nuevas traen más categorías de ingresos y gastos: ingresos excepcionales, inmovilizado, impuestos y tasas, multas, indemnizaciones, impagados, donativos y gastos excepcionales.
Correcciones
- Las columnas de texto de los informes generados nacen vacías en vez de
Nothing.
SDK 10.15.0.42
30 de agosto de 2026
Mejoras
ResyncAsyncdevuelve unWriteResultconOkHostsyFailedHosts, igual que una escritura, en vez de sí o no.- Un host cuenta como correcto solo si lo confirma de forma explícita. Si no hay réplica que reparar, no descarga nada.
SDK 10.15.0.41
27 de agosto de 2026
Mejoras
RedisClientlee lo que el servidor publica en Redis desde el núcleo 65.7614: marcas de sección, estado del servidor y canal de monitorización.- Las formas están en
Dinaup.Redis.MonitoringEvent,MonitoringChangeyServerStatus, con los nombres JSON que ya escribe el servidor. - StackExchange.Redis 3.0.17 pasa a ser la versión mínima.
SDK 10.15.0.40
27 de agosto de 2026
10.15.0.39: republicación sin cambios de código.
Correcciones
- La documentación del ciclo de vida Flex decía lo contrario que el servidor.
algoritmoses editable yplantillasptiene borrado lógico en el motor; a los dos les falta un verbo de borrado por API.
Cambios que rompen
SetDashboardWidgetModeAsync,DeleteDashboardWidgetAsyncySetDashboardPositionsAsyncdevuelvenTask(Of String): vacío si la escritura entró, y el motivo si no.- Antes devolvían el estado HTTP, que es 200 también cuando la operación se rechaza.
SDK 10.15.0.38
24 de agosto de 2026
Mejoras
- Cliente de Flex, módulos, roles, paneles y scripts, lo que el núcleo 65.7601 sirve por HTTP:
Flex_GetObjectAsync,Flex_ListObjectsAsync,Flex_GetEditablesAsync,Flex_GetEnumAsyncyFlex_UpdateObjectAsync. - También
Flex_DeleteObjectAsync,Flex_UndeleteObjectAsync,Flex_CreateObjectAsync,Flex_ApplyLayoutAsync,Flex_ConsolidateAsync,Flex_GetScriptFunctionsAsync,Flex_ValidateCodeAsync,Flex_GetRoutesAsync,GetDashboardForEditAsyncyGetCorruptObjectsAsync. - DTO declarados una sola vez y compartidos con el servidor:
FlexObjectLiteDTO,FlexRouteDTO,FlexValidationDTO,FlexValidationIssueDTO,FlexScriptFunctionDTOyRoleDTO. - También
RoleSummaryDTO,DashboardEditDTO,DashboardWidgetEditDTO,BacklinkDTOyCorruptObjectDTO.
Correcciones
- El módulo de un campo llegaba vacío desde el esquema: el servidor envía la clave
Modulesy el cliente leíaModule. - Las escrituras Flex se rendían a los 9 segundos, y crear estructura tarda unos 11. Los tiempos máximos pasan a milisegundos reales.
SDK 10.15.0.37
18 de agosto de 2026
Correcciones
Mingana las sobrecargasLongyDecimalque ya teníaMax.- Con
Option Strict Off,Min(Long, Long)usaba la sobrecarga deIntegery truncaba sin avisar, o desbordaba por encima de 2^31.
SDK 10.15.0.36
14 de agosto de 2026
Mejoras
VirtualFormDTO: constructor de opción con icono para las listas estáticas del cliente.
SDK 10.15.0.35
12 de agosto de 2026
Mejoras
DinaupFieldDTO.GetMaterialIcon()devuelve el icono Material de un campo, definido como extensión de su etiqueta.
SDK 10.15.0.34
11 de agosto de 2026
Mejoras
Session_CreateLoginCodeAsyncpide al servidor un código de 6 dígitos de un solo uso. DevuelveSessionCreateLoginCodeResponseconCodeyLoginCodeId.- Enviar el código al usuario es cosa de quien llama. La respuesta es 200 exista o no la cuenta; sin cuenta, el código llega vacío.
Session_SignInWithCodeAsynccanjea el código por una sesión, la misma que crea el inicio con contraseña, 2FA incluido. Emparejado con el núcleo 65.7594.
SDK 10.15.0.33
10 de agosto de 2026
Mejoras
Timesheet_StatusAsyncconsulta el estado del fichaje sin escribir.Break_StatusAsyncdevuelve los descansos bloqueados de la jornada con su motivo. Emparejado con el núcleo 65.7593.
SDK 10.15.0.32
10 de agosto de 2026
Mejoras
ImageSizeExtensions:VariantSuffixyVariantFileNametraducen cadaImageSizeEal sufijo oficial del fichero de la variante. El número del enumerado no es el sufijo.