AnnexGroup

Registro de cambios

Lo que cambia

Cada versión con lo nuevo y lo corregido. Sin embellecer — los errores de los que no estamos orgullosos también figuran aquí.

1.0.4

Versión de seguridad: la lista de mensajes de un buzón comprueba ahora que el buzón pertenece al usuario conectado — y la sincronización del correo con AnnexOffice se vuelve más ligera

Corregido y mejorado

  • La lista de mensajes de un buzón a través de la interfaz de programación (GET /api/v1/mailboxes/{id}/messages) no comprobaba si el buzón pertenecía al usuario conectado. Un usuario conectado en el mismo servidor podía así obtener mensajes de buzones ajenos si conocía su número. Desde la 1.0.4, el servidor responde «no encontrado» para los buzones ajenos. Recomendamos actualizar a la 1.0.4
  • Sincronización del correo con AnnexOffice: el servidor entrega los mensajes desde la última sincronización (delta con punto de control) en lugar de todos cada vez, y las eliminaciones llegan completas, página por página. Esto surte efecto con una versión de AnnexOffice que use la sincronización (con AnnexCREATE 0.7.4) — los clientes más antiguos siguen obteniéndolo todo

1.0.3

Versión de seguridad: el inicio de sesión de la app AnnexTalk cuenta los intentos fallidos, bloquea las cuentas y respeta las direcciones bloqueadas — como el inicio de sesión en el navegador

Corregido

  • El propio camino de inicio de sesión de la app AnnexTalk no respetaba las direcciones bloqueadas ni contaba los intentos fallidos ni bloqueaba las cuentas — a diferencia del inicio de sesión en el navegador. Ahora la app sigue las mismas reglas, y cada intento fallido queda en el registro de la administración

1.0.2

Versión correctiva: Apple Contactos se configura con la sola dirección — y ofrece la cuenta como predeterminada para los contactos nuevos

Corregido

  • Apple Contactos se identificaba en el modo «Automático» solo con la parte del nombre de la dirección — el servidor rechazaba el inicio de sesión. Ahora completa el dominio: la configuración sin nombre de servidor funciona, y llegan las libretas de direcciones y el directorio de la empresa
  • Apple no ofrecía la cuenta como predeterminada para los contactos nuevos — la raíz de la cuenta devolvía una lista de derechos vacía. Las tarjetas nuevas acababan en la cuenta equivocada; la cuenta ahora se ofrece, y la creación en el servidor y el borrado están probados

1.0.0

El alcance está completo: desde la instalación hasta la migración desde Exchange y el puesto de trabajo en Mac y Windows — y la denuncia y el bloqueo en AnnexTalk

Novedades

  • En AnnexTalk se puede denunciar un mensaje: la denuncia va a la administración de su propio servidor — queda en el registro de administración y llega por correo a los administradores de su dominio, nunca a ma-kom. Quien bloquea a un remitente deja de contar sus mensajes
  • La migración desde un Exchange en casa se ejecuta por completo en el servidor: directamente por EWS, sin un Mac de por medio — correo, citas, contactos, tareas, notas y carpetas públicas llegan con ella, comprobada en un buzón real
  • El puesto de trabajo en la interfaz web en Mac y Windows — configurado desde la máquina vacía hasta el primer mensaje respondido

0.12.1

AnnexTalk ahora también en el navegador — lea y responda en canales y mensajes directos; además, dos errores del archivo corregidos, y la migración nombra cada entrada no transferida, el instalador de macOS comprueba la versión del sistema, y el estado del sistema coteja MX/SRV con el certificado

Novedades

  • La interfaz web tiene una entrada de menú AnnexTalk: los canales y mensajes directos se pueden leer y responder allí — límite: sin contador de no leídos, sin hilos, sin reacciones; el botón «Actualizar» trae los mensajes nuevos

