OPENAI SITES / FIELD RESEARCH 01

把平台能力
從猜測變成證據。

我們實作檔案儲存、上傳下載、TTS、WebGPU、Cookie、Session、CORS、API Proxy 與 realtime, 再把同一份 artifact 放進 production。這裡呈現能做什麼、限制在哪裡,以及哪些答案仍需要外部條件。

Production deployed2 anomalies documented
31TEST PATHS
04EVIDENCE LAYERS

01 / EVIDENCE

不是功能清單,
是四層交叉證據。

本機瀏覽器、正式 HTTP、Sites 控制面與 source contracts 各自回答不同問題;沒有把其中一層外推成全部真相。

21/24公開站 probes

21 pass · 1 partial · 2 fail(複驗後判定)

11/11契約測試

Build、types、security contracts

31研究矩陣

7 pass · 16 partial · 2 fail · 6 pending

R3環境版本

Production revision 3

02 / VERDICT

大多數產品能力可行。
責任邊界必須分清楚。

Sites 適合網站、API、資料與 edge integration;browser 提供裝置能力;外部服務承接長運算、付費模型與可靠即時狀態。

WHAT WORKED

檔案、資料、身份與串流,已跑通完整生命週期。

  • R2:put → immediate head / list / get → Range → delete
  • D1:migration、insert、select、session rotation / expiry
  • CORS、CSRF、安全 Cookie、固定上游 API proxy
  • File、IndexedDB、OPFS、TTS、WebGPU;Service Worker install / cache

TWO COUNTEREXAMPLES

兩個反例,比二十個成功案例更值得記住。

  1. WebSocket一般 HTTP 可到達 route,但不等於 WebSocket 可用;相同 artifact 本機可 echo / reconnect,production Upgrade 回 HTTP 500。
  2. Environment重部署同一 saved version 沒更新 live value;建立新 version 後才套用 revision 3。

426HTTP route 存在,但請求沒有升級;尚未建立 WebSocket。

101成功切換協議;只有這個狀態才代表 WebSocket 握手完成。

500正式環境 Upgrade path 失敗;目前無法雙向傳送訊息。

03 / CAPABILITY MAP

先問能力在哪一層,
再決定怎麼做。

同一個產品需求往往跨越三層。把 Browser API 當成 Sites server 能力,或把外部運算塞進 Worker,會直接導致錯誤架構。

01

直接可用

Browser 原生能力

檔案、裝置內儲存、語音合成、WebGPU 與離線體驗都由瀏覽器提供。Sites 負責把它們放進可信的網站流程。
  • File / Blob
  • IndexedDB / OPFS
  • Silent TTS
  • WebGPU
  • Service Worker
02

Production verified

Sites 全端能力

Worker API、D1、R2、session、CORS、SSE 與固定上游 proxy 已在公開自訂網域 production deployment 實際重現。
  • Worker routes
  • D1 records
  • R2 objects
  • Cookie session
  • SSE / proxy
03

需要整合

外部服務邊界

高品質 TTS 音檔、STT、長時間運算、GPU 模型與可靠多人即時協作,需要外部 provider;Sites 適合擔任安全的 BFF。
  • Audio assets
  • Speech-to-text
  • GPU inference
  • Background jobs
  • Realtime state

04 / REFERENCE FLOW

一條安全、可維護的資料路徑。

瀏覽器負責選檔與互動;Sites route 驗證身份、來源、型別與大小;R2 保存 bytes,D1 保存 metadata;下載再次授權。

  1. 01Browser

    File / UI / local cache

  2. 02Sites route

    Auth / validation / limits

  3. 03D1 + R2

    Metadata / object bytes

  4. 04Authorized output

    Range / SSE / download

05 / FULL MATRIX

31 項研究結果,
保留所有灰色地帶。

PASS 是核心路徑已在 production 重現;PARTIAL 是證據仍有限;FAIL 是反例已推翻成功判定;PENDING 需要額外帳號、網域、provider 或獨立 project。

7 PASS16 PARTIAL2 FAIL6 PENDING
ID研究項目狀態目前證據
L-01Owner-only deployment(歷史)PARTIAL

早期 custom policy 匿名 401;切換 public 後匿名 200;owner MFA UI 未完成

L-02workspace_all accessPENDING

需要 workspace member 與外部帳號

L-03Custom user / group accessPENDING

需要第二身份與 access-policy 變更

L-04Workspace identity headersPARTIAL

偽造 identity header 會被移除;真實登入 identity 待驗證

L-05SIWC page flowPARTIAL

早期 private 模式確認登入與 MFA gate;目前 public 模式不觸發 SIWC;callback / sign-out 待驗證

L-06SIWC bypass rotationPASS

舊 token 立即 401;新 token 200

L-07Environment revisionFAIL

