Feature Flags 特性开关
开发中的特性或个别客户定制化的特性可以通过全局特性开关来控制。
配置
生产环境
生产环境的特性开关配置在 api_gateway 组件下的 conf/conf.yaml 文件中的 auth.bootstrap.sys_settings.feature_flags 一节中,配置形式为开关名作 key,是否启用的 Boolean 值作 value。
# 注意不要重复配置已有的相关字段。
auth:
bootstrap:
sys_settings:
feature_flags:
your-feature: true
your-another-feature: true
本地开发环境
note
从 brick_next v2.0.1 开始,默认使用远端模式(即 --remote ),需要使用 --no-remote 来启用本地模式。
从 brick_next v2.7.7 开始,在远端模式下将自动启用合并设置(即 --merge-settings),需要使用 --no-merge-settings 来取消合并设置。
当本地开发 yarn serve 使用远端模式时(默认),这些设置将使用远端返回的数据与本地设置进行合并。通过配合使用 --local-settings 或 --no-merge-settings 可以指定完全使用本地设置(本地仓库的 dev-settings.yaml),或完全使用远端设置。
当本地开发 yarn serve 使用本地模式时(即使用 --no-remote),这些设置将从本地仓库的 dev-settings.yaml 读取,它的格式与上述 sys_settings 的格式一致:
feature_flags:
your-feature: true
your-another-feature: true
使用
在 Storyboard 中可以使用求值表达式来引用特性开关:
brick: "your-brick"
properties:
hidden: '<% FLAGS["your-feature"] %>'
在构件中,可以使用 Runtime 接口获得开关配置:
import { getRuntime } from "@next-core/brick-kit";
function YourComponent() {
const featureFlags = getRuntime().getFeatureFlags();
const enabled = featureFlags["your-feature"];
// ...
}
常用开关配置
| 开关 | 默认值 | 说明 |
|---|---|---|
login-by-legacy | false | 开启时,设置 Next 站点通过老 Console 进行登录,支持跳转回登录前的页面。(general-auth-NB >= 1.3.4) |
login-by-legacy-sso | false | 开启时,设置 Next 站点通过老 Console 进行 SSO 登录。注意需要同时关闭 login-by-legacy 才能生效。如果 SSO 登录后未跳转到原地址,请灰度提测记录 003336。 |