Corregido

  • Bajo retención, el archivado contaba mal: `archive-run` informaba, por ejemplo, «24 archivados», aunque la retención no hubiera movido ningún mensaje. La retención siempre funcionó — no se perdió nada, solo la cifra era errónea. Ahora el comando cuenta solo lo que realmente está en el archivo
  • El proceso de archivado diario no terminaba cuando un mensaje con plazo vencido no se podía archivar (por ejemplo, en una carpeta sin propietario) — lo volvía a tomar una y otra vez y giraba sin fin. Ahora se interrumpe e informa qué mensajes quedaron sin archivar
  • El instalador de macOS no comprobaba la versión mínima: en un Mac con un sistema antiguo, AnnexGroup fallaba al iniciar con «dyld: Symbol not found» y «Abort trap» — sin indicar que la causa era el sistema. `install-macos.sh` y el instalador .pkg rechazan ahora antes de instalar nada: el script indica que AnnexGroup necesita macOS 14 o posterior y qué macOS tiene este Mac; el instalador .pkg muestra el aviso de macOS de que se requiere macOS 14
  • El estado del sistema marcaba el certificado como válido aunque no cubriera el nombre al que las sugerencias DNS de la administración apuntan MX y SRV — por defecto `mail.<su-dominio>`, ajustable mediante `smtp_hostname`. Un programa de correo que seguía el registro SRV se interrumpía al conectar. El estado del sistema ahora nombra lo que falta
  • Una migración desde Exchange terminaba con «completed_with_errors — 2 errors» sin decir cuáles — los nombres solo estaban en el registro del servidor. La cifra era correcta; nada desapareció en silencio. El registro de migración nombra ahora cada entrada no transferida con su motivo: carpeta, asunto e ID de mensaje para los mensajes, el título para citas, contactos, tareas y notas
  • La página de importación mostraba solo el estado de un trabajo terminado. Ahora se despliega bajo cada trabajo una lista con todas las entradas omitidas y fallidas y su motivo — por ejemplo «Fallido · Bandeja de entrada / Factura marzo — message too large»
  • Un archivo adjunto que no se podía leer durante la migración desde Exchange costaba antes todo el mensaje; ahora el mensaje llega sin él y el archivo adjunto figura con el asunto y el nombre de archivo en el registro de migración. Los archivos adjuntos vacíos (por ejemplo `ATT00001.txt`) llegan como archivos vacíos

0.12.0

Zonas horarias de Windows correctas, agentes de IA sin presión sobre la licencia — y una desinstalación que no deja nada

Novedades

  • Los agentes de IA ya no cuentan contra el límite de usuarios de la licencia: por cada usuario de pago cabe el mismo número de agentes, y superarlo genera un aviso — no un bloqueo

Corregido

  • Las citas con nombres de zona horaria de Windows — como escribe el calendario de Windows — quedaban dos horas desplazadas: en la sincronización del calendario, en las invitaciones por correo y en la migración mediante Microsoft Graph. El servidor ahora conoce la correspondencia entre zonas de Windows y zonas IANA y lee correctamente los tres puntos
  • Un número de teléfono modificado en el navegador nunca llegaba a la agenda del cliente cuando el contacto ya tenía una tarjeta guardada — el número antiguo permanecía. Los números modificados sustituyen ahora al guardado, y los nuevos llevan un tipo
  • La desinstalación en macOS dejaba cargado el asistente de autoactualización, apuntando a un programa eliminado — ahora también se elimina
  • Las citas sin participantes aparecían en los programas de calendario como solicitudes de reunión con «Solicitud de respuesta» — el servidor escribía un organizador en cada cita. Ahora solo las citas con participantes llevan organizador
  • Los participantes añadidos en la interfaz web faltaban en la sincronización del calendario: los programas de calendario recibían la cita sin ellos y mostraban una cita simple en lugar de una con invitados. La sincronización ahora los incluye
  • Los programas de calendario no mostraban con nombre al organizador de una cita con participantes — allí aparecía «Desconocido». El servidor no enviaba nombre del organizador; ahora incluye el nombre de la cuenta, y los nombres con coma («Sanwald, Pascal») llegan completos
  • Los inicios de sesión simultáneos podían perder entradas en el registro de administración: medido con 40 entradas simultáneas, llegaron 2. Ahora llegan todas, y la cadena de trazabilidad se mantiene cerrada
  • La página de actualización de la administración mostraba para una nueva versión las notas de la última instalada y, durante la carga, informaba «Nunca se ha consultado». Ambos problemas quedan resueltos a partir de las actualizaciones posteriores a 0.12.0 — quien actualice de 0.11.0 a 0.12.0 todavía verá el error durante esa actualización

