diff --git a/website/docs/how-to/how-to-run-the-unleash-proxy.mdx b/website/docs/how-to/how-to-run-the-unleash-proxy.mdx
index 26819e63aa..a00599edf7 100644
--- a/website/docs/how-to/how-to-run-the-unleash-proxy.mdx
+++ b/website/docs/how-to/how-to-run-the-unleash-proxy.mdx
@@ -10,7 +10,7 @@ Placeholders in the code samples below are delimited by angle brackets (i.e. `
-The `"operator"` property in the code sample can be replaced with [any of the other date and time-based operators](../advanced/strategy-constraints.md#date-and-time-operators) according to your needs.
+The `"operator"` property in the code sample can be replaced with [any of the other date and time-based operators](../reference/strategy-constraints.md#date-and-time-operators) according to your needs.
## Schedule feature releases with custom activation strategies {#custom-activation-strategies}
@@ -68,7 +68,7 @@ To schedule feature releases without using strategy constraints, you can use cus
### Step 1: Define and apply a custom activation strategy
-**Define a strategy** that takes a parameter that tells it when to activate (visit [the custom activation strategy reference documentation](../advanced/custom-activation-strategy.md#definition) for full details on definitions):
+**Define a strategy** that takes a parameter that tells it when to activate (visit [the custom activation strategy reference documentation](../reference/custom-activation-strategies.md#definition) for full details on definitions):
1. Give the strategy a name. We'll use `enableAfter`.
2. Give the strategy a required string parameter where the user can enter the time at which the feature should activate. Be sure to describe the format that the user must adhere to.
diff --git a/website/docs/guides/feature-updates-to-slack.md b/website/docs/how-to/how-to-send-feature-updates-to-slack-deprecated.md
similarity index 95%
rename from website/docs/guides/feature-updates-to-slack.md
rename to website/docs/how-to/how-to-send-feature-updates-to-slack-deprecated.md
index 9e661a1a94..ae7830e47d 100644
--- a/website/docs/guides/feature-updates-to-slack.md
+++ b/website/docs/how-to/how-to-send-feature-updates-to-slack-deprecated.md
@@ -1,11 +1,10 @@
---
-id: feature_updates_to_slack
title: Feature Updates To slack
---
:::caution
-This guide is deprecated. If you're looking for ways to integrate with Slack, you should refer to [the Slack add-on guide](../addons/slack.md) instead.
+This guide is deprecated. If you're looking for ways to integrate with Slack, you should refer to [the Slack add-on guide](../reference/addons/slack.md) instead.
:::
diff --git a/website/docs/how-to/how-to-set-up-group-sso-sync.md b/website/docs/how-to/how-to-set-up-group-sso-sync.md
index 5269707747..55766e354a 100644
--- a/website/docs/how-to/how-to-set-up-group-sso-sync.md
+++ b/website/docs/how-to/how-to-set-up-group-sso-sync.md
@@ -8,7 +8,7 @@ User group syncing is planned to be released in Unleash 4.18 and will be availab
:::
-This guide takes you through how to configure your [user groups](../user_guide/rbac#user-groups) to automatically populate users through Single Sign On (SSO). Refer to [setting up Keycloak for user group sync](../../how-to/how-to-setup-sso-keycloak-group-sync) for an end to end example. Note that the steps below require you to be logged in as an admin user.
+This guide takes you through how to configure your [user groups](../reference/rbac#user-groups) to automatically populate users through Single Sign On (SSO). Refer to [setting up Keycloak for user group sync](../../how-to/how-to-setup-sso-keycloak-group-sync) for an end to end example. Note that the steps below require you to be logged in as an admin user.
## Step 1: Navigate to SSO configuration {#step-1}
@@ -18,7 +18,7 @@ Navigate to the "Single sign-on" configuration page.
## Step 2: Enable Group Syncing {#step-2}
-Turn on "Enable Group Syncing" and enter a value a for "Group Field JSON Path". Refer to the [User group SSO integration documentation](../user_guide/rbac.md#user-group-sso-integration) for more information or to the [how-to guide for integrating with Keycloak](how-to-setup-sso-keycloak-group-sync.md) for a practical example.
+Turn on "Enable Group Syncing" and enter a value a for "Group Field JSON Path". Refer to the [User group SSO integration documentation](../reference/rbac.md#user-group-sso-integration) for more information or to the [how-to guide for integrating with Keycloak](how-to-setup-sso-keycloak-group-sync.md) for a practical example.
The value is the JSON path in the token response where your group properties are located, this is up to your SSO provider, a full example for Keycloak can be [found here](../../how-to/how-to-setup-sso-keycloak-group-sync). Once you're happy, save your configuration.
@@ -40,4 +40,4 @@ Navigate to edit group.
Link as many SSO groups as you like to your group, these names should match the group name or ID sent by your SSO provider exactly. Save your group configuration, the next time a user belonging to one of these groups logs in, they'll be automatically added to this group.
-![The edit group screen with SSO Group input and save highlighted.](/img/setup-sso-group-sync-5.png)
\ No newline at end of file
+![The edit group screen with SSO Group input and save highlighted.](/img/setup-sso-group-sync-5.png)
diff --git a/website/docs/how-to/how-to-use-custom-strategies.md b/website/docs/how-to/how-to-use-custom-strategies.md
index 2d3576b6fc..c52b5b4115 100644
--- a/website/docs/how-to/how-to-use-custom-strategies.md
+++ b/website/docs/how-to/how-to-use-custom-strategies.md
@@ -2,7 +2,7 @@
title: How to use custom activation strategies
---
-This guide takes you through how to use [custom activation strategies](../advanced/custom-activation-strategy.md) with Unleash. We'll go through how you define a custom strategy in the admin UI, how you add it to a toggle, and how you'd implement it in a [client SDK](../sdks/index.md).
+This guide takes you through how to use [custom activation strategies](../reference/custom-activation-strategies.md) with Unleash. We'll go through how you define a custom strategy in the admin UI, how you add it to a toggle, and how you'd implement it in a [client SDK](../reference/sdks/index.md).
In this example we want to define an activation strategy offers a scheduled release of a feature toggle. This means that we want the feature toggle to be activated after a given date and time.
@@ -12,7 +12,7 @@ In this example we want to define an activation strategy offers a scheduled rele
![A visual guide for how to navigate to the strategies page in the Unleash admin UI. It shows the steps described in the preceding paragraph.](/img/custom-strategy-navigation.png)
-2. **Define your strategy**. Use the "Add new strategy" button to open the strategy creation form. Fill in the form to define your strategy. Refer to [the custom strategy reference documentation](../advanced/custom-activation-strategy.md#definition) for a full list of options.
+2. **Define your strategy**. Use the "Add new strategy" button to open the strategy creation form. Fill in the form to define your strategy. Refer to [the custom strategy reference documentation](../reference/custom-activation-strategies.md#definition) for a full list of options.
![A strategy creation form. It has fields labeled "strategy name" — "TimeStamp" — and "description" — "activate toggle after a given timestamp". It also has fields for a parameter named "enableAfter". The parameter is of type "string" and the parameter description is "Expected format: YYYY-MM-DD HH:MM". The parameter is required.](/img/timestamp_create_strategy.png)
@@ -27,11 +27,11 @@ In this example we want to define an activation strategy offers a scheduled rele
The steps to implement a custom strategy for your client depend on the kind of client SDK you're using:
- if you're using a server-side client SDK, follow the steps in [option A](#step-3-a 'Step 3 option A: implement the strategy for a server-side client SDK').
-- if you're using a front-end client SDK ([Android](../sdks/android-proxy.md), [JavaScript](../sdks/proxy-javascript.md), [React](../sdks/proxy-react.md), [iOS](../sdks/proxy-ios.md)), follow the steps in [option B](#step-3-b 'Step 3 option B: implementing the strategy for a front-end client SDK')
+- if you're using a front-end client SDK ([Android](../reference/sdks/android-proxy.md), [JavaScript](../reference/sdks/javascript-browser.md), [React](../reference/sdks/react.md), [iOS](../reference/sdks/ios-proxy.md)), follow the steps in [option B](#step-3-b 'Step 3 option B: implementing the strategy for a front-end client SDK')
### Option A: Implement the strategy for a server-side client SDK {#step-3-a}
-1. **Implement the custom strategy** in your [client SDK](../sdks/index.md). The exact way to do this will vary depending on the specific SDK you're using, so refer to the SDK's documentation. The example below shows an example of how you'd implement a custom strategy called "TimeStamp" for the [Node.js client SDK](../sdks/node.md).
+1. **Implement the custom strategy** in your [client SDK](../reference/sdks/index.md). The exact way to do this will vary depending on the specific SDK you're using, so refer to the SDK's documentation. The example below shows an example of how you'd implement a custom strategy called "TimeStamp" for the [Node.js client SDK](../reference/sdks/node.md).
```js
const { Strategy } = require('unleash-client');
@@ -81,14 +81,14 @@ The steps to implement a custom strategy for your client depend on the kind of c
### Option B: Implement the strategy for a front-end client SDK {#step-3-b}
-Front-end client SDKs don't evaluate strategies directly, so you need to implement the **custom strategy in the [Unleash Proxy](../sdks/unleash-proxy.md)**. Depending on how you run the Unleash Proxy, follow one of the below series of steps:
+Front-end client SDKs don't evaluate strategies directly, so you need to implement the **custom strategy in the [Unleash Proxy](../reference/unleash-proxy.md)**. Depending on how you run the Unleash Proxy, follow one of the below series of steps:
- If you're running the Unleash Proxy as a Docker container, refer to the [steps for using a containerized Proxy](#step-3-b-docker).
- If you're using the Unleash Proxy via Node.js, refer to the [steps for using custom strategies via Node.js](#step-3-b-node).
#### With a containerized proxy {#step-3-b-docker}
-Strategies are stored in separate JavaScript files and loaded into the container at startup. Refer to [the Unleash Proxy documentation](../sdks/unleash-proxy.md) for a full overview of all the options.
+Strategies are stored in separate JavaScript files and loaded into the container at startup. Refer to [the Unleash Proxy documentation](../reference/unleash-proxy.md) for a full overview of all the options.
1. **Create a strategies directory.** Create a directory that Docker has access to where you can store your strategies. The next steps assume you called it `strategies`
2. **Initialize a Node.js project** and **install the Unleash Client**:
diff --git a/website/docs/advanced/api_access.md b/website/docs/how-to/how-to-use-the-admin-api.md
similarity index 77%
rename from website/docs/advanced/api_access.md
rename to website/docs/how-to/how-to-use-the-admin-api.md
index b3dbb0d483..6cefd971c6 100644
--- a/website/docs/advanced/api_access.md
+++ b/website/docs/how-to/how-to-use-the-admin-api.md
@@ -1,5 +1,4 @@
---
-id: api_access
title: How to use the Admin API
---
@@ -7,7 +6,7 @@ It is possible to integrate directly with the Admin API. In this guide we will e
## Step 1: Create API token {#step-1-create-api-token}
-You'll need either an [admin token](../reference/api-tokens-and-client-keys.mdx#admin-tokens) or a [personal access token](../reference/api-tokens-and-client-keys.mdx#personal-access-tokens) for this to work. To create one, follow the steps in the [_how to create API tokens_](../user_guide/token.mdx) guide or the [_how to create personal access tokens_](how-to/how-to-create-personal-access-tokens) guide, respectively.
+You'll need either an [admin token](../reference/api-tokens-and-client-keys.mdx#admin-tokens) or a [personal access token](../reference/api-tokens-and-client-keys.mdx#personal-access-tokens) for this to work. To create one, follow the steps in the [_how to create API tokens_](../how-to/how-to-create-api-tokens.mdx) guide or the [_how to create personal access tokens_](./how-to-create-personal-access-tokens.mdx) guide, respectively.
Please note that it may take up to 60 seconds for the new key to propagate to all Unleash instances due to eager caching.
@@ -21,7 +20,7 @@ If you need an API token to use in a client SDK you should create a "client toke
Now that you have an access token with admin privileges we can use that to perform changes in our Unleash instance.
-In the example below we will use the [Unleash Admin API](../api/admin/features) to enable the “Demo” feature toggle using curl.
+In the example below we will use the [Unleash Admin API](/reference/api/legacy/unleash/admin/features.md) to enable the “Demo” feature toggle using curl.
```sh
curl -X POST -H "Content-Type: application/json" \
@@ -35,4 +34,4 @@ curl -X POST -H "Content-Type: application/json" \
## API overview {#api-overview}
-You can find the full documentation on everything the Unleash API supports in the [Unleash API documentation](../api/admin/features).
+You can find the full documentation on everything the Unleash API supports in the [Unleash API documentation](/reference/api/legacy/unleash/admin/features.md).
diff --git a/website/docs/user_guide/activation-strategies.md b/website/docs/reference/activation-strategies.md
similarity index 87%
rename from website/docs/user_guide/activation-strategies.md
rename to website/docs/reference/activation-strategies.md
index d823b2c166..588804e4a7 100644
--- a/website/docs/user_guide/activation-strategies.md
+++ b/website/docs/reference/activation-strategies.md
@@ -1,13 +1,12 @@
---
-id: activation_strategy
title: Activation Strategies
---
It is powerful to be able to turn a feature on and off instantaneously, without redeploying the application. The next level of control comes when you are able to enable a feature for specific users or enable it for a small subset of users. We achieve this level of control with the help of activation strategies. The most straightforward strategy is the standard strategy, which basically means that the feature should be enabled to everyone.
-Unleash comes with a number of built-in strategies (described below) and also lets you add your own [custom activation strategies](../advanced/custom-activation-strategy.md) if you need more control. However, while activation strategies are _defined_ on the server, the server does not _implement_ the strategies. Instead, activation strategy implementation is done client-side. This means that it is _the client_ that decides whether a feature should be enabled or not.
+Unleash comes with a number of built-in strategies (described below) and also lets you add your own [custom activation strategies](../reference/custom-activation-strategies.md) if you need more control. However, while activation strategies are _defined_ on the server, the server does not _implement_ the strategies. Instead, activation strategy implementation is done client-side. This means that it is _the client_ that decides whether a feature should be enabled or not.
-All [server-side client SDKs](../sdks/index.md#server-side-sdks) and the [Unleash Proxy](../sdks/unleash-proxy.md) implement the default strategies (and allow you to add your own [custom strategy implementations](../advanced/custom-activation-strategy.md#implementation)). The [front-end client SDKs](../sdks/index.md#front-end-sdks) do not do the evaluation themselves, instead relying on the [Unleash Proxy](../sdks/unleash-proxy.md) to take care of the implementation and evaluation.
+All [server-side client SDKs](../reference/sdks/index.md#server-side-sdks) and the [Unleash Proxy](../reference/unleash-proxy.md) implement the default strategies (and allow you to add your own [custom strategy implementations](../reference/custom-activation-strategies.md#implementation)). The [front-end client SDKs](../reference/sdks/index.md#front-end-sdks) do not do the evaluation themselves, instead relying on the [Unleash Proxy](../reference/unleash-proxy.md) to take care of the implementation and evaluation.
Some activation strategies require the client to provide the current [Unleash context](unleash-context.md) to the toggle evaluation function for the evaluation to be done correctly.
@@ -60,7 +59,7 @@ This strategy has the following modelling name in the code:
### Custom stickiness (beta) {#custom-stickiness}
:::note
-This feature is currently in beta and is not yet supported by all our SDKs. Check out the [SDK compatibility table](../sdks/index.md#server-side-sdk-compatibility-table) to see what SDKs support it at the moment.
+This feature is currently in beta and is not yet supported by all our SDKs. Check out the [SDK compatibility table](../reference/sdks/index.md#server-side-sdk-compatibility-table) to see what SDKs support it at the moment.
:::
diff --git a/website/docs/addons/addons.md b/website/docs/reference/addons/addons.md
similarity index 100%
rename from website/docs/addons/addons.md
rename to website/docs/reference/addons/addons.md
diff --git a/website/docs/addons/datadog.md b/website/docs/reference/addons/datadog.md
similarity index 100%
rename from website/docs/addons/datadog.md
rename to website/docs/reference/addons/datadog.md
diff --git a/website/docs/addons/slack.md b/website/docs/reference/addons/slack.md
similarity index 100%
rename from website/docs/addons/slack.md
rename to website/docs/reference/addons/slack.md
diff --git a/website/docs/addons/teams.md b/website/docs/reference/addons/teams.md
similarity index 100%
rename from website/docs/addons/teams.md
rename to website/docs/reference/addons/teams.md
diff --git a/website/docs/addons/webhook.md b/website/docs/reference/addons/webhook.md
similarity index 93%
rename from website/docs/addons/webhook.md
rename to website/docs/reference/addons/webhook.md
index a026a20623..f31b3c41e4 100644
--- a/website/docs/addons/webhook.md
+++ b/website/docs/reference/addons/webhook.md
@@ -39,7 +39,7 @@ Unleash Webhook addon takes the following parameters.
**Content-Type** Used to set the content-type header used when unleash performs an HTTP POST to the defined endpoint.
-**Body template** Used to override the body template used by Unleash when performing the HTTP POST. You may format you message using a [Mustache template](https://mustache.github.io). You will have the [Unleash event format](/api/admin/events) available in the rendering context.
+**Body template** Used to override the body template used by Unleash when performing the HTTP POST. You may format you message using a [Mustache template](https://mustache.github.io). You will have the [Unleash event format](/reference/api/legacy/unleash/admin/events) available in the rendering context.
Example:
@@ -52,7 +52,7 @@ Example:
}
```
-If you don't specify anything Unleash will use the [Unleash event format](/api/admin/events).
+If you don't specify anything Unleash will use the [Unleash event format](/reference/api/legacy/unleash/admin/events).
#### Custom SSL certificates {#certificates}
diff --git a/website/docs/reference/api-tokens-and-client-keys.mdx b/website/docs/reference/api-tokens-and-client-keys.mdx
index 14c77fcf8c..d000df93a6 100644
--- a/website/docs/reference/api-tokens-and-client-keys.mdx
+++ b/website/docs/reference/api-tokens-and-client-keys.mdx
@@ -2,7 +2,7 @@
title: API tokens and client keys
---
-For Unleash to be of any use, it requires at least a server and a [consuming client](../sdks/index.md). More advanced use cases may call for multiple clients, automated feature toggle updates, the [Unleash proxy](../sdks/unleash-proxy.md) and [Unleash proxy clients](../sdks/index.md#front-end-sdks), and more. To facilitate communication between all these moving parts, Unleash uses a system of API tokens and client keys, all with a specific purpose in mind.
+For Unleash to be of any use, it requires at least a server and a [consuming client](../reference/sdks/index.md). More advanced use cases may call for multiple clients, automated feature toggle updates, the [Unleash proxy](../reference/unleash-proxy.md) and [Unleash proxy clients](../reference/sdks/index.md#front-end-sdks), and more. To facilitate communication between all these moving parts, Unleash uses a system of API tokens and client keys, all with a specific purpose in mind.
This document details the three kinds of tokens and keys that you will need to fully connect any Unleash system:
@@ -14,7 +14,7 @@ This document details the three kinds of tokens and keys that you will need to f
:::tip
-This section describes what API tokens are. For information on how to create them, refer to the [how-to guide for creating API tokens](../user_guide/token.mdx).
+This section describes what API tokens are. For information on how to create them, refer to the [how-to guide for creating API tokens](../how-to/how-to-create-api-tokens.mdx).
:::
@@ -42,7 +42,7 @@ Personal access tokens follow their own special format, and only contain an opti
### Admin tokens
-**Admin tokens** grant _full read and write access_ to all resources in the Unleash server API. Admin tokens have access to all projects, all environments, and all global resources (find out more about [resources in the RBAC document](../user_guide/rbac.md#core-principles)).
+**Admin tokens** grant _full read and write access_ to all resources in the Unleash server API. Admin tokens have access to all projects, all environments, and all global resources (find out more about [resources in the RBAC document](../reference/rbac.md#core-principles)).
Use admin tokens to:
@@ -51,7 +51,7 @@ Use admin tokens to:
Do **not** use admin tokens for:
-- [Client SDKs](../sdks/index.md): You will _not_ be able to read toggle data from multiple environments. Use [client tokens](#client-tokens) instead.
+- [Client SDKs](../reference/sdks/index.md): You will _not_ be able to read toggle data from multiple environments. Use [client tokens](#client-tokens) instead.
Support for scoped admin tokens with more fine-grained permissions is currently in the planning stage.
@@ -76,12 +76,12 @@ It is possible to set a token's expiration date to **never**. However, a token t
Do **not** use personal access tokens for:
-- [Client SDKs](../sdks/index.md): You will _not_ be able to read toggle data from multiple environments. Use [client tokens](#client-tokens) instead.
+- [Client SDKs](../reference/sdks/index.md): You will _not_ be able to read toggle data from multiple environments. Use [client tokens](#client-tokens) instead.
- Write custom Unleash UIs: Personal access tokens may expire and their permissions may change. It's better to use [admin tokens](#admin-tokens) tokens instead.
### Client tokens
-**Client tokens** are intended for use in [server-side client SDKs](../sdks/index.md#server-side-sdks) (including the Unleash Proxy) and grant the user permissions to:
+**Client tokens** are intended for use in [server-side client SDKs](../reference/sdks/index.md#server-side-sdks) (including the Unleash Proxy) and grant the user permissions to:
- Read feature toggle information
- Register applications with the Unleash server
@@ -93,18 +93,18 @@ Each client token is only **valid for a single environment**.
Use client tokens:
-- In [server-side client SDKs](../sdks/index.md#server-side-sdks)
-- To connect [the Unleash Proxy](../sdks/unleash-proxy.md) to the Unleash API
+- In [server-side client SDKs](../reference/sdks/index.md#server-side-sdks)
+- To connect [the Unleash Proxy](../reference/unleash-proxy.md) to the Unleash API
Do **not** use client tokens in:
-- [Front-end SDKs](../sdks/index.md#front-end-sdks). You will _not_ be able to connect to the Unleash server due to CORS restrictions. To connect front-end SDKs, choose one of the following options:
+- [Front-end SDKs](../reference/sdks/index.md#front-end-sdks). You will _not_ be able to connect to the Unleash server due to CORS restrictions. To connect front-end SDKs, choose one of the following options:
- Enable the [Unleash front-end API](./front-end-api.md) and create a [front-end token](#front-end-tokens).
-- Configure an [Unleash Proxy](../sdks/unleash-proxy.md) and use [Proxy client keys](#proxy-client-keys).
+- Configure an [Unleash Proxy](../reference/unleash-proxy.md) and use [Proxy client keys](#proxy-client-keys).
### Front-end tokens
-**Front-end tokens** are used with [front-end SDKs](../sdks/index.md#front-end-sdks) when used with the [Unleash front-end API](./front-end-api.md). They grant the user permission to:
+**Front-end tokens** are used with [front-end SDKs](../reference/sdks/index.md#front-end-sdks) when used with the [Unleash front-end API](./front-end-api.md). They grant the user permission to:
- Read the enabled toggled for a given context
- Register applications with the Unleash server
@@ -116,15 +116,15 @@ Each front-end token is only **valid for a single environment**.
Use front-end tokens in:
-- [Front-end SDKs (also known as _proxy clients_)](../sdks/index.md#front-end-sdks).
+- [Front-end SDKs (also known as _proxy clients_)](../reference/sdks/index.md#front-end-sdks).
Do **not** use front-end tokens in:
-- [Server-side SDKs](../sdks/index.md#server-side-sdks). The format is different, so they won't work correctly.
+- [Server-side SDKs](../reference/sdks/index.md#server-side-sdks). The format is different, so they won't work correctly.
### Format
-API tokens come in one of two formats. When we introduced [environments](../user_guide/environments.md) in Unleash 4.3, we updated the format of the tokens to provide more human-readable information to the user. Both formats are still valid (you don't need to update a working token of the old format) and are described below.
+API tokens come in one of two formats. When we introduced [environments](./environments.md) in Unleash 4.3, we updated the format of the tokens to provide more human-readable information to the user. Both formats are still valid (you don't need to update a working token of the old format) and are described below.
#### Version 1
@@ -177,13 +177,13 @@ Some example client tokens are:
## Proxy client keys {#proxy-client-keys}
-Use proxy client keys to connect [Proxy client SDKs (front-end SDKs)](../sdks/index.md#front-end-sdks) to the [Unleash Proxy](../sdks/unleash-proxy.md). As opposed to the [API tokens](#api-tokens), Proxy client keys are _not_ considered secret and are safe to use on any clients (refer to the [the proxy documentation for more about privacy](../sdks/unleash-proxy.md#we-care-about-privacy)). They do _not_ let you connect to the Unleash server API.
+Use proxy client keys to connect [Proxy client SDKs (front-end SDKs)](../reference/sdks/index.md#front-end-sdks) to the [Unleash Proxy](../reference/unleash-proxy.md). As opposed to the [API tokens](#api-tokens), Proxy client keys are _not_ considered secret and are safe to use on any clients (refer to the [the proxy documentation for more about privacy](../reference/unleash-proxy.md#we-care-about-privacy)). They do _not_ let you connect to the Unleash server API.
Proxy client keys are arbitrary strings that you _must_ provide the Unleash proxy with on startup. They can be whatever you want and you **create them yourself**.
:::info Creating proxy client keys
-To designate a string as a proxy client key, add it to the `clientKeys` list when starting the proxy, as mentioned in the [_configuration_ section of the Unleash proxy documentation](../sdks/unleash-proxy.md#configuration). Connecting clients should then specify the same string as their client key.
+To designate a string as a proxy client key, add it to the `clientKeys` list when starting the proxy, as mentioned in the [_configuration_ section of the Unleash proxy documentation](../reference/unleash-proxy.md#configuration). Connecting clients should then specify the same string as their client key.
:::
@@ -191,7 +191,7 @@ Unleash does not generate proxy client keys for you. Because of this, they have
Use Proxy client keys to:
-- Connect [Proxy client SDKs](../sdks/index.md#front-end-sdks) to the [Unleash Proxy](../sdks/unleash-proxy.md)
+- Connect [Proxy client SDKs](../reference/sdks/index.md#front-end-sdks) to the [Unleash Proxy](../reference/unleash-proxy.md)
- Connect your own custom Proxy clients (or pure HTTP requests) to the Unleash Proxy
Do **not** use Proxy client keys to:
diff --git a/website/docs/api/admin/addons.md b/website/docs/reference/api/legacy/unleash/admin/addons.md
similarity index 96%
rename from website/docs/api/admin/addons.md
rename to website/docs/reference/api/legacy/unleash/admin/addons.md
index 1e68a31e08..5682893ecc 100644
--- a/website/docs/api/admin/addons.md
+++ b/website/docs/reference/api/legacy/unleash/admin/addons.md
@@ -1,9 +1,8 @@
---
-id: addons
title: /api/admin/addons
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### List addons and providers {#list-addons-and-providers}
diff --git a/website/docs/api/admin/feature-toggles-archive-api.md b/website/docs/reference/api/legacy/unleash/admin/archive.md
similarity index 83%
rename from website/docs/api/admin/feature-toggles-archive-api.md
rename to website/docs/reference/api/legacy/unleash/admin/archive.md
index 9f3eb02ed1..fe87d83df7 100644
--- a/website/docs/api/admin/feature-toggles-archive-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/archive.md
@@ -1,9 +1,8 @@
---
-id: features-archive
title: /api/admin/archive
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### Fetch archived toggles {#fetch-archived-toggles}
@@ -35,10 +34,10 @@ Used to fetch list of archived feature toggles
`POST http://unleash.host.com/api/admin/archive/revive/:featureName`
-Response: **200 OK** - When feature toggle was successfully revived.
+Response: **200 OK** - When feature toggle was successfully revived.
### Delete an archived feature toggle
`DELETE http://unleash.host.com/api/admin/archive/:featureName`
-Will fully remove the feature toggle and associated configuration. Impossible to restore after this action.
+Will fully remove the feature toggle and associated configuration. Impossible to restore after this action.
diff --git a/website/docs/api/admin/context.md b/website/docs/reference/api/legacy/unleash/admin/context.md
similarity index 95%
rename from website/docs/api/admin/context.md
rename to website/docs/reference/api/legacy/unleash/admin/context.md
index ab84c980b4..7a47978f7a 100644
--- a/website/docs/api/admin/context.md
+++ b/website/docs/reference/api/legacy/unleash/admin/context.md
@@ -1,9 +1,8 @@
---
-id: context
title: /api/admin/context
---
-> The context feature is only available as part of Unleash Enterprise. In order to access the API programmatically you need to make sure you [obtain a API token](/user_guide/api-token) with admin permissions.
+> The context feature is only available as part of Unleash Enterprise. In order to access the API programmatically you need to make sure you [obtain a API token](/how-to/how-to-create-api-tokens) with admin permissions.
### List context fields defined in Unleash {#list-context-fields-defined-in-unleash}
diff --git a/website/docs/api/admin/events-api.md b/website/docs/reference/api/legacy/unleash/admin/events.md
similarity index 99%
rename from website/docs/api/admin/events-api.md
rename to website/docs/reference/api/legacy/unleash/admin/events.md
index 88e680ddf8..13a500c408 100644
--- a/website/docs/api/admin/events-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/events.md
@@ -1,5 +1,4 @@
---
-id: events
title: /api/admin/events
---
@@ -7,7 +6,7 @@ import ApiRequest from '@site/src/components/ApiRequest'
:::note
-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.
+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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
:::
diff --git a/website/docs/api/admin/feature-types-api.md b/website/docs/reference/api/legacy/unleash/admin/feature-types.md
similarity index 91%
rename from website/docs/api/admin/feature-types-api.md
rename to website/docs/reference/api/legacy/unleash/admin/feature-types.md
index 44a887bedf..c6ed58bcec 100644
--- a/website/docs/api/admin/feature-types-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/feature-types.md
@@ -3,7 +3,7 @@ id: feature-types
title: /api/admin/feature-types
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
# Feature Types API
diff --git a/website/docs/api/admin/feature-toggles-api-v2.md b/website/docs/reference/api/legacy/unleash/admin/features-v2.md
similarity index 98%
rename from website/docs/api/admin/feature-toggles-api-v2.md
rename to website/docs/reference/api/legacy/unleash/admin/features-v2.md
index 329274cb7f..721cc621ed 100644
--- a/website/docs/api/admin/feature-toggles-api-v2.md
+++ b/website/docs/reference/api/legacy/unleash/admin/features-v2.md
@@ -1,11 +1,10 @@
---
-id: feature-toggles-v2
title: /api/admin/projects/:projectId
---
import ApiRequest from '@site/src/components/ApiRequest'
:::info
-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.
+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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
:::
@@ -172,8 +171,8 @@ This endpoint accepts the following toggle options:
|------------------|----------|--------------------------------------------------------------------------------------------------------------|-------------------------|
| `name` | Yes | The name of the feature toggle. | `"my-feature-toggle"` |
| `description` | No | The feature toggle's description. Defaults to an empty string. | `"Turn my feature on!"` |
-| `impressionData` | No | Whether to enable [impression data](../../advanced/impression-data.md) for this toggle. Defaults to `false.` | `true` |
-| `type` | No | The [type of toggle](../../advanced/feature-toggle-types.md) you want to create. Defaults to `"release"` | `"release"` |
+| `impressionData` | No | Whether to enable [impression data](/reference/impression-data.md) for this toggle. Defaults to `false.` | `true` |
+| `type` | No | The [type of toggle](/reference/feature-toggle-types.md) you want to create. Defaults to `"release"` | `"release"` |
**Example Query**
diff --git a/website/docs/api/admin/feature-toggles-api.md b/website/docs/reference/api/legacy/unleash/admin/features.md
similarity index 87%
rename from website/docs/api/admin/feature-toggles-api.md
rename to website/docs/reference/api/legacy/unleash/admin/features.md
index 04f4d09411..75df9eb3ae 100644
--- a/website/docs/api/admin/feature-toggles-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/features.md
@@ -1,22 +1,21 @@
---
-id: features
title: /api/admin/features
---
:::caution Deprecation notice
-Most of this API was deprecated as part of the v4.3 release and will be removed in v5.0. You should use [the project-based API (/api/admin/projects/:projectId)](./feature-toggles-api-v2.md) instead. The deprecated endpoints are marked as such in the document below.
+Most of this API was deprecated as part of the v4.3 release and will be removed in v5.0. You should use [the project-based API (/api/admin/projects/:projectId)](/reference/api/legacy/unleash/admin/features-v2.md) instead. The deprecated endpoints are marked as such in the document below.
:::
:::info
-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.
+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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
:::
## Fetching Feature Toggles {#fetching-feature-toggles}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to fetch all toggles](./feature-toggles-api-v2.md#fetching-toggles) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to fetch all toggles](/reference/api/legacy/unleash/admin/features-v2.md#fetching-toggles) instead.
:::
`GET: http://unleash.host.com/api/admin/features`
@@ -108,7 +107,7 @@ Response format is the same as `api/admin/features`
## Fetch specific feature toggle {#fetch-specific-feature-toggle}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to fetch specific toggles](./feature-toggles-api-v2.md#get-toggle) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to fetch specific toggles](/reference/api/legacy/unleash/admin/features-v2.md#get-toggle) instead.
:::
`GET: http://unleash.host.com/api/admin/features/:featureName`
@@ -136,7 +135,7 @@ Used to fetch details about a specific featureToggle. This is mostly provded to
## Create a new Feature Toggle {#create-a-new-feature-toggle}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to create feature toggles](./feature-toggles-api-v2.md#create-toggle) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to create feature toggles](/reference/api/legacy/unleash/admin/features-v2.md#create-toggle) instead.
:::
@@ -172,7 +171,7 @@ Returns 200-response if the feature toggle was created successfully.
## Update a Feature Toggle {#update-a-feature-toggle}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to update a feature toggle](./feature-toggles-api-v2.md#update-toggle) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to update a feature toggle](/reference/api/legacy/unleash/admin/features-v2.md#update-toggle) instead.
:::
@@ -245,7 +244,7 @@ Removes the specified tag from the `(type, value)` tuple from the Feature Toggle
## Archive a Feature Toggle {#archive-a-feature-toggle}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to archive toggles](./feature-toggles-api-v2.md#archive-toggle) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to archive toggles](/reference/api/legacy/unleash/admin/features-v2.md#archive-toggle) instead.
:::
@@ -256,7 +255,7 @@ Used to archive a feature toggle. A feature toggle can never be totally be delet
## Enable a Feature Toggle {#enable-a-feature-toggle}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to enable feature toggles](./feature-toggles-api-v2.md#enable-env) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to enable feature toggles](/reference/api/legacy/unleash/admin/features-v2.md#enable-env) instead.
:::
@@ -290,7 +289,7 @@ None
## Disable a Feature Toggle {#disable-a-feature-toggle}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to disable feature toggles](./feature-toggles-api-v2.md#disable-env) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to disable feature toggles](/reference/api/legacy/unleash/admin/features-v2.md#disable-env) instead.
:::
`POST: http://unleash.host.com/api/admin/features/:featureName/toggle/off`
@@ -324,7 +323,7 @@ None
## Mark a Feature Toggle as "stale" {#mark-a-feature-toggle-as-stale}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to patch a feature toggle and mark it as stale](./feature-toggles-api-v2.md#patch-toggle) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to patch a feature toggle and mark it as stale](/reference/api/legacy/unleash/admin/features-v2.md#patch-toggle) instead.
:::
@@ -359,7 +358,7 @@ None
## Mark a Feature Toggle as "active" {#mark-a-feature-toggle-as-active}
:::caution Deprecation notice
-This endpoint is deprecated. Please use the [project-based endpoint to patch a feature toggle and mark it as not stale](./feature-toggles-api-v2.md#patch-toggle) instead.
+This endpoint is deprecated. Please use the [project-based endpoint to patch a feature toggle and mark it as not stale](/reference/api/legacy/unleash/admin/features-v2.md#patch-toggle) instead.
:::
`POST: http://unleash.host.com/api/admin/features/:featureName/stale/off`
diff --git a/website/docs/api/admin/metrics-api.md b/website/docs/reference/api/legacy/unleash/admin/metrics.md
similarity index 97%
rename from website/docs/api/admin/metrics-api.md
rename to website/docs/reference/api/legacy/unleash/admin/metrics.md
index d432ba6fc4..86217e9e38 100644
--- a/website/docs/api/admin/metrics-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/metrics.md
@@ -3,7 +3,7 @@ id: metrics
title: /api/admin/metrics
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
# This document describes the metrics endpoint for admin ui
diff --git a/website/docs/api/admin/project.md b/website/docs/reference/api/legacy/unleash/admin/projects.md
similarity index 93%
rename from website/docs/api/admin/project.md
rename to website/docs/reference/api/legacy/unleash/admin/projects.md
index aefb788b7b..d003e65e82 100644
--- a/website/docs/api/admin/project.md
+++ b/website/docs/reference/api/legacy/unleash/admin/projects.md
@@ -1,9 +1,8 @@
---
-id: projects
title: /api/admin/projects
---
-> The context feature is only available as part of Unleash Enterprise. In order to access the API programmatically you need to make sure you [obtain an API token](/user_guide/api-token) with admin permissions.
+> The context feature is only available as part of Unleash Enterprise. In order to access the API programmatically you need to make sure you [obtain an API token](/how-to/how-to-create-api-tokens) with admin permissions.
### List projects in Unleash {#list-projects-in-unleash}
diff --git a/website/docs/api/admin/segments.mdx b/website/docs/reference/api/legacy/unleash/admin/segments.mdx
similarity index 95%
rename from website/docs/api/admin/segments.mdx
rename to website/docs/reference/api/legacy/unleash/admin/segments.mdx
index ff9dd19b8c..b80997a354 100644
--- a/website/docs/api/admin/segments.mdx
+++ b/website/docs/reference/api/legacy/unleash/admin/segments.mdx
@@ -12,11 +12,11 @@ Segments are available to Unleash Pro and Unleash Enterprise users since **Unlea
:::note
-To use the admin API, you'll need to [create and use an admin API token](../../user_guide/token.mdx).
+To use the admin API, you'll need to [create and use an admin API token](/how-to/how-to-create-api-tokens.mdx).
:::
-The segments API lets you create, read, update, and delete [segments](../../reference/segments.mdx).
+The segments API lets you create, read, update, and delete [segments](/reference/segments.mdx).
## Get all segments
@@ -330,18 +330,18 @@ This section describes the data objects returned by the endpoints in the segment
:::note `values` and `value`
-Some constraint operators only support single values. If a constraint uses one of these operators, the payload will contain a `value` property with the correct value. However, for backwards compatibility reasons, the payload will *also* contain a `values` property. If the operator accepts multiple values, the `value` property will not be present. Visit the [strategy constraints documentation](../../advanced/strategy-constraints.md) for more information on what operators support what number of values.
+Some constraint operators only support single values. If a constraint uses one of these operators, the payload will contain a `value` property with the correct value. However, for backwards compatibility reasons, the payload will *also* contain a `values` property. If the operator accepts multiple values, the `value` property will not be present. Visit the [strategy constraints documentation](/reference/strategy-constraints.md) for more information on what operators support what number of values.
:::
| Property | Type | Required | Description | Example value |
|-------------------|-----------------------------------------------------------------------------------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| `contextName` | string | Yes | The name of the context field targeted by the constraint. | `"myContextField"` |
-| `operator` | string, the name of one of the [constraint operators](../../advanced/strategy-constraints.md) | Yes | The operator to apply to the context field. | `"DATE_BEFORE"` |
+| `operator` | string, the name of one of the [constraint operators](/reference/strategy-constraints.md) | Yes | The operator to apply to the context field. | `"DATE_BEFORE"` |
| `values` | a list of strings | Yes | The list of values to apply the constraint operator to. | `["value a", "value b"]` |
| `value` | string | No | The value to apply the constraint operator to. | `"15"` |
-| `inverted` | boolean | No | Whether the result of [the constraint will be negated or not](../../advanced/strategy-constraints.md#constraint-negation). | `false` |
-| `caseInsensitive` | boolean string | No | Whether the constraint operator is case sensitive or not. Only [applies to some string-based operators](../../advanced/strategy-constraints.md#string-operators). | `false` |
+| `inverted` | boolean | No | Whether the result of [the constraint will be negated or not](/reference/strategy-constraints.md#constraint-negation). | `false` |
+| `caseInsensitive` | boolean string | No | Whether the constraint operator is case sensitive or not. Only [applies to some string-based operators](/reference/strategy-constraints.md#string-operators). | `false` |
### Activation strategy {#activation-strategy-type-description}
diff --git a/website/docs/api/admin/state-api.md b/website/docs/reference/api/legacy/unleash/admin/state.md
similarity index 96%
rename from website/docs/api/admin/state-api.md
rename to website/docs/reference/api/legacy/unleash/admin/state.md
index 39cf473592..172e68f51f 100644
--- a/website/docs/api/admin/state-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/state.md
@@ -3,7 +3,7 @@ id: state
title: /api/admin/state
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### Export Feature Toggles & Strategies {#export-feature-toggles--strategies}
diff --git a/website/docs/api/admin/strategies-api.md b/website/docs/reference/api/legacy/unleash/admin/strategies.md
similarity index 96%
rename from website/docs/api/admin/strategies-api.md
rename to website/docs/reference/api/legacy/unleash/admin/strategies.md
index 2dec9371c6..197aca6c40 100644
--- a/website/docs/api/admin/strategies-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/strategies.md
@@ -1,9 +1,8 @@
---
-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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### Fetch Strategies {#fetch-strategies}
diff --git a/website/docs/api/admin/tags-api.md b/website/docs/reference/api/legacy/unleash/admin/tags.md
similarity index 97%
rename from website/docs/api/admin/tags-api.md
rename to website/docs/reference/api/legacy/unleash/admin/tags.md
index c076f5f5fb..03f61e14e7 100644
--- a/website/docs/api/admin/tags-api.md
+++ b/website/docs/reference/api/legacy/unleash/admin/tags.md
@@ -3,7 +3,7 @@ id: tags
title: /api/admin/tags
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### Create a new tag {#create-a-new-tag}
diff --git a/website/docs/api/admin/user-admin.md b/website/docs/reference/api/legacy/unleash/admin/user-admin.md
similarity index 98%
rename from website/docs/api/admin/user-admin.md
rename to website/docs/reference/api/legacy/unleash/admin/user-admin.md
index e85a8d8067..0894c12fc5 100644
--- a/website/docs/api/admin/user-admin.md
+++ b/website/docs/reference/api/legacy/unleash/admin/user-admin.md
@@ -1,9 +1,8 @@
---
-id: user-admin
title: /api/admin/user-admin
---
-> 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.
+> 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](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### List all users {#list-all-users}
diff --git a/website/docs/api/basic-auth.md b/website/docs/reference/api/legacy/unleash/basic-auth.md
similarity index 96%
rename from website/docs/api/basic-auth.md
rename to website/docs/reference/api/legacy/unleash/basic-auth.md
index 7eca0d5b49..8768efb9a9 100644
--- a/website/docs/api/basic-auth.md
+++ b/website/docs/reference/api/legacy/unleash/basic-auth.md
@@ -1,5 +1,4 @@
---
-id: basic-auth
title: Basic Auth
---
diff --git a/website/docs/api/client/feature-toggles-api.md b/website/docs/reference/api/legacy/unleash/client/features.md
similarity index 91%
rename from website/docs/api/client/feature-toggles-api.md
rename to website/docs/reference/api/legacy/unleash/client/features.md
index 90213156e1..3c616adbc5 100644
--- a/website/docs/api/client/feature-toggles-api.md
+++ b/website/docs/reference/api/legacy/unleash/client/features.md
@@ -1,9 +1,8 @@
---
-id: features
title: /api/client/features
---
-> In order to access the client API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create a CLIENT token](/user_guide/api-token) and add an Authorization header using the token.
+> In order to access the client API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create a CLIENT token](/how-to/how-to-create-api-tokens.mdx) and add an Authorization header using the token.
### Fetching Feature Toggles {#fetching-feature-toggles}
@@ -121,7 +120,7 @@ Before Unleash 4.16, strategy constraints were only available to Unleash Pro and
:::
-Strategy definitions may also contain a `constraints` property. Strategy constraints is a feature in Unleash which work on context fields, which is defined as part of the [Unleash Context](../../user_guide/unleash-context.md). The purpose is to define a set of rules where all needs to be satisfied in order for the activation strategy to evaluate to true. A [high level description](https://www.unleash-hosted.com/articles/strategy-constraints) of it is available online.
+Strategy definitions may also contain a `constraints` property. Strategy constraints is a feature in Unleash which work on context fields, which is defined as part of the [Unleash Context](/reference/unleash-context.md). The purpose is to define a set of rules where all needs to be satisfied in order for the activation strategy to evaluate to true. A [high level description](https://www.unleash-hosted.com/articles/strategy-constraints) of it is available online.
**Example response:**
@@ -164,7 +163,7 @@ In the example `environment` needs to be `production` AND `userId` must be eithe
### Variants {#variants}
-All feature toggles can also take an array of variants. You can read more about [feature toggle variants](/advanced/toggle_variants).
+All feature toggles can also take an array of variants. You can read more about [feature toggle variants](/reference/feature-toggle-variants).
```json
{
diff --git a/website/docs/api/client/metrics-api.md b/website/docs/reference/api/legacy/unleash/client/metrics.md
similarity index 83%
rename from website/docs/api/client/metrics-api.md
rename to website/docs/reference/api/legacy/unleash/client/metrics.md
index 3e67ca3909..0ee9378a99 100644
--- a/website/docs/api/client/metrics-api.md
+++ b/website/docs/reference/api/legacy/unleash/client/metrics.md
@@ -3,7 +3,7 @@ id: metrics
title: /api/client/metrics
---
-> In order to access the client API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create a CLIENT token](/user_guide/api-token) and add an Authorization header using the token.
+> In order to access the client API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create a CLIENT token](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### Send metrics {#send-metrics}
diff --git a/website/docs/api/client/register-api.md b/website/docs/reference/api/legacy/unleash/client/register.md
similarity index 90%
rename from website/docs/api/client/register-api.md
rename to website/docs/reference/api/legacy/unleash/client/register.md
index a4842a52e6..d47e97950e 100644
--- a/website/docs/api/client/register-api.md
+++ b/website/docs/reference/api/legacy/unleash/client/register.md
@@ -3,7 +3,7 @@ id: register
title: /api/client/register
---
-> In order to access the client API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create a CLIENT token](/user_guide/api-token) and add an Authorization header using the token.
+> In order to access the client API endpoints you need to identify yourself. Unless you're using the `none` authentication method, you'll need to [create a CLIENT token](/how-to/how-to-create-api-tokens) and add an Authorization header using the token.
### Client registration {#client-registration}
diff --git a/website/docs/api/index.md b/website/docs/reference/api/legacy/unleash/index.md
similarity index 50%
rename from website/docs/api/index.md
rename to website/docs/reference/api/legacy/unleash/index.md
index 2a595a736f..8ddcb4cf30 100644
--- a/website/docs/api/index.md
+++ b/website/docs/reference/api/legacy/unleash/index.md
@@ -1,37 +1,36 @@
---
id: index
title: API Documentation
-slug: /api
---
## Client API {#client-api}
This describes the API provided to unleash-clients.
-Since v4.0.0 all operations require an [API token](/user_guide/api-token) with `Client` level access.
+Since v4.0.0 all operations require an [API token](/how-to/how-to-create-api-tokens.mdx) with `Client` level access.
With versions earlier than v4.0.0 and `insecure` authentication no authentication is required.
-- [Feature Toggles API](/api/client/features)
-- [Register API](/api/client/register)
-- [Metrics API](/api/client/metrics)
+- [Feature Toggles API](./client/features.md)
+- [Register API](./client/register.md)
+- [Metrics API](./client/metrics.md)
## Admin API (internal) {#admin-api-internal}
-The internal API used by the Admin UI (unleash-frontend). Since v4.0.0 all operations require an [API token](/user_guide/api-token) with `Admin` level access:
+The internal API used by the Admin UI (unleash-frontend). Since v4.0.0 all operations require an [API token](/how-to/how-to-create-api-tokens) with `Admin` level access:
With versions earlier than v4.0.0 and `insecure` authentication Basic Auth (with curl `-u myemail@test.com:`) is enough.
-- [Events API](/api/admin/events-api.md)
-- [Feature Toggles API](/api/admin/feature-toggles-api.md)
-- [Metrics API](/api/admin/metrics-api.md)
-- [Project API](/api/admin/project.md)
-- [Strategies API](/api/admin/strategies-api.md)
-- [Tags API](/api/admin/tags-api.md)
+- [Events API](./admin/events.md)
+- [Feature Toggles API](./admin/features.md)
+- [Metrics API](./admin/metrics.md)
+- [Project API](./admin/projects.md)
+- [Strategies API](./admin/strategies.md)
+- [Tags API](./admin/tags.md)
## System API's {#system-apis}
-- [Internal Backstage API](/api/internal/internal)
+- [Internal Backstage Prometheus API](./internal/prometheus.md)
### Content-Type {#contenttype}
diff --git a/website/docs/api/internal/health.md b/website/docs/reference/api/legacy/unleash/internal/health.md
similarity index 97%
rename from website/docs/api/internal/health.md
rename to website/docs/reference/api/legacy/unleash/internal/health.md
index 22e154372c..8711da6042 100644
--- a/website/docs/api/internal/health.md
+++ b/website/docs/reference/api/legacy/unleash/internal/health.md
@@ -1,5 +1,4 @@
---
-id: health
title: /health
---
diff --git a/website/docs/api/internal/internal-backstage-api.md b/website/docs/reference/api/legacy/unleash/internal/prometheus.md
similarity index 95%
rename from website/docs/api/internal/internal-backstage-api.md
rename to website/docs/reference/api/legacy/unleash/internal/prometheus.md
index 8928be4e6b..b320b0a036 100644
--- a/website/docs/api/internal/internal-backstage-api.md
+++ b/website/docs/reference/api/legacy/unleash/internal/prometheus.md
@@ -1,5 +1,4 @@
---
-id: internal
title: /internal-backstage/prometheus
---
@@ -9,7 +8,7 @@ title: /internal-backstage/prometheus
Unleash uses Prometheus internally to collect metrics. By default, the metrics are available at `/internal-backstage/prometheus`. You can disable this endpoint by setting the `serverMetrics` option to `false`.
-Note that it's not recommended to expose Prometheus metrics to the public as of the [Prometheus pentest-report](https://prometheus.io/assets/downloads/2018-06-11--cure53_security_audit.pdf) issue PRM-01-002. Thus, if you want to keep metrics enabled, you should block all external access to `/internal-backstage/*` on the network layer to keep your instance secure.
+Note that it's not recommended to expose Prometheus metrics to the public as of the [Prometheus pentest-report](https://prometheus.io/assets/downloads/2018-06-11--cure53_security_audit.pdf) issue PRM-01-002. Thus, if you want to keep metrics enabled, you should block all external access to `/internal-backstage/*` on the network layer to keep your instance secure.
[Read more about Prometheus](https://prometheus.io/)
diff --git a/website/docs/advanced/archived-toggles.md b/website/docs/reference/archived-toggles.md
similarity index 98%
rename from website/docs/advanced/archived-toggles.md
rename to website/docs/reference/archived-toggles.md
index 96897884ac..4151a816be 100644
--- a/website/docs/advanced/archived-toggles.md
+++ b/website/docs/reference/archived-toggles.md
@@ -1,5 +1,4 @@
---
-id: archived_toggles
title: Archived toggles
---
diff --git a/website/docs/advanced/custom-activation-strategy.md b/website/docs/reference/custom-activation-strategies.md
similarity index 91%
rename from website/docs/advanced/custom-activation-strategy.md
rename to website/docs/reference/custom-activation-strategies.md
index 876c1e7f22..278a706f68 100644
--- a/website/docs/advanced/custom-activation-strategy.md
+++ b/website/docs/reference/custom-activation-strategies.md
@@ -1,5 +1,4 @@
---
-id: custom_activation_strategy
title: Custom Activation Strategies
---
@@ -9,7 +8,7 @@ This document is a reference for custom activation strategies. If you're looking
:::
-**Custom activation strategies** let you define your own activation strategies to use with Unleash. When the [built-in activation strategies](../user_guide/activation-strategies.md) aren't enough, custom activation strategies are there to provide you with the flexibility you need.
+**Custom activation strategies** let you define your own activation strategies to use with Unleash. When the [built-in activation strategies](../reference/activation-strategies.md) aren't enough, custom activation strategies are there to provide you with the flexibility you need.
Custom activation strategies work exactly like the built-in activation strategies when working in the admin UI.
@@ -63,6 +62,6 @@ If you have not implemented the strategy in your client SDK, the check will alwa
While custom strategies are _defined_ on the Unleash server, they must be _implemented_ on the client. All official Unleash client SDKs provide a way for you to implement custom strategies. You should refer to the individual SDK's documentation for specifics, but for an example, you can have a look at the [_Node.js client implementation_ section in the _how to use custom strategies_ guide](../how-to/how-to-use-custom-strategies.md#step-3-a).
-The exact method for implementing custom strategies will vary between SDKs, but the server SDKs follow the same patterns. For front-end client SDKs ([Android](../sdks/android-proxy.md), [JavaScript](../sdks/proxy-javascript.md), [React](../sdks/proxy-react.md), [iOS](../sdks/proxy-ios.md)), the custom activation strategy must be implemented in the [Unleash Proxy](../sdks/unleash-proxy.md).
+The exact method for implementing custom strategies will vary between SDKs, but the server SDKs follow the same patterns. For front-end client SDKs ([Android](../reference/sdks/android-proxy.md), [JavaScript](../reference/sdks/javascript-browser.md), [React](../reference/sdks/react.md), [iOS](../reference/sdks/ios-proxy.md)), the custom activation strategy must be implemented in the [Unleash Proxy](../reference/unleash-proxy.md).
When implementing a strategy in your client, you will get access to the strategy's parameters and the Unleash Context. Again, refer to your specific SDK's documentation for more details.
diff --git a/website/docs/deploy/configuring-unleash-v3.md b/website/docs/reference/deploy/configuring-unleash-v3.md
similarity index 97%
rename from website/docs/deploy/configuring-unleash-v3.md
rename to website/docs/reference/deploy/configuring-unleash-v3.md
index c011159ab2..57e553c6d4 100644
--- a/website/docs/deploy/configuring-unleash-v3.md
+++ b/website/docs/reference/deploy/configuring-unleash-v3.md
@@ -1,11 +1,10 @@
---
-id: configuring_unleash_v3
-title: Configuring Unleash
+title: Configuring Unleash v3
---
-> This is the guide on how to configure **Unleash v3 self-hosted**. If you are using Unleash v4 you should checkout [configuring Unleash](./configuring_unleash)
+> This is the guide on how to configure **Unleash v3 self-hosted**. If you are using Unleash v4 you should checkout [configuring Unleash](./configuring-unleash.md)
-In order to customize "anything" in Unleash you need to use [Unleash from Node.js](./getting_started#option-two---from-nodejs):
+In order to customize "anything" in Unleash you need to use [Unleash from Node.js](./getting-started.md#option-two---from-nodejs):
```js
const unleash = require('unleash-server');
@@ -60,7 +59,7 @@ unleash.start(unleashOptions);
- `custom` - use this when you implement your own custom authentication logic.
- **ui** (object) - Set of UI specific overrides. You may set the following keys: `headerBackground`, `environment`, `slogan`.
- **getLogger** (function) - Used to register a [custom log provider](#how-do-i-configure-the-log-output).
-- **eventHook** (`function(event, data)`) - If provided, this function will be invoked whenever a feature is mutated. The possible values for `event` are `'feature-created'`, `'feature-updated'`, `'feature-archived'`, `'feature-revived'`. The `data` argument contains information about the mutation. Its fields are `type` (string) - the event type (same as `event`); `createdBy` (string) - the user who performed the mutation; `data` - the contents of the change. The contents in `data` differs based on the event type; For `'feature-archived'` and `'feature-revived'`, the only field will be `name` - the name of the feature. For `'feature-created'` and `'feature-updated'` the data follows [this schema defined in the source code](https://github.com/Unleash/unleash/blob/a06d2c04bb0d83d9c8c5bf2a90e9dace50f0b10a/lib/routes/admin-api/feature-schema.js#L38-L59). See an [api here](/api/admin/events).
+- **eventHook** (`function(event, data)`) - If provided, this function will be invoked whenever a feature is mutated. The possible values for `event` are `'feature-created'`, `'feature-updated'`, `'feature-archived'`, `'feature-revived'`. The `data` argument contains information about the mutation. Its fields are `type` (string) - the event type (same as `event`); `createdBy` (string) - the user who performed the mutation; `data` - the contents of the change. The contents in `data` differs based on the event type; For `'feature-archived'` and `'feature-revived'`, the only field will be `name` - the name of the feature. For `'feature-created'` and `'feature-updated'` the data follows [this schema defined in the source code](https://github.com/Unleash/unleash/blob/a06d2c04bb0d83d9c8c5bf2a90e9dace50f0b10a/lib/routes/admin-api/feature-schema.js#L38-L59). See an [api here](/reference/api/legacy/unleash/admin/events).
- **baseUriPath** (string) - use to register a base path for all routes on the application. For example `/my/unleash/base` (note the starting /). Defaults to `/`. Can also be configured through the environment variable `BASE_URI_PATH`.
- **unleashUrl** (string) - Used to specify the official URL this instance of Unleash can be accessed at for an end user. Can also be configured through the environment variable `UNLEASH_URL`.
- **secureHeaders** (boolean) - use this to enable security headers (HSTS, CSP, etc) when serving Unleash from HTTPS. Can also be configured through the environment variable `SECURE_HEADERS`.
diff --git a/website/docs/deploy/configuring-unleash.md b/website/docs/reference/deploy/configuring-unleash.md
similarity index 97%
rename from website/docs/deploy/configuring-unleash.md
rename to website/docs/reference/deploy/configuring-unleash.md
index 508a0ae3f0..4c3142378c 100644
--- a/website/docs/deploy/configuring-unleash.md
+++ b/website/docs/reference/deploy/configuring-unleash.md
@@ -1,11 +1,10 @@
---
-id: configuring_unleash
title: Configuring Unleash
---
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
-> This is the guide on how to configure **Unleash v4 self-hosted**. If you are still using Unleash v3 you should checkout [configuring Unleash v3](./configuring_unleash_v3)
+> This is the guide on how to configure **Unleash v4 self-hosted**. If you are still using Unleash v3 you should checkout [configuring Unleash v3](./configuring-unleash-v3.md)
## Must configure
@@ -27,11 +26,11 @@ In order for Unleash server to work, you need a running database and its connect
Used to send reset-password mails and welcome mails when onboarding new users.
**NOTE** - If this is not configured, you will not be able to allow your users to reset their own passwords.
-For [more details, see here](./email.md)
+For [more details, see here](./email-service.md)
## Further customization
-In order to customize "anything" in Unleash you need to use [Unleash from Node.js](./getting_started#option-two---from-nodejs) or start the [docker image](./getting_started#option-one---use-docker) with environment variables.
+In order to customize "anything" in Unleash you need to use [Unleash from Node.js](./getting-started.md#option-two---from-nodejs) or start the [docker image](./getting-started.md#option-one---use-docker) with environment variables.
```js
const unleash = require('unleash-server');
@@ -88,7 +87,7 @@ unleash.start(unleashOptions);
- **databaseUrl** - (_deprecated_) the postgres database url to connect to. Only used if _db_ object is not specified, and overrides the _db_ object and any environment variables that change parts of it (like `DATABASE_SSL`). Should include username/password. This value may also be set via the `DATABASE_URL` environment variable. Alternatively, if you would like to read the database url from a file, you may set the `DATABASE_URL_FILE` environment variable with the full file path. The contents of the file must be the database url exactly.
- **db** - The database configuration object. See [the database configuration section](#database-configuration) for a full overview of the available properties.
-- **disableLegacyFeaturesApi** (boolean) - whether to disable the [legacy features API](../api/admin/feature-toggles-api.md). Defaults to `false` (`DISABLE_LEGACY_FEATURES_API`). Introduced in Unleash 4.6.
+- **disableLegacyFeaturesApi** (boolean) - whether to disable the [legacy features API](/reference/api/legacy/unleash/admin/features.md). Defaults to `false` (`DISABLE_LEGACY_FEATURES_API`). Introduced in Unleash 4.6.
- **email** - the email object configuring an SMTP server for sending welcome mails and password reset mails
- `host` - The server URL to your SMTP server
- `port` - Which port the SMTP server is running on. Defaults to 465 (Secure SMTP)
@@ -96,7 +95,7 @@ unleash.start(unleashOptions);
- `sender` - Which email should be set as sender of mails being sent from Unleash?
- `smtpuser` - Username for your SMTP server
- `smtppass` - Password for your SMTP server
-- **eventHook** (`function(event, data)`) - (_deprecated in Unleash 4.3_ in favor of the [Webhook addon](../addons/webhook.md)) If provided, this function will be invoked whenever a feature is mutated. The possible values for `event` are `'feature-created'`, `'feature-archived'` and `'feature-revived'`. The `data` argument contains information about the mutation. Its fields are `type` (string) - the event type (same as `event`); `createdBy` (string) - the user who performed the mutation; `data` - the contents of the change. The contents in `data` differs based on the event type; For `'feature-archived'` and `'feature-revived'`, the only field will be `name` - the name of the feature. For `'feature-created'` the data follows a schema defined in the code [here](https://github.com/Unleash/unleash/blob/7b7f0b84e8cddd5880dcf29c231672113224b9a7/src/lib/schema/feature-schema.ts#L77). See an [api here](/api/admin/events).
+- **eventHook** (`function(event, data)`) - (_deprecated in Unleash 4.3_ in favor of the [Webhook addon](../addons/webhook.md)) If provided, this function will be invoked whenever a feature is mutated. The possible values for `event` are `'feature-created'`, `'feature-archived'` and `'feature-revived'`. The `data` argument contains information about the mutation. Its fields are `type` (string) - the event type (same as `event`); `createdBy` (string) - the user who performed the mutation; `data` - the contents of the change. The contents in `data` differs based on the event type; For `'feature-archived'` and `'feature-revived'`, the only field will be `name` - the name of the feature. For `'feature-created'` the data follows a schema defined in the code [here](https://github.com/Unleash/unleash/blob/7b7f0b84e8cddd5880dcf29c231672113224b9a7/src/lib/schema/feature-schema.ts#L77). See an [api here](/reference/api/legacy/unleash/admin/events).
- **getLogger** (function) - Used to register a [custom log provider](#how-do-i-configure-the-log-output).
- **logLevel** (`debug` | `info` | `warn` | `error` | `fatal`) - The lowest level to log at, also configurable using environment variable `LOG_LEVEL`.
- **preHook** (function) - this is a hook if you need to provide any middlewares to express before `unleash` adds any. Express app instance is injected as first argument.
@@ -129,7 +128,7 @@ unleash.start(unleashOptions);
- **clientFeatureCaching** - configuring memoization of the /api/client/features endpoint
- `enabled` - set to true by default - Overridable with (`CLIENT_FEATURE_CACHING_ENABLED`)
- `maxAge` - the time to cache features, set to 600 milliseconds by default - Overridable with (`CLIENT_FEATURE_CACHING_MAXAGE`) ) (accepts milliseconds)
-- **frontendApi** - Configuration options for the [Unleash front-end API](../reference/front-end-api.md).
+- **frontendApi** - Configuration options for the [Unleash front-end API](../front-end-api.md).
- `refreshIntervalInMs` - how often (in milliseconds) front-end clients should refresh their data from the cache. Overridable with the `FRONTEND_API_REFRESH_INTERVAL_MS` environment variable.
You can also set the environment variable `ENABLED_ENVIRONMENTS` to a comma delimited string of environment names to override environments.
diff --git a/website/docs/deploy/database-backup.md b/website/docs/reference/deploy/database-backup.md
similarity index 94%
rename from website/docs/deploy/database-backup.md
rename to website/docs/reference/deploy/database-backup.md
index c44563f405..c23e829ad5 100644
--- a/website/docs/deploy/database-backup.md
+++ b/website/docs/reference/deploy/database-backup.md
@@ -1,5 +1,4 @@
---
-id: database_backup
title: Database Backup
---
diff --git a/website/docs/deploy/database-setup.md b/website/docs/reference/deploy/database-setup.md
similarity index 96%
rename from website/docs/deploy/database-setup.md
rename to website/docs/reference/deploy/database-setup.md
index 6583e5fd15..497a24dcda 100644
--- a/website/docs/deploy/database-setup.md
+++ b/website/docs/reference/deploy/database-setup.md
@@ -1,5 +1,4 @@
---
-id: database-setup
title: Database Setup
---
diff --git a/website/docs/deploy/email.md b/website/docs/reference/deploy/email-service.md
similarity index 99%
rename from website/docs/deploy/email.md
rename to website/docs/reference/deploy/email-service.md
index e74884ff1a..1366c44ca5 100644
--- a/website/docs/deploy/email.md
+++ b/website/docs/reference/deploy/email-service.md
@@ -1,5 +1,4 @@
---
-id: email
title: Email service
---
diff --git a/website/docs/deploy/getting-started.md b/website/docs/reference/deploy/getting-started.md
similarity index 98%
rename from website/docs/deploy/getting-started.md
rename to website/docs/reference/deploy/getting-started.md
index a6386f876e..9e85771118 100644
--- a/website/docs/deploy/getting-started.md
+++ b/website/docs/reference/deploy/getting-started.md
@@ -1,5 +1,4 @@
---
-id: getting_started
title: Getting Started
---
@@ -111,7 +110,7 @@ docker run -p 4242:4242 \
## Create an api token for your client {#create-an-api-token-for-your-client}
-- [API Token creation](../user_guide/api-token)
+- [API Token creation](../../how-to/how-to-create-api-tokens.mdx)
## Test your server and create a sample API call {#test-your-server-and-create-a-sample-api-call}
diff --git a/website/docs/deploy/google-auth-hook.md b/website/docs/reference/deploy/google-auth-hook.md
similarity index 99%
rename from website/docs/deploy/google-auth-hook.md
rename to website/docs/reference/deploy/google-auth-hook.md
index 93492407bc..32a9f7af66 100644
--- a/website/docs/deploy/google-auth-hook.md
+++ b/website/docs/reference/deploy/google-auth-hook.md
@@ -1,5 +1,4 @@
---
-id: google_auth
title: Google Auth Hook
---
diff --git a/website/docs/deploy/google-auth-hook-v3.md b/website/docs/reference/deploy/google-auth-v3.md
similarity index 99%
rename from website/docs/deploy/google-auth-hook-v3.md
rename to website/docs/reference/deploy/google-auth-v3.md
index fbcf3291dc..e301fa1eca 100644
--- a/website/docs/deploy/google-auth-hook-v3.md
+++ b/website/docs/reference/deploy/google-auth-v3.md
@@ -1,6 +1,5 @@
---
-id: google_auth_v3
-title: Google Auth Hook
+title: Google Auth v3
---
> You can also find the complete [source code for this guide](https://github.com/Unleash/unleash-examples/tree/main/v3/securing-google-auth) in the unleash-examples project.
diff --git a/website/docs/deploy/import-export.md b/website/docs/reference/deploy/import-export.md
similarity index 98%
rename from website/docs/deploy/import-export.md
rename to website/docs/reference/deploy/import-export.md
index 5f6cf9a6a3..38bb99058a 100644
--- a/website/docs/deploy/import-export.md
+++ b/website/docs/reference/deploy/import-export.md
@@ -1,5 +1,4 @@
---
-id: import_export
title: Import & Export
---
import ApiRequest from '@site/src/components/ApiRequest'
@@ -10,7 +9,7 @@ The import and export API first appeared in Unleash 3.3.0.
:::
-Unleash supports import and export of feature toggles and strategies at startup and during runtime. The main purpose of the import/export feature is to bootstrap new Unleash instances with feature toggles and their configuration. If you are looking for a granular way to keep seperate Unleash instances in sync we strongly recommend that you take a look at the Unleahs Admin API's.
+Unleash supports import and export of feature toggles and strategies at startup and during runtime. The main purpose of the import/export feature is to bootstrap new Unleash instances with feature toggles and their configuration. If you are looking for a granular way to keep seperate Unleash instances in sync we strongly recommend that you take a look at the Unleahs Admin API's.
The import mechanism guarantees that:
- all imported features will be non-archived
diff --git a/website/docs/deploy/migration-guide.md b/website/docs/reference/deploy/migration-guide.md
similarity index 95%
rename from website/docs/deploy/migration-guide.md
rename to website/docs/reference/deploy/migration-guide.md
index e495956f02..274962fb69 100644
--- a/website/docs/deploy/migration-guide.md
+++ b/website/docs/reference/deploy/migration-guide.md
@@ -1,5 +1,4 @@
---
-id: migration_guide
title: Migration Guide
---
@@ -15,11 +14,11 @@ You can also read the highlights of **[what's new in v4](/user_guide/v4-whats-ne
If you are upgrading from Unleash Open-Source v3 client SDKs did not need to use an API token in order to connect to Unleash-server. Starting from v4 we have back-ported the API token handling for Enterprise in to the Open-Source version. This means that all client SDKs now need to use a client token in order to connect to Unleash.
-Read more in the [API token documentation](../user_guide/api-token).
+Read more in the [API token documentation](../../how-to/how-to-create-api-tokens.mdx).
### 2. Configuring Unleash {#2-configuring-unleash}
-We have done a lot of changes to the options you can pass in to Unleash. If you are manually configuring Unleash you should have a look on the updated [configuring Unleash documentation](./configuring_unleash)
+We have done a lot of changes to the options you can pass in to Unleash. If you are manually configuring Unleash you should have a look on the updated [configuring Unleash documentation](./configuring-unleash.md)
### 3. Role-based Access Control (RBAC) {#3-role-based-access-control-rbac}
@@ -43,7 +42,7 @@ req.session.user = user;
```
- [Read more about Securing Unleash v4](./securing-unleash.md)
-- [Read more about RBAC](../user_guide/rbac)
+- [Read more about RBAC](../../reference/rbac.md)
### 4. Legacy v2 routes removed {#4-legacy-v2-routes-removed}
@@ -55,7 +54,7 @@ In v2 you could query feature toggles on `/api/features`. This was deprecated in
Unleash no longer ships with a binary that allows you to start Unleash directly from the command line. From v4 you need to either use Unleash via docker or programmatically.
-Read more in our [getting started documentation](./getting_started)
+Read more in our [getting started documentation](./getting-started.md)
## Upgrading from v2.x to v3.x {#upgrading-from-v2x-to-v3x}
diff --git a/website/docs/deploy/securing-unleash-v3.md b/website/docs/reference/deploy/securing-unleash-v3.md
similarity index 99%
rename from website/docs/deploy/securing-unleash-v3.md
rename to website/docs/reference/deploy/securing-unleash-v3.md
index 0c38e34542..aace7729a0 100644
--- a/website/docs/deploy/securing-unleash-v3.md
+++ b/website/docs/reference/deploy/securing-unleash-v3.md
@@ -1,5 +1,4 @@
---
-id: securing-unleash-v3
title: Securing Unleash v3
---
diff --git a/website/docs/deploy/securing-unleash.md b/website/docs/reference/deploy/securing-unleash.md
similarity index 99%
rename from website/docs/deploy/securing-unleash.md
rename to website/docs/reference/deploy/securing-unleash.md
index 763ae937b3..5fc5081678 100644
--- a/website/docs/deploy/securing-unleash.md
+++ b/website/docs/reference/deploy/securing-unleash.md
@@ -1,5 +1,4 @@
---
-id: securing_unleash
title: Securing Unleash
---
diff --git a/website/docs/user_guide/environments.md b/website/docs/reference/environments.md
similarity index 94%
rename from website/docs/user_guide/environments.md
rename to website/docs/reference/environments.md
index 5927a57a6b..cd3441f154 100644
--- a/website/docs/user_guide/environments.md
+++ b/website/docs/reference/environments.md
@@ -14,7 +14,7 @@ title: Environments
Environments is a new way to organize activation strategy configurations for feature toggles into separate environments. In Unleash, a feature lives across all your environments — after all, the goal is to get the new feature released as soon as possible — but it makes sense to configure the activation differently per environment. You might want the feature enabled for everyone in development, but only for yourself in production, for instance.
-Previously, Unleash Enterprise could use [strategy constraints](../advanced/strategy-constraints.md) to control the rollout across environments. With the new environments feature, this is no longer necessary. Now all activation strategies belong to an explicit environment instead.
+Previously, Unleash Enterprise could use [strategy constraints](../reference/strategy-constraints.md) to control the rollout across environments. With the new environments feature, this is no longer necessary. Now all activation strategies belong to an explicit environment instead.
Further, connected applications will use environment-scoped API keys to make sure they only download feature toggle configurations for the environment they are running in.
@@ -71,7 +71,7 @@ When cloning an environment, you must give the new environment
- an environment type
- a list of projects to clone feature configurations in
-You can also clone user permissions into the new environment. When you do that, permissions in the new environment will be the same as in the environment you cloned from. If you don't clone permissions, only admins and project editors can make changes in the new environment. You can change permissions after creation by using [custom project roles](../user_guide/rbac#custom-project-roles).
+You can also clone user permissions into the new environment. When you do that, permissions in the new environment will be the same as in the environment you cloned from. If you don't clone permissions, only admins and project editors can make changes in the new environment. You can change permissions after creation by using [custom project roles](../reference/rbac#custom-project-roles).
In order to clone an environment, you can follow the [how to clone environments](../how-to/how-to-clone-environments.mdx) guide.
@@ -111,8 +111,8 @@ To avoid missing important updates, you will also need to update your addon conf
In order to support configuration per environment we had to rebuild our feature toggle admin API to account for environments as well. This means that we're making the following changes to the API:
-- **/api/admin/features** - _deprecated (scheduled for removal in Unleash v5.0). The [old feature toggles admin API](../api/admin/feature-toggles-api.md) still works, but strategy configuration will be assumed to target the “default” environment._
-- **/api/admin/projects/:projectId/features** - New feature API to be used for feature toggles which also adds support for environments. See [the documentation](../api/admin/feature-toggles-api-v2.md) to learn more.
+- **/api/admin/features** - _deprecated (scheduled for removal in Unleash v5.0). The [old feature toggles admin API](/reference/api/legacy/unleash/admin/features.md) still works, but strategy configuration will be assumed to target the “default” environment._
+- **/api/admin/projects/:projectId/features** - New feature API to be used for feature toggles which also adds support for environments. See [the documentation](/reference/api/legacy/unleash/admin/features.md) to learn more.
## Plan Differences
diff --git a/website/docs/advanced/feature-toggle-types.md b/website/docs/reference/feature-toggle-types.md
similarity index 88%
rename from website/docs/advanced/feature-toggle-types.md
rename to website/docs/reference/feature-toggle-types.md
index eadf8a7581..51a8dd01d6 100644
--- a/website/docs/advanced/feature-toggle-types.md
+++ b/website/docs/reference/feature-toggle-types.md
@@ -1,5 +1,4 @@
---
-id: feature_toggle_types
title: Feature Toggle Types
---
@@ -17,7 +16,7 @@ Classifying feature toggles by their type makes it easier for you manage them: t
![Five feature toggles, each of a different type, showing the different icons that Unleash uses for each toggle type.](/img/toggle_type_icons.png "Feature toggle type icons")
-A toggle's type also helps Unleash understand the [toggle's expected lifetime](https://www.getunleash.io/blog/feature-toggle-life-time-best-practices): some feature toggles are meant to live for a few weeks as you work on new functionality, while others stay in for much longer. When a feature toggle lives past its expected lifetime, Unleash will mark it as _potentially stale_. See the [technical debt section](../user_guide/technical_debt) for more information on what this means and how to handle it.
+A toggle's type also helps Unleash understand the [toggle's expected lifetime](https://www.getunleash.io/blog/feature-toggle-life-time-best-practices): some feature toggles are meant to live for a few weeks as you work on new functionality, while others stay in for much longer. When a feature toggle lives past its expected lifetime, Unleash will mark it as _potentially stale_. See the [technical debt section](../reference/technical-debt) for more information on what this means and how to handle it.
## Feature toggle types
@@ -31,9 +30,9 @@ Here's the list of the feature toggle types that Unleash supports together with
## Deprecating feature toggles {#deprecate-a-feature-toggle}
-You can mark feature toggles as `stale`. This is a way to deprecate a feature toggle without removing the active configuration for connected applications. Use this to signal that you should stop using the feature in your applications. Stale toggles will show as stale in the ["technical debt dashboard"](../user_guide/technical_debt).
+You can mark feature toggles as `stale`. This is a way to deprecate a feature toggle without removing the active configuration for connected applications. Use this to signal that you should stop using the feature in your applications. Stale toggles will show as stale in the ["technical debt dashboard"](../reference/technical-debt).
-When you mark a toggle as stale, Unleash will emit an event. You can use [an addon](../addons/addons.md) to integrate this with your systems, for instance to post a message in a Slack channel.
+When you mark a toggle as stale, Unleash will emit an event. You can use [an addon](../reference/addons/addons.md) to integrate this with your systems, for instance to post a message in a Slack channel.
Additionally, with some extra work, you can also use the `stale` property to:
diff --git a/website/docs/advanced/feature-toggle-variants.md b/website/docs/reference/feature-toggle-variants.md
similarity index 92%
rename from website/docs/advanced/feature-toggle-variants.md
rename to website/docs/reference/feature-toggle-variants.md
index 0fa7be7ae4..3c1b7a780d 100644
--- a/website/docs/advanced/feature-toggle-variants.md
+++ b/website/docs/reference/feature-toggle-variants.md
@@ -1,5 +1,4 @@
---
-id: toggle_variants
title: Feature Toggle Variants
---
@@ -31,7 +30,7 @@ A variant has four components that define it:
- an optional **override**
- Overrides let you specify that certain users (as identified either by their user ID or by another [custom stickiness](stickiness) value) will always get this variant, regardless of the variant's weight.
+ Overrides let you specify that certain users (as identified either by their user ID or by another [custom stickiness](./stickiness.md) value) will always get this variant, regardless of the variant's weight.
![A form for adding new variants. It has fields for name, weight, payload, and overrides.](/img/variant-creation-form.png 'Creating a new toggle variant')
@@ -66,7 +65,7 @@ Overrides are intended to be used for one-off cases and during development and m
The weighting system automatically assigns users to a specific group for you. If you want to make sure that a specific user or group of users receives a certain variant, though, you can use the override functionality to achieve that.
-When adding an override, you choose a [field from the Unleash Context](../user_guide/unleash_context) and specify that if a context contains one of a given list of values, then the current variant should always activate.
+When adding an override, you choose a [field from the Unleash Context](../reference/unleash-context) and specify that if a context contains one of a given list of values, then the current variant should always activate.
You can use both standard and custom context fields when creating overrides.
@@ -89,7 +88,7 @@ Unleash currently supports these payload types:
### Variant stickiness
-Variant stickiness is calculated on the received user and context, as described in [the stickiness chapter](stickiness). This ensures that the same user will consistently see the same variant barring overrides and weight changes. If no context data is provided, the traffic will be spread randomly for each request.
+Variant stickiness is calculated on the received user and context, as described in [the stickiness chapter](./stickiness.md). This ensures that the same user will consistently see the same variant barring overrides and weight changes. If no context data is provided, the traffic will be spread randomly for each request.
## How do I configure variants
diff --git a/website/docs/reference/feature-toggles.mdx b/website/docs/reference/feature-toggles.mdx
index 3f2cb0140f..49739f5476 100644
--- a/website/docs/reference/feature-toggles.mdx
+++ b/website/docs/reference/feature-toggles.mdx
@@ -2,7 +2,7 @@
title: Feature Toggles
---
-Feature toggles are the central concept that we built Unleash around. In Unleash, feature toggles are organized within [projects](../user_guide/projects.md). Feature toggles can have different [activation strategies](../user_guide/activation-strategies.md) for each of their project's [environments](../user_guide/environments.md), and can also be given [variants](../advanced/feature-toggle-variants.md) to facilitate A/B testing.
+Feature toggles are the central concept that we built Unleash around. In Unleash, feature toggles are organized within [projects](../reference/projects.md). Feature toggles can have different [activation strategies](../reference/activation-strategies.md) for each of their project's [environments](../reference/environments.md), and can also be given [variants](../reference/feature-toggle-variants.md) to facilitate A/B testing.
## Configuration options
@@ -11,28 +11,28 @@ Each feature toggle has the following configuration options
| Option | Required? | Default value | Description |
| --- | --- | --- | --- |
| name | Yes | N/A | The feature toggle's name. Must be URL-friendly according to [section 2.3 of RFC 3986](https://www.rfc-editor.org/rfc/rfc3986#section-2.3) and must be unique within your Unleash instance. Must be between 1 and 100 characters long, inclusive. |
-| feature toggle type | Yes | Release | The [feature toggle's type](../advanced/feature-toggle-types.md). |
-| project | Yes | The [default project](../user_guide/projects.md#the-default-project). When created from a project page in the admin UI, that project will be the default value instead. | The [project](../user_guide/projects.md) that should contain the feature toggle. |
+| feature toggle type | Yes | Release | The [feature toggle's type](../reference/feature-toggle-types.md). |
+| project | Yes | The [default project](../reference/projects.md#the-default-project). When created from a project page in the admin UI, that project will be the default value instead. | The [project](../reference/projects.md) that should contain the feature toggle. |
| description | No | N/A | A description of the feature toggle's purpose. |
-| enable impression data | Yes | No | Whether to enable [impression data](../advanced/impression-data.md) for this toggle or not. |
+| enable impression data | Yes | No | Whether to enable [impression data](../reference/impression-data.md) for this toggle or not. |
## Environments
You probably won't want to use the same configuration to enable a toggle in development as you do in production. That's why feature toggles have different activation strategy configurations for each environment.
-You can enable and disable a toggle independently in each of the [project's environments](../user_guide/projects.md#projects-and-environments). When you disable a toggle in an environment, it will always evaluate to false in that environment. When you enable a toggle in an environment, the toggle will evaluate to true or false depending on its activation strategies.
+You can enable and disable a toggle independently in each of the [project's environments](../reference/projects.md#projects-and-environments). When you disable a toggle in an environment, it will always evaluate to false in that environment. When you enable a toggle in an environment, the toggle will evaluate to true or false depending on its activation strategies.
-Refer to the [documentation on environments](../user_guide/environments.md) for more details on how environments work.
+Refer to the [documentation on environments](../reference/environments.md) for more details on how environments work.
## Activation strategies
-To enable a feature in an environment, you must assign it at least one activation strategy. A feature toggle's activation strategies determine whether the toggle gets enabled for a particular [Unleash context](../user_guide/unleash-context.md) (typically a user). When using multiple strategies in a single environment, only a single strategy needs to evaluate to true for the toggle to get enabled for a user. Whenever Unleash evaluates a toggle, it will evaluate strategies in the current environment until one of them resolves to true. If no strategies resolve to true, then the toggle's value is false.
+To enable a feature in an environment, you must assign it at least one activation strategy. A feature toggle's activation strategies determine whether the toggle gets enabled for a particular [Unleash context](../reference/unleash-context.md) (typically a user). When using multiple strategies in a single environment, only a single strategy needs to evaluate to true for the toggle to get enabled for a user. Whenever Unleash evaluates a toggle, it will evaluate strategies in the current environment until one of them resolves to true. If no strategies resolve to true, then the toggle's value is false.
-Refer to the [activation strategies documentation](../user_guide/activation-strategies.md) for a detailed description of all the built-in strategies.
+Refer to the [activation strategies documentation](../reference/activation-strategies.md) for a detailed description of all the built-in strategies.
## Variants
-[Variants](../advanced/feature-toggle-variants.md) adds another dimension of flexibility to feature toggles. Each feature toggle can be assigned any number of variants which will then get distributed amongst your users based on your choice of [context field](../user_guide/unleash-context.md#structure). You can find out more about variants in the [variants docs](../advanced/feature-toggle-variants.md).
+[Variants](../reference/feature-toggle-variants.md) adds another dimension of flexibility to feature toggles. Each feature toggle can be assigned any number of variants which will then get distributed amongst your users based on your choice of [context field](../reference/unleash-context.md#structure). You can find out more about variants in the [variants docs](../reference/feature-toggle-variants.md).
### Creating toggles with payloads
diff --git a/website/docs/reference/front-end-api.md b/website/docs/reference/front-end-api.md
index cb735ba6ac..ea92b974f0 100644
--- a/website/docs/reference/front-end-api.md
+++ b/website/docs/reference/front-end-api.md
@@ -10,7 +10,7 @@ The Unleash front-end API is an experimental feature and is currently in develop
:::
-The **Unleash front-end API** offers a simplified workflow for connecting a client-side (front-end) applications to Unleash. It provides the exact same API as the [Unleash proxy](../sdks/unleash-proxy.md). The front-end API is a quick and easy way to add Unleash to single-page applications and mobile apps.
+The **Unleash front-end API** offers a simplified workflow for connecting a client-side (front-end) applications to Unleash. It provides the exact same API as the [Unleash proxy](../reference/unleash-proxy.md). The front-end API is a quick and easy way to add Unleash to single-page applications and mobile apps.
@@ -32,7 +32,7 @@ When using the front-end API in an SDK, there's three things you need to configu
### Front-end API tokens
-As a client-side API, you should use a [front-end API token](../reference/api-tokens-and-client-keys.mdx#front-end-tokens) to interact with it. Refer to the [how to create API tokens](../user_guide/token.mdx) guide for steps on how to create API tokens.
+As a client-side API, you should use a [front-end API token](../reference/api-tokens-and-client-keys.mdx#front-end-tokens) to interact with it. Refer to the [how to create API tokens](../how-to/how-to-create-api-tokens.mdx) guide for steps on how to create API tokens.
### Cross-origin resource sharing (CORS) configuration {#cors}
@@ -46,7 +46,7 @@ The client needs to point to the correct API endpoint. The front-end API is avai
### API token
-You can create appropriate token, with type `FRONTEND` on `/admin/api/create-token` page or with a request to `/api/admin/api-tokens`. See our guide on [how to create API tokens](../user_guide/token.mdx) for more details.
+You can create appropriate token, with type `FRONTEND` on `/admin/api/create-token` page or with a request to `/api/admin/api-tokens`. See our guide on [how to create API tokens](../how-to/how-to-create-api-tokens.mdx) for more details.
### Refresh interval for tokens
@@ -54,4 +54,4 @@ Internally, Unleash creates a new Unleash client for each token it receives. Eac
Each client updates its feature toggle configuration at a specified refresh interval plus a random offset between 0 and 10 seconds. By default, the refresh interval is set to 10 seconds. The random offset is used to stagger incoming requests to avoid a large number of clients all querying the database simultaneously. A new, random offset is used for every update.
-The refresh interval is specified in milliseconds and can be set by using the `FRONTEND_API_REFRESH_INTERVAL_MS` environment variable or by using the `frontendApi.refreshIntervalInMs` configuration option in code.
\ No newline at end of file
+The refresh interval is specified in milliseconds and can be set by using the `FRONTEND_API_REFRESH_INTERVAL_MS` environment variable or by using the `frontendApi.refreshIntervalInMs` configuration option in code.
diff --git a/website/docs/advanced/impression-data.md b/website/docs/reference/impression-data.md
similarity index 78%
rename from website/docs/advanced/impression-data.md
rename to website/docs/reference/impression-data.md
index 020c9dea6b..aebe89cb91 100644
--- a/website/docs/advanced/impression-data.md
+++ b/website/docs/reference/impression-data.md
@@ -4,7 +4,7 @@ title: Impression data
:::info
-Availability The impression data feature was introduced in **Unleash 4.7**. It is available in the JavaScript-based proxy clients and in some server-side SDKs. Please refer to the [SDK compatibility table](../sdks/index.md#server-side-sdk-compatibility-table) for an overview of server-side SDKs that support it.
+Availability The impression data feature was introduced in **Unleash 4.7**. It is available in the JavaScript-based proxy clients and in some server-side SDKs. Please refer to the [SDK compatibility table](../reference/sdks/index.md#server-side-sdk-compatibility-table) for an overview of server-side SDKs that support it.
:::
@@ -12,7 +12,7 @@ Unleash can provide you with **impression data** about the toggles in your appli
:::caution Front-end SDKs and disabled toggles
-Older versions of the front-end SDKs and other SDKs that connect the [Unleash proxy](../sdks/unleash-proxy.md) or the [Unleash front-end API](../reference/front-end-api.md) would **not** emit impression events when a toggle is disabled.
+Older versions of the front-end SDKs and other SDKs that connect the [Unleash proxy](../reference/unleash-proxy.md) or the [Unleash front-end API](../reference/front-end-api.md) would **not** emit impression events when a toggle is disabled.
This is because impression data is a **per-toggle** setting and the Proxy and front-end API only transmit information about toggles that are enabled. As such, the SDK will never know that it should emit an impression event if a toggle is disabled.
@@ -20,7 +20,7 @@ Some of the front-end SDKs now include a include a configuration property that l
:::
-Impression data was designed to make it easier for you to **collect analytics data**, **perform A/B tests**, and **enrich experiments** in your applications. It contains information about the feature toggle and the related [Unleash Context](../user_guide/unleash-context.md).
+Impression data was designed to make it easier for you to **collect analytics data**, **perform A/B tests**, and **enrich experiments** in your applications. It contains information about the feature toggle and the related [Unleash Context](../reference/unleash-context.md).
Impression data is **opt-in on a per-toggle basis**. Unleash will not emit impression events for toggles not marked as such. Once you've turned impression data on for a toggle, you can start listening for impression events in your client SDK.
@@ -39,7 +39,7 @@ This table describes all the properties on the impression events:
| --- | --- | --- |
| `eventType` | The type of the event: `isEnabled` or `getVariant` | All |
| `eventId` | A globally unique id (GUID) assigned to this event. | All |
-| `context` | A representation of the current [Unleash Context](../user_guide/unleash-context.md). | All |
+| `context` | A representation of the current [Unleash Context](../reference/unleash-context.md). | All |
| `enabled` | Whether the toggle was enabled or not at when the client made the request. | All |
| `featureName` | The name of the feature toggle. | All |
| `variant` | The name of the active variant | `getVariant` events only |
@@ -81,13 +81,13 @@ This table describes all the properties on the impression events:
Impression data is strictly an **opt-in** feature and must be enabled on a **per-toggle basis**. You can enable and disable it both when you create a toggle and when you edit a toggle.
-You can enable impression data via the impression data toggle in the admin UI's toggle creation form. You can also go via the [the API, using the `impressionData` option](../api/admin/feature-toggles-api-v2.md#create-toggle). For more detailed instructions, see [the section on enabling impression data in the how-to guide for capturing impression data](../how-to/how-to-capture-impression-data.mdx#step-1).
+You can enable impression data via the impression data toggle in the admin UI's toggle creation form. You can also go via the [the API, using the `impressionData` option](/reference/api/legacy/unleash/admin/features-v2.md#create-toggle). For more detailed instructions, see [the section on enabling impression data in the how-to guide for capturing impression data](../how-to/how-to-capture-impression-data.mdx#step-1).
![A feature toggle creation form. At the end of the form is a heading that says "Impression data", a short paragraph that describes the feature, and a toggle to opt in or out of it.](/img/create_feat_impression.png)
## Example setup
-The exact setup will vary depending on your [client SDK](../sdks/index.md). The below example configures the [Unleash Proxy client](/sdks/proxy-javascript) to listen for impression events and log them to the console. If "my-feature-toggle" is configured to emit impression data, then it will trigger an impression event as soon as Unleash is ready.
+The exact setup will vary depending on your [client SDK](../reference/sdks/index.md). The below example configures the [Unleash Proxy client../reference/sdks/javascript-browser) to listen for impression events and log them to the console. If "my-feature-toggle" is configured to emit impression data, then it will trigger an impression event as soon as Unleash is ready.
```js
const unleash = new UnleashClient({
diff --git a/website/docs/integrations/integrations.md b/website/docs/reference/integrations/integrations.md
similarity index 100%
rename from website/docs/integrations/integrations.md
rename to website/docs/reference/integrations/integrations.md
diff --git a/website/docs/integrations/jira-server-plugin-installation.md b/website/docs/reference/integrations/jira-server-plugin-installation.md
similarity index 99%
rename from website/docs/integrations/jira-server-plugin-installation.md
rename to website/docs/reference/integrations/jira-server-plugin-installation.md
index ece2d84fe8..4f30eac04c 100644
--- a/website/docs/integrations/jira-server-plugin-installation.md
+++ b/website/docs/reference/integrations/jira-server-plugin-installation.md
@@ -1,5 +1,4 @@
---
-id: jira_server_plugin_installation
title: Jira Server Integration - Installation
---
diff --git a/website/docs/integrations/jira-server-plugin-usage.md b/website/docs/reference/integrations/jira-server-plugin-usage.md
similarity index 96%
rename from website/docs/integrations/jira-server-plugin-usage.md
rename to website/docs/reference/integrations/jira-server-plugin-usage.md
index bd4d611c75..b5abd268cd 100644
--- a/website/docs/integrations/jira-server-plugin-usage.md
+++ b/website/docs/reference/integrations/jira-server-plugin-usage.md
@@ -1,5 +1,4 @@
---
-id: jira_server_plugin_usage
title: Jira Server Integration - Usage
---
@@ -47,4 +46,4 @@ Once you click the button, you'll need to confirm the dialog that opens up.
![Jira Server - Disconnect toggle dialog](/img/jira_server_disconnect_toggle_dialog.png)
If confirmed, the toggle will be disconnected immediately. However, the plugin will not delete the toggle from Unleash,
-so you can still reconnect your Jira issue to the same toggle using the "Connect to existing toggle" functionality
+so you can still reconnect your Jira issue to the same toggle using the "Connect to existing toggle" functionality
diff --git a/website/docs/reference/playground.mdx b/website/docs/reference/playground.mdx
index c8841692aa..8301621bfe 100644
--- a/website/docs/reference/playground.mdx
+++ b/website/docs/reference/playground.mdx
@@ -32,22 +32,22 @@ The playground will only evaluate features belonging to the projects you specify
### The Unleash context
-The [Unleash context](../user_guide/unleash-context.md) represents a client SDK's configuration and used for evaluating your features. You can construct your own context or use a JSON version of a context from a client.
+The [Unleash context](../reference/unleash-context.md) represents a client SDK's configuration and used for evaluating your features. You can construct your own context or use a JSON version of a context from a client.
#### Implicit context fields
You can add any fields you want to the context used for the evaluation, and you can also leave out any fields you want. However, there are some fields that will be set for you if don't provide them:
- **`appName`**: Unleash clients all require an `appName` to start up. If you do not provide an `appName`, the playground will assign a default value to this property instead.
-- **`currentTime`**: The `currentTime` property of the [Unleash context](../user_guide/unleash-context.md) gets auto-populated with the current time. You can override this manually by providing a value of your own.
+- **`currentTime`**: The `currentTime` property of the [Unleash context](../reference/unleash-context.md) gets auto-populated with the current time. You can override this manually by providing a value of your own.
## The response
![Playground results: a table of feature names and whether they're enabled or not.](/img/playground-results.png)
-The playground's response contains a list of all the feature toggles that have been evaluated based on your configured [environments and projects](#environments-and-projects). In the UI, the playground displays the features in a table. Each feature indicates whether its considered _enabled_ or _disabled_ and which [variant](../advanced/feature-toggle-variants.md) was assigned to it, if any.
+The playground's response contains a list of all the feature toggles that have been evaluated based on your configured [environments and projects](#environments-and-projects). In the UI, the playground displays the features in a table. Each feature indicates whether its considered _enabled_ or _disabled_ and which [variant](../reference/feature-toggle-variants.md) was assigned to it, if any.
-As with all of Unleash's client SDKs, the playground respects [stickiness](../advanced/stickiness.md). The [stickiness algorithm](../advanced/stickiness.md#calculation) guarantees that you'll always get the same variants and the same gradual rollout results if you provide the same context, as long as you provide the context field used for calculating stickiness.
+As with all of Unleash's client SDKs, the playground respects [stickiness](../reference/stickiness.md). The [stickiness algorithm](../reference/stickiness.md#calculation) guarantees that you'll always get the same variants and the same gradual rollout results if you provide the same context, as long as you provide the context field used for calculating stickiness.
### Detailed evaluation results
@@ -76,14 +76,14 @@ There's currently two cases where the playground can't evaluate the strategy:
1. The [strategy is a custom strategy](#custom-strategies) and the playground doesn't have an implementation for the strategy.
2. The [strategy is the 'Application Hostname' strategy](#application-hostname).
-Even if the playground doesn't recognize or otherwise can't evaluate a specific strategy, it _may_ still evaluate the overall strategy result to `false` (and be certain that it is the right result). If a strategy has [constraints](../advanced/strategy-constraints.md) or [segments](segments.mdx) that are not satisfied, the playground knows that the strategy result wouldn't be `true`, regardless of the actual strategy implementation. As such, if a strategy can't be evaluated, it can be **either** _unknown_ or _`false`_.
+Even if the playground doesn't recognize or otherwise can't evaluate a specific strategy, it _may_ still evaluate the overall strategy result to `false` (and be certain that it is the right result). If a strategy has [constraints](../reference/strategy-constraints.md) or [segments](segments.mdx) that are not satisfied, the playground knows that the strategy result wouldn't be `true`, regardless of the actual strategy implementation. As such, if a strategy can't be evaluated, it can be **either** _unknown_ or _`false`_.
### Custom Strategies
-The playground does not have any implementations for [custom strategies](../advanced/custom-activation-strategy.md) and adding custom strategy implementations to Unleash is not currently supported. Because of this, custom strategies will never be evaluated as `true`.
+The playground does not have any implementations for [custom strategies](../reference/custom-activation-strategies.md) and adding custom strategy implementations to Unleash is not currently supported. Because of this, custom strategies will never be evaluated as `true`.
### The Application Hostname strategy {#application-hostname}
-The [application hostname strategy](../user_guide/activation-strategies.md#hostnames) is a little different from the other built-in strategies: it depends on external state and _not_ on the Unleash context to evaluate. In short, the strategy checks its application environment to get the hostname, so the Unleash context has no effect on the result of this strategy.
+The [application hostname strategy](../reference/activation-strategies.md#hostnames) is a little different from the other built-in strategies: it depends on external state and _not_ on the Unleash context to evaluate. In short, the strategy checks its application environment to get the hostname, so the Unleash context has no effect on the result of this strategy.
Because the application hostname strategy depends on external state, the playground can't guarantee whether the strategy would be true or false in a client. Further, the result in the playground would most likely be different from what you'd see in a client. Because of this, the playground does not evaluate this strategy.
diff --git a/website/docs/user_guide/projects.md b/website/docs/reference/projects.md
similarity index 100%
rename from website/docs/user_guide/projects.md
rename to website/docs/reference/projects.md
diff --git a/website/docs/reference/public-signup.mdx b/website/docs/reference/public-signup.mdx
index b1ac4301b6..23f14cf99e 100644
--- a/website/docs/reference/public-signup.mdx
+++ b/website/docs/reference/public-signup.mdx
@@ -2,7 +2,7 @@
title: Public Invite Links
---
-Public invite links let you invite team members to your Unleash instance. Any user with an invite link can sign up to Unleash instance that created the link. The user will get the **viewer** role (refer to the [_standard roles_ section of the RBAC document](../user_guide/rbac.md#standard-roles) for more information on roles).
+Public invite links let you invite team members to your Unleash instance. Any user with an invite link can sign up to Unleash instance that created the link. The user will get the **viewer** role (refer to the [_standard roles_ section of the RBAC document](../reference/rbac.md#standard-roles) for more information on roles).
User who follow the invite link are taken directly to the Unleash sign-up page, where they can create an account.
@@ -23,4 +23,3 @@ You can [create, update and delete tokens via the Unleash Admin UI](../how-to/ho
A token is active as soon as it's created and stops working as soon as it's deleted or expired.
You can only have one active invite token at a time. If you already have an active token, you must delete it to create a new one.
-
diff --git a/website/docs/user_guide/rbac.md b/website/docs/reference/rbac.md
similarity index 100%
rename from website/docs/user_guide/rbac.md
rename to website/docs/reference/rbac.md
diff --git a/website/docs/sdks/android-proxy.md b/website/docs/reference/sdks/android-proxy.md
similarity index 93%
rename from website/docs/sdks/android-proxy.md
rename to website/docs/reference/sdks/android-proxy.md
index 5f97f86fa5..c8bb668044 100644
--- a/website/docs/sdks/android-proxy.md
+++ b/website/docs/reference/sdks/android-proxy.md
@@ -1,11 +1,10 @@
---
-id: android_proxy_sdk
title: Android Proxy SDK
---
In this guide we'll explain how to use feature toggles in an Android application using Unleash's [Android Proxy SDK](https://github.com/Unleash/unleash-android-proxy-sdk) and the [Unleash Proxy](https://github.com/Unleash/unleash-proxy).
-:::note The Android proxy SDK requires the Unleash Proxy or _Unleash v4.16 or later_. Refer to the [Unleash front-end API documentation](/reference/front-end-api.md) guide for simple setup. For large-scale, deployments refer to the [proxy documentation](/sdks/unleash-proxy) for how to set it up and [how to configure the proxy secrets](/sdks/unleash-proxy#configuration-variables). :::
+:::note The Android proxy SDK requires the Unleash Proxy or _Unleash v4.16 or later_. Refer to the [Unleash front-end API documentation](../front-end-api.md) guide for simple setup. For large-scale, deployments refer to the [proxy documentation](../unleash-proxy.md) for how to set it up and [how to configure the proxy secrets](../unleash-proxy.md#configuration-variables). :::
## How to use the Android Proxy SDK
@@ -56,7 +55,7 @@ val myAppContext = UnleashContext.newBuilder()
To create a client, use the `UnleashConfig.newBuilder` method. When building a configuration, you'll need to provide it with:
- `proxyUrl`: the URL your proxy is available at
-- `clientKey`: the [proxy client key](/sdks/unleash-proxy#configuration-variables) you wish to use (this method was known as `clientSecret` prior to version 0.4.0)
+- `clientKey`: the [proxy client key](../unleash-proxy.md#configuration-variables) you wish to use (this method was known as `clientSecret` prior to version 0.4.0)
- `pollMode`: how you want to load the toggle status
As of v0.1 the SDK supports an automatic polling with an adjustable poll period or loading the state from disk. Most users will probably want to use the polling client, but it's nice to know that you can instantiate your client without actually needing Internet if you choose loading from File
diff --git a/website/docs/sdks/dot_net.md b/website/docs/reference/sdks/dotnet.md
similarity index 98%
rename from website/docs/sdks/dot_net.md
rename to website/docs/reference/sdks/dotnet.md
index 139c4a6313..2962765a22 100644
--- a/website/docs/sdks/dot_net.md
+++ b/website/docs/reference/sdks/dotnet.md
@@ -1,5 +1,4 @@
---
-id: dot_net_sdk
title: .NET SDK
---
@@ -7,7 +6,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
In this guide we explain how to use feature toggles in a .NET application using Unleash-hosted. We will be using the open source Unleash [.net Client SDK](https://github.com/Unleash/unleash-client-dotnet).
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens.mdx)
## Step 1: Install client SDK {#step-1-install-client-sdk}
diff --git a/website/docs/sdks/go.md b/website/docs/reference/sdks/go.md
similarity index 89%
rename from website/docs/sdks/go.md
rename to website/docs/reference/sdks/go.md
index e56b7deab8..c99e4cb48e 100644
--- a/website/docs/sdks/go.md
+++ b/website/docs/reference/sdks/go.md
@@ -1,9 +1,8 @@
---
-id: go_sdk
title: GO SDK
---
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens.mdx)
### 1. Install unleash-client-go {#1-install-unleash-client-go}
@@ -65,11 +64,11 @@ The Go client comes with implementations for the built-in activation strategies
- RemoteAddressStrategy
- ApplicationHostnameStrategy
-Read more about the strategies in [the activation strategies document](../user_guide/activation_strategy).
+Read more about the strategies in [the activation strategies document](../../reference/activation-strategies.md).
### Unleash context {#unleash-context}
-In order to use some of the common activation strategies you must provide an [_Unleash context_](../user_guide/unleash-context.md). This client SDK allows you to send in the unleash context as part of the `isEnabled` call:
+In order to use some of the common activation strategies you must provide an [_Unleash context_](../../reference/unleash-context.md). This client SDK allows you to send in the unleash context as part of the `isEnabled` call:
```go
ctx := context.Context{
diff --git a/website/docs/sdks/index.md b/website/docs/reference/sdks/index.md
similarity index 74%
rename from website/docs/sdks/index.md
rename to website/docs/reference/sdks/index.md
index 96ae1660a5..b5e254c515 100644
--- a/website/docs/sdks/index.md
+++ b/website/docs/reference/sdks/index.md
@@ -1,10 +1,8 @@
---
-id: index
title: SDK overview
-slug: /sdks
---
-In order to connect your application to Unleash you will need a client SDK (software developer kit) for your programming language and an [API token](../user_guide/api-token). The SDK will handle connecting to the Unleash server instance and retrieving feature toggles based on your configuration. All versions of Unleash (OSS, Pro, and Enterprise) use the same client SDKs.
+In order to connect your application to Unleash you will need a client SDK (software developer kit) for your programming language and an [API token](../how-to/how-to-create-api-tokens). The SDK will handle connecting to the Unleash server instance and retrieving feature toggles based on your configuration. All versions of Unleash (OSS, Pro, and Enterprise) use the same client SDKs.
Unleash provides official client SDKs for a number of programming language. Additionally, our community have developed and contributed SDKs for other languages. So if you can't find your favorite language in the list of official SDKs, check out the [list of clients written by our fantastic community](#community-sdks).
@@ -14,25 +12,26 @@ Unleash provides official client SDKs for a number of programming language. Addi
Server-side clients run on your server and communicate directly with your Unleash instance. We provide these official clients:
-- [Go SDK](/sdks/go_sdk)
-- [Java SDK](/sdks/java_sdk)
-- [Node.js SDK](/sdks/node_sdk)
-- [PHP SDK](/sdks/php_sdk)
-- [Python SDK](/sdks/python_sdk)
-- [Ruby SDK](/sdks/ruby_sdk)
+- [Go SDK](go.md)
+- [Java SDK](java.md)
+- [Node.js SDK](node.md)
+- [PHP SDK](php.md)
+- [Python SDK](python.md)
+- [Ruby SDK](ruby.md)
- [Rust SDK](https://github.com/unleash/unleash-client-rust)
-- [.NET SDK](/sdks/dot_net_sdk)
+- [.NET SDK](dotnet.md)
### Client-side SDKs
-Client-side SDKs can connect to the [Unleash Proxy](unleash-proxy.md) or to the [Unleash front-end API](../reference/front-end-api.md), but _not_ to the regular Unleash client API.
+Client-side SDKs can connect to the [Unleash Proxy](../unleash-proxy.md) or to the [Unleash front-end API](../front-end-api.md), but _not_ to the regular Unleash client API.
-- [Android SDK](/sdks/android_proxy_sdk)
-- [iOS Proxy SDK](/sdks/proxy-ios)
-- [Javascript SDK](/sdks/proxy-javascript)
-- [React Proxy SDK](/sdks/proxy-react)
-- [Svelte Proxy SDK](/sdks/proxy-svelte)
-- [Vue Proxy SDK](/sdks/proxy-vue)
+
+- [Android SDK](android-proxy.md)
+- [iOS Proxy SDK](ios-proxy.md)
+- [Javascript SDK](javascript-browser.md)
+- [React Proxy SDK](react.md)
+- [Svelte Proxy SDK](svelte.md)
+- [Vue Proxy SDK](vue.md)
### Server-side SDK compatibility table
@@ -51,7 +50,7 @@ If you see an item marked with a ❌ that you would find useful, feel free to re
:::
-| Capability | [Java](/sdks/java_sdk) | [Node.js](/sdks/node_sdk) | [Go](/sdks/go_sdk) | [Python](/sdks/python_sdk) | [Ruby](/sdks/ruby_sdk) | [.NET](/sdks/dot_net_sdk) | [PHP](/sdks/php_sdk) | [Rust](https://github.com/unleash/unleash-client-rust) | [Unleash Proxy](unleash-proxy.md) |
+| Capability | [Java](/reference/sdks/java.md) | [Node.js](/reference/sdks/node.md) | [Go](/reference/sdks/go.md) | [Python](/reference/sdks/python.md) | [Ruby](/reference/sdks/ruby.md) | [.NET](/reference/sdks/dotnet) | [PHP](/reference/sdks/php.md) | [Rust](https://github.com/unleash/unleash-client-rust) | [Unleash Proxy](/reference/unleash-proxy.md) |
| --- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: |
| **Category: Initialization** | | | | | | | | | |
| Async initialization | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | N/A |
@@ -67,19 +66,19 @@ If you see an item marked with a ❌ that you would find useful, feel free to re
| static | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | N/A |
| function | ✅ | ✅ | ⭕ | ✅ | ✅ (4.3) | ✅ | ✅ | ⭕ | N/A |
| **Category: Built-in strategies** | | | | | | | | | |
-| [Standard](../user_guide/activation_strategy#standard) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Gradual rollout](../user_guide/activation_strategy#gradual-rollout) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Gradual rollout: custom stickiness](../user_guide/activation_strategy#customize-stickiness-beta) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
-| [UserID](../user_guide/activation_strategy#userids) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [IP](../user_guide/activation_strategy#ips) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [IP](../user_guide/activation_strategy#ips): CIDR syntax | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ | ✅ | ✅ |
-| [Hostname](../user_guide/activation_strategy#hostnames) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| **Category: [Custom strategies](../advanced/custom_activation_strategy)** | | | | | | | | | |
+| [Standard](../reference/activation-strategies#standard) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Gradual rollout](../reference/activation-strategies#gradual-rollout) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [Gradual rollout: custom stickiness](../reference/activation-strategies#customize-stickiness-beta) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
+| [UserID](../reference/activation-strategies#userids) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [IP](../reference/activation-strategies#ips) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [IP](../reference/activation-strategies#ips): CIDR syntax | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ | ✅ | ✅ |
+| [Hostname](../reference/activation-strategies#hostnames) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| **Category: [Custom strategies](../custom-activation-strategies.md)** | | | | | | | | | |
| Basic support | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| **Category: [Strategy constraints](../advanced/strategy_constraints)** | | | | | | | | | |
+| **Category: [Strategy constraints](../strategy-constraints.md)** | | | | | | | | | |
| Basic support (`IN`, `NOT_IN` operators) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Advanced support (Semver, date, numeric and extended string operators) (introduced in) | ✅ (5.1) | ✅ (3.12) | ✅ (3.3) | ✅ (5.1) | ✅ (4.2) | ✅ (2.1) | ✅ (1.3.1) | ⭕ | ✅ (0.8) |
-| **Category: [Unleash Context](../user_guide/unleash_context)** | | | | | | | | | |
+| **Category: [Unleash Context](../reference/unleash-context)** | | | | | | | | | |
| Static fields (`environment`, `appName`) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Defined fields | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Custom properties | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
@@ -87,18 +86,18 @@ If you see an item marked with a ❌ that you would find useful, feel free to re
| Can take context | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Override fallback value | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Fallback function | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ⭕ | ⭕ | ✅ |
-| **Category: [Variants](../advanced/toggle_variants)** | | | | | | | | | |
+| **Category: [Variants](../feature-toggle-variants.md)** | | | | | | | | | |
| Basic support | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Custom fallback variant | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
| Custom weight | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
-| [Custom stickiness (beta)](../advanced/stickiness#custom-stickiness-beta) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
+| [Custom stickiness (beta)](../stickiness.md#custom-stickiness-beta) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
| **Category: Local backup** | | | | | | | | | |
| File based backup | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⭕ | ✅ |
| **Category: Usage metrics** | | | | | | | | | |
| Can disable metrics | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Client registration | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Basic usage metrics (yes/no) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [Impression data](../advanced/impression-data.md) | ⭕ | ✅ | ⭕ | ⭕ | ⭕ | ⭕ | ✅ | ⭕ | ✅ |
+| [Impression data](../impression-data.md) | ⭕ | ✅ | ⭕ | ⭕ | ⭕ | ⭕ | ✅ | ⭕ | ✅ |
| **Category: Bootstrap (beta)** | | | | | | | | | |
| Bootstrap from file | ✅ | ✅ | ✅ | ⭕ | ✅ | ✅ | ✅ | ⭕ | ✅ |
| Custom Bootstrap implementation | ✅ | ✅ | ✅ | ⭕ | ✅ | ✅ | ✅ | ⭕ | ✅ |
@@ -142,8 +141,8 @@ By default, all SDKs reach out to the Unleash Server at startup to fetch their t
Bootstrapping is also supported by the following front-end client SDKs:
-- [Android SDK](/sdks/android_proxy_sdk)
-- [Javascript SDK](/sdks/proxy-javascript)
-- [React Proxy SDK](/sdks/proxy-react)
-- [Svelte Proxy SDK](/sdks/proxy-svelte)
-- [Vue Proxy SDK](/sdks/proxy-vue)
+- [Android SDK](android-proxy.md)
+- [Javascript SDK](javascript-browser.md)
+- [React Proxy SDK](react.md)
+- [Svelte Proxy SDK](svelte.md)
+- [Vue Proxy SDK](vue.md)
diff --git a/website/docs/sdks/proxy-ios.md b/website/docs/reference/sdks/ios-proxy.md
similarity index 83%
rename from website/docs/sdks/proxy-ios.md
rename to website/docs/reference/sdks/ios-proxy.md
index 69b34b6f6a..826910a304 100644
--- a/website/docs/sdks/proxy-ios.md
+++ b/website/docs/reference/sdks/ios-proxy.md
@@ -1,13 +1,12 @@
---
-id: proxy-ios
title: iOS Proxy SDK
---
-In this guide we explain how to use feature toggles in Swift applications via the [Unleash Proxy](./unleash-proxy.md). You can also check out the [source code for the iOS Proxy SDK](https://github.com/Unleash/unleash-proxy-client-swift).
+In this guide we explain how to use feature toggles in Swift applications via the [Unleash Proxy](../unleash-proxy.md). You can also check out the [source code for the iOS Proxy SDK](https://github.com/Unleash/unleash-proxy-client-swift).
## Introduction {#introduction}
-The unleash-proxy-client-swift makes it easy for native applications and other swift platforms to connect to the unleash proxy. The proxy will evaluate a feature toggle for a given [context](/user_guide/unleash_context) and return a list of feature flags relevant for the provided context.
+The unleash-proxy-client-swift makes it easy for native applications and other swift platforms to connect to the unleash proxy. The proxy will evaluate a feature toggle for a given [context](../../reference/unleash-context.md) and return a list of feature flags relevant for the provided context.
The unleash-proxy-client-swift will then cache these toggles in a map in memory and refresh the configuration at a configurable interval, making queries against the toggle configuration extremely fast.
@@ -56,7 +55,7 @@ In the example above we import the `UnleashProxyClientSwift` and instantiate the
- `clientKey` (`String`)
- One of the configured [proxy keys / proxy secrets](unleash-proxy#configuration-variables).
+ One of the configured [proxy keys / proxy secrets](../unleash-proxy.md#configuration-variables).
- `refreshInterval` (`Int`)
@@ -68,7 +67,7 @@ In the example above we import the `UnleashProxyClientSwift` and instantiate the
- `environment` (`String`)
- The application environment. This corresponds to the environment field in [the Unleash Context](../user_guide/unleash-context.md). Note that this is separate from the newer [Environments feature](../user_guide/environments.md).
+ The application environment. This corresponds to the environment field in [the Unleash Context](../../reference/unleash-context.md). Note that this is separate from the newer [Environments feature](../../reference/environments.md).
Running `unleash.start()` will make the first request against the proxy and retrieve the feature toggle configuration, and set up the polling interval in the background.
@@ -84,7 +83,7 @@ if unleash.isEnabled(name: "ios") {
}
```
-You can also set up [variants](https://docs.getunleash.io/docs/advanced/toggle_variants) and use them in a similar fashion:
+You can also set up [variants](https://docs.getunleash.io/docs/reference/feature-toggle-variants) and use them in a similar fashion:
```swift
var variant = unleash.getVariant(name: "ios")
diff --git a/website/docs/sdks/java.md b/website/docs/reference/sdks/java.md
similarity index 96%
rename from website/docs/sdks/java.md
rename to website/docs/reference/sdks/java.md
index 0af966173b..2fba80ed7d 100644
--- a/website/docs/sdks/java.md
+++ b/website/docs/reference/sdks/java.md
@@ -1,5 +1,4 @@
---
-id: java_sdk
title: Java SDK
---
@@ -7,7 +6,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
In this guide we explain how to use feature toggles in a Java application using Unleash-hosted. We will be using the open source Unleash [Java Client SDK](https://github.com/Unleash/unleash-client-java).
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens)
## Step 1: Install the client SDK {#step-1-install-the-client-sdk}
@@ -85,7 +84,7 @@ Read more about the [Unleash architecture](https://www.unleash-hosted.com/articl
## Step 4: Provide Unleash Context {#step-4-provide-unleash-context}
-It is the client SDK that computes whether a feature toggle should be considered enabled or disabled for specific use request. This is the job of the [activation strategies](../user_guide/activation-strategies.md), which are implemented in the client SDK.
+It is the client SDK that computes whether a feature toggle should be considered enabled or disabled for specific use request. This is the job of the [activation strategies](../../reference/activation-strategies.md), which are implemented in the client SDK.
The activation strategies is an implementation of rules based on data, which you provide as part of the Unleash Context.
diff --git a/website/docs/sdks/proxy-javascript.md b/website/docs/reference/sdks/javascript-browser.md
similarity index 75%
rename from website/docs/sdks/proxy-javascript.md
rename to website/docs/reference/sdks/javascript-browser.md
index f18352bcf7..dd5e1199f1 100644
--- a/website/docs/sdks/proxy-javascript.md
+++ b/website/docs/reference/sdks/javascript-browser.md
@@ -1,9 +1,8 @@
---
-id: proxy-javascript
title: JavaScript Proxy SDK
---
-This guide shows you how to use feature toggles in a single-page app with the [Unleash Proxy](/sdks/unleash-proxy) and the [Unleash front-end API](../reference/front-end-api). You can also check out the source code for the [JavaScript Proxy SDK](https://github.com/unleash/unleash-proxy-client-js) on GitHub for more details around the SDK.
+This guide shows you how to use feature toggles in a single-page app with the [Unleash Proxy](../unleash-proxy.md) and the [Unleash front-end API](../front-end-api). You can also check out the source code for the [JavaScript Proxy SDK](https://github.com/unleash/unleash-proxy-client-js) on GitHub for more details around the SDK.
## Introduction {#introduction}
@@ -45,13 +44,13 @@ To connect to an Unleash proxy, you need to have an instance of the proxy runnin
:::
-Add the proxy's URL and a [proxy client key](../reference/api-tokens-and-client-keys.mdx#proxy-client-keys). The [_configuration_ section of the Unleash proxy docs](unleash-proxy.md#configuration-variables) contain more info on how to configure client keys for your proxy.
+Add the proxy's URL and a [proxy client key](../api-tokens-and-client-keys.mdx#proxy-client-keys). The [_configuration_ section of the Unleash proxy docs](../unleash-proxy.md#configuration-variables) contain more info on how to configure client keys for your proxy.
### Option B: Connecting directly to Unleash
-Use the url to your Unleash instance's front-end API (`/api/frontend`) as the `url` parameter. For the `clientKey` parameter, use a `FRONTEND` token generated from your Unleash instance. Refer to the [_how to create API tokens_](/user_guide/api-token) guide for the necessary steps.
+Use the url to your Unleash instance's front-end API (`/api/frontend`) as the `url` parameter. For the `clientKey` parameter, use a `FRONTEND` token generated from your Unleash instance. Refer to the [_how to create API tokens_](/how-to/how-to-create-api-tokens) guide for the necessary steps.
-You might also need to set up cross-origin resource sharing (CORS) for your instance. Visit the [CORS section of the front-end API guide](../reference/front-end-api.md#cors) for more information on setting up CORS.
+You might also need to set up cross-origin resource sharing (CORS) for your instance. Visit the [CORS section of the front-end API guide](../front-end-api.md#cors) for more information on setting up CORS.
### Step 3: Check if feature toggle is enabled
diff --git a/website/docs/sdks/node.md b/website/docs/reference/sdks/node.md
similarity index 98%
rename from website/docs/sdks/node.md
rename to website/docs/reference/sdks/node.md
index 1b29f954f0..9dc25f8b6d 100644
--- a/website/docs/sdks/node.md
+++ b/website/docs/reference/sdks/node.md
@@ -1,5 +1,4 @@
---
-id: node_sdk
title: Node SDK
---
@@ -7,7 +6,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
In this guide we explain how to use feature toggles in a Node application using Unleash-hosted. We will be using the open source Unleash [Node.js Client SDK](https://github.com/Unleash/unleash-client-node).
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens.mdx)
## Step 1: Install the client SDK {#step-1-install-the-client-sdk}
diff --git a/website/docs/sdks/php.md b/website/docs/reference/sdks/php.md
similarity index 95%
rename from website/docs/sdks/php.md
rename to website/docs/reference/sdks/php.md
index 33c5359656..9d38c706da 100644
--- a/website/docs/sdks/php.md
+++ b/website/docs/reference/sdks/php.md
@@ -1,11 +1,10 @@
---
-id: php_sdk
title: PHP SDK
---
In this guide we explain how to use feature toggles in a PHP application using Unleash-hosted. We will be using the open source Unleash [PHP Client SDK](https://github.com/Unleash/unleash-client-php).
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens)
## Step 1: Install the client SDK {#step-1-install-the-client-sdk}
@@ -56,7 +55,7 @@ Read more about the [Unleash architecture](https://www.unleash-hosted.com/articl
## Step 4: Provide Unleash Context {#step-4-provide-unleash-context}
-It is the client SDK that computes whether a feature toggle should be considered enabled or disabled for specific use request. This is the job of the [activation strategies](../user_guide/activation-strategies.md), which are implemented in the client SDK.
+It is the client SDK that computes whether a feature toggle should be considered enabled or disabled for specific use request. This is the job of the [activation strategies](../../reference/activation-strategies.md), which are implemented in the client SDK.
The activation strategies is an implementation of rules based on data, which you provide as part of the Unleash Context.
diff --git a/website/docs/sdks/python.md b/website/docs/reference/sdks/python.md
similarity index 97%
rename from website/docs/sdks/python.md
rename to website/docs/reference/sdks/python.md
index fbf2d794a8..9d34804b2c 100644
--- a/website/docs/sdks/python.md
+++ b/website/docs/reference/sdks/python.md
@@ -1,9 +1,8 @@
---
-id: python_sdk
title: Python SDK
---
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens.mdx)
```python
from UnleashClient import UnleashClient
diff --git a/website/docs/sdks/proxy-react.md b/website/docs/reference/sdks/react.md
similarity index 88%
rename from website/docs/sdks/proxy-react.md
rename to website/docs/reference/sdks/react.md
index ff2fdcaf51..daf5d83fad 100644
--- a/website/docs/sdks/proxy-react.md
+++ b/website/docs/reference/sdks/react.md
@@ -1,15 +1,14 @@
---
-id: proxy-react
title: React Proxy SDK
---
-This library can be used with the [Unleash Proxy](https://github.com/Unleash/unleash-proxy) or with the [Unleash front-end API](../reference/front-end-api). It is _not_ compatible with the regular Unleash client API.
+This library can be used with the [Unleash Proxy](https://github.com/Unleash/unleash-proxy) or with the [Unleash front-end API](../front-end-api.md). It is _not_ compatible with the regular Unleash client API.
For more detailed information, check out the [React Proxy SDK on GitHub](https://github.com/Unleash/proxy-client-react).
## Installation
-Install the React proxy client and the [JavaScript proxy client](proxy-javascript.md) packages:
+Install the React proxy client and the [JavaScript proxy client](javascript-browser.md) packages:
```shell npm2yarn
npm install @unleash/proxy-client-react unleash-proxy-client
@@ -27,7 +26,7 @@ The configuration variables are:
- **`clientKey`**
- One of your proxy's [designated client keys (also known as proxy secrets)](unleash-proxy#configuration-variables).
+ One of your proxy's [designated client keys (also known as proxy secrets)](../unleash-proxy.md#configuration-variables).
- **`refreshInterval`**
@@ -39,7 +38,7 @@ The configuration variables are:
- **`environment`**
- The environment that your application runs in. This corresponds to the environment field in [the Unleash Context](../user_guide/unleash-context.md). Note that this is separate from the newer [Environments feature](../user_guide/environments.md).
+ The environment that your application runs in. This corresponds to the environment field in [the Unleash Context](../../reference/unleash-context.md). Note that this is separate from the newer [Environments feature](../../reference/environments.md).
```jsx
import { FlagProvider } from '@unleash/proxy-client-react';
diff --git a/website/docs/sdks/ruby.md b/website/docs/reference/sdks/ruby.md
similarity index 97%
rename from website/docs/sdks/ruby.md
rename to website/docs/reference/sdks/ruby.md
index 40c87d8eb8..4032b49160 100644
--- a/website/docs/sdks/ruby.md
+++ b/website/docs/reference/sdks/ruby.md
@@ -1,9 +1,8 @@
---
-id: ruby_sdk
title: Ruby SDK
---
-> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../user_guide/api-token)
+> You will need your `API URL` and your `API token` in order to connect the Client SDK to you Unleash instance. You can find this information in the “Admin” section Unleash management UI. [Read more](../../how-to/how-to-create-api-tokens.mdx)
```ruby
require 'unleash'
diff --git a/website/docs/sdks/proxy-svelte.md b/website/docs/reference/sdks/svelte.md
similarity index 97%
rename from website/docs/sdks/proxy-svelte.md
rename to website/docs/reference/sdks/svelte.md
index 68db899cd1..299016099c 100644
--- a/website/docs/sdks/proxy-svelte.md
+++ b/website/docs/reference/sdks/svelte.md
@@ -1,5 +1,4 @@
---
-id: proxy-svelte
title: Svelte Proxy SDK
---
@@ -8,7 +7,7 @@ title: Svelte Proxy SDK
-This library can be used with the [Unleash Proxy](https://github.com/Unleash/unleash-proxy) or with the [Unleash front-end API](../reference/front-end-api). It is _not_ compatible with the regular Unleash client API.
+This library can be used with the [Unleash Proxy](https://github.com/Unleash/unleash-proxy) or with the [Unleash front-end API](../front-end-api.md). It is _not_ compatible with the regular Unleash client API.
For more detailed information, check out the [Svelte Proxy SDK on GitHub](https://github.com/Unleash/proxy-client-svelte).
diff --git a/website/docs/sdks/proxy-vue.md b/website/docs/reference/sdks/vue.md
similarity index 97%
rename from website/docs/sdks/proxy-vue.md
rename to website/docs/reference/sdks/vue.md
index 0eb0fc845a..67b655a0c0 100644
--- a/website/docs/sdks/proxy-vue.md
+++ b/website/docs/reference/sdks/vue.md
@@ -1,5 +1,4 @@
---
-id: proxy-vue
title: Vue Proxy SDK
---
@@ -8,7 +7,7 @@ title: Vue Proxy SDK
-This library can be used with the [Unleash Proxy](https://github.com/Unleash/unleash-proxy) or with the [Unleash front-end API](../reference/front-end-api). It is _not_ compatible with the regular Unleash client API.
+This library can be used with the [Unleash Proxy](https://github.com/Unleash/unleash-proxy) or with the [Unleash front-end API](../front-end-api.md). It is _not_ compatible with the regular Unleash client API.
For more detailed information, check out the [Vue Proxy SDK on GitHub](https://github.com/Unleash/proxy-client-vue).
diff --git a/website/docs/reference/segments.mdx b/website/docs/reference/segments.mdx
index 1c0c568476..8c4191e437 100644
--- a/website/docs/reference/segments.mdx
+++ b/website/docs/reference/segments.mdx
@@ -16,7 +16,7 @@ Want a quick overview of what segments are and what they're used for? Well, then