1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/docs/api/admin/state-api.md
2020-02-20 08:34:22 +01:00

3.3 KiB

id title
state /api/admin/state

Export Feature Toggles & Strategies

GET: http://unleash.host.com/api/admin/state/export

The api endpoint /api/admin/state/export will export feature-toggles and strategies as json by default.
You can customize the export with queryparameters:

Parameter Default Description
format json Export format, either json or yaml
download false If the exported data should be downloaded as a file
featureToggles true Include feature-toggles in the exported data
strategies true Include strategies in the exported data

Example response:

GET /api/admin/state/export?format=yaml&featureToggles=1&strategies=1

version: 1
features:
  - name: Feature.A
    description: lorem ipsum
    enabled: false
    strategies:
      - name: default
        parameters: {}
    variants:
      - name: variant1
        weight: 50
      - name: variant2
        weight: 50
  - name: Feature.B
    description: lorem ipsum
    enabled: true
    strategies:
      - name: ActiveForUserWithId
        parameters:
          userIdList: '123,221,998'
      - name: GradualRolloutRandom
        parameters:
          percentage: '10'
    variants: []
strategies:
  - name: country
    description: Enable feature for certain countries
    parameters:
      - name: countries
        type: list
        description: List of countries
        required: true

Import Feature Toggles & Strategies

POST: http://unleash.host.com/api/admin/state/import

You can import feature-toggles and strategies by POSTing to the /api/admin/state/import endpoint.
You can either send the data as JSON in the POST-body or send a file parameter with multipart/form-data (YAML files are also accepted here).

Specify the drop query parameter, if you want the database to be cleaned before import (all strategies and features will be removed).

You should never use this in production environments.

Success: 202 Accepted
Error: 400 Bad Request

Example body:

{
  "version": 1,
  "features": [
    {
      "name": "Feature.A",
      "description": "lorem ipsum",
      "enabled": false,
      "strategies": [
        {
          "name": "default",
          "parameters": {}
        }
      ],
      "variants": [
        {
          "name": "variant1",
          "weight": 50
        },
        {
          "name": "variant2",
          "weight": 50
        }
      ]
    },
    {
      "name": "Feature.B",
      "description": "lorem ipsum",
      "enabled": true,
      "strategies": [
        {
          "name": "ActiveForUserWithId",
          "parameters": {
            "userIdList": "123,221,998"
          }
        },
        {
          "name": "GradualRolloutRandom",
          "parameters": {
            "percentage": "10"
          }
        }
      ],
      "variants": []
    }
  ],
  "strategies": [
    {
      "name": "country",
      "description": "Enable feature for certain countries",
      "parameters": [
        {
          "name": "countries",
          "type": "list",
          "description": "List of countries",
          "required": true
        }
      ]
    }
  ]
}