Unleash · Schema

Unleash Feature Flag

Represents an Unleash feature flag (feature toggle) with its configuration, environments, strategies, and variants.

Feature FlagsFeature ManagementProgressive DeliveryA/B TestingOpen SourceDeveloper Tools

Properties

Name Type Description
name string Unique feature flag identifier (kebab-case recommended)
description stringnull Human-readable description of the feature flag purpose
type string Flag lifecycle type
project string Project the flag belongs to
enabled boolean Legacy global enabled status (use environment-specific enabled instead)
stale boolean Whether the flag has been marked as stale and should be cleaned up
impressionData boolean Whether impression events are enabled for this flag
createdAt string ISO 8601 timestamp when the flag was created
updatedAt stringnull ISO 8601 timestamp when the flag was last updated
lastSeenAt stringnull ISO 8601 timestamp when the flag was last evaluated
createdBy object User who created the flag
environments array Per-environment configuration of the flag
tags array Tags for organizing and filtering flags
View JSON Schema on GitHub

JSON Schema

unleash-feature-flag-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://getunleash.io/schemas/feature-flag",
  "title": "Unleash Feature Flag",
  "description": "Represents an Unleash feature flag (feature toggle) with its configuration, environments, strategies, and variants.",
  "type": "object",
  "required": ["name", "project", "type"],
  "properties": {
    "name": {
      "type": "string",
      "description": "Unique feature flag identifier (kebab-case recommended)",
      "pattern": "^[a-zA-Z0-9._-]+$",
      "example": "my-new-feature"
    },
    "description": {
      "type": ["string", "null"],
      "description": "Human-readable description of the feature flag purpose"
    },
    "type": {
      "type": "string",
      "description": "Flag lifecycle type",
      "enum": ["release", "experiment", "operational", "kill-switch", "permission"],
      "example": "release"
    },
    "project": {
      "type": "string",
      "description": "Project the flag belongs to",
      "example": "default"
    },
    "enabled": {
      "type": "boolean",
      "description": "Legacy global enabled status (use environment-specific enabled instead)",
      "default": false
    },
    "stale": {
      "type": "boolean",
      "description": "Whether the flag has been marked as stale and should be cleaned up",
      "default": false
    },
    "impressionData": {
      "type": "boolean",
      "description": "Whether impression events are enabled for this flag",
      "default": false
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the flag was created"
    },
    "updatedAt": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "ISO 8601 timestamp when the flag was last updated"
    },
    "lastSeenAt": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "ISO 8601 timestamp when the flag was last evaluated"
    },
    "createdBy": {
      "type": "object",
      "description": "User who created the flag",
      "properties": {
        "id": {"type": "integer"},
        "name": {"type": "string"},
        "imageUrl": {"type": "string"}
      }
    },
    "environments": {
      "type": "array",
      "description": "Per-environment configuration of the flag",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string", "description": "Environment name"},
          "enabled": {"type": "boolean", "description": "Whether flag is enabled in this environment"},
          "type": {"type": "string", "description": "Environment type (development, staging, production)"},
          "strategies": {
            "type": "array",
            "description": "Activation strategies for this environment",
            "items": {
              "type": "object",
              "properties": {
                "id": {"type": "string"},
                "name": {"type": "string", "description": "Strategy type name"},
                "constraints": {"type": "array"},
                "parameters": {"type": "object"},
                "segments": {"type": "array"},
                "disabled": {"type": "boolean"}
              }
            }
          },
          "variants": {
            "type": "array",
            "description": "Variants for A/B testing or multivariate experiments"
          }
        }
      }
    },
    "tags": {
      "type": "array",
      "description": "Tags for organizing and filtering flags",
      "items": {
        "type": "object",
        "properties": {
          "type": {"type": "string"},
          "value": {"type": "string"}
        }
      }
    }
  },
  "additionalProperties": false
}