For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /zh/docs/web/feature-flags.md (or send Accept: text/markdown).
功能开关与公告
灰度上线、按工作区门禁、向成员广播。
初学者演练
先决条件:阅读下面的两个初学者指南,完成 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/ 镜像;检查此处指定的确切源文件;列出文件并在编辑前进行检查;保留工作区所有权和仅限服务器的机密;并向您展示差异。告诉它您想要的行为、输入和输出字段、允许的角色、预期的成功和错误以及测试帐户、提供程序或设备。使用样本值;永远不要粘贴真正的秘密。
在管理中配置标志
/admin/flags 和 feature-flags.ts 提供套件的标志管理/评估路径。 Flag配置属于平台管理员;产品 UI 可以对允许的功能做出反应,而无需获得更改标志的权限。
验证启用和禁用的行为
测试默认值、缺少标志、更新、角色拒绝和标志门控服务器操作。添加推出逻辑时保留工作区访问检查。
安装与配置
feature-flag-runtime 按调用方上下文解析开关:未配置的开关默认关闭,按开关的覆盖可定向到特定工作区或用户。缺失的开关绝不会悄悄放行一个界面。
平台公告(announcement-actions)通过成员已在看的同一通知界面广播应用内通知 —— listActiveAnnouncements 提供横幅内容,dismissAnnouncementAction 记录关闭。
await isFeatureEnabled(flag, { workspaceId })
await resolveFeatureFlags(context)
listActiveAnnouncements()
dismissAnnouncementAction(formData)实现流程
暗发代码:先在开关后合并,给自己的工作区开启,再逐步扩大。界面转正后移除开关 —— 陈旧开关是第二份事实来源。
在服务端边界和导航上同时检查开关:藏了链接但路由还开着不算门禁。公告不要走事务邮件通道 —— 它们是产品动态,不是收据。
验证与排障
验证关闭的开关端到端隐藏导航、路由与操作;覆盖只对其目标生效;清空后回到默认值。测试公告送达目标工作区且关闭状态持久。