1.6 KiB
1.6 KiB
ECP-0068: Iroh Control To Web Directory Bridge
Status: Draft
Decision
Add a first-class bridge from iroh control gossip to the public website directory:
ec-node control-bridge-web:
- subscribes to control announcements on
every.channel/control/v1, - selects relay transports (
relay_url+broadcast_name+track_name), - upserts them into the website API (
/api/stream-upsert).
- Extend the Cloudflare Worker API with:
POST /api/stream-upsert(optional bearer token auth),GET /api/public-streams(read-only list for browsers).
- Extend the web watcher UI to render
Live Nowfrom/api/public-streams, with one-click watch.
Motivation
The site currently requires manual broadcast names even when streams are already announced over iroh control gossip. This bridge makes every.channel discoverable from published control state and gives browser users a single “open site and click watch” flow.
Scope
In scope:
- Control gossip -> web directory bridge command.
- Worker storage/API for public stream entries.
- Browser UI list and refresh loop.
- Control gossip join behavior updated to work without bootstrap peers (
subscribewithout blocking join).
Out of scope:
- Browser-native iroh direct playback.
- Signed/authenticated control announcements.
- Replacing relay playback with direct iroh in browsers.
Rollout / Reversibility
- Additive change; existing
/api/directoryand watch-by-link behavior remain intact. - Bridge can be disabled by stopping
control-bridge-web. - Public listing auth can be tightened by setting
EC_STREAM_UPSERT_TOKEN.