Skip to content

Telar v1.5.0 — Robustness & Security

Choose a tag to compare

@juancobo juancobo released this 07 Jun 01:20
· 329 commits to main since this release

Telar v1.5.0 — Robustness & Security

Runtime and tooling hardening with no content changes: existing stories, objects, and
configuration keep working unchanged. The automatic upgrade applies everything except
two manual steps.

Security

  • Author content is escaped at every render sink (Python build and JavaScript runtime); widget autoescaping enabled
  • TLS certificate verification restored on all Google Sheets and IIIF fetches
  • Protected stories: the build stops instead of shipping plaintext when a story can't be encrypted; PBKDF2 100k → 210k; no byline/description/SEO leak; the unlock cache no longer stores decrypted content
  • Hardened upgrade workflow: tooling is downloaded as a checksum-verified release asset and run in isolation
  • KaTeX constrained to safe links; path-traversal guards and caps on all remote reads

Changes

  • WaveSurfer is vendored (no CDN) so audio works offline
  • Framework files install atomically; migrations chain strictly and stop on any error
  • Dependency floors raised (pandas, markdown, cryptography, pytest, pytest-cov)

Fixes

  • IIIF plate stays visible on same-object navigation; consistent panel handling; deep-link timers cancelled on interaction
  • YouTube and Google Drive video sizing; audio and scroll-engine lifecycle
  • Story steps render in step-number order; theme button text is visible again

Migration

Migration v140_to_v150.py upgrades automatically from v1.4.0. Two manual steps after upgrading:

  1. Hand-update the two GitHub Actions workflow files (upgrade.yml, build.yml) — GitHub doesn't allow the automated upgrade to modify workflows. Your site keeps building if you skip this; these changes only harden your workflows.
  2. Re-apply any customizations to the language packs (en.yml / es.yml).

See the CHANGELOG for full details.

Acknowledgments

Telar is developed by Adelaida Ávila, Juan Cobo Betancourt, Natalie Cobo, Santiago Muñoz, and students and scholars at the UCSB Archives, Memory, and Preservation Lab, the UT Archives, Mapping, and Pedagogy Lab, and Neogranadina.

We gratefully acknowledge the support of the Caribbean Digital Scholarship Collective, the Center for Innovative Teaching, Research, and Learning (CITRAL) at the University of California, Santa Barbara, the UCSB Library, the Routes of Enslavement in the Americas University of California MRPI, and the Department of History of The University of Texas at Austin.


Telar v1.5.0 — Robustez y seguridad

Refuerzo del motor y las herramientas, sin cambios de contenido: las historias, los
objetos y la configuración que ya tienes siguen funcionando igual. La actualización
automática aplica todo salvo dos pasos manuales.

Seguridad

  • El contenido de autoría se escapa en cada punto de salida (construcción en Python y ejecución en JavaScript); se activó el autoescape en los widgets
  • Se restauró la verificación de certificados TLS en todas las descargas de Google Sheets e IIIF
  • Historias protegidas: si una historia no se puede cifrar, la construcción se detiene en vez de publicarla sin cifrar; PBKDF2 pasa de 100.000 a 210.000 iteraciones; ya no se filtran autoría, descripción ni metadatos de SEO; la caché de desbloqueo dejó de guardar contenido descifrado
  • Flujo de actualización más seguro: las herramientas se descargan como un recurso verificado con su suma de control y se ejecutan de forma aislada
  • KaTeX queda limitado a enlaces seguros; barreras contra el path traversal y límites en todas las lecturas remotas

Cambios

  • WaveSurfer ahora va incluido en el sitio (sin CDN), así el audio funciona sin conexión
  • Los archivos del marco se instalan de forma atómica; las migraciones se encadenan de forma estricta y se detienen ante cualquier error
  • Se subieron las versiones mínimas de las dependencias (pandas, markdown, cryptography, pytest, pytest-cov)

Correcciones

  • La imagen IIIF se mantiene visible al navegar entre pasos del mismo objeto; manejo de paneles más coherente; los temporizadores de enlaces directos se cancelan al interactuar
  • Tamaño de los videos de YouTube y Google Drive; ciclo de vida del audio y del motor de desplazamiento
  • Los pasos de las historias se muestran en el orden de su número; el texto de los botones de tema vuelve a verse

Migración

La migración v140_to_v150.py actualiza automáticamente desde v1.4.0. Dos pasos manuales después de actualizar:

  1. Actualizar a mano los dos archivos de flujo de trabajo de GitHub Actions (upgrade.yml, build.yml) — GitHub no permite que la actualización automática modifique los flujos de trabajo. Tu sitio sigue construyéndose si te saltas este paso; estos cambios solo refuerzan tus flujos de trabajo.
  2. Volver a aplicar las personalizaciones de los paquetes de idioma (en.yml / es.yml).

Consulta el CHANGELOG para todos los detalles.

Agradecimientos

Telar es desarrollado por Adelaida Ávila, Juan Cobo Betancourt, Natalie Cobo, Santiago Muñoz, y estudiantes e investigadores del UCSB Archives, Memory, and Preservation Lab, el UT Archives, Mapping, and Pedagogy Lab, y Neogranadina.

Agradecemos el apoyo del Caribbean Digital Scholarship Collective, el Center for Innovative Teaching, Research, and Learning (CITRAL) de la University of California, Santa Barbara, la UCSB Library, el Routes of Enslavement in the Americas University of California MRPI, y el Departamento de Historia de la Universidad de Texas en Austin.