mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			136 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: strategies
 | |
| title: /api/admin/strategies
 | |
| ---
 | |
| 
 | |
| > In order to access the admin API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create an ADMIN token](/user_guide/api-token) and add an Authorization header using the token.
 | |
| 
 | |
| ### Fetch Strategies {#fetch-strategies}
 | |
| 
 | |
| `GET: http://unleash.host.com/api/admin/strategies`
 | |
| 
 | |
| Used to fetch all defined strategies and their defined parameters.
 | |
| 
 | |
| **Response**
 | |
| 
 | |
| ```json
 | |
| {
 | |
|   "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 {#create-strategy}
 | |
| 
 | |
| `POST: http://unleash.host.com/api/admin/strategies`
 | |
| 
 | |
| **Body**
 | |
| 
 | |
| ```json
 | |
| {
 | |
|     "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 {#update-strategy}
 | |
| 
 | |
| `PUT: http://unleash.host.com/api/admin/strategies/:name`
 | |
| 
 | |
| **Body**
 | |
| 
 | |
| ```json
 | |
| {
 | |
|     "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 {#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 {#errors}
 | |
| 
 | |
| _404 NOT FOUND_ - if `:name` does not exist
 | |
| 
 | |
| ### Reactivate strategy {#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 {#errors-1}
 | |
| 
 | |
| _404 NOT FOUND_ - if `:name` does not exist
 |