01 / DECIDE
架構決策
Direct media client 採 browser-oriented realtime transport;server 擁有 media pipeline 時採 server-side transport。
由 server 驗證的 session bootstrap,讓 browser 建立 media transport 而不取得長效 platform key。 先把 input、output、state 與 side effect 畫成一條可觀察路徑,再決定 讓 browser Realtime credential 保持短效 要放在哪一層。
02 / BUILD
三步實作
- 01
框定合約
先寫下 caller、資料分類、成功條件、timeout、取消與 ownership。Direct media client 採 browser-oriented realtime transport;server 擁有 media pipeline 時採 server-side transport。
- 02
建立單一路徑
只實作一條 end-to-end path,保留 request correlation、typed state 與可逆 failure handling。由 server 驗證的 session bootstrap,讓 browser 建立 media transport 而不取得長效 platform key。
- 03
證明結果
把驗收寫成可重跑的 fixture、contract test 或 browser test。Browser automation 證明長效 key 不會進入 source、network log、storage、error 或 telemetry。
03 / BOUND
Production 邊界
即使是 ephemeral access,仍需 authenticated issuance、origin control、rate limit、expiry 與 revocation behavior。
04 / PROVE
驗收證據
Browser automation 證明長效 key 不會進入 source、network log、storage、error 或 telemetry。
SOURCE / HTTP
可重現來源探針
curl -fsSI 'https://developers.openai.com/api/docs/guides/realtime-conversations' | sed -n '1,5p'