PostHog · Schema

FeatureFlag

Serializer mixin that handles tags for objects.

A/B TestingAnalyticsFeature FlagsOpen SourceProduct AnalyticsSession Recording

Properties

Name Type Description
id integer
name string contains the description for the flag (field name `name` is kept for backwards-compatibility)
key string
filters object
deleted boolean
active boolean
created_by object
created_at string
updated_at string
version integer
last_modified_by object
ensure_experience_continuity boolean
experiment_set array
experiment_set_metadata array
surveys object
features object
rollback_conditions object
performed_rollback boolean
can_edit boolean
tags array
evaluation_contexts array
usage_dashboard integer
analytics_dashboards array
has_enriched_analytics boolean
user_access_level string The effective access level the user has for this object
creation_context object Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments', 'product_tours'. * `feature_flags` - feature_flags * `
is_remote_configuration boolean
has_encrypted_payloads boolean
status string
evaluation_runtime object Specifies where this feature flag should be evaluated * `server` - Server * `client` - Client * `all` - All
bucketing_identifier object Identifier used for bucketing users into rollout and variants * `distinct_id` - User ID (default) * `device_id` - Device ID
last_called_at string Last time this feature flag was called (from $feature_flag_called events)
_create_in_folder string
_should_create_usage_dashboard boolean
is_used_in_replay_settings boolean Check if this feature flag is used in any team's session recording linked flag setting.
View JSON Schema on GitHub

JSON Schema

posthog-featureflag-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/FeatureFlag",
  "title": "FeatureFlag",
  "type": "object",
  "description": "Serializer mixin that handles tags for objects.",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "description": "contains the description for the flag (field name `name` is kept for backwards-compatibility)"
    },
    "key": {
      "type": "string",
      "maxLength": 400
    },
    "filters": {
      "type": "object",
      "additionalProperties": true
    },
    "deleted": {
      "type": "boolean"
    },
    "active": {
      "type": "boolean"
    },
    "created_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UserBasic"
        }
      ],
      "readOnly": true
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "nullable": true
    },
    "version": {
      "type": "integer",
      "default": 0
    },
    "last_modified_by": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UserBasic"
        }
      ],
      "readOnly": true
    },
    "ensure_experience_continuity": {
      "type": "boolean",
      "nullable": true
    },
    "experiment_set": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "readOnly": true
    },
    "experiment_set_metadata": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "readOnly": true
    },
    "surveys": {
      "type": "object",
      "additionalProperties": true,
      "readOnly": true
    },
    "features": {
      "type": "object",
      "additionalProperties": true,
      "readOnly": true
    },
    "rollback_conditions": {
      "nullable": true
    },
    "performed_rollback": {
      "type": "boolean",
      "nullable": true
    },
    "can_edit": {
      "type": "boolean",
      "readOnly": true
    },
    "tags": {
      "type": "array",
      "items": {}
    },
    "evaluation_contexts": {
      "type": "array",
      "items": {},
      "writeOnly": true
    },
    "usage_dashboard": {
      "type": "integer",
      "readOnly": true
    },
    "analytics_dashboards": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "has_enriched_analytics": {
      "type": "boolean",
      "nullable": true
    },
    "user_access_level": {
      "type": "string",
      "nullable": true,
      "readOnly": true,
      "description": "The effective access level the user has for this object"
    },
    "creation_context": {
      "allOf": [
        {
          "$ref": "#/components/schemas/FeatureFlagCreationContextEnum"
        }
      ],
      "writeOnly": true,
      "description": "Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments', 'product_tours'.\n\n* `feature_flags` - feature_flags\n* `experiments` - experiments\n* `surveys` - surveys\n* `early_access_features` - early_access_features\n* `web_experiments` - web_experiments\n* `product_tours` - product_tours"
    },
    "is_remote_configuration": {
      "type": "boolean",
      "nullable": true
    },
    "has_encrypted_payloads": {
      "type": "boolean",
      "nullable": true
    },
    "status": {
      "type": "string",
      "readOnly": true
    },
    "evaluation_runtime": {
      "nullable": true,
      "description": "Specifies where this feature flag should be evaluated\n\n* `server` - Server\n* `client` - Client\n* `all` - All",
      "oneOf": [
        {
          "$ref": "#/components/schemas/EvaluationRuntimeEnum"
        },
        {
          "$ref": "#/components/schemas/BlankEnum"
        },
        {
          "$ref": "#/components/schemas/NullEnum"
        }
      ]
    },
    "bucketing_identifier": {
      "nullable": true,
      "description": "Identifier used for bucketing users into rollout and variants\n\n* `distinct_id` - User ID (default)\n* `device_id` - Device ID",
      "oneOf": [
        {
          "$ref": "#/components/schemas/BucketingIdentifierEnum"
        },
        {
          "$ref": "#/components/schemas/BlankEnum"
        },
        {
          "$ref": "#/components/schemas/NullEnum"
        }
      ]
    },
    "last_called_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "Last time this feature flag was called (from $feature_flag_called events)"
    },
    "_create_in_folder": {
      "type": "string",
      "writeOnly": true,
      "title": " create in folder"
    },
    "_should_create_usage_dashboard": {
      "type": "boolean",
      "writeOnly": true,
      "default": true,
      "title": " should create usage dashboard"
    },
    "is_used_in_replay_settings": {
      "type": "boolean",
      "description": "Check if this feature flag is used in any team's session recording linked flag setting.",
      "readOnly": true
    }
  },
  "required": [
    "can_edit",
    "created_by",
    "experiment_set",
    "experiment_set_metadata",
    "features",
    "id",
    "is_used_in_replay_settings",
    "key",
    "last_modified_by",
    "status",
    "surveys",
    "updated_at",
    "usage_dashboard",
    "user_access_level"
  ]
}