360 Secure SkillHub
360 安全技能中心

Feature Flag Manager

这是一款功能标志管理工具,无需代码部署即可实时控制功能可见性。核心功能包括一键开关功能、1%-100%逐步灰度发布、多变体A/B测试、紧急关停开关、特定用户/群组定向。典型场景有安全发布新功能、A/B测试页面变体、紧急止损故障功能。支持命令行操作,输出功能状态或测试变体,也可集成到代码中判断用户是否可见功能。

sky-lv
sky-lv
热度 48.24
最近更新 2026-05-11 17:44:40
分类:开发依赖:代码执行 / 读写文件应用场景:DevOps / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add feature-flag-manager
Metadata
description
Toggle features instantly without deploying code. A/B test variants, gradual rollouts from 1% to 100%, and emergency kill switches for AI agents.
keywords
feature flag, feature toggle, A/B testing, gradual rollout, canary release, kill switch, percentage rollout, remote config
name
feature-flag-manager
triggers
toggle feature, enable feature, disable feature, A/B test, rollout percentage, kill switch, feature flag

feature-flag-manager

Deploy features safely. Toggle on/off instantly, run A/B tests, and roll out gradually from 1% to 100% — no code redeployment needed.

What It Does

Control feature visibility in real-time without pushing new code:

  • Instant toggle — Enable/disable features with one command
  • Gradual rollout — Start with 1% of users, increase slowly
  • A/B testing — Test variants against each other with automatic traffic splitting
  • Kill switch — Emergency off button for buggy features
  • User targeting — Show features to specific users or groups

Quick Start

# 1. Create a feature flag
node flag.js create dark-mode --description "Dark theme UI"

# 2. Enable for 10% of users
node flag.js update dark-mode --percentage 10

# 3. Check if enabled for current user
node flag.js enabled dark-mode --user-id alice
# → true (or false based on percentage)

# 4. Gradually increase to 100%
node flag.js update dark-mode --percentage 50
node flag.js update dark-mode --percentage 100

Common Use Cases

🚀 Safe Feature Releases

# Instead of: deploy → pray → rollback
# Do this: deploy (disabled) → enable 5% → monitor → 25% → 100%

node flag.js create new-checkout-flow
node flag.js update new-checkout-flow --percentage 5
# Monitor error rates...
node flag.js update new-checkout-flow --percentage 100

🧪 A/B Test Pricing Pages

# Test 3 variants: 50% see current, 25% see v1, 25% see v2
node flag.js create pricing-test --variants control,v1,v2 --weights 50,25,25

# In your code, get variant for each user
node flag.js variant pricing-test --user-id user123
# → "v1"

🚨 Emergency Kill Switch

# New feature causing errors? Disable instantly without redeploying
node flag.js toggle broken-feature --off
# Fixed? Re-enable
node flag.js toggle broken-feature --on

All Commands

Command Purpose
create <name> Create a new flag
toggle <name> Enable/disable instantly
update <name> --percentage N Set rollout percentage (0-100)
enabled <name> Check if enabled for user
variant <name> Get A/B variant for user
list Show all flags and status
history <name> See change history
export Export config for backup

Configuration

Flags stored in .featureflags/config.json:

{
  "flags": {
    "dark-mode": {
      "enabled": true,
      "percentage": 25,
      "description": "Dark theme support"
    },
    "pricing-test": {
      "enabled": true,
      "percentage": 100,
      "variants": ["control", "v1", "v2"],
      "weights": [50, 25, 25]
    }
  }
}

Integration Example

const flag = require('./flag.js');

async function renderDashboard(userId) {
  // Check if new dashboard is enabled for this user
  if (await flag.enabled('new-dashboard', { userId })) {
    return renderNewDashboard();
  }
  return renderLegacyDashboard();
}