Skip to main content

Export All Feature Flag Definition JSON Structures

Last updated on

Overview

Use this script to export all feature flag definitions' JSON structure in all environments and workspaces to a file named [Workspace Name]_[Environment Name]_[Split Name].json.

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.
  • environmentName: The name of the environment.
  • targetFolder: The directory where the JSON file lives.

Run this script using Python 3 from your local machine or preferred development environment.

from splitapiclient.main import get_client

#############################################
workspaceName = "Defaults"
environmentName = "Production"
targetFolder="/Users/bilalal-shahwany/Desktop/WeWork/"
#############################################

def SaveToFile(splitDefinition, splitName, workspaceName, environmentName):
reportObj = open(targetFolder+workspaceName+"_"+environmentName+"_"+splitName+".json", "w")
json.dump(splitDefinition, reportObj)
reportObj.close()

ws = client.workspaces.find(workspaceName)
env = client.environments.find(environmentName, ws.id)
for splitDef in client.split_definitions.list(env.id, ws.id):
print ("Exporting Split: "+splitDef._name)
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())
splitDefinition = {"treatments": trs,"defaultTreatment": splitDef._default_treatment, "rules": rls, "defaultRule": drls}
SaveToFile(splitDefinition, splitDef._name, ws._name, env._name)