Bridge iroh control announcements into web stream discovery
This commit is contained in:
parent
74842eb25e
commit
2778715304
8 changed files with 528 additions and 26 deletions
|
|
@ -0,0 +1,41 @@
|
|||
# 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:
|
||||
|
||||
1. `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`).
|
||||
|
||||
2. Extend the Cloudflare Worker API with:
|
||||
- `POST /api/stream-upsert` (optional bearer token auth),
|
||||
- `GET /api/public-streams` (read-only list for browsers).
|
||||
|
||||
3. Extend the web watcher UI to render `Live Now` from `/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 (`subscribe` without 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/directory` and 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`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue