Podcast Agent — Storage & Feed
What this service produces or accumulates lives in two different places, split by what it actually is. See Storage for why the shared-folder half is a plain shared folder rather than a database or cloud storage bucket.
What’s kept where
-
On shared storage, one subpath per show — episode audio (one MP3 file per published episode), each show’s episode list (titles, descriptions, lengths), and each show’s public RSS feed, regenerated after every new episode.
-
In a database, one per show — the collected, deduplicated, ranked story pool from Podcast Agent — Ingest, History & Ranking, plus episodes awaiting human approval. This moved off the shared folder onto a proper database specifically so it can be queried and hold structure a flat file can’t.
Who writes, who only reads
Only the podcast agent itself writes to either store. Everything downstream — the public feeds and the operator dashboard — only ever reads from them, which means a bug or compromise in either of those two can’t corrupt or delete the episode archive or story history.
The public feeds
Each show’s finished episodes and RSS feed are served publicly with no login required at all — the fleet’s only public, unauthenticated surface. That’s deliberate: podcast apps and RSS readers can’t complete a login the way a human in a browser can, so this route has to stay open for a show to actually be subscribable. See Authentication's "deliberately no auth" row.
A read-only dashboard over the same data
A separate, read-only view exposes what’s been collected recently and what’s been published, across all three shows, for a small operator-facing dashboard. It never writes anything and can’t affect episode generation. See Podcast Agent — Deployment and Internal Tooling Behind SSO.