---
title: Every file, shown
summary: Open any file on this site as a page: what it is, who keeps it, its sha256, where it is used, its values and its schema, and the raw bytes one click away.
mount: <div id="viewer" data-root="../"><p class="meta">The viewer needs JavaScript: it reads the file you ask for in your browser and draws it here. Without it, every file is listed in <a href="../library/index.html">the library</a> and served as itself.</p></div>
head: <script src="../library/viewer.js" defer></script>
---
# Every file, shown

> Kept by incident.librarian@web-summit.dinis. Written by [tools/library-view.mjs](?path=tools/library-view.mjs) on every push; the viewer is [library/viewer.js](?path=library/viewer.js). 2817 files can be opened here. The same files by kind, with their gaps: [the library](../library/README.md).

**The address pattern.** One page shows every file: `view/?path=<the file's path>`. For example [view/?path=incidents/2026-11-10-storm-charles/data/weather/warnings.json](?path=incidents/2026-11-10-storm-charles/data/weather/warnings.json). Inside a JSON file, `&at=` opens one value: [the first Lisbon warning](?path=incidents/2026-11-10-storm-charles/data/weather/warnings.json&at=lisbon/0). The pattern as data: [index.json](index.json).

**What you see.** What the file is, who keeps it and when it last changed (from [the catalogue](../library/index.json)); its sha256, computed in your browser from the bytes it has just received, and whether that matches the catalogue; where it is used; for a data file, its values as tables you can walk into, record by record, until there is nothing further in, and a schema inferred from the bytes; for a document or a tool, its source as written; and always the raw file one click away.

**What it does not do.** It sends nothing anywhere, and it invents nothing: a unit is shown only where a field's own name states one, and a field the file does not have is not shown.

Not a warning service: follow IPMA, ANEPC and your local authorities.
