1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00

chore: update import/export documentation

This commit is contained in:
Benjamin Ludewig 2019-03-15 15:39:26 +01:00 committed by Ivar Conradi Østhus
parent a5043424f2
commit 669b8dd435
3 changed files with 153 additions and 11 deletions

136
docs/api/admin/state-api.md Normal file
View File

@ -0,0 +1,136 @@
---
id: state
title: /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`
```yaml
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:**
```json
{
"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
}
]
}
]
}
```

View File

@ -3,12 +3,13 @@ id: import_export
title: Import & Export title: Import & Export
--- ---
_since v3.3.0_
Unleash supports import and export of feature-toggles and strategies at startup and during runtime. The import mechanism will guarantee that all imported features will be non-archived, as well as updates to strategies and features are included in the event history. Unleash supports import and export of feature-toggles and strategies at startup and during runtime. The import mechanism will guarantee that all imported features will be non-archived, as well as updates to strategies and features are included in the event history.
All import mechanisms support a `drop` parameter which will clean the database before import (all strategies and features will be removed).\ All import mechanisms support a `drop` parameter which will clean the database before import (all strategies and features will be removed).
**You should never use this in production environments.**
_since v3.3.0_ > You should never use this in production environments.
## Runtime import & export ## Runtime import & export
@ -27,8 +28,9 @@ unleash.start({...})
}); });
``` ```
If you want the database to be cleaned before import (all strategies and features will be removed), set the `dropBeforeImport` parameter.\ If you want the database to be cleaned before import (all strategies and features will be removed), set the `dropBeforeImport` parameter.
**You should never use this in production environments.**
> You should never use this in production environments.
### API Export ### API Export
@ -53,8 +55,9 @@ For example if you want to download all feature-toggles as yaml:
You can import feature-toggles and strategies by POSTing to the `/api/admin/state/import` endpoint (keep in mind this will require authentication).\ You can import feature-toggles and strategies by POSTing to the `/api/admin/state/import` endpoint (keep in mind this will require authentication).\
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). 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).
If you want the database to be cleaned before import (all strategies and features will be removed), specify a `drop` query parameter.\ If you want the database to be cleaned before import (all strategies and features will be removed), specify a `drop` query parameter.
**You should never use this in production environments.**
> You should never use this in production environments.
Example usage: Example usage:
@ -79,8 +82,9 @@ You can import a json or yaml file via the configuration option `importFile`.
Example usage: `unleash-server --databaseUrl ... --importFile export.yml`. Example usage: `unleash-server --databaseUrl ... --importFile export.yml`.
If you want the database to be cleaned before import (all strategies and features will be removed), specify the `dropBeforeImport` option.\ If you want the database to be cleaned before import (all strategies and features will be removed), specify the `dropBeforeImport` option.
**You should never use this in production environments.**
> You should never use this in production environments.
Example usage: `unleash-server --databaseUrl ... --importFile export.yml --dropBeforeImport`. Example usage: `unleash-server --databaseUrl ... --importFile export.yml --dropBeforeImport`.

View File

@ -13,7 +13,8 @@
"Developer Guide": [ "Developer Guide": [
"developer_guide", "developer_guide",
"database_schema", "database_schema",
"database_backup" "database_backup",
"import_export"
], ],
"Guides": ["guides/google_auth", "guides/custom_activation_strategy"] "Guides": ["guides/google_auth", "guides/custom_activation_strategy"]
}, },
@ -27,7 +28,8 @@
"api/admin/features", "api/admin/features",
"api/admin/strategies", "api/admin/strategies",
"api/admin/metrics", "api/admin/metrics",
"api/admin/events" "api/admin/events",
"api/admin/state"
], ],
"Internal": ["api/internal"] "Internal": ["api/internal"]
} }