ai-lab.oao.tw / sites playground

Sites 能力集章冊

Back to lab ↗

Playground map

把 Sites 當成一座可以慢慢探索的遊樂場

最後更新:2026-07-22

這頁不是官方功能大全,而是 AI Lab OAO 的能力探索地圖。每個設施代表一種 Sites 能力:實測成功就蓋章,只看到一部分就先標記,還不確定的就排進下一輪實驗。

0. 狀態標記

Sites 跟 VPS 的心智模型不同。VPS 像一台自己顧的機器;Sites 比較像一組已經鋪好軌道的 edge site runtime:source 進來,build 成 version,再發布到 production。

已驗證 部分驗證 待實驗 未確認 外部服務

1. 入口與門票

已驗證

Site project

Site 有 title、slug、status、project id 和 live URL。project id 是後續 version、domain、access、deployment 的核心識別。

下一步:整理 project metadata 能改哪些欄位。
已驗證

Custom domain

可以綁定自訂網域,並分開觀察 domain status、provider status、SSL status 和 DNS validation。

下一步:記錄 domain 更新與 SSL 生效時間。
部分驗證

Access control

已看到 public 和 custom access 模式。公開網站要把 repo、build output 和 production 內容都當成公開材料檢查。

下一步:實測 custom access 對訪客體驗的影響。

2. 軌道與發射

已驗證

Source repo

GitHub 可以作為協作正本,Sites source repo 則在部署前對齊 exact commit。兩者角色不同。

下一步:把 source sync 失敗情境整理成 troubleshooting。
已驗證

Build archive

部署不是只把 HTML 丟上去。Archive 需要保留 Sites runtime 期待的結構,例如 server entry 和 hosting 設定。

下一步:整理不同 build output layout 的可行性。
已驗證

Saved version

保存 version 會留下 version number、commit sha、archive hash、檔案數和大小。Save 不等於 publish。

下一步:比較多個 version 的差異與截圖。
已驗證

Production deployment

可以把 saved version 發布到 production,部署狀態會經過 pending、publishing、succeeded 這類階段。

下一步:補上失敗部署時的觀察方式。
待實驗

Rollback

Version history 已存在,但還沒實測把 production 切回舊 version 的流程。

下一步:選一個安全改動測試 rollback。

3. 互動裝置

已驗證

Worker-style runtime

Build output 已用 request handler 回應 HTML、CSS、JS,也已部署公開 JSON probe。Sites 不只是純靜態檔案目錄。

已延伸到 /api/weather?location=... 這類 query-based API。
已驗證

Dynamic routes

/api/health 已在 production 驗證,可以由 request path 切到 runtime JSON response。

下一步:測試 query string 和多個 API route。
已驗證

JSON endpoint

/api/health 已可回 JSON、no-store cache header、probe header 與 server-generated timestamp。

打開 Status Probe
部分驗證

External fetch

Production runtime 已能呼叫外部天氣 API;但 Open-Meteo 從 Sites 出口回 429,最後以 wttr.in fallback 成功。

打開 Weather Cache

4. 後台機房

待實驗

Environment variables

Sites 有 runtime env vars 和 secrets 管理,但還沒把值接進實際 handler。

下一步:新增非敏感 env var 並在測試 endpoint 中讀取。
部分驗證

Worker logs

已用 worker logs 觀察 request、status、execution model 與 route。部署錯誤和 runtime probe 都能回頭查。

下一步:整理常見 failure message 與處理方式。
已驗證

Screenshots

Site 和 version 會保留 screenshot URL,可作為部署後視覺狀態的佐證。

下一步:把 screenshot 檢查納入 release report。

5. 儲存與快取

已驗證

D1 binding

.openai/hosting.json 宣告 "d1": "DB" 後,production handler 可透過 env.DB 讀寫。

/api/d1-probe 已成功寫入並在後續 request 讀回。
已驗證

D1 cache

天氣 API 已用 D1 依縣市保存快取。30 分鐘內回 d1-cache,過期才重新打外部 API。

台北與高雄已分別驗證 per-location cache key。
已驗證

Visitor-triggered refresh

沒有背景排程;有人打開天氣頁時,後端才檢查快取時間並決定要不要刷新資料。

這符合 Sites 輕量 app 心智模型,也能避免一直打外部 API。
待實驗

R2 file storage

目前只驗證 D1。R2 應用場景會是截圖、附件、PDF、圖片或可下載檔案。

下一步:做一個安全的文字或小圖物件 put/get probe。

6. 極限探索區

已驗證

Persistent storage

D1 已確認是可用的持久 storage;module-scope memory 則只適合 runtime 行為觀察,不能當資料庫。

下一步:把真正需要保存的實驗紀錄移到 D1-backed API。
未確認

User identity

Access control 可以管誰能進站,但 app-level user identity 能取得到什麼還沒實測。

下一步:探索登入閘門與 runtime request 資訊。
外部服務

Full backend

長期狀態、檔案上傳、排程、queue、資料庫通常不應先假設 Sites 自己全包。

下一步:定義 Sites + 外部服務的搭配模式。