9.2. Release Notes
9.2.1. LOCKSS 2.0.91-beta2
Released: 2026-07-13
LOCKSS 2.0.91-beta2 is the second beta release of the LOCKSS 2.0 system.
Release Notes
Major changes
The artifact index uses PostgreSQL instead of Solr starting with this release, for much better performance.
Most UI, REST and other port numbers have changed in this release, to simplify firewall configuration. See Section 9.5.1 (LOCKSS 2.0-beta2 Port Changes).
A beta version of officially supported Python clients to interact with the LOCKSS 2.x REST APIs is now available for testing.
LOCKSS 1.x to 2.x migration
For new-host migrations where crawling from a known IP is important (such as in the GLN), added infrastructure to proxy through the v1 instance during migration, and related logic in
configure-lockss.In new-host or same-host migrations where crawl rates from a given IP address are important, the v1 and v2 crawl rates each can be halved globally during the migration to avoid exceeding maximum crawl rates.
Added a migration banner on most UI screens while migration from LOCKSS 1.x is in progress.
Platform
Upgraded to K3s 1.31.5+k3s1.
Previously, some log files were not rotated; they are now rotated with Logrotate-centric containers, including in 3rd-party containers.
Repository
Support adding a specified artifact version.
Allow replacing a specified uncommitted artifact version.
Now using one WARC journal per WARC file.
Bring
RestLockssRepository'scallBulkOpin line with other client calls, and improve tests.Repository better detects "full disk" errors and reports them to clients, via a 500 or 507 response.
Added repository error injection framework, to facilitate testing.
Conditionally compress content depending on media type, only if not already compressed, for a configurable set of media types.
Automatically detect situations requiring rebuilding the artifact index.
Support URLs (artifact names) longer than 1024 characters (via a long URL table).
Consolidated the
/aus/{auid}/artifactsendpoint into/artifacts; moved AUID to a query parameterRevamped paged iterator logic to not hold database connections open.
ArtifactIndexandWarcArtifactDataStoreversioning and upgrade support.Ensure multiple storage areas are filled evenly.
By default, potentially huge temp files used during artifact upload are stored in the first content storage area instead of the temporary storage area.
Metadata
The LOCKSS Metadata Extraction Service has been merged into the LOCKSS Metadata Service.
Rework metadata job queueing and database upgrading to fix bugs and accommodate concurrent access by v1 during migration.
Core
Make the size of the REST client connection pool configurable.
Allow REST client read/connect timeouts to be changed without restart; default read timeout changed to 1 hour.
Apply missing non-default AU config params from TDB at AU config time.
Added
plugin_allow_start_url_errorplugin key.Added
isKubernetes()andisRuncluster()methods to platform version; disallow blanks in platform version name and handle semantic versions.Many updated dependencies.
Enabled
AccountManagerby default.Added
QueryUrlNormalizer.Allow permission page redirects to take off-host excursion and return to original host/URL.
Handle
Content-Encoding: ""header as null.Made ports in the Content Server Options servlet read only (as they are in fact not yet configurable through the UI in LOCKSS 2.x).
Removed
ConfigParamDescr.InvalidFormatExceptionin favor ofAuParamType.InvalidFormatException.Fixed temp file leaks.
API changes
Make result pagination more consistent across services and collections.
Improve REST error handling and error responses.
Changed configuration service REST endpoint paths:
normalizeUrltonormalizeurl,mimeTypetomediatypes.Clean up and update API specifications for
PageInfo,ArtifactPageInfo,AuidPageInfo,AuSize,RepositoryInfo(nullable properties, renamedresultsPerPagetoitemsInPage).Propagated enum changes (
IncludeContentEnum,BulkAuOpEnum, etc.) from crawler and poller services.
Security
IP access control lists for admin access and content access are enforced for third-party services (PostgreSQL, Pywb, OpenWayback).
Temporarily relax strict access control to Account Manager endpoints, in order to allow the migrator to migrate user accounts.
Add role-based authorization uniformly to all REST services.
Performance
Pipelined artifact iterator, primarily to improve hash performance.
Increased buffer size when reading large WARCs.
Web replay
Pywb and OpenWayback work better thanks to several fixes.
OpenWayback now supplies credentials to the repository.
AU detail page in the UI now links to Pywb and OpenWayback (if they're configured).
Find the first start URL with content for the default replay URL.
Added requested_disposition query parameter (ported from lockss-daemon).
Port ServeContent rewrite-for-stem-map logic from lockss-daemon.
Added CDX record endpoint improvements.
Don't rewrite
data:URLs.
Bug fixes
Endpoints allowing un-credentialed access now grant correct privileges to credentialed clients.
Ensure proper URL-encoding of query and path args in REST request URLs.
In plugins with alternative permission URLs, a permission fetch failure could mask failure to fetch a required start URL, erroneously allowing a crawl to appear successful even though it had failed.
Ensure all services are notified of relevant config changes via a
ConfigChangednotification.Prevented ServeContent and ViewContent from sending incorrect (compressed) content length.
Check global excludes when following redirects.
Fixed a metadata indexing enabling/disabling bug.
TDB tools
Add
titleNametrait to supplant the title block's name.Make title sets based on publisher names, not publisher blocks.
Add AU-level DOI and demote title-level DOI.
TdbXmlset of publisher names now reset between multiple segments (e.g.--output-dir).
Component Versions
LOCKSS 2.0.91-beta2 NOT YET RELEASED consists of a configurable set of the following components:
LOCKSS Installer version 2.0.91-beta2 NOT YET RELEASED
LOCKSS Repository Service version 2.16.0
LOCKSS Configuration Service version 2.10.0
LOCKSS Poller Service version 2.8.0
LOCKSS Crawler Service version 1.2.0
LOCKSS Metadata Service version 2.8.0
LOCKSS SOAP Compatibility Service version 1.6.0
PostgreSQL version 14.7 (14.7-alpine container)
Pywb version 2.8.3 (custom 2.8.3-1 container)
OpenWayback version 2.4.1 (unreleased post-2.4.0 build, custom 2.4.1-2 container)