| .. | ||
| src | ||
| Cargo.toml | ||
| module.nix | ||
| README.md | ||
RSS Service
Serves public feed endpoints for Noisebell.
This service does not store history. On each request it fetches the current state from cache-service and renders that one current state as RSS or Atom.
States
open: Noisebridge is open right now.closed: Noisebridge is closed right now.offline: the cache cannot currently confirm the Pi state.
Feed behavior
- Feeds are current-state only, not historical archives.
- Each feed emits either one item or zero items.
- The item
guidchanges when the current status event changes, so feed readers can treat it as new. - Filtered feeds omit the item when the current state does not match that feed.
Endpoints
| Format | Purpose | Path |
|---|---|---|
| JSON | Current status passthrough | /status |
| RSS | All states | /all/rss.xml |
| Atom | All states | /all/atom.xml |
| RSS | Open + closed only | /door/rss.xml |
| Atom | Open + closed only | /door/atom.xml |
| RSS | Open only | /open/rss.xml |
| Atom | Open only | /open/atom.xml |
| HTTP | Health check | /health |
| HTTP | Redirect to docs | / |
Current aliases:
/rss.xmlcurrently serves the same feed as/all/rss.xml./atom.xmlcurrently serves the same feed as/all/atom.xml./redirects to the repo README for this module.
Feed text
Items use custom titles:
Noisebridge openedNoisebridge closedNoisebridge sensor went offline
Descriptions include:
- the current state
- when that state began, if known
- when the cache last confirmed the state
Caching and polling hints
- RSS includes
<ttl>1, which suggests a 1-minute polling interval. - HTTP responses include
Cache-Control: public, max-age=60. - HTTP responses also include
ETagandLast-Modifiedso clients can revalidate cheaply.
Atom vs RSS
RSS and Atom are both XML feed formats.
- RSS is older and very widely supported.
- Atom is newer and has a more regular structure.
- For this service they contain the same information in two different standard formats.
Configuration
| Variable | Default | Description |
|---|---|---|
NOISEBELL_RSS_CACHE_URL |
required | Base URL of cache-service |
NOISEBELL_RSS_PORT |
3002 |
Listen port |
NOISEBELL_RSS_HTTP_TIMEOUT_SECS |
10 |
Timeout when requesting cache status |