0.11.0

Federación segura de serie, cinco idiomas de principio a fin, varios calendarios — y dos agujeros de seguridad menos

Novedades

  • La federación entre servidores de AnnexGroup está desactivada por defecto a partir de esta versión; quien la utiliza la activa en la configuración y deposita la clave pública de cada socio — sin clave, el servidor ya no acepta nada
  • La lista de direcciones global está ahora también en la interfaz web — hasta la 0.10.0 solo era visible a través de la libreta de direcciones de los programas de correo (CardDAV)
  • La interfaz habla ahora de principio a fin el idioma del usuario en los cinco idiomas — siete páginas mantenían partes de sus textos fijadas en inglés o alemán, los términos siguen ahora los de Outlook, y la administración habla alemán en lugar de Denglisch
  • Una instalación se da de baja ahora en los buscadores — la página de acceso de un servidor de empresa no pertenece a un índice de búsqueda
  • Varios calendarios por usuario: crear, renombrar, eliminar — en la interfaz web y a través de CalDAV; la disponibilidad tiene en cuenta todos los calendarios propios, y la migración desde Exchange crea los calendarios adicionales como calendarios propios en lugar de meter todo en uno
  • La búsqueda en la libreta de direcciones propia filtra ahora en el servidor — con 1 051 contactos, hasta ahora cada búsqueda devolvía toda la libreta (914 KB en lugar de un único resultado)
  • Cada usuario puede decidir por sí mismo quién ve su disponibilidad — más estrecha o más amplia que la regla del dominio: sin información, solo libre/ocupado, o con asunto y lugar
  • IMAP admite ahora UIDPLUS y MULTIAPPEND: los programas de correo como mbsync asignan de forma inequívoca los mensajes subidos, y varios mensajes entran en un solo paso o no entra ninguno
  • Las listas de bloqueo admiten ahora también rangos de red (IPv4 e IPv6) — con protección contra quedarse fuera a sí mismo
  • El número de cuentas y de puestos de AnnexOffice del código de activación es un límite duro; la administración muestra quién ocupa un puesto y lo libera con un clic
  • El formulario de citas planifica: todos los invitados y salas en una línea de tiempo, un clic adopta la hora, y una sugerencia nombra el siguiente hueco libre en común
  • Los empleados ven su día junto a la bandeja de entrada — las citas de hoy y las tareas pendientes
  • La fecha y la hora aparecen en los formularios como las escribe el idioma de la interfaz — aunque el navegador tenga otro idioma
  • La cadena de evidencias se comprueba diariamente en el funcionamiento; una ruptura aparece en el estado del sistema — y el registro de las acciones administrativas también está ahora encadenado
  • IMAP admite ahora NOTIFY: un canal para muchas carpetas — Evolution muestra la bandeja de entrada con la configuración de fábrica
  • El asistente de migración acepta Exchange como origen a través de EWS, y las carpetas públicas se convierten en salas compartidas
  • La libreta de direcciones de la empresa es ahora también una interfaz — los clientes reciben de ella sugerencias de destinatarios al redactar

