PrintStash v0.11.4: bibliotecas más rápidas y datos seguros
Navegación por cursor, archivado acotado, borrado y sesiones más seguros, despliegue de un solo proceso y SeaweedFS para el perfil S3.
v0.11.4 es un número de parche con una migración de índices que solo añade y nuevos endpoints de paginación por cursor. Haz una copia de seguridad antes de actualizar. La versión se centra en las bibliotecas grandes, en la integridad de los archivos comprimidos y en los fallos que deberían detenerse de forma limpia en lugar de dejar un estado a medias.
Las bibliotecas grandes trabajan menos
La navegación por modelos puede ordenar ahora la biblioteca filtrada completa por fecha, nombre, éxito de impresión, última impresión, duración, filamento o coste sin obligar al navegador a recorrer antes todas las páginas. La navegación por colecciones en escritorio usa una respuesta de esquema más pequeña, y en móvil ese árbol adicional se omite por completo.
Los recuentos por faceta y los totales de la bóveda usan cada uno una sola ida y vuelta agregada a la base de datos. El sondeo de trabajos en segundo plano se detiene cuando no hay trabajo, se pausa en las pestañas ocultas y se espacia después de errores transitorios. Los escaneos de volúmenes compartidos también agrupan las escrituras de progreso en lugar de confirmar por cada archivo sin cambios.
Los archivos portables tienen los mismos límites
La exportación de la biblioteca aplica ahora los mismos límites de entradas y de tamaño sin comprimir que la importación. Verifica cada artefacto de origen mientras hace streaming, así que PrintStash no va a generar un archivo que su propio importador rechace. En ambos sentidos, el hashing, el ZIP, el almacenamiento y el trabajo de base de datos se hacen en trozos acotados y fuera del bucle de eventos asíncrono.
El borrado permanente también respeta con más cuidado la propiedad del almacenamiento. PrintStash elimina los blobs que pertenecen a la bóveda, las miniaturas, las mallas en caché, las imágenes de colección, los archivos de documento y las imágenes incrustadas cuando su último propietario desaparece. Los archivos indexados desde tu propio NAS o volumen compartido siguen siendo tuyos y no se borran de ese origen.
Las sesiones y los cambios de administrador fallan en cerrado
Los restablecimientos de contraseña, los cambios de activación de una cuenta, los cambios de rol y el cierre de sesión invalidan ahora todas las sesiones de acceso y de refresco de esa cuenta. La rotación concurrente de tokens de refresco es atómica, y los tokens caducados se limpian en lotes acotados.
La configuración de primer arranque confirma juntos los ajustes, el administrador inicial y la marca de finalización. Los cambios concurrentes de administradores no pueden desactivar ni degradar al último superusuario activo. El aprovisionamiento OIDC se pausa durante una restauración, y las mutaciones autenticadas por cookie mantienen al actor correcto en el registro de auditoría.
Un proceso de API por bóveda
PrintStash impone ahora la forma de despliegue que admite: un proceso de API por cada bóveda. El arranque reclama un bloqueo de la bóveda y rechaza un segundo proceso, y la respuesta de salud detallada informa de la topología. No ejecutes varios workers de Uvicorn ni réplicas de la API contra una misma bóveda.
PostgreSQL sigue siendo una base de datos opcional, con una batería de pruebas de contrato sobre
PostgreSQL 16 real que cubre migraciones desde cero, enums, índices parciales y uso concurrente de
tokens. El flujo integrado de copia y restauración es para SQLite. Quien opere con PostgreSQL debería
usar pg_dump y sus herramientas de restauración habituales.
El perfil S3 local incluido ejecuta ahora SeaweedFS 4.41 fijado en lugar del MinIO archivado. Los
volúmenes de MinIO de PrintStash que ya existan siguen disponibles a través del perfil
minio-legacy, para que puedas migrar los objetos de forma deliberada.
Notas de actualización
Los cambios de base de datos son índices que solo se añaden y una restricción que mantiene una única impresora por defecto activa. La migración repara de forma determinista los valores por defecto duplicados que ya existan antes de añadir la restricción. Haz una copia de seguridad, descarga las imágenes nuevas y arranca el stack con normalidad. Las migraciones se ejecutan antes de que arranque la API.
Consulta la guía de actualización para los comandos y la vuelta atrás. La página de limitaciones conocidas cubre la topología de un solo proceso y el límite de las copias de seguridad con PostgreSQL.
Consulta la publicación de v0.11.4 en GitHub o lee el changelog completo.