feat: add RSS feed endpoint and configuration

Implements /feed.xml route with caching and ETag support.

Features:
- GET /feed.xml returns RSS 2.0 feed of published notes
- Server-side caching (5 minutes default, configurable)
- ETag generation for conditional requests
- Cache-Control headers for client-side caching
- Configurable feed item limit (50 default)

Configuration:
- FEED_MAX_ITEMS: Maximum items in feed (default: 50)
- FEED_CACHE_SECONDS: Cache duration in seconds (default: 300)

Related: docs/decisions/ADR-014-rss-feed-implementation.md
This commit is contained in:
2025-11-19 08:42:32 -07:00
parent 856148209a
commit d420269bc0
2 changed files with 96 additions and 2 deletions

View File

@@ -62,7 +62,11 @@ def load_config(app, config_override=None):
app.config["DEV_ADMIN_ME"] = os.getenv("DEV_ADMIN_ME", "")
# Application version
app.config["VERSION"] = os.getenv("VERSION", "0.5.0")
app.config["VERSION"] = os.getenv("VERSION", "0.6.0")
# RSS feed configuration
app.config["FEED_MAX_ITEMS"] = int(os.getenv("FEED_MAX_ITEMS", "50"))
app.config["FEED_CACHE_SECONDS"] = int(os.getenv("FEED_CACHE_SECONDS", "300"))
# Apply overrides if provided
if config_override: