mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
d5fbd0b743
## What This (admittedly massive) PR updates the "physical" documentation structure and fixes url inconsistencies and SEO problems reported by marketing. The main points are: - remove or move directories : advanced, user_guide, deploy, api - move the files contained within to the appropriate one of topics, how-to, tutorials, or reference - update internal doc links and product links to the content - create client-side redirects for all the urls that have changed. A number of the files have been renamed in small ways to better match their url and to make them easier to find. Additionally, the top-level api directory has been moved to /reference/api/legacy/unleash (see the discussion points section for more on this). ## Why When moving our doc structure to diataxis a while back, we left the "physical' files lying where they were, because it didn't matter much to the new structure. However, that did introduce some inconsistencies with where you place docs and how we organize them. There's also the discrepancies in whether urls us underscores or hyphens (which isn't necessarily the same as their file name), which has been annoying me for a while, but now has also been raised by marketing as an issue in terms of SEO. ## Discussion points The old, hand-written API docs have been moved from /api to /reference/api/legacy/unleash. There _is_ a /reference/api/unleash directory, but this is being populated by the OpenAPI plugin, and mixing those could only cause trouble. However, I'm unsure about putting /legacy/ in the title, because the API isn't legacy, the docs are. Maybe we could use another path? Like /old-docs/ or something? I'd appreciate some input on this.
46 lines
3.4 KiB
Markdown
46 lines
3.4 KiB
Markdown
---
|
|
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)
|