Can two libraries run an interlibrary loan system in the same FOLIO tenant and still exchange requests under separate institutional identities? In this interim Foundry check-in, Riverside Library sends a request for The Atlas of Quiet Rivers. Parkside Library receives it as a separate supplier request. Both are using the current single ILL app.
We recorded that exchange as part of a fresh, self-hosted Foundry FOLIO Distribution install. The local Podman run selected signed Snapshot 183, used real Zitadel sign-in and passed 11 tests across seven app areas. It took 21 minutes and 2 seconds from launch through verified cleanup. The three-minute video compresses provisioning and shows the test actions, sign-out and teardown.
Watch the chaptered walkthrough on YouTube. The two-institution Directory setup and the ILL exchange are the most relevant chapters for OpenRS.
Multi-organisation ILL in one FOLIO tenant
Riverside and Parkside each have a managed Directory entry and a distinct ISIL symbol. Their ISO 18626 services point to the same local ILL instance. The test submits the borrowing request in Riverside’s staff context, switches to Parkside and checks that the incoming request has its own supplier record ID. There is no second FOLIO tenant in the fixture.

We updated the Cypress workflow in platform-ill for the current app, replacing assumptions about separate Request and Supply apps in this scenario with the institution switcher. A separate Directory test creates, edits, reloads and deletes an entry. For the OpenRS founders group, the useful evidence here is the protocol handoff and its two independently scoped staff views. See the current ILL test source and the related OpenRS resource-sharing work.
For teams evaluating open-source ILL, check the licence of the version you plan to run. The ILL backend and staff UI builds shown here use the Functional Source License (FSL-1.1-ALv2). The Directory uses Apache 2.0. See the ILL backend licence, staff UI licence and Directory licence.
What the app tests now cover
| App area | What passed |
|---|---|
| Inventory | Upstream Cypress item search and reset, plus the upstream Karate test for reciprocal preceding and succeeding title links. |
| Agreements and Licenses | Upstream smoke checks, record creation in both apps, and a controlling license linked through the native API and verified in the Agreements UI. The upstream picker scenario still needs the Find License plugin. |
| Open Access | The upstream form smoke check and a new test that saves a publication request, checks its native Service Interaction number and reloads it. |
| Serials Management | The upstream page smoke check, the native form with its purchase-order line section, and a readback of an API-created active serial. |
| ILL and ILL Directory | The same-tenant, two-institution ISO 18626 handoff and the independent Directory record lifecycle. |
Our first priority was the K-Int apps, especially ILL and Directory. The plan is to bring in the applicable upstream suites for every app. We kept the upstream assertions where we could and adapted login and shell-specific selectors for Foundry. The evidence identifies the Foundry-specific workflows alongside the upstream cases. Download the run summary and version evidence.
Reproducing the run when you install FOLIO LSP
For teams evaluating FOLIO hosting or planning to self-host FOLIO LSP, this is a way to test a specific installation against the same cases. On a prepared Foundry developer host, bin/qualify-folio takes a release channel and a set of workflow packs. It verifies and freezes the signed release, provisions a disposable Workspace, runs the tests and checks teardown. The runner writes JSON, JUnit and browser recordings. Video assembly uses those outputs separately.
bin/qualify-folio --channel snapshot \
--pack inventory --pack agreements --pack licenses \
--pack open-access --pack serials --pack ill --pack ill-directory \
--record-session \
--search-engine localhost/foundry-native-indexing-engine:local \
--output work/foundry-folio-checkin
The run needs the prepared Podman host, the runner’s pinned test sources and a qualified local Search image. The output directory must be new. This run peaked at 14.41 GiB of sampled Compose memory and left at least 28.52 GiB available on the host. Those are observations from this fixture. See the runner prerequisites and inputs and our previous Foundry check-in.
We plan to publish these runs regularly for different Foundry release channels. Each report will name the exact signed release, upstream test revisions and cases that ran. That gives teams repeatable evidence of wire compatibility with the FOLIO test suite for the interfaces and workflows exercised, and a way to see coverage grow from one release to the next.