Add RSS and JSON feeds of incidents and an open dataset
All checks were successful
Build and Deploy to Production / test (push) Successful in 21s
Build and Deploy to Production / build (push) Successful in 49s
Build and Deploy to Production / deploy (push) Successful in 37s

Let readers and bots follow new incidents without polling the card:
/:locale/feed.xml (RSS 2.0) and /:locale/feed.json (JSON Feed 1.1),
the latest 50 incidents with stable IDs, advertised in the page head
and footer.

/data.json publishes every datacenter with its specs and sourced
incidents under CC BY 4.0, for journalists and OSINT reuse.

Assisted-by: Claude:opus-5
This commit is contained in:
Sergei Poljanski 2026-10-12 05:31:26 +04:00
commit 03355983b4
Signed by: asxpi
GPG key ID: 4F8851660FA4121B
8 changed files with 215 additions and 0 deletions

View file

@ -31,6 +31,15 @@ Content is edited in the asxp.io admin (`/admin/bingo`, repo `asxpio`:
(card; `?view=all`, `?p[]=provider`), `/:locale/dc/:slug`, `/sitemap.xml`,
`/robots.txt`, `/p/:file` (photo proxy, immutable), `/<indexnow-key>.txt`,
icons, `/healthz`.
- Feeds: `/:locale/feed.xml` (RSS 2.0) and `/:locale/feed.json` (JSON Feed
1.1), the latest 50 incidents, newest first. Item IDs are
`tag:<host>,2026:incident-<id>`, so they stay stable when an incident is
edited. Pages advertise both via `<link rel="alternate">` and in the
footer.
- `/data.json`: every datacenter with names in all locales, specs, pages,
photo credit and incidents with sources. Licensed CC BY 4.0, with the
attribution inside the file. Feeds and dataset send
`Access-Control-Allow-Origin: *`.
- `config.ru`: `www.` → `BINGO_HOST` 301.
- `views/`: `layout.erb` (CSS and SEO head), `index.erb` (card, provider
filter, dialogs), `dc.erb`, partials. `assets/`: icons.