Corregido

  • La conexión entre dos servidores de AnnexGroup comprueba ahora el certificado de la otra parte y exige una firma válida para cada mensaje entrante
  • Una condición de carrera en el flujo de eventos podía hacer caer el servidor cuando un navegador cerraba sesión en el momento exacto en que se distribuía un mensaje
  • Quien hacía doble clic en «Enviar» en el navegador enviaba el correo dos veces — el bloqueo contra el doble envío nunca actuaba ahí
  • En la página de inicio de los empleados, una tarjeta permanecía en «Cargando …»
  • La lista de comprobación de configuración tachaba la migración incluso cuando una migración había fallado
  • El resumen de interfaces de la zona de desarrollo daba para la lista de mensajes una ruta que no existe
  • Un correo HTML entrante podía ejecutar script en la sesión del destinatario; el correo HTML aparece ahora en un marco aislado sin scripts, y las imágenes remotas y los píxeles de seguimiento no se cargan
  • Tras un proxy inverso se podía falsificar la dirección del remitente de una solicitud y así eludir el bloqueo de acceso y la lista de bloqueo; la cabecera de reenvío solo vale ahora desde proxies inversos registrados (trusted_proxies) — quien ejecute AnnexGroup tras nginx o similar introduce su dirección
  • La página de detalle de un correo muestra el mensaje en lugar de su construcción en bruto, y una respuesta cita el texto de forma legible — con «RE:» en el asunto cuando la interfaz está en español
  • Un mensaje movido recibe una nueva identificación en la carpeta de destino, tras el borrado las notificaciones al programa de correo son correctas, y QRESYNC informa de los mensajes eliminados como exige el estándar
  • El asunto y el remitente con tildes aparecen legibles — antes figuraban en la bandeja de entrada como «=?utf-8?q?…», incluso en correos que ya estaban en el buzón
  • «Responder» en la interfaz web llega a remitentes que escriben con nombre; los asuntos y los nombres con tildes salen codificados conforme a la norma
  • La vista semanal muestra una cita como un bloque a lo largo de su duración, se abre a las 07:00 y muestra los colores de las citas; las carpetas de los agentes propios figuran con sus nombres por separado
  • Los accesos de escritura a través de CalDAV y CardDAV necesitan ahora solo la mitad de idas y vueltas a la base de datos
  • Una cuenta con el rol «root» se podía crear a través de la interfaz de programación y luego caía del recuento; las salas contaban contra el número de usuarios de la licencia — ambas cosas están ahora cerradas
  • IMAP tolera ahora varios programas de correo en el mismo buzón — medido con tres clientes simultáneos: 98 errores antes, ninguno después
  • IMAP: COPY crea ahora todos los mensajes o ninguno — nada permanente a mitad de camino
  • Seis hallazgos del paso por los dispositivos Apple están corregidos: ORG con departamento permanece en los contactos, CalDAV y CardDAV guardan los objetos con el nombre elegido por el programa, los contactos eliminados llegan a los dispositivos, libre/ocupado ya no cuenta como conflicto la cita que se está planificando — y las citas guardadas ya no llevan METHOD

0.10.0

Migración sin Mac, multicliente, cumplimiento — y una interfaz coherente

Novedades

  • La migración desde Exchange en casa se ejecuta en el servidor: directamente por EWS, sin un Mac de por medio — correo, citas, contactos, tareas y notas se trasladan con ella
  • Crear muchos buzones a partir de una lista en lugar de rellenar cincuenta formularios
  • Multicliente: el rol «administrador de dominio» gestiona su propio dominio — usuarios, salas, listas de distribución, permisos — y el límite se aplica también a la búsqueda, la libreta de direcciones y la disponibilidad
  • Cumplimiento: registro de diario, buzón de archivo como buzón IMAP propio, bloqueo de conservación, búsqueda en todo el dominio con exportación mbox y reglas de auditoría por cliente
  • El estado del sistema comprueba el certificado frente a los nombres de descubrimiento y señala los que faltan antes de que la configuración falle por ello
  • La administración está ordenada: cuatro áreas con nombre en lugar de once botones iguales, y los asistentes muestran en qué paso se encuentra
  • Disponibilidad en el formulario de citas de la interfaz web: «sin información» es un estado propio y no parece «libre»
  • En la interfaz web: varios destinatarios, copia y copia oculta, y todas las horas en la zona horaria del lector

Corregido

  • A cada guardado, una cita retrocedía en la diferencia horaria — la lista, la cuadrícula del calendario y el formulario calculaban en tres zonas distintas
  • Mensaje, contacto, agente y espacio no se podían abrir: el mensaje respondía 404 y los otros tres redirigían en silencio a su lista
  • El asistente de migración no enviaba las credenciales introducidas y las guardaba en el navegador
  • Un segundo clic en «Enviar» enviaba el mismo correo una segunda vez
  • Las reglas de filtrado no guardaban la acción seleccionada
  • La carga, el uso de disco y el registro del servidor eran visibles para cualquier buzón; el flujo en directo incluso sin iniciar sesión
  • El calendario mezclaba nombres de días y meses en alemán e inglés
  • La configuración de ejemplo incluida omitía `loc=UTC` en la conexión a la base de datos: en una máquina que no esté en UTC, todas las horas se desplazaban
  • El script de instalación ahora avisa cuando otro servidor de correo ya ocupa el puerto 25, en lugar de dejar que el servicio entre en un bucle de reinicio sin decir nada

