diff --git a/website/docs/user_guide/index.md b/website/docs/user_guide/index.md index 2c85e1ca537..8eae6928ea3 100644 --- a/website/docs/user_guide/index.md +++ b/website/docs/user_guide/index.md @@ -42,32 +42,3 @@ The reference docs contain technical reference for Unleash and the API. Go here 💬 If you've got questions or just wanna chat to the team and other Unleash users, come [join our Slack community](https://join.slack.com/t/unleash-community/shared_invite/enQtNjUxMjU2MDc0MTAxLTJjYmViYjkwYmE0ODVlNmY1YjcwZGRmZWU5MTU1YTQ1Nzg5ZWQ2YzBlY2U1MjlmZDg5ZDRmZTMzNmQ5YmEyOGE) 🐦 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. - -Our goal with our documentation is to guide you through the most essential concepts of Unleash. - -One of the most important aspects of the architecture to understand is that feature toggles _are evaluated in a client SDKs_ which runs as part of your application. This makes toggle evaluations super-fast (_we're talk nano-seconds_), scalable and resilient against network disturbances. In order to achieve this Unleash compromises a small update-delay when you change your toggle configurations until it is fully propagated to your application (in terms of seconds and is configurable). - -If you want more details you can read about [our unique architecture](https://www.getunleash.io/blog/our-unique-architecture). - -### Unleash Server {#unleash-server} - -Before you can connect your application to Unleash you need a Unleash server. You have a few options available: - -1. **Unleash Open-source** - - [Docker](deploy/getting_started) - - [Helm Chart](https://github.com/unleash/helm-charts/) - - [Click-to-deploy on Heroku](https://www.heroku.com/deploy/?template=https://github.com/Unleash/unleash) -2. **Unleash Enterprise** - - [Hosted Plans](https://www.getunleash.io/plans) - - [Self-hosted](https://www.getunleash.io/blog/self-host-your-feature-toggle-system) - -### System Overview {#system-overview} - -![system_overview](/img/Unleash_architecture.svg 'System Overview') - -- **Unleash API** - The service holding all feature toggles and their configurations. Configurations declare which activation strategies to use and which parameters they should get. [API documentation](/api) -- **Unleash Admin UI** - The dashboard used to manage feature toggles, define new strategies, look at metrics, etc. [Create your first feature toggle](user_guide/create-feature-toggle.md) -- **Unleash SDK** - Used by clients to check if a feature is enabled or disabled. The SDK also collects metrics and sends them to the Unleash API. [See all our SDKs](sdks/index.md) -- **Unleash Proxy** - Sits between frontend/native applications and the Unleash API. Ensures high performance and that you don't expose the full feature toggle configuration to end-users. [Read more about Unleash Proxy](sdks/unleash-proxy.md) - -To be super fast (_we're talking nano-seconds_), the [client SDK](sdks/index.md) caches all feature toggles and their current configuration in memory. The activation strategies are also implemented in the SDK. This makes it really fast to check if a toggle is on or off because it is just a simple function operating on local state, without the need to poll data from the database. diff --git a/website/docs/user_guide/unleash_overview.md b/website/docs/user_guide/unleash_overview.md new file mode 100644 index 00000000000..d427e266e90 --- /dev/null +++ b/website/docs/user_guide/unleash_overview.md @@ -0,0 +1,30 @@ +--- +title: Unleash introductory overview +--- + +One of the most important aspects of the architecture to understand is that feature toggles _are evaluated in a client SDKs_ which runs as part of your application. This makes toggle evaluations super-fast (_we're talk nano-seconds_), scalable and resilient against network disturbances. In order to achieve this Unleash compromises a small update-delay when you change your toggle configurations until it is fully propagated to your application (in terms of seconds and is configurable). + +If you want more details you can read about [our unique architecture](https://www.getunleash.io/blog/our-unique-architecture). + +### Unleash Server {#unleash-server} + +Before you can connect your application to Unleash you need a Unleash server. You have a few options available: + +1. **Unleash Open-source** + - [Docker](deploy/getting_started) + - [Helm Chart](https://github.com/unleash/helm-charts/) + - [Click-to-deploy on Heroku](https://www.heroku.com/deploy/?template=https://github.com/Unleash/unleash) +2. **Unleash Enterprise** + - [Hosted Plans](https://www.getunleash.io/plans) + - [Self-hosted](https://www.getunleash.io/blog/self-host-your-feature-toggle-system) + +### System Overview {#system-overview} + +![system_overview](/img/Unleash_architecture.svg 'System Overview') + +- **Unleash API** - The service holding all feature toggles and their configurations. Configurations declare which activation strategies to use and which parameters they should get. [API documentation](/api) +- **Unleash Admin UI** - The dashboard used to manage feature toggles, define new strategies, look at metrics, etc. [Create your first feature toggle](user_guide/create-feature-toggle.md) +- **Unleash SDK** - Used by clients to check if a feature is enabled or disabled. The SDK also collects metrics and sends them to the Unleash API. [See all our SDKs](sdks/index.md) +- **Unleash Proxy** - Sits between frontend/native applications and the Unleash API. Ensures high performance and that you don't expose the full feature toggle configuration to end-users. [Read more about Unleash Proxy](sdks/unleash-proxy.md) + +To be super fast (_we're talking nano-seconds_), the [client SDK](sdks/index.md) caches all feature toggles and their current configuration in memory. The activation strategies are also implemented in the SDK. This makes it really fast to check if a toggle is on or off because it is just a simple function operating on local state, without the need to poll data from the database. diff --git a/website/sidebars.js b/website/sidebars.js index ac7660e79e5..8b60878b4e9 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -12,6 +12,33 @@ module.exports = { documentation: [ 'user_guide/index', + { + 'First steps 👶': [ + 'user_guide/unleash_overview', + 'user_guide/important-concepts', + 'user_guide/quickstart', + 'user_guide/v4-whats-new', + ], + }, + { + label: 'How-to guides 🪜', + type: 'category', + collapsible: true, + items: [ + 'how-to/how-to-add-strategy-constraints', + 'how-to/how-to-define-custom-context-fields', + 'how-to/how-to-use-custom-strategies', + + 'advanced/sso-open-id-connect', + 'advanced/sso-saml', + 'advanced/sso-saml-keycloak', + 'advanced/sso-google', + 'advanced/api_access', + 'user_guide/api-token', + 'user_guide/user-management', + 'user_guide/create_feature_toggle', + ], + }, { label: 'Reference documentation 📜', type: 'category', @@ -29,25 +56,39 @@ module.exports = { label: 'Addons', }, { - 'Admin API': [ - 'api/admin/features', - 'api/admin/projects', - 'api/admin/feature-toggles-v2', - 'api/admin/features-archive', - 'api/admin/strategies', - 'api/admin/metrics', - 'api/admin/events', - 'api/admin/state', - 'api/admin/feature-types', - 'api/admin/addons', - 'api/admin/context', - 'api/admin/user-admin', - ], - 'Client API': [ - 'api/client/features', - 'api/client/register', - 'api/client/metrics', + type: 'category', + link: { type: 'doc', id: 'api/index' }, + label: 'APIs', + items: [ + { + 'Admin API': [ + 'api/admin/addons', + 'api/admin/context', + 'api/admin/events', + 'api/admin/feature-toggles-v2', + 'api/admin/feature-types', + 'api/admin/features', + 'api/admin/features-archive', + 'api/admin/metrics', + 'api/admin/projects', + 'api/admin/state', + 'api/admin/strategies', + 'api/admin/user-admin', + ], + 'Client API': [ + 'api/client/features', + 'api/client/metrics', + 'api/client/register', + ], + 'System API': [ + 'api/internal/internal', + 'api/internal/health', + ], + }, + 'api/open_api', ], + }, + { 'Client SDKs': [ 'sdks/index', 'sdks/java_sdk', @@ -86,66 +127,36 @@ module.exports = { 'advanced/tags', 'advanced/enterprise-authentication', ], + 'Deploy and manage Unleash': [ + 'deploy/getting_started', + 'deploy/configuring_unleash', + 'deploy/securing_unleash', + 'deploy/email', + 'deploy/google_auth', + 'deploy/database-setup', + 'deploy/database_backup', + 'deploy/migration_guide', + 'deploy/import_export', + ], + }, + { + type: 'category', + label: 'Integrations', + link: { type: 'doc', id: 'integrations/integrations' }, + items: [ + { + 'Jira Server': [ + 'integrations/jira_server_plugin_installation', + 'integrations/jira_server_plugin_usage', + ], + }, + , + ], }, ], }, { - label: 'How-to guides 🦶', - type: 'category', - collapsible: true, - items: [ - 'how-to/how-to-add-strategy-constraints', - 'how-to/how-to-define-custom-context-fields', - 'how-to/how-to-use-custom-strategies', - - 'advanced/sso-open-id-connect', - 'advanced/sso-saml', - 'advanced/sso-saml-keycloak', - 'advanced/sso-google', - 'advanced/api_access', - 'user_guide/api-token', - 'user_guide/user-management', - 'user_guide/create_feature_toggle', - ], - }, - { - Tutorials: [], - 'Getting started 🏁': [ - 'user_guide/quickstart', - 'user_guide/important-concepts', - 'user_guide/v4-whats-new', - ], - Advanced: [], 'Topic guides 🤓': ['topics/a-b-testing'], - 'How-to guides': [], }, ], - api: { - Introduction: [ - 'api/index', - 'api/internal/internal', - 'api/internal/health', - 'api/open_api', - ], - }, - 'Deploy and manage': { - 'Deploy & configure': [ - 'deploy/getting_started', - 'deploy/configuring_unleash', - 'deploy/securing_unleash', - 'deploy/email', - 'deploy/google_auth', - 'deploy/database-setup', - 'deploy/database_backup', - 'deploy/migration_guide', - 'deploy/import_export', - ], - }, - Integrations: { - Integrations: ['integrations/integrations'], - 'Jira server': [ - 'integrations/jira_server_plugin_installation', - 'integrations/jira_server_plugin_usage', - ], - }, };