同一 saved version 重部署未更新 live value;新 version 才生效

L-08Secret confidentialityPASS

Secret read 為 null;未進 runtime / client;最終已移除

L-09D1 CRUD / ownershipPARTIAL

Insert / select / cleanup 通過;跨 user 待第二身份

L-10D1 migrationPASS

Production schema 可重複 insert / select,migration 未重建表

L-11Rollback after migrationPENDING

需要可破壞的獨立 project

L-12R2 stream uploadPARTIAL

FixedLengthStream 與拒絕矩陣通過;大檔上限待測

L-13R2 consistencyPASS

Put 後 immediate head / list / get 全部成功

L-14SSE / streamingPARTIAL

3 events 依序抵達、client abort;upstream cancellation 待證據

L-15WebSocket productionFAIL

本機 101 / echo 通過;production 兩次 upgrade 都 HTTP 500

L-16Cold-start measurementPARTIAL

12 次 sequential request median 1241.3 ms;非 cold-start benchmark

L-17Custom subdomainPASS

sites.eraser.tw:CNAME / TXT、provider、SSL 均 active;HTTPS / Markdown / runtime 200

L-18Apex domainPENDING

需要 apex DNS control

L-19External API failurePARTIAL

Timeout / 503 / 429 mapping 通過;abort propagation 待證據

L-20Non-Vinext artifactPENDING

需要另一 artifact 或獨立 project

L-21File API fallbackPARTIAL

兩個 Chromium surface 通過;unsupported / denied instance 待測

L-22IndexedDB / OPFS lifecyclePARTIAL

Schema upgrade 與 round-trip 通過;eviction recovery 待測

L-23Upload rejectionPARTIAL

Type / empty / oversize / JSON / origin 均拒絕;partial transport 待測

L-24Protected download / RangePARTIAL

Attachment、prefix / suffix / invalid Range 通過;跨 owner 待測

L-25Browser speech synthesisPARTIAL

Silent queue / cancel 通過;實際發聲與非 Chromium 待測

L-26External TTSPENDING

需要付費 provider、secret 與成本授權

L-27WebGPU capabilityPARTIAL

兩個 browser surface device lifecycle 通過;Safari / Firefox 待測

L-28Cookie / session securityPASS

Secure / HttpOnly / SameSite / host-only / rotation / expiry / CSRF 通過

L-29Credentialed CORSPASS

Exact allowlist;unknown / null / bad method / bad header 均拒絕

L-30API proxy hardeningPARTIAL

Fixed upstream、header filter、timeout、oversize、5xx mapping 通過

L-31Service Worker / domainPARTIAL

Custom domain install / update / cache 成功;首次 navigation fallback 未取得預期離線頁;SIWC / logout 待測

06 / LIVE LAB

不要只相信這份報告。
在你的瀏覽器再跑一次。

24 項 probe 會使用產生的測試資料,完成後自動清理。Production 預期 WebSocket 兩項仍失敗;Service Worker 首次尚未控制頁面時會列為 LIMITED。它不開啟你的檔案、不播放聲音,也不要求 camera、microphone 或 location permission。

capability-runner / current-browser
Total24
Pass0
Limited0
Fail0
展開 24 項逐項結果

Browser / Web Platform

client
  • File/Blob尚未執行WAIT
  • File picker fallback尚未執行WAIT
  • IndexedDB schema upgrade尚未執行WAIT
  • OPFS round-trip尚未執行WAIT
  • Storage quota/persistence尚未執行WAIT
  • sessionStorage尚未執行WAIT
  • Silent TTS queue/cancel尚未執行WAIT
  • WebGPU device lifecycle尚未執行WAIT
  • Service Worker lifecycle尚未執行WAIT

Sites runtime / storage

server
  • Worker runtime尚未執行WAIT
  • D1 persistence尚未執行WAIT
  • R2 upload/download尚未執行WAIT
  • Upload rejection matrix尚未執行WAIT
  • HTTP Range valid尚未執行WAIT
  • HTTP Range rejection尚未執行WAIT
  • Cookie + D1 session尚未執行WAIT
  • Session rotation/expiry尚未執行WAIT
  • CORS allowlist尚未執行WAIT
  • CORS rejection matrix尚未執行WAIT
  • SSE streaming尚未執行WAIT
  • WebSocket echo尚未執行WAIT
  • WebSocket reconnect尚未執行WAIT
  • Fixed API proxy尚未執行WAIT
  • API proxy failure policy尚未執行WAIT

07 / BOTTOM LINE

Sites 可以成為產品主體。
但不能假裝所有東西都在 Sites 裡。

UI、SSR、CRUD、files、identity、HTTP streaming 與 API orchestration 適合留在 Sites。可靠 realtime、GPU、長時間背景任務與付費語音模型,應交給外部服務。

回到能力圖譜