0.9.0

Groupware completa — y el servidor se actualiza solo

Novedades

  • Libre/ocupado en los calendarios: quien busca una cita ve quién tiene tiempo, sin preguntar
  • Salas y equipos como participantes del calendario — reservados, rechazados, sin correr por los pasillos
  • Lista global de direcciones en cada cliente estándar
  • Grupos de distribución que se resuelven internamente: escribir a una dirección, llegar a todos
  • Enviar como y enviar en nombre de — con permisos compartidos en lugar de contraseñas compartidas
  • Ausencia con periodo: desde el inicio hasta el final, no solo activar y desactivar
  • Reglas en el servidor (Sieve): configuradas en el cliente, aplicadas al recibir
  • Carpetas públicas con jerarquía de tres niveles
  • Recursos compartidos para buzones, calendarios y libretas de direcciones
  • Autoractualización con vuelta atrás: el servidor descarga la versión, la prueba y cambia — si algo falla, la anterior está a mano

Corregido

  • Ocho páginas de administración devolvían una página vacía con HTTP 200 — faltaba la llamada a la plantilla base
  • macOS: el programa y el instalador usaban directorios de datos distintos — copia de seguridad y restauración informaban sin motivo de «sin datos»
  • El asistente privilegiado de la autoractualización escuchaba un nivel demasiado alto y no oía la señal — la actualización se quedaba en silencio en «preparada»
  • Una vuelta atrás voluntaria y exitosa informaba de un error donde no lo había

0.8.2

Los clientes de calendario y contactos conectan

Corregido

  • CalDAV y CardDAV aceptan las mismas credenciales que IMAP. Antes solo se aceptaban tokens, y Evolution, Thunderbird y los clientes de Apple no ofrecen dónde introducir uno: ningún cliente estándar podía conectarse
  • La configuración mediante la dirección del servidor funciona: el punto de entrada indica ahora el principal en lugar de denegar el acceso

0.8.1

Multilingüe de principio a fin

Novedades

  • Documentación disponible en inglés además de alemán
  • Sitio web en cinco idiomas (inglés, alemán, español, francés, italiano)
  • La interfaz del servidor, los mensajes de error y los correos del sistema siguen el idioma del destinatario; preferencia de idioma por usuario
  • Paquete de licencias: los puestos de AnnexOffice se incluyen con la licencia del servidor

Corregido

  • Cinco incumplimientos del estándar IMAP que hacían que Thunderbird mostrara mal el correo recibido
  • Aplicación de macOS: fallo al arrancar fuera de un paquete de aplicación, y TLS contra un servidor con certificado propio
  • Una condición de carrera en el flujo de eventos que interrumpía la batería de pruebas

0.8.0

Primera versión pública

Incluido

  • Servidor de correo con SMTP, IMAP, cola y firma DKIM
  • Calendario, contactos, tareas, notas, espacios compartidos, compartición
  • Agentes de IA como subcuentas con niveles de autonomía y ciclo de revisión
  • Interfaz web, instalable como aplicación web, clara y oscura
  • CalDAV y CardDAV para dispositivos Apple
  • Búsqueda de texto completo en todas las áreas
  • Administración con asistente de configuración, autocomprobación, copia de seguridad y restauración
  • Protección contra intentos de inicio de sesión, listas de bloqueo, preajustes de seguridad
  • Integración con Rspamd y ClamAV
  • Paquetes para macOS (Apple Silicon e Intel, notarizados por Apple) y Linux (x86-64 y ARM64)

Limitaciones conocidas

  • Sin MAPI ni EWS como protocolo de servidor — y tampoco ActiveSync. AnnexGroup apuesta únicamente por protocolos abiertos; para nosotros Exchange es el origen de una migración, no un protocolo que reimplementar.
  • La multicliente en 0.8.0 solo estaba preparada en el modelo de datos — desde entonces resuelto: rol de cliente dedicado (administrador de dominio), en la interfaz web y por la API
  • Sin asistente para importar automáticamente buzones existentes
  • Certificados vía Let’s Encrypt solo por el reto HTTP — los certificados comodín necesitan la vía DNS y aún no están integrados