> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 功能開關與公告

灰度上線、按工作區門禁、向成員廣播。

## 初學者演練

先決條件：閱讀下面的兩個初學者指南，完成 Web 本地設定，並在編輯器的根目錄中開啟此 monorepo。網頁設定屬於`apps/web/.env.local`； Next.js不讀取根`.env`。預設fake模式下的`/dashboard`是無資料庫演示； `/auth` 需要遷移資料庫。

簡而言之：工作區是一個團隊的單獨使用者、資料和設定。伺服器是可信後端；讓提供商金鑰遠離瀏覽器和電話程式碼。遷移是建立或更新表的版本化資料庫更改。人工智慧模型是回答的引擎；型號目錄是伺服器上可用型號 ID 和價格的列表。提供商是一種外部服務，例如人工智慧、電子郵件或計費服務。權利是允許工作區使用某項功能的授權。 Webhook 是一個服務傳送到另一個服務的 URL 的訊息。

1、以平臺管理員身份登入，開啟`/admin/flags`；建立或選擇一個測試標誌並將其明確設定為啟用，然後停用。

2. 重新整理讀取標誌的產品表面並確認其呈現方式更改。

3. 當啟用標誌時，角色和權利仍必須保護伺服器操作。如果 API 在停用時仍然可訪問，請在預期位置新增伺服器端標誌檢查。

對於自定義程式碼，請從提供的 `prompts/README.md` 開始，然後複製最接近的提示：對於應用程式螢幕為 `prompts/new-app-screen.md`，對於公共頁面為 `prompts/new-landing-page.md`。對於伺服器、資料庫或提供商工作，請為您的編碼代理提供本指南的任務，並要求其讀取 `AGENTS.md`、`.ai/PROJECT_CONTEXT.md` 和匹配的 `.ai/` 映象；檢查此處指定的確切原始檔；列出檔案並在編輯前進行檢查；保留工作區所有權和僅限伺服器的機密；並向您展示差異。告訴它您想要的行為、輸入和輸出欄位、允許的角色、預期的成功和錯誤以及測試帳戶、提供程式或裝置。使用樣本值；永遠不要貼上真正的秘密。

[開始之前](https://supastack.dev/zh-tw/docs/web/before-you-start.md)

[終端基礎知識](https://supastack.dev/zh-tw/docs/web/terminal-basics.md)

[網路本地設定](https://supastack.dev/zh-tw/docs/web/ship-in-5-minutes.md)

[座席提示和專案記憶體](https://supastack.dev/zh-tw/docs/web/agents.md)


## 在管理中配置標誌

`/admin/flags` 和 `feature-flags.ts` 提供套件的標誌管理/評估路徑。 Flag配置屬於平臺管理員；產品 UI 可以對允許的功能做出反應，而無需獲得更改標誌的許可權。


## 保持授權分開

標誌支援產品行為，而角色和權利則授權呼叫者。根據需要檢查兩者。停用的導航連結不會阻止直接 API 呼叫。


## 驗證啟用和停用的行為

測試預設值、缺少標誌、更新、角色拒絕和標誌門控伺服器操作。新增推出邏輯時保留工作區訪問檢查。

[平臺角色](https://supastack.dev/zh-tw/docs/web/admin.md)

[付費訪問](https://supastack.dev/zh-tw/docs/web/setup-payments.md)


## 安裝與配置

feature-flag-runtime 按呼叫方上下文解析開關：未配置的開關預設關閉，按開關的覆蓋可定向到特定工作區或使用者。缺失的開關絕不會悄悄放行一個介面。

平臺公告（announcement-actions）通過成員已在看的同一通知介面廣播應用內通知 —— listActiveAnnouncements 提供橫幅內容，dismissAnnouncementAction 記錄關閉。

```
await isFeatureEnabled(flag, { workspaceId })
await resolveFeatureFlags(context)

listActiveAnnouncements()
dismissAnnouncementAction(formData)
```


## 實現流程

暗發程式碼：先在開關後合併，給自己的工作區開啟，再逐步擴大。介面轉正後移除開關 —— 陳舊開關是第二份事實來源。

在服務端邊界和導航上同時檢查開關：藏了連結但路由還開著不算門禁。公告不要走事務郵件通道 —— 它們是產品動態，不是收據。


## 驗證與排障

驗證關閉的開關端到端隱藏導航、路由與操作；覆蓋只對其目標生效；清空後回到預設值。測試公告送達目標工作區且關閉狀態持久。


## 下一篇

[安全與隱私](https://supastack.dev/zh-tw/docs/web/security.md)
