Public library
What this page is — the public page listing documents your organisation has chosen to publish, and how an entry gets there.
What it is for — so documents meant for everyone — terms, policies, certificates — have one stable public address that always serves the published sealed copy.
The problem it solves — an emailed policy PDF keeps circulating long after it has been replaced, and nobody knows which version a reader saw.
Route: /papers/library/<organisation-slug> (public) · Permission: none to read;
Papers module limits, defaults, integrations and signature-provider toggles. to publish
1. What it is
The library is one list per organisation. It is addressed by the organisation's slug and spans every project. An entry is a finalized document plus a public slug, title and description. Nothing appears unless someone publishes it — no type, folder or state publishes automatically.
| Public library | Share link | Verification | |
|---|---|---|---|
| Audience | Anyone | The people you send it to | Anyone holding a code |
| Shows the content | Yes | Yes | No |
| Expires | No | Yes | No |
| Tracks views | No | Yes | No |
| Has a stable, readable address | Yes — /papers/library/gatiro/privacy-policy | No — a random token | No — a code |
2. Why you would use it
- One address that never goes stale. Your website, invoices and emails link to
…/library/gatiro/supplier-terms. When the terms change you republish, and the links stay the same. - No more "which version is current?" An emailed PDF keeps circulating long after it is replaced. The library entry always points at one sealed file.
- Published documents are still controlled documents. Library entries come from finalized, numbered, approved documents, so public terms get the same review as a contract.
- Recipients can check what they read. The file shown is the sealed artifact, so its fingerprint matches the verification page.
3. Step by step
- Finalize the document. Publishing refuses otherwise.
- From the document, choose to publish it to the public library.
- Enter the slug, and optionally a public title and description.
- Publish. The entry appears on the organisation's library page straight away.
- When a new version is finalized, publish again with the same slug. Re-publishing updates the entry to the latest finalized PDF.
Publishing pins the finalized artifact that existed at that moment. If you amend the document and finalize again, the library keeps serving the old PDF until you re-publish. Make re-publishing part of your change process for public terms.
4. Field reference
| Field | Required | Validation — exact messages |
|---|---|---|
| Slug | Yes | Empty: "slug is required". Wrong shape: "slug must be 1-120 chars of lowercase letters, digits and single hyphens". Input is lower-cased and trimmed for you |
| Reserved words | — | "This slug is a reserved word and cannot be used. Please choose another." — platform words such as admin or api |
| Uniqueness | — | A slug can belong to only one document in your organisation |
| Title | Optional | The public name. Defaults to the document's title |
| Description | Optional | One or two sentences under the title |
| The document itself | — | "Document has no finalized artifact — finalize it before publishing" |
What the public actually receives
For each entry, the library returns only the slug, title, description and published date. Opening an entry gives a view link to the PDF that expires after 15 minutes. Nothing else is exposed: no parties, no field values, no internal state. Public reads are rate-limited to 60 requests a minute per visitor.
5. Choosing what to publish
| Good candidates | Keep out |
|---|---|
| Terms of service, privacy and cookie policies | Anything with a named counterparty |
| Standard supplier or customer terms | Signed contracts, even "standard" ones |
| Certificates you are meant to display (ISO, licences) | Internal policies |
| Published price schedules | Drafts — not possible anyway |
No sign-in, no passcode, no expiry. Before publishing, read the sealed PDF as a stranger would, including annexures and metadata.
6. Worked example
Gatiro updates its Supplier Code of Conduct (document SCC-2026-002).
- Legal finalizes version 3 on 1 April.
- The document owner publishes with slug
supplier-code-of-conduct, title Supplier Code of Conduct, and description Standards every Gatiro supplier agrees to. - The procurement team replaces the attachment in their onboarding email with
https://gatiro.example/papers/library/gatiro/supplier-code-of-conduct. - In September an amendment adds a modern-slavery clause and is finalized as version 4. The library still shows version 3.
- The owner re-publishes with the same slug. The entry now serves version 4, and the onboarding email needs no change.
Trying supplier_code in step 2 would have been refused, because underscores are not allowed.
7. The admin contract
| What must be true | Otherwise |
|---|---|
| The publisher holds Papers module limits, defaults, integrations and signature-provider toggles. | The publish action is refused |
| The organisation has an active slug | The library address does not resolve |
| The document is finalized | Publishing refuses (§4) |
| Someone owns re-publishing after changes | The public copy silently lags behind (§3) |
8. Downstream
- The library lists entries across all projects, so project boundaries do not apply once something is published.
- Revoking or superseding the document does not remove its library entry by itself. Unpublish it too.
- A custom papers domain serves your customer portal. The library keeps its
/papers/library/…address. - Publish sparingly: a short library of genuinely public documents is easier to keep current than a long one.
9. Don't confuse this with…
| Share links | One recipient, tracked, expiring |
| Customer portal | Signed-in; each customer sees only their own documents |
| Verification | Proves authenticity without showing contents |
10. Troubleshooting
| Symptom | Cause |
|---|---|
| Publish refused: "…no finalized artifact…" | The document has not been finalized |
| The public page shows an old version | The entry is pinned; re-publish after re-finalizing (§3) |
| The PDF link stopped working in an open tab | View links last 15 minutes; reload the entry |
| A revoked document is still listed | Revoking does not unpublish — remove the entry |
| Slug refused although it looks fine | It is reserved, uses uppercase or underscores, or another document owns it |