Skip to content

Reach the live feed on the endpoint Formula 1 still answers - #68

Open
jerome-queck wants to merge 1 commit into
mainfrom
live-feed-signalrcore
Open

Reach the live feed on the endpoint Formula 1 still answers#68
jerome-queck wants to merge 1 commit into
mainfrom
live-feed-signalrcore

Conversation

@jerome-queck

Copy link
Copy Markdown
Member

Formula 1 has closed the legacy SignalR endpoint the upstream recorder used. A negotiate against
livetiming.formula1.com/signalr now answers 401 with WWW-Authenticate: Basic realm="Authentication" and Bearer, so the live path received nothing at all — the Ingestor sat
in a reconnect loop and the broker carried no records. The replacement,
livetiming.formula1.com/signalrcore, still negotiates and subscribes without a credential.

Upstream chooses between the two clients by whether F1_TOKEN is set, not by whether its value
authenticates: unset omits --auth and takes the dead endpoint, set passes --auth and takes the
live one (real_time/recording.py). So the fix is to set it, and the value is deliberately not a
credential — this project holds no F1TV token and is not becoming a system that does (ADR-0002).

Whether the free subset actually arrives over an unauthenticated connection is the measurement
ADR-0002 leaves outstanding; #42 settles it against a live Session. This change is what makes that
measurement possible at all.

Verified against the running stack

  • The recorder reports Connection established and Subscribed to topics for all sixteen topics,
    where before it logged only Reconnecting in 5 seconds....
  • server/live.ts reports connected to the broker.
  • A browser's WebSocket receives its seed frame, stamped mode: "live":
    {"type":"session-state","state":{"sessionKey":0,"drivers":[],"mode":"live"}}.
  • test/run, npm run typecheck, shellcheck and bin/compose config are all green.

The empty field is correct — no Session is live at the time of writing. Zandvoort FP1
(session_key 11343) begins 2026-08-21T10:30:00Z and is what settles the rest.

Assisted-by: Claude Opus 5 (reasoning: high)
Co-authored-by: Claude noreply@anthropic.com

Formula 1 has closed the legacy SignalR endpoint the upstream recorder used.
A negotiate against `livetiming.formula1.com/signalr` now answers 401 with
`WWW-Authenticate: Basic realm="Authentication"` and `Bearer`, so the live path
received nothing at all — the Ingestor sat in a reconnect loop and the broker
carried no records. The replacement, `livetiming.formula1.com/signalrcore`,
still negotiates and subscribes without a credential.

Upstream chooses between the two clients by whether `F1_TOKEN` is *set*, not by
whether its value authenticates: unset omits `--auth` and takes the dead
endpoint, set passes `--auth` and takes the live one. So the fix is to set it,
and the value is deliberately not a credential — this project holds no F1TV
token and is not becoming a system that does (ADR-0002).

Whether the free subset actually arrives over an unauthenticated connection is
the measurement ADR-0002 leaves outstanding; #42 settles it against a live
Session. This change is what makes that measurement possible at all.

Verified against the running stack: the recorder now reports `Connection
established` and subscribes to all sixteen topics, `server/live.ts` connects to
the broker, and a browser's WebSocket receives its seed frame stamped
`mode: "live"`.

Assisted-by: Claude Opus 5 (reasoning: high)
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant