1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
unleash.unleash/docs/api/admin/strategies-api.md
Alexis Degrugillier 0f60fd075a
chore: Fix documentation typos (#758)
Co-authored-by: Alexis Degrugillier <alexis.degrugillier@duproprio.com>
2021-03-09 21:44:45 +01:00

3.8 KiB

id title
strategies /api/admin/strategies

In order to access the admin api endpoints you need to identify yourself. If you are using the unsecure authentication method, you may use basic authentication to identify yourself.

Fetch Strategies

GET: http://unleash.host.com/api/admin/strategies

Used to fetch all defined strategies and their defined parameters.

Response

{
  "version": 1,
  "strategies": [
    {
      "name": "default",
      "description": "Default on/off strategy.",
      "parameters": []
    },
    {
      "name": "userWithId",
      "description": "Active for userId specified in the comma seperated 'userIds' parameter.",
      "parameters": [
        {
          "name": "userIds",
          "type": "list",
          "description": "List of unique userIds the feature should be active for.",
          "required": true
        }
      ]
    },
    {
      "name": "gradualRollout",
      "description": "Gradual rollout to logged in users",
      "parameters": [
        {
          "name": "percentage",
          "type": "percentage",
          "description": "How many percent should the new feature be active for.",
          "required": false
        },
        {
          "name": "group",
          "type": "string",
          "description": "Group key to use when hasing the userId. Makes sure that the same user get different value for different groups",
          "required": false
        }
      ]
    }
  ]
}

Create strategy

POST: http://unleash.host.com/api/admin/strategies

Body

{
    "name": "gradualRollout",
    "description": "Gradual rollout to logged in users",
    "parameters": [
        {
            "name": "percentage",
            "type": "percentage",
            "description": "How many percent should the new feature be active for.",
            "required": false
        },
        {
            "name": "group",
            "type": "string",
            "description": "Group key to use when hasing the userId. Makes sure that the same user get different value for different groups",
            "required": false
        }
    ]
},

Used to create a new Strategy. Name is required and must be unique. It is also required to have a parameters array, but it can be empty.

Update strategy

PUT: http://unleash.host.com/api/admin/strategies/:name

Body

{
    "name": "gradualRollout",
    "description": "Gradual rollout to logged in users with updated desc",
    "parameters": [
        {
            "name": "percentage",
            "type": "percentage",
            "description": "How many percent should the new feature be active for.",
            "required": false
        },
        {
            "name": "group",
            "type": "string",
            "description": "Group key to use when hasing the userId. Makes sure that the same user get different value for different groups",
            "required": false
        }
    ]
},

Used to update a Strategy definition. Name can't be changed. PS! I can be dangerous to change an implemented strategy as the implementation also might need to be changed

Deprecate strategy

POST: https://unleash.host.com/api/admin/strategies/:name/deprecate

Used to deprecate a strategy definition. This will set the deprecated flag to true. If the strategy is already deprecated, this will be a noop.

Errors

404 NOT FOUND - if :name does not exist

Reactivate strategy

POST: https://unleash.host.com/api/admin/strategies/:name/reactivate

Used to reactivate a deprecated strategy definition. This will set the deprecated flag back to false. If the strategy is not deprecated this is a noop and will still return 200.

Errors

404 NOT FOUND - if :name does not exist