mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-25 00:07:47 +01:00
Navigation refactor (#5227)
## About the changes Refactor the main nav, with the following goals: * Communicate the value of each section vs the format (ex: “Understanding Unleash” vs “Topic Guides”) * Make space for the Feature Flag tutorials section that we’re starting to build * Scope updates to navigation and pages that need updates based on new URLs & organization * Update URLs to follow the new hierarchy without breaking links (adding redirects & editing internal links between pages as needed) ### Important files sidebar.js docusaurus.config.js ## Discussion points * Redirects can't be tested out of prod, which is a bummer :/ * Some URLs have been preserved untouched while we monitor for potential negative SEO impact of client-side redirects * It's a large PR (sorry). Nav changes and file movements impacted lots of files. --------- Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
This commit is contained in:
parent
94916bc46d
commit
b2b19e4970
@ -1,64 +0,0 @@
|
|||||||
---
|
|
||||||
title: About the docs
|
|
||||||
slug: /
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
Welcome to the Unleash documentation, your one-stop shop to everything Unleash. Whether you're just getting started or have been using Unleash for years, you should be able to find answers to all your questions here.
|
|
||||||
|
|
||||||
## Getting help
|
|
||||||
|
|
||||||
Have questions that you can't find the answer to in these docs? You can always turn to [our GitHub](https://github.com/orgs/Unleash/discussions) or [the Unleash Slack community](https://slack.unleash.run/) and ask us questions directly (or just come and hang out 😄).
|
|
||||||
|
|
||||||
## Documentation structure
|
|
||||||
|
|
||||||
Our documentation is split into four parts, using the [Diátaxis documentation framework](https://diataxis.fr/):
|
|
||||||
|
|
||||||
- [Tutorials and introductory material](#tutorials)
|
|
||||||
- [How-to guides](#how-to-guides)
|
|
||||||
- [Reference documentation](#reference-documentation)
|
|
||||||
- [Topic guides](#topic-guides)
|
|
||||||
|
|
||||||
### Tutorials and introductory material {#tutorials}
|
|
||||||
|
|
||||||
New to Unleash? Not sure where to get started? The tutorials guide you through your first steps with Unleash:
|
|
||||||
|
|
||||||
- [Getting Started](tutorials/getting-started.md)
|
|
||||||
- [Unleash introductory overview](./tutorials/unleash-overview.md)
|
|
||||||
- [Important Unleash concepts](./tutorials/important-concepts.md)
|
|
||||||
|
|
||||||
### How-to guides
|
|
||||||
|
|
||||||
Our how-to guides show you how to perform a number of common tasks that you'll want to do. Think of them as recipes. They are more advanced than the tutorials and assume you have some working knowledge of Unleash.
|
|
||||||
|
|
||||||
The guides are organized into the following categories:
|
|
||||||
|
|
||||||
- [API how-tos](./how-to/api)
|
|
||||||
- [Feature flags, strategies, context, and general how-tos](./how-to/misc)
|
|
||||||
- [Users and permissions how-tos](./how-to/users-and-permissions)
|
|
||||||
- [Single Sign-On (SSO) how-tos](./how-to/sso)
|
|
||||||
- [Troubleshooting how-tos](./how-to/troubleshooting)
|
|
||||||
|
|
||||||
### Reference documentation
|
|
||||||
|
|
||||||
The reference docs contain technical reference for Unleash and the API. Go here to find out how Unleash works and what configuration options are available. They're like an Unleash encyclopedia and assume you have a grip on key Unleash concepts.
|
|
||||||
|
|
||||||
The reference docs are organized into the following topics:
|
|
||||||
|
|
||||||
- [API documentation](./reference/api/legacy/unleash/index.md)
|
|
||||||
- [Unleash SDKs](./reference/sdks/index.md)
|
|
||||||
- [Deployment and management of Unleash](./reference/deploy)
|
|
||||||
- [Integrations](./reference/integrations/integrations.md)
|
|
||||||
- [Unleash concepts](./reference/concepts)
|
|
||||||
|
|
||||||
### Topic guides
|
|
||||||
|
|
||||||
[The topic guides](/topics) discuss high-level concepts related to Unleash and provide extra background information and explanations around these concepts.
|
|
||||||
|
|
||||||
## Other resources and communities
|
|
||||||
|
|
||||||
💻 The core of Unleash is all open source and [hosted on GitHub](https://github.com/Unleash/unleash/ 'Unleash on GitHub').
|
|
||||||
|
|
||||||
💬 If you've got questions or just wanna chat to the team and other Unleash users, leave us a little something on [GitHub Discussions](https://github.com/orgs/Unleash/discussions) or come [join our Slack community](https://slack.unleash.run/)
|
|
||||||
|
|
||||||
🐦 You can also follow us [on Twitter](https://twitter.com/getunleash 'Unleash on Twitter'), [LinkedIn](https://www.linkedin.com/company/getunleash/ 'Unleash on LinkedIn'), or [Instagram](https://www.instagram.com/getunleash/ 'Unleash on Instagram') for more updates and extra content.
|
|
@ -79,7 +79,7 @@ docker run \
|
|||||||
|
|
||||||
The configuration option for enabling OpenAPI and the swagger UI is `enableOAS`. Set this option to `true`.
|
The configuration option for enabling OpenAPI and the swagger UI is `enableOAS`. Set this option to `true`.
|
||||||
|
|
||||||
The following examples have been shortened to show the only the relevant configuration options. For more detailed instructions on how to run Unleash or the proxy, refer to [how to run the Unleash proxy](how-to-run-the-unleash-proxy.mdx) or the [section on running Unleash via Node.js from the deployment section](../reference/deploy/getting-started.md#option-three---from-nodejs) of the documentation.
|
The following examples have been shortened to show the only the relevant configuration options. For more detailed instructions on how to run Unleash or the proxy, refer to [how to run the Unleash proxy](how-to-run-the-unleash-proxy.mdx) or the [section on running Unleash via Node.js from the deployment section](/using-unleash/deploy/getting-started.md#option-three---from-nodejs) of the documentation.
|
||||||
|
|
||||||
<Tabs groupId="openapi-configuration">
|
<Tabs groupId="openapi-configuration">
|
||||||
|
|
||||||
|
@ -24,21 +24,21 @@ When you export features, the export will contain both feature-specific configur
|
|||||||
|
|
||||||
On the project-level these items are exported:
|
On the project-level these items are exported:
|
||||||
|
|
||||||
* [the feature itself](../feature-toggles.mdx)
|
* [the feature itself](/reference/feature-toggles.mdx)
|
||||||
* [feature tags](../tags.md)
|
* [feature tags](/reference/tags.md)
|
||||||
* [feature dependencies](../dependent-features.md)
|
* [feature dependencies](/reference/dependent-features.md)
|
||||||
|
|
||||||
On the environment-level, these items are exported for the chosen environment:
|
On the environment-level, these items are exported for the chosen environment:
|
||||||
|
|
||||||
* [activation strategies](../activation-strategies.md) including [constraints](../strategy-constraints.md) and references to [segments](../segments.mdx)
|
* [activation strategies](/reference/activation-strategies.md) including [constraints](/reference/strategy-constraints.md) and references to [segments](/reference/segments.mdx)
|
||||||
* [variants](../feature-toggle-variants.md)
|
* [variants](/reference/feature-toggle-variants.md)
|
||||||
* enabled/disabled
|
* enabled/disabled
|
||||||
|
|
||||||
Additionally, these global configuration items are exported:
|
Additionally, these global configuration items are exported:
|
||||||
* [custom context fields](../unleash-context.md#custom-context-fields)
|
* [custom context fields](/reference/unleash-context.md#custom-context-fields)
|
||||||
* [feature tag types](../tags.md#tag-types)
|
* [feature tag types](/reference/tags.md#tag-types)
|
||||||
|
|
||||||
Importantly, while references to [segments](../segments.mdx) are exported, the segments themselves are **not** exported. Consult the [import requirements](#import-requirements) section for more information.
|
Importantly, while references to [segments](/reference/segments.mdx) are exported, the segments themselves are **not** exported. Consult the [import requirements](#import-requirements) section for more information.
|
||||||
|
|
||||||
## Export
|
## Export
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ Import is a 3 stage process designed to be efficient and error-resistant.
|
|||||||
|
|
||||||
* **upload** - you can upload previously exported JSON file or copy-paste export data from the exported JSON file into the code editor
|
* **upload** - you can upload previously exported JSON file or copy-paste export data from the exported JSON file into the code editor
|
||||||
* **validation** - you will get feedback on any errors or warnings before you do the actual import. This makes sure your feature flags configurations. You will not be able to finish the import if you have errors. Warnings don't stop you from importing.
|
* **validation** - you will get feedback on any errors or warnings before you do the actual import. This makes sure your feature flags configurations. You will not be able to finish the import if you have errors. Warnings don't stop you from importing.
|
||||||
* **import** - the actual import that creates a new configuration in the target environment or creates a [change request](../change-requests.md) when the environment has change requests enabled
|
* **import** - the actual import that creates a new configuration in the target environment or creates a [change request]/reference/change-requests.md) when the environment has change requests enabled
|
||||||
|
|
||||||
![The import UI. It has three stages: import, file, validate configuration, finish import.](/img/import.png)
|
![The import UI. It has three stages: import, file, validate configuration, finish import.](/img/import.png)
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ If any of the features you import already exist in the target Unleash instance,
|
|||||||
|
|
||||||
#### Pending change requests
|
#### Pending change requests
|
||||||
|
|
||||||
The project and environment you are importing into must **not have any pending [change requests](../change-requests.md)**.
|
The project and environment you are importing into must **not have any pending [change requests](/reference/change-requests.md)**.
|
||||||
|
|
||||||
### Import warnings
|
### Import warnings
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ If you permanently delete the archived `feature-a` from the target instance, the
|
|||||||
|
|
||||||
#### Custom strategies
|
#### Custom strategies
|
||||||
|
|
||||||
Unleash will verify that any custom strategies you are trying to import have already been defined on the target instance. However, it only does this verification by name. It does **not** validate that the definitions are otherwise the same or that they have the same [configuration parameters](../custom-activation-strategies.md#parameters).
|
Unleash will verify that any custom strategies you are trying to import have already been defined on the target instance. However, it only does this verification by name. It does **not** validate that the definitions are otherwise the same or that they have the same [configuration parameters](/reference/custom-activation-strategies.md#parameters).
|
||||||
|
|
||||||
### Required permissions
|
### Required permissions
|
||||||
|
|
||||||
@ -128,9 +128,9 @@ If change requests are enabled for the target project and environment, the impor
|
|||||||
|
|
||||||
If change requests are enabled, any permissions for **Create activation strategies**, **Delete activation strategies** and **Update variants** are not required.
|
If change requests are enabled, any permissions for **Create activation strategies**, **Delete activation strategies** and **Update variants** are not required.
|
||||||
|
|
||||||
## Environment import/export vs the [instance import/export API](import-export.md)
|
## Environment import/export vs the [instance import/export API](how-to-import-export.md)
|
||||||
|
|
||||||
Environment import/export has some similarities to the [instance import/export API](import-export.md), but they serve different purposes.
|
Environment import/export has some similarities to the [instance import/export API](how-to-import-export.md), but they serve different purposes.
|
||||||
|
|
||||||
The instance import/export API was designed to export all feature toggles (optionally with strategies and projects) from one Unleash instance to another. When it was developed, Unleash had much fewer features than it does now. As such, the API lacks support for some of the more recent features in Unleash.
|
The instance import/export API was designed to export all feature toggles (optionally with strategies and projects) from one Unleash instance to another. When it was developed, Unleash had much fewer features than it does now. As such, the API lacks support for some of the more recent features in Unleash.
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
title: My requests are being blocked by CORS
|
|
||||||
---
|
|
||||||
|
|
||||||
1. Make sure you've configured CORS access in Unleash admin UI settings as defined in the [Unleash CORS Policy docs](../reference/front-end-api#cors). These settings can be changed in the Unleash Dashboard under **Settings -> CORS Origins** or by using the [API](../reference/api/unleash/set-ui-config). Allowing all origins (using a single asterisk) will address this matter and is a great starting point when troubleshooting the behavior.
|
|
||||||
1. When receiving "**No 'Access-Control-Policy' header is present on the requested resource**", using the command `curl -I https://<host>/<endpoint>` will allow us to verify that the response includes the header `Access-Control-Allow-Origin: *`.
|
|
@ -1,11 +1,10 @@
|
|||||||
---
|
---
|
||||||
id: getting-started
|
title: Quick Start
|
||||||
title: Getting Started
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Set up Unleash {#set-up-unleash}
|
There are lots of options to get started with Unleash. If you're comfortable with Docker, this is the fastest way to get up and running. If that's not you, here are [some additional ways to try Unleash](#more-unleash)
|
||||||
|
|
||||||
### Run Unleash in Docker {#run-unleash-in-docker}
|
## 1. Set up Unleash with Docker {#setup-unleash-docker}
|
||||||
|
|
||||||
The easiest way to run unleash locally is using git and [docker](https://www.docker.com/).
|
The easiest way to run unleash locally is using git and [docker](https://www.docker.com/).
|
||||||
|
|
||||||
@ -15,7 +14,7 @@ cd unleash
|
|||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
[Click here to see all options to get started locally.](reference/deploy/getting-started.md)
|
## 2. Log in to the Admin UI
|
||||||
|
|
||||||
Then point your browser to localhost:4242 and log in using:
|
Then point your browser to localhost:4242 and log in using:
|
||||||
|
|
||||||
@ -24,45 +23,29 @@ username: admin
|
|||||||
password: unleash4all
|
password: unleash4all
|
||||||
```
|
```
|
||||||
|
|
||||||
### Unleash Demo Instance {#unleash-demo-instance}
|
## 3. Create your first flag {#create-a-flag}
|
||||||
|
|
||||||
For testing purposes we have set up a demo instance that you can use in order to test out different use-cases before setting up your own instance. You can find the demo instance here: https://app.unleash-hosted.com/demo/
|
1. Navigate to the Feature toggles list
|
||||||
|
2. Click 'New feature toggle'
|
||||||
|
3. Give it a unique name, and click 'Create feature toggle'
|
||||||
|
|
||||||
NOTE: This is a demo instance set up with the Enterprise version. Some of the functionality may be enterprise specific, but everything we cover here is also available in open source.
|
For a detailed guide on how to create a flag through the UI, [you can follow this guide](/how-to/how-to-create-feature-toggles.md).
|
||||||
|
|
||||||
### Unleash Pro & Enterprise Instances {#unleash-pro-and-enterprise-instances}
|
## 4a. Connect a client-side SDK {#connect-a-client-side-sdk}
|
||||||
|
|
||||||
You can run Unleash in the cloud by using our hosted offerings. Please see the [plans page](https://www.getunleash.io/pricing) to learn more.
|
To try Unleash with a client-side technology, create a [front-end token](/reference/api-tokens-and-client-keys.mdx#front-end-tokens) and use `<your-unleash-instance>/api/frontend` as the API URL.
|
||||||
|
|
||||||
## Create your first flag {#create-a-flag}
|
Now you can open your application code and connect through one of the [client-side SDKs](/reference/sdks#client-side-sdks).
|
||||||
|
|
||||||
**Step 1: Navigate to the Feature toggles list**
|
The following example shows you how you could use the [JavaScript SDK](/generated/sdks/client-side/javascript-browser.md) to connect to the Unleash demo frontend API:
|
||||||
|
|
||||||
**Step 2: Click 'New feature toggle'**
|
|
||||||
|
|
||||||
**Step 3: Give it a unique name, and click 'Create feature toggle'**
|
|
||||||
|
|
||||||
For a detailed guide on how to create a flag through the UI, [you can follow this guide](../how-to/how-to-create-feature-toggles.md).
|
|
||||||
|
|
||||||
## Connect a client-side SDK {#connect-a-client-side-sdk}
|
|
||||||
|
|
||||||
If you have set up your own Unleash instance and are using the front-end API, then create a [front-end token](../reference/api-tokens-and-client-keys.mdx#front-end-tokens) and use `<your-unleash-instance>/api/frontend` as the API URL.
|
|
||||||
|
|
||||||
If you don't have your own Unleash instance set up, you can use the Unleash demo instance's frontend API. In that case, the details are:
|
|
||||||
- API URL: `https://app.unleash-hosted.com/demo/api/frontend`
|
|
||||||
- Frontend key: `demo-app:default.bf8d2a449a025d1715a28f218dd66a40ef4dcc97b661398f7e05ba67`
|
|
||||||
|
|
||||||
Now you can open your application code and connect through one of the [client-side SDKs](../reference/sdks#client-side-sdks).
|
|
||||||
|
|
||||||
The following example shows you how you could use the [JavaScript SDK](../generated/sdks/client-side/javascript-browser.md) to connect to the Unleash demo frontend API:
|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import { UnleashClient } from 'unleash-proxy-client';
|
import { UnleashClient } from 'unleash-proxy-client';
|
||||||
|
|
||||||
const unleash = new UnleashClient({
|
const unleash = new UnleashClient({
|
||||||
url: 'https://app.unleash-hosted.com/demo/api/frontend',
|
url: 'https://<your-unleash-instance>/api/frontend',
|
||||||
clientKey: 'demo-app:default.bf8d2a449a025d1715a28f218dd66a40ef4dcc97b661398f7e05ba67',
|
clientKey: '<your-token>',
|
||||||
appName: 'my-app-name-frontend',
|
appName: '<your-app-name>',
|
||||||
});
|
});
|
||||||
|
|
||||||
unleash.on('synchronized', () => {
|
unleash.on('synchronized', () => {
|
||||||
@ -75,31 +58,19 @@ unleash.on('synchronized', () => {
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
## Connect a backend SDK {#connect-a-backend-sdk}
|
## 4b. Connect a backend SDK {#connect-a-backend-sdk}
|
||||||
|
|
||||||
If you have set up your own Unleash instance and want to connect using a backend SDK, then create a [client token](../reference/api-tokens-and-client-keys#client-tokens) and use `<your-unleash-instance>/api` as the API URL.
|
To try Unleash with a server-side technology, create a [client token](/reference/api-tokens-and-client-keys#client-tokens) and use `<your-unleash-instance>/api` as the API URL.
|
||||||
|
|
||||||
If you don't have your own Unleash instance set up, you can use the Unleash demo instance's client key. In that case, the details are:
|
Now you can open up your application code and create a connection to Unleash using one of our [SDKs](/reference/sdks/index.md). Here's an example using the [NodeJS SDK](/reference/sdks/node) to connect to the Unleash demo instance:
|
||||||
- API URL: `https://app.unleash-hosted.com/demo/api`
|
|
||||||
- Client key: `56907a2fa53c1d16101d509a10b78e36190b0f918d9f122d`
|
|
||||||
|
|
||||||
Curl command test credentials and retrieve feature toggles:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl https://app.unleash-hosted.com/demo/api/client/features \
|
|
||||||
-H "Authorization: 56907a2fa53c1d16101d509a10b78e36190b0f918d9f122d";
|
|
||||||
```
|
|
||||||
|
|
||||||
Now you can open up your application code and create a connection to Unleash using one of our [SDKs](../reference/sdks/index.md). Here's an example using the NodeJS SDK to connect to the Unleash demo instance:
|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const { initialize } = require('unleash-client');
|
const { initialize } = require('unleash-client');
|
||||||
const unleash = initialize({
|
const unleash = initialize({
|
||||||
url: 'https://app.unleash-hosted.com/demo/api/',
|
url: 'https://<your-unleash-instance>/api/',
|
||||||
appName: 'my-app-name-backend',
|
appName: '<your-app-name>',
|
||||||
instanceId: 'my-unique-instance-id',
|
|
||||||
customHeaders: {
|
customHeaders: {
|
||||||
Authorization: '56907a2fa53c1d16101d509a10b78e36190b0f918d9f122d',
|
Authorization: '<your-token>',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -111,3 +82,38 @@ unleash.on('synchronized', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Additional Ways to Try Unleash {#more-unleash}
|
||||||
|
|
||||||
|
### Unleash Demo Instance {#unleash-demo-instance}
|
||||||
|
|
||||||
|
For testing purposes we have set up a demo instance that you can use in order to test out different use-cases before setting up your own instance. You can find the demo instance here: https://app.unleash-hosted.com/demo/
|
||||||
|
|
||||||
|
NOTE: This is a demo instance set up with the Enterprise version. [More information on our different versions](https://www.getunleash.io/pricing).
|
||||||
|
|
||||||
|
If you don't have your own Unleash instance set up, you can use the Unleash demo instance. In that case, the details are:
|
||||||
|
|
||||||
|
**Client Side**
|
||||||
|
- API URL: `https://app.unleash-hosted.com/demo/api/frontend`
|
||||||
|
- Frontend key: `demo-app:default.bf8d2a449a025d1715a28f218dd66a40ef4dcc97b661398f7e05ba67`
|
||||||
|
|
||||||
|
**Server Side**
|
||||||
|
- API URL: `https://app.unleash-hosted.com/demo/api`
|
||||||
|
- Client key: `56907a2fa53c1d16101d509a10b78e36190b0f918d9f122d`
|
||||||
|
|
||||||
|
Curl command to test credentials and retrieve feature toggles:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl https://app.unleash-hosted.com/demo/api/client/features \
|
||||||
|
-H "Authorization: 56907a2fa53c1d16101d509a10b78e36190b0f918d9f122d";
|
||||||
|
```
|
||||||
|
|
||||||
|
### Unleash Pro & Enterprise Instances {#unleash-pro-and-enterprise-instances}
|
||||||
|
|
||||||
|
You can run Unleash in the cloud by using our hosted offerings. Please see the [plans page](https://www.getunleash.io/pricing) to learn more.
|
||||||
|
|
||||||
|
### Other Local Setup Options
|
||||||
|
|
||||||
|
There are several [more options to get started locally.](using-unleash/deploy/getting-started.md)
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: API tokens and client keys
|
title: API Tokens and Client Keys
|
||||||
---
|
---
|
||||||
|
|
||||||
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](../generated/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.
|
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](../generated/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.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Archived toggles
|
title: Archived Toggles
|
||||||
---
|
---
|
||||||
|
|
||||||
You can _archive_ a feature toggle when it is not needed anymore. You do this by clicking the "Archive" button on the feature toggle details view. When you archive a feature toggle, it will no longer be available to Client SDKs.
|
You can _archive_ a feature toggle when it is not needed anymore. You do this by clicking the "Archive" button on the feature toggle details view. When you archive a feature toggle, it will no longer be available to Client SDKs.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Change requests
|
title: Change Requests
|
||||||
---
|
---
|
||||||
|
|
||||||
import VideoContent from '@site/src/components/VideoContent.jsx';
|
import VideoContent from '@site/src/components/VideoContent.jsx';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Dependent features
|
title: Dependent Features
|
||||||
---
|
---
|
||||||
|
|
||||||
:::info Availability
|
:::info Availability
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: The event log
|
title: Event Log
|
||||||
---
|
---
|
||||||
|
|
||||||
The event log lets you track changes in Unleash. It lists _what_ changed, _when_ it changed, and _who_ performed the change.
|
The event log lets you track changes in Unleash. It lists _what_ changed, _when_ it changed, and _who_ performed the change.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Event types
|
title: Event Types
|
||||||
---
|
---
|
||||||
|
|
||||||
Unleash emits a large number of different events (described in more detail in the next sections). The exact fields an event contains varies from event to event, but they all conform to the following TypeScript interface before being transformed to JSON:
|
Unleash emits a large number of different events (described in more detail in the next sections). The exact fields an event contains varies from event to event, but they all conform to the following TypeScript interface before being transformed to JSON:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Impression data
|
title: Impression Data
|
||||||
---
|
---
|
||||||
|
|
||||||
:::info Availability
|
:::info Availability
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Login history
|
title: Login History
|
||||||
---
|
---
|
||||||
|
|
||||||
:::info Availability
|
:::info Availability
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Network view
|
title: Network View
|
||||||
---
|
---
|
||||||
|
|
||||||
import Figure from '@site/src/components/Figure/Figure.tsx'
|
import Figure from '@site/src/components/Figure/Figure.tsx'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: The Playground
|
title: Playground
|
||||||
---
|
---
|
||||||
import Figure from '@site/src/components/Figure/Figure.tsx'
|
import Figure from '@site/src/components/Figure/Figure.tsx'
|
||||||
import VideoContent from '@site/src/components/VideoContent.jsx'
|
import VideoContent from '@site/src/components/VideoContent.jsx'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Project collaboration mode
|
title: Project Collaboration Mode
|
||||||
---
|
---
|
||||||
|
|
||||||
:::info Availability
|
:::info Availability
|
||||||
|
@ -49,13 +49,13 @@ In theory, you could create segments with a thousand constraints, each with a mi
|
|||||||
|
|
||||||
By default, you can apply **at most 5 segments to any one strategy**. Separate strategies (even on the same feature) do not count towards the same total, so you can have two strategies with 5 segments each.
|
By default, you can apply **at most 5 segments to any one strategy**. Separate strategies (even on the same feature) do not count towards the same total, so you can have two strategies with 5 segments each.
|
||||||
|
|
||||||
You **can** [configure segment limits](deploy/configuring-unleash.md#segments) with environment variables.
|
You **can** [configure segment limits](/using-unleash/deploy/configuring-unleash.md#segments) with environment variables.
|
||||||
|
|
||||||
### A note on large segments {#large-segments}
|
### A note on large segments {#large-segments}
|
||||||
|
|
||||||
Segments are just constraints, so any limitations that apply to constraints also apply to segments.
|
Segments are just constraints, so any limitations that apply to constraints also apply to segments.
|
||||||
|
|
||||||
This means that if you want to add a hundred different user IDs to one of your constraints, you are most likely better off thinking about finding another way to solve this problem. That may be using a different abstraction or finding another pattern that you can use instead. Refer to the section on [constraint limitations](../reference/strategy-constraints.md#limitations) for a more thorough explanation or to [the topic guide on using Unleash with large constraints](../topics/managing-constraints.mdx) for a more thorough .
|
This means that if you want to add a hundred different user IDs to one of your constraints, you are most likely better off thinking about finding another way to solve this problem. That may be using a different abstraction or finding another pattern that you can use instead. Refer to the section on [constraint limitations](../reference/strategy-constraints.md#limitations) for a more thorough explanation or to [the topic guide on using Unleash with large constraints](../understanding-unleash/managing-constraints.mdx) for a more thorough .
|
||||||
|
|
||||||
## Creating, updating, and deleting segments
|
## Creating, updating, and deleting segments
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: Service accounts
|
title: Service Accounts
|
||||||
---
|
---
|
||||||
|
|
||||||
:::info Availability
|
:::info Availability
|
||||||
|
@ -188,7 +188,7 @@ This value can still be negated as explained in [the section on negating values]
|
|||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
|
|
||||||
Explored the content in this subsection in more depth in [the topic guide on using Unleash with large constraints](../topics/managing-constraints.mdx).
|
Explored the content in this subsection in more depth in [the topic guide on using Unleash with large constraints](/understanding-unleash/managing-constraints.mdx).
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Version 4 of Unleash brings a lot of improvements to Unleash. In this document w
|
|||||||
|
|
||||||
### Upgrade with ease {#upgrade-with-ease}
|
### Upgrade with ease {#upgrade-with-ease}
|
||||||
|
|
||||||
Unleash can either be hosted by us or self-hosted. If you have a managed Unleash Enterprise instance you are automatically upgraded to version 4. If you manage Unleash yourself (either Open-Source or Enterprise Self-hosted) we recommend reading the [migration guide](../reference/deploy/migration-guide.md).
|
Unleash can either be hosted by us or self-hosted. If you have a managed Unleash Enterprise instance you are automatically upgraded to version 4. If you manage Unleash yourself (either Open-Source or Enterprise Self-hosted) we recommend reading the [migration guide](../using-unleash/deploy/upgrading-unleash.md).
|
||||||
|
|
||||||
**PS! The first time you access Unleash v4 from a self-hosted instance you will need to login with the default admin user:**
|
**PS! The first time you access Unleash v4 from a self-hosted instance you will need to login with the default admin user:**
|
||||||
|
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
---
|
|
||||||
title: Important Concepts
|
|
||||||
---
|
|
||||||
|
|
||||||
There are some concepts it's important to understand in order to work effectively with Unleash:
|
|
||||||
|
|
||||||
## Activation strategies
|
|
||||||
|
|
||||||
Feature toggles can have multiple activation strategies. An activation strategy will only run when a feature toggle is enabled and provides a way to control WHO will get access to the feature.
|
|
||||||
|
|
||||||
Activation strategies compound, and every single strategy will be evaluated. If any one of them returns true, the user will receive access to the feature.
|
|
||||||
|
|
||||||
> Unless you add activation strategies on toggle creation, the toggle will be created with the default strategy. The default strategy says that the toggle is either 100% off or 100% on for all users. This means that any other strategies you add will have no effect. If you want to use strategies to control rollout you need to remove the default strategy.
|
|
||||||
|
|
||||||
Unleash comes with a set of built-in strategies, but you can also build your own [custom strategies](../reference/custom-activation-strategies.md).
|
|
||||||
|
|
||||||
[You can read more about activation strategies here.](/reference/activation-strategies.md)
|
|
||||||
|
|
||||||
## Local evaluation
|
|
||||||
|
|
||||||
All our SDKs perform local evaluation of feature toggles, which means that they download the configuration from unleash and cache the configuration in memory in your application. This is done in order to avoid adding network latency to user interactions, making it unnoticable for users that you are using feature flagging, in addition to the added benefit that none of your data leaves your application - enforcing privacy by design.
|
|
||||||
|
|
||||||
[Read more about our unique architecture here.](https://www.getunleash.io/blog/our-unique-architecture)
|
|
||||||
|
|
||||||
## Unleash Context
|
|
||||||
|
|
||||||
Since the SDKs perform local evaluation, some of the parameters needed for evaluation must be supplied through the Unleash Context. The unleash context allows you to pass in userIds, sessionIds or other relevant information that is needed in order to perform the evaluation. If, for example, you want to enable a feature for a set of specific userIds, you would need to provide the current userId in the unleash context in order for the evaluation to enable the feature.
|
|
||||||
|
|
||||||
[You can read more about the unleash context here.](/reference/unleash-context.md)
|
|
||||||
|
|
||||||
## API architecture
|
|
||||||
|
|
||||||
The Unleash API is split into two. One API is for the clients connecting to unleash. It is located under the path /api/client. This provides access to retrieving saved feature toggle configurations, metrics and registering the application.
|
|
||||||
|
|
||||||
The second API is the admin API, which is utilised in order to control any CRUD aspect of unleash resources. The split ensures a second layer of security that ensures that in the case you should loose your client api key, attackers will only have read-only access to your feature toggle configurations.
|
|
||||||
|
|
||||||
This ensures that we can have different data responses for the client API endpoints which will include less metadata, and be cached more heavily - optimising the SDK endpoints for best performance.
|
|
||||||
|
|
||||||
[Read more about the unleash API here.](/reference/api/legacy/unleash/index.md)
|
|
||||||
|
|
||||||
## Feature toggle types
|
|
||||||
|
|
||||||
Unleash categorizes feature toggles into five distinct types. This categorization makes it easier for you to see what the purpose of a toggle is and helps Unleash with [managing technical debt](/reference/technical-debt). A feature toggle's type has no effect on how the toggle behaves or how you can configure it.
|
|
||||||
|
|
||||||
[Read more about feature toggle types here.](../reference/feature-toggle-types.md)
|
|
@ -124,7 +124,7 @@ Segments are only available to Pro and Enterprise users.
|
|||||||
|
|
||||||
## Variants and feature toggle payloads
|
## Variants and feature toggle payloads
|
||||||
|
|
||||||
By default, a [feature toggle](../reference/feature-toggles.mdx) in Unleash only tells you whether a feature is enabled or disabled, but you can also add more information to your toggles by using [**feature toggle variants**](../reference/feature-toggle-variants.md). Variants also allow you to run [A/B testing experiments](a-b-testing.md).
|
By default, a [feature toggle](../reference/feature-toggles.mdx) in Unleash only tells you whether a feature is enabled or disabled, but you can also add more information to your toggles by using [**feature toggle variants**](../reference/feature-toggle-variants.md). Variants also allow you to run [A/B testing experiments](/topics/a-b-testing.md).
|
||||||
|
|
||||||
Feature toggles are designed to let you decide which users get access to a feature. Variants are designed to let you decide **which version** of the feature a user gets access to. For instance, if user A is part of your beta testing program and gets access to a new beta feature, then you can use variants to decide whether they should get the red version or the green version of the feature.
|
Feature toggles are designed to let you decide which users get access to a feature. Variants are designed to let you decide **which version** of the feature a user gets access to. For instance, if user A is part of your beta testing program and gets access to a new beta feature, then you can use variants to decide whether they should get the red version or the green version of the feature.
|
||||||
|
|
@ -10,8 +10,8 @@ If you want more details you can read about [our unique architecture](https://ww
|
|||||||
|
|
||||||
Before you can connect your application to Unleash you need a Unleash server. You have a few options available:
|
Before you can connect your application to Unleash you need a Unleash server. You have a few options available:
|
||||||
|
|
||||||
1. **Unleash Open-source**
|
1. **Unleash Open-Source**
|
||||||
- [Docker](../reference/deploy/getting-started.md)
|
- [Docker](../using-unleash/deploy/getting-started.md)
|
||||||
- [Helm Chart](https://github.com/unleash/helm-charts/)
|
- [Helm Chart](https://github.com/unleash/helm-charts/)
|
||||||
- [GitLab](https://docs.gitlab.com/ee/operations/feature_flags.html#choose-a-client-library)
|
- [GitLab](https://docs.gitlab.com/ee/operations/feature_flags.html#choose-a-client-library)
|
||||||
2. **Unleash Enterprise**
|
2. **Unleash Enterprise**
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
id: academy
|
id: introduction
|
||||||
title: Unleash Academy
|
title: Unleash Academy
|
||||||
---
|
---
|
||||||
import Tabs from '@theme/Tabs';
|
import Tabs from '@theme/Tabs';
|
||||||
@ -36,7 +36,7 @@ Example titles are provided for additional guidance:
|
|||||||
* Manager, Executive
|
* Manager, Executive
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
All roles working with Unleash start with the [**Foundational**](academy-foundational.md) training. Then, role dependent courses are offered thereafter.
|
All roles working with Unleash start with the [**Foundational**](foundational.md) training. Then, role dependent courses are offered thereafter.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
**2. Now check the course directory or the graphic below to find out which courses apply to your persona!**
|
**2. Now check the course directory or the graphic below to find out which courses apply to your persona!**
|
||||||
@ -50,24 +50,24 @@ All roles working with Unleash start with the [**Foundational**](academy-foundat
|
|||||||
<Tabs>
|
<Tabs>
|
||||||
<TabItem value="Developer" label="Developer" default>
|
<TabItem value="Developer" label="Developer" default>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="academy-foundational"><strong>Foundational</strong></a> (75min) </li>
|
<li><a href="foundational"><strong>Foundational</strong></a> (75min) </li>
|
||||||
<li><a href="academy-advanced-for-devs"><strong>Advanced for Developers</strong></a> (45min)</li>
|
<li><a href="advanced-for-devs"><strong>Advanced for Developers</strong></a> (45min)</li>
|
||||||
</ol>
|
</ol>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="DevOps / Admin" label="DevOps / Admin">
|
<TabItem value="DevOps / Admin" label="DevOps / Admin">
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="academy-foundational"><strong>Foundational</strong></a> (75min) </li>
|
<li><a href="foundational"><strong>Foundational</strong></a> (75min) </li>
|
||||||
<li><a href="academy-managing-unleash-for-devops"><strong>Managing Unleash for DevOps/Admins</strong></a> (45min)</li>
|
<li><a href="managing-unleash-for-devops"><strong>Managing Unleash for DevOps/Admins</strong></a> (45min)</li>
|
||||||
</ol>
|
</ol>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="Product Owner" label="Product Owner">
|
<TabItem value="Product Owner" label="Product Owner">
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="academy-foundational"><strong>Foundational</strong></a> (75min) </li>
|
<li><a href="foundational"><strong>Foundational</strong></a> (75min) </li>
|
||||||
</ol>
|
</ol>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="People Leader" label="People Leader">
|
<TabItem value="People Leader" label="People Leader">
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="academy-foundational"><strong>Foundational</strong></a> (75min) </li>
|
<li><a href="foundational"><strong>Foundational</strong></a> (75min) </li>
|
||||||
</ol>
|
</ol>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
@ -85,6 +85,6 @@ See also the following visualization of the learning paths
|
|||||||
|
|
||||||
### Directory by Course
|
### Directory by Course
|
||||||
|
|
||||||
- [**Foundational**](academy-foundational.md) - For all roles working with Unleash - Developers, Product owners, Leaders.
|
- [**Foundational**](foundational.md) - For all roles working with Unleash - Developers, Product owners, Leaders.
|
||||||
- [**Advanced for Developers**](academy-advanced-for-devs.md) - For Developers only, after Foundational content has been reviewed
|
- [**Advanced for Developers**](advanced-for-devs.md) - For Developers only, after Foundational content has been reviewed
|
||||||
- [**Managing Unleash for DevOps/Admins**](academy-managing-unleash-for-devops.md) - For DevOps, Platform leads and Admins only after Foundational content has been reviewed
|
- [**Managing Unleash for DevOps/Admins**](managing-unleash-for-devops.md) - For DevOps, Platform leads and Admins only after Foundational content has been reviewed
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
id: academy-advanced-for-devs
|
id: advanced-for-devs
|
||||||
title: Advanced for Developers
|
title: Advanced for Developers
|
||||||
---
|
---
|
||||||
import VideoContent from '@site/src/components/VideoContent.jsx'
|
import VideoContent from '@site/src/components/VideoContent.jsx'
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
id: academy-foundational
|
id: foundational
|
||||||
title: Foundational
|
title: Foundational
|
||||||
---
|
---
|
||||||
import VideoContent from '@site/src/components/VideoContent.jsx'
|
import VideoContent from '@site/src/components/VideoContent.jsx'
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
id: academy-managing-unleash-for-devops
|
id: managing-unleash-for-devops
|
||||||
title: Managing Unleash for DevOps/Admins
|
title: Managing Unleash for DevOps/Admins
|
||||||
---
|
---
|
||||||
import VideoContent from '@site/src/components/VideoContent.jsx'
|
import VideoContent from '@site/src/components/VideoContent.jsx'
|
@ -95,7 +95,7 @@ unleash.start(unleashOptions);
|
|||||||
- `sender` - Which email should be set as sender of mails being sent from Unleash?
|
- `sender` - Which email should be set as sender of mails being sent from Unleash?
|
||||||
- `smtpuser` - Username for your SMTP server
|
- `smtpuser` - Username for your SMTP server
|
||||||
- `smtppass` - Password for your SMTP server
|
- `smtppass` - Password for your SMTP server
|
||||||
- ~~eventHook~~ (`function(event, data)`) - (_deprecated in Unleash 4.3_ in favor of the [Webhook integration](../integrations/webhook.md). **Removed in Unleash 5**) 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).
|
- ~~eventHook~~ (`function(event, data)`) - (_deprecated in Unleash 4.3_ in favor of the [Webhook integration](/reference/integrations/webhook.md). **Removed in Unleash 5**) 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).
|
- **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`.
|
- **logLevel** (`debug` | `info` | `warn` | `error` | `fatal`) - The lowest level to log at, also configurable using environment variable `LOG_LEVEL`.
|
||||||
- **enableRequestLogger** (boolean) - use this to enable logging for requested urls and response codes (default: false).
|
- **enableRequestLogger** (boolean) - use this to enable logging for requested urls and response codes (default: false).
|
||||||
@ -133,7 +133,7 @@ unleash.start(unleashOptions);
|
|||||||
- **clientFeatureCaching** - configuring memoization of the /api/client/features endpoint
|
- **clientFeatureCaching** - configuring memoization of the /api/client/features endpoint
|
||||||
- `enabled` - set to true by default - Overridable with (`CLIENT_FEATURE_CACHING_ENABLED`)
|
- `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)
|
- `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](../front-end-api.md).
|
- **frontendApi** - Configuration options for the [Unleash front-end API](/reference/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.
|
- `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.
|
||||||
- **accessControlMaxAge** - You can configure the max-age of the Access-Control-Max-Age header. Defaults to 86400 seconds. Overridable with the `ACCESS_CONTROL_MAX_AGE` environment variable.
|
- **accessControlMaxAge** - You can configure the max-age of the Access-Control-Max-Age header. Defaults to 86400 seconds. Overridable with the `ACCESS_CONTROL_MAX_AGE` environment variable.
|
||||||
- **responseTimeWithAppNameKillSwitch** - use this to disable metrics with app names. This is enabled by default but may increase the cardinality of metrics causing Unleash memory usage to grow if your app name is randomly generated (which is not recommended). Overridable with the `UNLEASH_RESPONSE_TIME_WITH_APP_NAME_KILL_SWITCH` environment variable.
|
- **responseTimeWithAppNameKillSwitch** - use this to disable metrics with app names. This is enabled by default but may increase the cardinality of metrics causing Unleash memory usage to grow if your app name is randomly generated (which is not recommended). Overridable with the `UNLEASH_RESPONSE_TIME_WITH_APP_NAME_KILL_SWITCH` environment variable.
|
||||||
@ -200,7 +200,7 @@ Changing segment limits could have a negative impact on the performance of Unlea
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
Some facets of the [segments feature](../segments.mdx) can be customized via environment variables. This lets you change the [segment limits](../segments.mdx#segment-limits) that Unleash uses.
|
Some facets of the [segments feature](/reference/segments.mdx) can be customized via environment variables. This lets you change the [segment limits](/reference/segments.mdx#segment-limits) that Unleash uses.
|
||||||
|
|
||||||
`UNLEASH_STRATEGY_SEGMENTS_LIMIT` controls the maximum number of segments that can be applied to a single strategy. The default is 5.
|
`UNLEASH_STRATEGY_SEGMENTS_LIMIT` controls the maximum number of segments that can be applied to a single strategy. The default is 5.
|
||||||
|
|
@ -6,7 +6,7 @@ title: Google Auth Hook
|
|||||||
|
|
||||||
This part of the tutorial shows how to create a sign-in flow for users and integrate with Unleash server project. The implementation assumes that I am working in `localhost` with `4242` port.
|
This part of the tutorial shows how to create a sign-in flow for users and integrate with Unleash server project. The implementation assumes that I am working in `localhost` with `4242` port.
|
||||||
|
|
||||||
**If you are still using Unleash v3 you need to follow the [google-auth-hook-v3](/deploy/google_auth_v3)**
|
**If you are still using Unleash v3 you need to follow the [google-auth-hook-v3](google-auth-v3)**
|
||||||
|
|
||||||
This is a simple `index.ts` server file.
|
This is a simple `index.ts` server file.
|
||||||
|
|
@ -1,9 +1,16 @@
|
|||||||
---
|
---
|
||||||
title: Migration Guide
|
title: Upgrading Unleash
|
||||||
---
|
---
|
||||||
|
import VideoContent from '@site/src/components/VideoContent.jsx'
|
||||||
|
|
||||||
Generally, the intention is that `unleash-server` should always provide support for clients one major version lower than the current one. This should make it possible to upgrade `unleash` gradually.
|
Generally, the intention is that `unleash-server` should always provide support for clients one major version lower than the current one. This should make it possible to upgrade `unleash` gradually.
|
||||||
|
|
||||||
|
## Upgrading directly from v3.x to v5.x
|
||||||
|
|
||||||
|
<VideoContent videoUrls={["https://www.youtube.com/embed/qmusq_9mE2E"]}/>
|
||||||
|
|
||||||
|
Ivar Østhus, Unleash CTO and Co-Founder, demonstrates how to update Unleash 3.x to Unleash 5.x in just a few minutes with no downtime. You can also [watch this on YouTube with a transcript](https://www.youtube.com/watch?v=qmusq_9mE2E&cc_load_policy=1).
|
||||||
|
|
||||||
## Upgrading from v4.x to v5.x {#upgrading-from-v4x-to-v5x}
|
## Upgrading from v4.x to v5.x {#upgrading-from-v4x-to-v5x}
|
||||||
|
|
||||||
Unleash v5 was released on April 27th, 2023. It contains a few breaking changes.
|
Unleash v5 was released on April 27th, 2023. It contains a few breaking changes.
|
||||||
@ -73,11 +80,11 @@ As such, if you're relying on the specifics of the error structure for those API
|
|||||||
|
|
||||||
## Upgrading from v3.x to v4.x {#upgrading-from-v3x-to-v4x}
|
## Upgrading from v3.x to v4.x {#upgrading-from-v3x-to-v4x}
|
||||||
|
|
||||||
Before you upgrade we strongly recommend that you take a full [database backup](/deploy/database_backup), to make sure you can downgrade to version 3.
|
Before you upgrade we strongly recommend that you take a full [database backup](database-backup), to make sure you can downgrade to version 3.
|
||||||
|
|
||||||
You can also read the highlights of **[what's new in v4](/user_guide/v4-whats-new)**.
|
You can also read the highlights of **[what's new in v4](/user_guide/v4-whats-new)**.
|
||||||
|
|
||||||
### 1. All API calls now requires token. {#1-all-api-calls-now-requires-token}
|
### 1. All API calls now require a token. {#1-all-api-calls-now-requires-token}
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
6
website/docs/using-unleash/troubleshooting/cors.md
Normal file
6
website/docs/using-unleash/troubleshooting/cors.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: My requests are being blocked by CORS
|
||||||
|
---
|
||||||
|
|
||||||
|
1. Make sure you've configured CORS access in Unleash admin UI settings as defined in the [Unleash CORS Policy docs](/reference/front-end-api#cors). These settings can be changed in the Unleash Dashboard under **Settings -> CORS Origins** or by using the [API](/reference/api/unleash/set-ui-config). Allowing all origins (using a single asterisk) will address this matter and is a great starting point when troubleshooting the behavior.
|
||||||
|
1. When receiving "**No 'Access-Control-Policy' header is present on the requested resource**", using the command `curl -I https://<host>/<endpoint>` will allow us to verify that the response includes the header `Access-Control-Allow-Origin: *`.
|
@ -12,7 +12,7 @@ You can usually find availability information in the feature's documentation pag
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
1. Check that the feature is available in your current Unleash version. For example, [Service accounts](../reference/service-accounts) are available in **Unleash 4.21** and later. If you're running a previous version, you'll need to update your Unleash instance.
|
1. Check that the feature is available in your current Unleash version. For example, [Service accounts](/reference/service-accounts) are available in **Unleash 4.21** and later. If you're running a previous version, you'll need to update your Unleash instance.
|
||||||
2. Make sure the feature is available for your plan, as you may need to [upgrade your plan](https://www.getunleash.io/pricing) to access the feature.
|
2. Make sure the feature is available for your plan, as you may need to [upgrade your plan](https://www.getunleash.io/pricing) to access the feature.
|
||||||
3. If this is a beta feature, it may not be enabled for your Unleash instance. Here's how you can enable it:
|
3. If this is a beta feature, it may not be enabled for your Unleash instance. Here's how you can enable it:
|
||||||
- If you have a **hosted** Unleash instance and you'd like early access to the new feature, reach out to us so we can enable it for you.
|
- If you have a **hosted** Unleash instance and you'd like early access to the new feature, reach out to us so we can enable it for you.
|
@ -4,5 +4,5 @@ title: My feature flag is enabled but all/some of our users are not exposed to i
|
|||||||
|
|
||||||
To confirm how users will have flags resolved, follow these steps:
|
To confirm how users will have flags resolved, follow these steps:
|
||||||
1. Ensure your application is waiting for the `ready` event: It could be that frontend clients are calling `isEnabled('feature-flag')` before they have the response from the server. In this case, you should defer isEnabled calls until the client has emitted the `ready` event.
|
1. Ensure your application is waiting for the `ready` event: It could be that frontend clients are calling `isEnabled('feature-flag')` before they have the response from the server. In this case, you should defer isEnabled calls until the client has emitted the `ready` event.
|
||||||
2. The [Unleash Playground](../reference/playground.mdx) was developed with this particular use case in mind. An access token can be used along with context values (passed in via the UI) to see how a flag will be resolved.
|
2. The [Unleash Playground](/reference/playground.mdx) was developed with this particular use case in mind. An access token can be used along with context values (passed in via the UI) to see how a flag will be resolved.
|
||||||
3. When using a **gradual rollout** strategy, be mindful of the **[stickiness](../reference/stickiness)** value. When evaluating a flag, if the provided context does not include the field used in the stickiness configuration, the gradual rollout strategy will be evaluated to `false`.
|
3. When using a **gradual rollout** strategy, be mindful of the **[stickiness](/reference/stickiness)** value. When evaluating a flag, if the provided context does not include the field used in the stickiness configuration, the gradual rollout strategy will be evaluated to `false`.
|
@ -9,10 +9,10 @@ The first thing to look into is to validate that the feature is well configured
|
|||||||
1. Check that the feature is properly enabled:
|
1. Check that the feature is properly enabled:
|
||||||
1. Verify that the feature has a strategy associated to it that will return true for your context (ref: [add a strategy](/how-to/how-to-create-feature-toggles#step-2))
|
1. Verify that the feature has a strategy associated to it that will return true for your context (ref: [add a strategy](/how-to/how-to-create-feature-toggles#step-2))
|
||||||
1. Verify that the feature has been enabled in the environment used by the client application (ref: [enabling a feature flag](/how-to/how-to-create-feature-toggles#step-3))
|
1. Verify that the feature has been enabled in the environment used by the client application (ref: [enabling a feature flag](/how-to/how-to-create-feature-toggles#step-3))
|
||||||
1. Check that your token is of the right [type](../reference/api-tokens-and-client-keys.mdx). To connect to the Frontend API, Edge or Proxy, you need to use a [Front-end token](/reference/api-tokens-and-client-keys#front-end-tokens)
|
1. Check that your token is of the right [type](/reference/api-tokens-and-client-keys.mdx). To connect to the Frontend API, Edge or Proxy, you need to use a [Front-end token](/reference/api-tokens-and-client-keys#front-end-tokens)
|
||||||
1. Check that your token has access to the feature flag. The **token access configuration is immutable post-creation** and defines the set of features that the token can access. The different [parts of a token](/reference/api-tokens-and-client-keys#version-2) determine what projects and environment can be accessed:
|
1. Check that your token has access to the feature flag. The **token access configuration is immutable post-creation** and defines the set of features that the token can access. The different [parts of a token](/reference/api-tokens-and-client-keys#version-2) determine what projects and environment can be accessed:
|
||||||
1. **Access to all projects (current and future)** - Tokens with a leading asterisk will provide access to all projects in a particular environment. For example, the token `*:production:xyz123etc...` will provide access to flags in the production environment of all projects.
|
1. **Access to all projects (current and future)** - Tokens with a leading asterisk will provide access to all projects in a particular environment. For example, the token `*:production:xyz123etc...` will provide access to flags in the production environment of all projects.
|
||||||
1. **Access to a discrete list of projects** - Tokens with a leading set of square brackets (empty) will be given access to a subset of projects in a particular environment. The token will look similar to the following: `[]:production:xyz123etc...`. Which projects the token has access to can be found on the API Tokens page in the Unleash admin UI.
|
1. **Access to a discrete list of projects** - Tokens with a leading set of square brackets (empty) will be given access to a subset of projects in a particular environment. The token will look similar to the following: `[]:production:xyz123etc...`. Which projects the token has access to can be found on the API Tokens page in the Unleash admin UI.
|
||||||
1. **Single project access** - Tokens that lead with a project name are bound to the specified project and environment. For example, `my_fullstack_app:production:xyz123etc...` will only have access to flags in the "my_fullstack_app" project as set in the production environment.
|
1. **Single project access** - Tokens that lead with a project name are bound to the specified project and environment. For example, `my_fullstack_app:production:xyz123etc...` will only have access to flags in the "my_fullstack_app" project as set in the production environment.
|
||||||
1. When using a **gradual rollout** strategy, be mindful of the **[stickiness](../reference/stickiness)** value. When evaluating a flag, if the provided context does not include the field used in the stickiness configuration, the gradual rollout strategy will be evaluated to `false` and therefore it will not be returned by the API.
|
1. When using a **gradual rollout** strategy, be mindful of the **[stickiness](/reference/stickiness)** value. When evaluating a flag, if the provided context does not include the field used in the stickiness configuration, the gradual rollout strategy will be evaluated to `false` and therefore it will not be returned by the API.
|
||||||
1. Feature activation strategies may have constraints, segments, and rules that can be combined in different ways that can lead to complex scenarios. Try using the [Playground](../reference/playground.mdx) to verify that the feature is properly configured and responding as expected.
|
1. Feature activation strategies may have constraints, segments, and rules that can be combined in different ways that can lead to complex scenarios. Try using the [Playground](/reference/playground.mdx) to verify that the feature is properly configured and responding as expected.
|
30
website/docs/welcome.md
Normal file
30
website/docs/welcome.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
title: Welcome
|
||||||
|
slug: /
|
||||||
|
sidebar_position: 1
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
Welcome to Unleash's documentation, your one-stop shop for everything Unleash. Whether you're just getting started or have been using Unleash for years, you should be able to find answers to all your questions here.
|
||||||
|
|
||||||
|
- [Quick Start](/quickstart): Get up and running with Unleash in just a few steps.
|
||||||
|
- [Unleash Academy](/unleash-academy/introduction): Video Tutorials to onboard you to Unleash’s full suite of capabilities.
|
||||||
|
- [Feature Flag Best Practices](/topics): Maximize your effectiveness with feature flags, regardless of what technology you choose to use.
|
||||||
|
- [Feature Flag Tutorials](/feature-flag-tutorials): Our small but growing collection of tutorials on using feature flags with different technologies.
|
||||||
|
- [Understanding Unleash](/understanding-unleash): Get a high-level view of Unleash's architecture, core functionalities, and concepts to leverage our platform to its full potential.
|
||||||
|
- [Using Unleash](/using-unleash): Our comprehensive guides on APIs, SDKs, integrations, how-to guides, and troubleshooting will help you get things done with Unleash.
|
||||||
|
- [Contributing to Unleash](/contributing): Join our community and contribute to the ongoing growth of Unleash.
|
||||||
|
|
||||||
|
Dive in and start exploring—great things await. If you need a hand, our team is just a click away.
|
||||||
|
|
||||||
|
## Getting help
|
||||||
|
|
||||||
|
Have questions that you can't find the answer to in these docs?
|
||||||
|
|
||||||
|
💬 If you've got questions or want to chat with the team and other Unleash users [join our Slack community](https://slack.unleash.run/) or a [GitHub Discussion](https://github.com/orgs/Unleash/discussions). Our Slack tends to be more active, but you're welcome to use whatever works best for you.
|
||||||
|
|
||||||
|
🤖 Ask our AI ‘intern’ (still in training, but not bad). The "Ask AI" button lives in the bottom right corner on every page. ↘
|
||||||
|
|
||||||
|
🐦 You can also follow us on [Twitter](https://twitter.com/getunleash 'Unleash on Twitter'), [LinkedIn](https://www.linkedin.com/company/getunleash/ 'Unleash on LinkedIn') and [visit our website](https://getunleash.io/) for ongoing updates and content.
|
||||||
|
|
||||||
|
|
@ -275,58 +275,6 @@ module.exports = {
|
|||||||
from: '/advanced/enterprise-authentication',
|
from: '/advanced/enterprise-authentication',
|
||||||
to: '/reference/sso',
|
to: '/reference/sso',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
from: '/deploy',
|
|
||||||
to: '/reference/deploy',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/getting_started',
|
|
||||||
to: '/reference/deploy/getting-started',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/configuring_unleash',
|
|
||||||
to: '/reference/deploy/configuring-unleash',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/configuring_unleash_v3',
|
|
||||||
to: '/reference/deploy/configuring-unleash-v3',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/database-setup',
|
|
||||||
to: '/reference/deploy/database-setup',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/database_backup',
|
|
||||||
to: '/reference/deploy/database-backup',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/email',
|
|
||||||
to: '/reference/deploy/email-service',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/google_auth_v3',
|
|
||||||
to: '/reference/deploy/google-auth-v3',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/google_auth',
|
|
||||||
to: '/reference/deploy/google-auth-hook',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/import_export',
|
|
||||||
to: '/reference/deploy/import-export',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/migration_guide',
|
|
||||||
to: '/reference/deploy/migration-guide',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/securing_unleash',
|
|
||||||
to: '/reference/deploy/securing-unleash',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/deploy/securing-unleash-v3',
|
|
||||||
to: '/reference/deploy/securing-unleash-v3',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
from: ['/addons', '/reference/addons'],
|
from: ['/addons', '/reference/addons'],
|
||||||
to: '/reference/integrations',
|
to: '/reference/integrations',
|
||||||
@ -476,20 +424,20 @@ module.exports = {
|
|||||||
to: '/reference/whats-new-v4',
|
to: '/reference/whats-new-v4',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
from: '/user_guide/important-concepts',
|
from: [
|
||||||
to: '/tutorials/important-concepts',
|
'/user_guide/important-concepts',
|
||||||
|
'/tutorials/important-concepts',
|
||||||
|
],
|
||||||
|
to: '/reference',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
from: [
|
from: [
|
||||||
'/user_guide/quickstart',
|
'/user_guide/quickstart',
|
||||||
'/docs/getting_started',
|
'/docs/getting_started',
|
||||||
'/tutorials/quickstart',
|
'/tutorials/quickstart',
|
||||||
|
'/tutorials/getting-started',
|
||||||
],
|
],
|
||||||
to: '/tutorials/getting-started',
|
to: '/quickstart',
|
||||||
},
|
|
||||||
{
|
|
||||||
from: '/user_guide/unleash_overview',
|
|
||||||
to: '/tutorials/unleash-overview',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
from: '/api/basic-auth',
|
from: '/api/basic-auth',
|
||||||
@ -579,6 +527,150 @@ module.exports = {
|
|||||||
from: '/help',
|
from: '/help',
|
||||||
to: '/',
|
to: '/',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
from: '/topics/feature-flags/tutorials',
|
||||||
|
to: '/feature-flag-tutorials',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/topics/feature-flags/tutorials/flutter/a-b-testing',
|
||||||
|
to: '/feature-flag-tutorials/flutter/a-b-testing',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/topics/feature-flags/tutorials/nextjs/implementing-feature-flags',
|
||||||
|
to: '/feature-flag-tutorials/nextjs/implementing-feature-flags',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/academy',
|
||||||
|
to: '/unleash-academy/introduction',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/academy-foundational',
|
||||||
|
to: '/unleash-academy/foundational',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/academy-advanced-for-devs',
|
||||||
|
to: '/unleash-academy/advanced-for-devs',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/academy-managing-unleash-for-devops',
|
||||||
|
to: '/unleash-academy/managing-unleash-for-devops',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/developer-guide',
|
||||||
|
to: '/contributing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/tutorials/unleash-overview',
|
||||||
|
'/user_guide/unleash_overview',
|
||||||
|
],
|
||||||
|
to: '/understanding-unleash/unleash-overview',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/managing-constraints',
|
||||||
|
to: '/understanding-unleash/managing-constraints',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/the-anatomy-of-unleash',
|
||||||
|
to: '/understanding-unleash/the-anatomy-of-unleash',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/proxy-hosting',
|
||||||
|
to: '/understanding-unleash/proxy-hosting',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/tutorials/data-collection',
|
||||||
|
to: '/understanding-unleash/data-collection',
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
from: '/how-to/how-to-troubleshoot-flag-exposure',
|
||||||
|
to: '/using-unleash/troubleshooting/flag-exposure',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/how-to/how-to-troubleshoot-flag-not-returned',
|
||||||
|
to: '/using-unleash/troubleshooting/flag-not-returned',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/how-to/how-to-troubleshoot-cors',
|
||||||
|
to: '/using-unleash/troubleshooting/cors',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: '/how-to/how-to-troubleshoot-feature-not-available',
|
||||||
|
to: '/using-unleash/troubleshooting/feature-not-available',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/getting-started',
|
||||||
|
'/deploy/getting_started',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/getting-started',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/configuring-unleash',
|
||||||
|
'/deploy/configuring_unleash',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/configuring-unleash',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from : [
|
||||||
|
'/reference/deploy/database-setup',
|
||||||
|
'/deploy/database-setup',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/database-setup',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/database-backup',
|
||||||
|
'/deploy/database-backup',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/database-backup',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/email-service',
|
||||||
|
'/deploy/email',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/email-service',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/google-auth-hook',
|
||||||
|
'/deploy/google_auth',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/google-auth-hook',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from:[
|
||||||
|
'/deploy/migration_guide',
|
||||||
|
'/reference/deploy/migration-guide',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/upgrading-unleash',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/securing-unleash',
|
||||||
|
'/deploy/securing_unleash',
|
||||||
|
],
|
||||||
|
to: '/using-unleash/deploy/securing-unleash',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/import-export',
|
||||||
|
'/deploy/import_export',
|
||||||
|
],
|
||||||
|
to: '/how-to/how-to-import-export',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: [
|
||||||
|
'/reference/deploy/environment-import-export',
|
||||||
|
'/deploy/environment-import-export',
|
||||||
|
],
|
||||||
|
to: '/how-to/how-to-environment-import-export',
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
].map(addDocsRoutePrefix), // add /docs prefixes
|
].map(addDocsRoutePrefix), // add /docs prefixes
|
||||||
createRedirects: function (toPath) {
|
createRedirects: function (toPath) {
|
||||||
if (
|
if (
|
||||||
|
@ -9,50 +9,42 @@
|
|||||||
Create as many sidebars as you want.
|
Create as many sidebars as you want.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// TODO: Add warning to legacy API docs - but generated items
|
||||||
|
// TODO: Continue to clean URLs & redirects - but wait for SEO results first
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
documentation: [
|
documentation: [
|
||||||
'about-the-docs',
|
'welcome',
|
||||||
|
'quickstart',
|
||||||
{
|
{
|
||||||
label: 'Getting Started',
|
label: 'Unleash Academy',
|
||||||
|
collapsed: true,
|
||||||
type: 'category',
|
type: 'category',
|
||||||
collapsed: false,
|
|
||||||
link: {
|
link: {
|
||||||
type: 'doc',
|
type: 'doc',
|
||||||
id: 'tutorials/getting-started',
|
id: 'unleash-academy/introduction',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
'unleash-academy/foundational',
|
||||||
type: 'category',
|
'unleash-academy/advanced-for-devs',
|
||||||
label: 'Unleash Academy',
|
'unleash-academy/managing-unleash-for-devops',
|
||||||
link: {
|
|
||||||
type: 'doc',
|
|
||||||
id: 'tutorials/academy',
|
|
||||||
},
|
|
||||||
items: [
|
|
||||||
'tutorials/academy-foundational',
|
|
||||||
'tutorials/academy-advanced-for-devs',
|
|
||||||
'tutorials/academy-managing-unleash-for-devops',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
'tutorials/unleash-overview',
|
|
||||||
'tutorials/important-concepts',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Topic guides',
|
label: 'Feature Flag Best Practices',
|
||||||
collapsed: false,
|
collapsed: true,
|
||||||
type: 'category',
|
type: 'category',
|
||||||
link: {
|
link: {
|
||||||
type: 'generated-index',
|
type: 'generated-index',
|
||||||
title: 'Topic guides',
|
title: 'Feature Flag Best Practices',
|
||||||
description:
|
description: 'Principles and recommendations for best practices of using feature flags.',
|
||||||
'Discussions, explanations, and explorations regarding topics related to feature flags and Unleash.',
|
|
||||||
slug: '/topics',
|
slug: '/topics',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
label: '11 Principles for building and scaling feature flag systems',
|
label: '11 Principles for Building and Scaling Feature Flag Systems',
|
||||||
link: {
|
link: {
|
||||||
type: 'doc',
|
type: 'doc',
|
||||||
id: 'topics/feature-flags/feature-flag-best-practices',
|
id: 'topics/feature-flags/feature-flag-best-practices',
|
||||||
@ -71,8 +63,6 @@ module.exports = {
|
|||||||
'topics/feature-flags/enable-traceability',
|
'topics/feature-flags/enable-traceability',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'topics/the-anatomy-of-unleash',
|
|
||||||
'topics/a-b-testing',
|
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
label: 'Feature Flag Migrations',
|
label: 'Feature Flag Migrations',
|
||||||
@ -88,224 +78,146 @@ module.exports = {
|
|||||||
'topics/feature-flag-migration/onbording-users-to-feature-flag-service',
|
'topics/feature-flag-migration/onbording-users-to-feature-flag-service',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
'topics/a-b-testing',
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'Feature Flag Tutorials',
|
|
||||||
description: 'Tutorials to implement feature flags with your framework.',
|
|
||||||
slug: 'topics/feature-flags/tutorials',
|
|
||||||
},
|
|
||||||
label: 'Feature Flag Tutorials',
|
|
||||||
items: [
|
|
||||||
'topics/feature-flags/tutorials/flutter/a-b-testing',
|
|
||||||
'topics/feature-flags/tutorials/nextjs/implementing-feature-flags'
|
|
||||||
],
|
|
||||||
},
|
|
||||||
'topics/data-collection',
|
|
||||||
'topics/managing-constraints',
|
|
||||||
'topics/proxy-hosting',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'How-to guides',
|
label: 'Feature Flag Tutorials',
|
||||||
|
type: 'category',
|
||||||
|
collapsed: true,
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'Feature Flag Tutorials',
|
||||||
|
description: 'Tutorials to implement feature flags with your framework.',
|
||||||
|
slug: 'feature-flag-tutorials',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
'feature-flag-tutorials/flutter/a-b-testing',
|
||||||
|
'feature-flag-tutorials/nextjs/implementing-feature-flags',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Understanding Unleash',
|
||||||
collapsed: false,
|
collapsed: false,
|
||||||
type: 'category',
|
type: 'category',
|
||||||
link: {
|
link: {
|
||||||
type: 'generated-index',
|
type: 'generated-index',
|
||||||
title: 'How-to guides',
|
title: 'Understanding Unleash',
|
||||||
description: 'Step-by-step recipes for you to follow.',
|
description: 'Documentation on how Unleash works, high-level architecture and important concepts.',
|
||||||
slug: '/how-to',
|
slug: 'understanding-unleash',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
|
'understanding-unleash/unleash-overview',
|
||||||
|
'understanding-unleash/the-anatomy-of-unleash',
|
||||||
|
'understanding-unleash/managing-constraints',
|
||||||
|
'understanding-unleash/proxy-hosting',
|
||||||
|
'understanding-unleash/data-collection',
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
link: {
|
link: {
|
||||||
type: 'generated-index',
|
type: 'generated-index',
|
||||||
title: 'How-to: Unleash API',
|
title: 'Unleash Concepts',
|
||||||
description: 'Learn how to work with the Unleash API',
|
|
||||||
slug: '/how-to/api',
|
|
||||||
},
|
|
||||||
label: 'Unleash API guides',
|
|
||||||
items: [
|
|
||||||
'how-to/how-to-create-api-tokens',
|
|
||||||
'how-to/how-to-create-personal-access-tokens',
|
|
||||||
'how-to/how-to-create-project-api-tokens',
|
|
||||||
'how-to/how-to-create-service-accounts',
|
|
||||||
'how-to/how-to-download-login-history',
|
|
||||||
'how-to/how-to-use-the-admin-api',
|
|
||||||
'how-to/how-to-enable-openapi',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'How-to: The Unleash Proxy',
|
|
||||||
description: 'Learn how to work with the Unleash Proxy',
|
|
||||||
slug: '/how-to/proxy',
|
|
||||||
},
|
|
||||||
label: 'Unleash Proxy guides',
|
|
||||||
items: ['how-to/how-to-run-the-unleash-proxy'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Feature flags, strategies, context',
|
|
||||||
items: [
|
|
||||||
'how-to/how-to-add-strategy-constraints',
|
|
||||||
'how-to/how-to-add-feature-flag-naming-patterns',
|
|
||||||
'how-to/how-to-capture-impression-data',
|
|
||||||
'how-to/how-to-create-feature-toggles',
|
|
||||||
'how-to/how-to-create-and-display-banners',
|
|
||||||
'how-to/how-to-define-custom-context-fields',
|
|
||||||
'how-to/how-to-use-custom-strategies',
|
|
||||||
'how-to/how-to-schedule-feature-releases',
|
|
||||||
'how-to/how-to-synchronize-unleash-instances',
|
|
||||||
],
|
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'How-to: general Unleash tasks',
|
|
||||||
description:
|
description:
|
||||||
'Guides for how to perform general Unleash tasks.',
|
'Documents describing the inner parts of Unleash.',
|
||||||
slug: '/how-to/misc',
|
slug: '/reference',
|
||||||
},
|
},
|
||||||
},
|
label: 'Unleash Concepts',
|
||||||
{
|
|
||||||
label: 'Environments',
|
|
||||||
items: ['how-to/how-to-clone-environments'],
|
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'How-to: environments',
|
|
||||||
description: 'Environments how-to guides.',
|
|
||||||
slug: '/how-to/env',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Users and permissions',
|
|
||||||
items: [
|
items: [
|
||||||
'how-to/how-to-add-users-to-unleash',
|
'reference/activation-strategies',
|
||||||
'how-to/how-to-create-and-assign-custom-root-roles',
|
'reference/api-tokens-and-client-keys',
|
||||||
'how-to/how-to-create-and-assign-custom-project-roles',
|
'reference/archived-toggles',
|
||||||
'how-to/how-to-create-and-manage-user-groups',
|
'reference/banners',
|
||||||
'how-to/how-to-set-up-group-sso-sync',
|
'reference/change-requests',
|
||||||
|
'reference/custom-activation-strategies',
|
||||||
|
'reference/dependent-features',
|
||||||
|
'reference/environments',
|
||||||
|
'reference/event-log',
|
||||||
|
'reference/event-types',
|
||||||
|
'reference/feature-flag-naming-patterns',
|
||||||
|
'reference/feature-toggles',
|
||||||
|
'reference/feature-toggle-types',
|
||||||
|
'reference/feature-toggle-variants',
|
||||||
|
'reference/front-end-api',
|
||||||
|
'reference/impression-data',
|
||||||
|
'reference/login-history',
|
||||||
|
'reference/maintenance-mode',
|
||||||
|
'reference/network-view',
|
||||||
|
'reference/notifications',
|
||||||
|
'reference/playground',
|
||||||
|
'reference/public-signup',
|
||||||
|
'reference/projects',
|
||||||
|
'reference/project-collaboration-mode',
|
||||||
|
'reference/rbac',
|
||||||
|
'reference/segments',
|
||||||
|
'reference/service-accounts',
|
||||||
|
'reference/sso',
|
||||||
|
'reference/stickiness',
|
||||||
|
'reference/strategy-constraints',
|
||||||
|
'reference/strategy-variants',
|
||||||
|
'reference/tags',
|
||||||
|
'reference/technical-debt',
|
||||||
|
'reference/unleash-context',
|
||||||
],
|
],
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'How-to: users and permissions',
|
|
||||||
description: 'Users and permission how-to guides.',
|
|
||||||
slug: '/how-to/users-and-permissions',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Single Sign-On (SSO)',
|
|
||||||
items: [
|
|
||||||
'how-to/how-to-add-sso-open-id-connect',
|
|
||||||
'how-to/how-to-add-sso-saml',
|
|
||||||
'how-to/how-to-add-sso-saml-keycloak',
|
|
||||||
'how-to/how-to-add-sso-google',
|
|
||||||
'how-to/how-to-add-sso-azure-saml',
|
|
||||||
'how-to/how-to-setup-sso-keycloak-group-sync',
|
|
||||||
],
|
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'How-to: Single Sign-On',
|
|
||||||
description: 'Single Sign-On how-to guides.',
|
|
||||||
slug: '/how-to/sso',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Troubleshooting',
|
|
||||||
items: [
|
|
||||||
'how-to/how-to-troubleshoot-flag-exposure',
|
|
||||||
'how-to/how-to-troubleshoot-flag-not-returned',
|
|
||||||
'how-to/how-to-troubleshoot-cors',
|
|
||||||
'how-to/how-to-troubleshoot-feature-not-available',
|
|
||||||
],
|
|
||||||
type: 'category',
|
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'How-to: troubleshooting',
|
|
||||||
description:
|
|
||||||
'Troubleshooting common problems. If you want to contribute, please make sure the title is phrased as a concrete user problem',
|
|
||||||
slug: '/how-to/troubleshooting',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Reference documentation',
|
label: 'Using Unleash',
|
||||||
collapsed: false,
|
collapsed: false,
|
||||||
type: 'category',
|
type: 'category',
|
||||||
link: {
|
link: {
|
||||||
type: 'generated-index',
|
type: 'generated-index',
|
||||||
title: 'Reference documentation',
|
title: 'Using Unleash',
|
||||||
description:
|
description: 'Documentation on how to accomplish specific tasks when building with Unleash, including API and SDK documentation.',
|
||||||
'Technical reference documentation relating to Unleash, including APIs, SDKs, Unleash concepts and deployment.',
|
slug: '/using-unleash',
|
||||||
slug: '/reference',
|
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
type: 'category',
|
|
||||||
label: 'APIs',
|
label: 'APIs',
|
||||||
|
collapsed: true,
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
title: 'Unleash Server APIs',
|
||||||
|
type: 'generated-index',
|
||||||
|
description:
|
||||||
|
'Generated API docs based on the Unleash OpenAPI schema.',
|
||||||
|
slug: '/reference/api/unleash',
|
||||||
|
},
|
||||||
items: [
|
items: [
|
||||||
|
require('./docs/reference/api/unleash/sidebar.js'),
|
||||||
{
|
{
|
||||||
label: 'OpenAPI docs',
|
'System API': [
|
||||||
collapsed: true,
|
'reference/api/legacy/unleash/internal/prometheus',
|
||||||
type: 'category',
|
'reference/api/legacy/unleash/internal/health',
|
||||||
link: {
|
|
||||||
title: 'Unleash Server APIs',
|
|
||||||
type: 'generated-index',
|
|
||||||
description:
|
|
||||||
'Generated API docs based on the Unleash OpenAPI schema. For the time being, some additional info can also be found in the older API docs.',
|
|
||||||
slug: '/reference/api/unleash',
|
|
||||||
},
|
|
||||||
items: require('./docs/reference/api/unleash/sidebar.js'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'category',
|
|
||||||
label: 'Legacy API docs',
|
|
||||||
link: {
|
|
||||||
type: 'doc',
|
|
||||||
id: 'reference/api/legacy/unleash/index',
|
|
||||||
},
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
'Admin API': [
|
|
||||||
'reference/api/legacy/unleash/admin/addons',
|
|
||||||
'reference/api/legacy/unleash/admin/context',
|
|
||||||
'reference/api/legacy/unleash/admin/events',
|
|
||||||
'reference/api/legacy/unleash/admin/features-v2',
|
|
||||||
'reference/api/legacy/unleash/admin/feature-types',
|
|
||||||
'reference/api/legacy/unleash/admin/features',
|
|
||||||
'reference/api/legacy/unleash/admin/archive',
|
|
||||||
'reference/api/legacy/unleash/admin/metrics',
|
|
||||||
'reference/api/legacy/unleash/admin/projects',
|
|
||||||
'reference/api/legacy/unleash/admin/segments',
|
|
||||||
'reference/api/legacy/unleash/admin/state',
|
|
||||||
'reference/api/legacy/unleash/admin/strategies',
|
|
||||||
'reference/api/legacy/unleash/admin/tags',
|
|
||||||
'reference/api/legacy/unleash/admin/user-admin',
|
|
||||||
],
|
|
||||||
'Client API': [
|
|
||||||
'reference/api/legacy/unleash/client/features',
|
|
||||||
'reference/api/legacy/unleash/client/metrics',
|
|
||||||
'reference/api/legacy/unleash/client/register',
|
|
||||||
],
|
|
||||||
'System API': [
|
|
||||||
'reference/api/legacy/unleash/internal/prometheus',
|
|
||||||
'reference/api/legacy/unleash/internal/health',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
|
'(Legacy Docs) Admin API': [
|
||||||
|
'reference/api/legacy/unleash/admin/addons',
|
||||||
|
'reference/api/legacy/unleash/admin/context',
|
||||||
|
'reference/api/legacy/unleash/admin/events',
|
||||||
|
'reference/api/legacy/unleash/admin/features-v2',
|
||||||
|
'reference/api/legacy/unleash/admin/feature-types',
|
||||||
|
'reference/api/legacy/unleash/admin/features',
|
||||||
|
'reference/api/legacy/unleash/admin/archive',
|
||||||
|
'reference/api/legacy/unleash/admin/metrics',
|
||||||
|
'reference/api/legacy/unleash/admin/projects',
|
||||||
|
'reference/api/legacy/unleash/admin/segments',
|
||||||
|
'reference/api/legacy/unleash/admin/state',
|
||||||
|
'reference/api/legacy/unleash/admin/strategies',
|
||||||
|
'reference/api/legacy/unleash/admin/tags',
|
||||||
|
'reference/api/legacy/unleash/admin/user-admin',
|
||||||
|
],
|
||||||
|
'(Legacy Docs) Client API': [
|
||||||
|
'reference/api/legacy/unleash/client/features',
|
||||||
|
'reference/api/legacy/unleash/client/metrics',
|
||||||
|
'reference/api/legacy/unleash/client/register',
|
||||||
|
],
|
||||||
|
|
||||||
},
|
},
|
||||||
],
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'category',
|
|
||||||
label: 'Application SDKs',
|
label: 'Application SDKs',
|
||||||
|
type: 'category',
|
||||||
link: { type: 'doc', id: 'reference/sdks/index' },
|
link: { type: 'doc', id: 'reference/sdks/index' },
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
@ -336,29 +248,7 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'category',
|
label: 'Integrations',
|
||||||
link: {
|
|
||||||
type: 'generated-index',
|
|
||||||
title: 'Deployment and management of Unleash',
|
|
||||||
description:
|
|
||||||
'All you need to learn how to deploy and manage your own Unleash instance.',
|
|
||||||
slug: '/reference/deploy',
|
|
||||||
},
|
|
||||||
label: 'Deploy and manage Unleash',
|
|
||||||
items: [
|
|
||||||
'reference/deploy/getting-started',
|
|
||||||
'reference/deploy/configuring-unleash',
|
|
||||||
'reference/deploy/database-setup',
|
|
||||||
'reference/deploy/database-backup',
|
|
||||||
'reference/deploy/email-service',
|
|
||||||
'reference/deploy/google-auth-hook',
|
|
||||||
'reference/deploy/import-export',
|
|
||||||
'reference/deploy/environment-import-export',
|
|
||||||
'reference/deploy/migration-guide',
|
|
||||||
'reference/deploy/securing-unleash',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'category',
|
type: 'category',
|
||||||
link: { type: 'doc', id: 'reference/integrations/index' },
|
link: { type: 'doc', id: 'reference/integrations/index' },
|
||||||
items: [
|
items: [
|
||||||
@ -378,53 +268,157 @@ module.exports = {
|
|||||||
'reference/integrations/teams',
|
'reference/integrations/teams',
|
||||||
'reference/integrations/webhook',
|
'reference/integrations/webhook',
|
||||||
],
|
],
|
||||||
label: 'Integrations',
|
},
|
||||||
|
{
|
||||||
|
label: 'How-to guides',
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to guides',
|
||||||
|
description: 'Step-by-step recipes for you to follow.',
|
||||||
|
slug: '/how-to',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'Unleash API guides',
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to: Unleash API',
|
||||||
|
description: 'Learn how to work with the Unleash API',
|
||||||
|
slug: '/how-to/api',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
'how-to/how-to-create-api-tokens',
|
||||||
|
'how-to/how-to-create-personal-access-tokens',
|
||||||
|
'how-to/how-to-create-project-api-tokens',
|
||||||
|
'how-to/how-to-create-service-accounts',
|
||||||
|
'how-to/how-to-download-login-history',
|
||||||
|
'how-to/how-to-use-the-admin-api',
|
||||||
|
'how-to/how-to-enable-openapi',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Unleash Proxy guides',
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to: The Unleash Proxy',
|
||||||
|
description: 'Learn how to work with the Unleash Proxy',
|
||||||
|
slug: '/how-to/proxy',
|
||||||
|
},
|
||||||
|
items: ['how-to/how-to-run-the-unleash-proxy'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Feature flags, strategies, context',
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to: general Unleash tasks',
|
||||||
|
description:
|
||||||
|
'Guides for how to perform general Unleash tasks.',
|
||||||
|
slug: '/how-to/misc',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
'how-to/how-to-add-strategy-constraints',
|
||||||
|
'how-to/how-to-add-feature-flag-naming-patterns',
|
||||||
|
'how-to/how-to-capture-impression-data',
|
||||||
|
'how-to/how-to-create-feature-toggles',
|
||||||
|
'how-to/how-to-create-and-display-banners',
|
||||||
|
'how-to/how-to-define-custom-context-fields',
|
||||||
|
'how-to/how-to-use-custom-strategies',
|
||||||
|
'how-to/how-to-schedule-feature-releases',
|
||||||
|
'how-to/how-to-synchronize-unleash-instances',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Environments',
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to: environments',
|
||||||
|
description: 'Environments how-to guides.',
|
||||||
|
slug: '/how-to/env',
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
'how-to/how-to-clone-environments',
|
||||||
|
'how-to/how-to-import-export',
|
||||||
|
'how-to/how-to-environment-import-export',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Users and permissions',
|
||||||
|
items: [
|
||||||
|
'how-to/how-to-add-users-to-unleash',
|
||||||
|
'how-to/how-to-create-and-assign-custom-root-roles',
|
||||||
|
'how-to/how-to-create-and-assign-custom-project-roles',
|
||||||
|
'how-to/how-to-create-and-manage-user-groups',
|
||||||
|
'how-to/how-to-set-up-group-sso-sync',
|
||||||
|
],
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to: users and permissions',
|
||||||
|
description: 'Users and permission how-to guides.',
|
||||||
|
slug: '/how-to/users-and-permissions',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Single Sign-On (SSO)',
|
||||||
|
items: [
|
||||||
|
'how-to/how-to-add-sso-open-id-connect',
|
||||||
|
'how-to/how-to-add-sso-saml',
|
||||||
|
'how-to/how-to-add-sso-saml-keycloak',
|
||||||
|
'how-to/how-to-add-sso-google',
|
||||||
|
'how-to/how-to-add-sso-azure-saml',
|
||||||
|
'how-to/how-to-setup-sso-keycloak-group-sync',
|
||||||
|
],
|
||||||
|
type: 'category',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index',
|
||||||
|
title: 'How-to: Single Sign-On',
|
||||||
|
description: 'Single Sign-On how-to guides.',
|
||||||
|
slug: '/how-to/sso',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
link: {
|
link: {
|
||||||
type: 'generated-index',
|
type: 'generated-index',
|
||||||
title: 'Unleash concepts',
|
title: 'Self-Hosting Unleash',
|
||||||
description:
|
description:
|
||||||
'Documents describing the inner parts of Unleash.',
|
'All you need to learn how to deploy and manage your own Unleash instance.',
|
||||||
slug: '/reference/concepts',
|
slug: '/using-unleash/deploy',
|
||||||
},
|
},
|
||||||
label: 'Unleash concepts',
|
label: 'Self-Hosting Unleash',
|
||||||
items: [
|
items: [
|
||||||
'reference/activation-strategies',
|
'using-unleash/deploy/getting-started',
|
||||||
'reference/api-tokens-and-client-keys',
|
'using-unleash/deploy/configuring-unleash',
|
||||||
'reference/archived-toggles',
|
'using-unleash/deploy/database-setup',
|
||||||
'reference/banners',
|
'using-unleash/deploy/database-backup',
|
||||||
'reference/event-log',
|
'using-unleash/deploy/email-service',
|
||||||
'reference/event-types',
|
'using-unleash/deploy/google-auth-hook',
|
||||||
'reference/impression-data',
|
'using-unleash/deploy/upgrading-unleash',
|
||||||
'reference/custom-activation-strategies',
|
'using-unleash/deploy/securing-unleash',
|
||||||
'reference/environments',
|
],
|
||||||
'reference/strategy-variants',
|
},
|
||||||
'reference/feature-flag-naming-patterns',
|
{
|
||||||
'reference/feature-toggles',
|
label: 'Troubleshooting',
|
||||||
'reference/feature-toggle-types',
|
type: 'category',
|
||||||
'reference/feature-toggle-variants',
|
link: {
|
||||||
'reference/front-end-api',
|
type: 'generated-index',
|
||||||
'reference/login-history',
|
title: 'How-to: troubleshooting',
|
||||||
'reference/maintenance-mode',
|
description:
|
||||||
'reference/network-view',
|
'Troubleshooting common problems. If you want to suggest new items, please phrase the title as a concrete problem',
|
||||||
'reference/notifications',
|
slug: '/using-unleash/troubleshooting',
|
||||||
'reference/playground',
|
},
|
||||||
'reference/public-signup',
|
items: [
|
||||||
'reference/projects',
|
'using-unleash/troubleshooting/cors',
|
||||||
'reference/project-collaboration-mode',
|
'using-unleash/troubleshooting/feature-not-available',
|
||||||
'reference/rbac',
|
'using-unleash/troubleshooting/flag-exposure',
|
||||||
'reference/segments',
|
'using-unleash/troubleshooting/flag-not-returned',
|
||||||
'reference/service-accounts',
|
|
||||||
'reference/sso',
|
|
||||||
'reference/stickiness',
|
|
||||||
'reference/strategy-constraints',
|
|
||||||
'reference/tags',
|
|
||||||
'reference/technical-debt',
|
|
||||||
'reference/unleash-context',
|
|
||||||
'reference/change-requests',
|
|
||||||
'reference/dependent-features',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
'generated/unleash-edge',
|
'generated/unleash-edge',
|
||||||
@ -432,14 +426,14 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Developer contribution docs',
|
label: 'Contributing to Unleash',
|
||||||
type: 'category',
|
type: 'category',
|
||||||
collapsed: true,
|
collapsed: true,
|
||||||
link: {
|
link: {
|
||||||
type: 'generated-index',
|
type: 'generated-index',
|
||||||
title: 'Developer Guide',
|
title: 'Contributing to Unleash',
|
||||||
description: 'Learn how to contribute to unleash.',
|
description: 'Learn how to contribute to unleash.',
|
||||||
slug: '/developer-guide',
|
slug: '/contributing',
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
'contributing/developer-guide',
|
'contributing/developer-guide',
|
||||||
|
Loading…
Reference in New Issue
Block a user