Skip to main content

Add Targeting Rules to an Existing Feature Flag

Overview

Use this script to add targeting rules to an existing feature flag.

Prerequisites

Configuration

Before running the script, update the following variables in the code:

  • ADMIN API KEY: Your Split Admin API key.
  • workspaceName: The name of the workspace. If you only have one workspace, use the Default workspace.
  • environmentName: The name of the environment.
  • splitName: The name of the feature flag.

Run this script using Python 3 from your local machine or preferred development environment. This example adds two targeting rules.

from splitapiclient.main import get_client

############################################
workspaceName = "Default"
environmentName = "Production"
splitName = "clients_on"
############################################

client = get_client({'apikey': 'ADMIN API KEY'})
ws = client.workspaces.find(workspaceName)
env = client.environments.find(environmentName, ws.id)
splitDef = client.split_definitions.find(splitName, env.id, ws.id)

trs = []
for tr in splitDef._treatments:
trs.append(tr.export_dict())
rls = []
for rl in splitDef._rules:
rls.append(rl.export_dict())
drls = []
for drl in splitDef._default_rule:
drls.append(drl.export_dict())
rls.append({"buckets": [{"treatment": "on","size": 100}],"condition": {"matchers": [{"attribute":"userGroup", "type": "MATCHES_STRING","string": "employees"}], "combiner": "AND"}})
splitDefinition = {"treatments": trs,"defaultTreatment": splitDef._default_treatment, "rules": rls, "defaultRule": drls}
splitDef.update_definition(splitDefinition)