Skip to content

Commit

Permalink
docs: update images using latest UI screenshots (#1992)
Browse files Browse the repository at this point in the history
* Update api_access_history.png

* updating images in - How to capture impression data

* Update Quickstart image

* Update images: How to add strategy constraints

* Update images: How to create a feature toggle

* Update images: How to define custom context fields

* Update images: How to use custom activation strategies

* Update images: How to schedule feature releases

* Update images: How to add new users to your Unleash instance

* Update images: How to create and assign custom project roles

* Update images: How to add SSO with OpenId Connect

* Update images: How to add SSO with SAML 2.0 Okta

* Update images: Slack

* Update images: Activation Strategies

* Update images: Archived toggles

* Update images: The audit log

* Update images: Impression data

* Update images: Custom Activation Strategies

* Update images: Environments

* Update images: Feature Toggle Types

* Update images: Feature Toggle Variants

* Update images: Projects

* Update images: Segments

* Update images: Stickiness

* Update images: Strategy Constraints

* Update images: Technical Debt

* Update images: Unleash Context

* Update images: Unleash introductory overview

* Update images: Unleash introductory overview

* docs: replace strategy constraints step 2 img

* Update website/docs/how-to/how-to-add-strategy-constraints.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* change text request

* Updating docs text to match the screenshots

* Docs: change audit log to event log and add redirects

* Docs: update "archive" page with deletion info

* Docs: update constraints how to

* Docs: minor tech debt doc fixes

* docs-update-images-set1: update overview page

* Apply suggestions from code review

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Update website/docs/user_guide/quickstart.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Update website/docs/user_guide/user-management.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Update website/docs/user_guide/user-management.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Activation strategy update

* Apply suggestions from code review

* Update delete-archive img

* Fix prettier formatting for admonitions

* Update website/docs/user_guide/environments.md

* Update website/docs/user_guide/projects.md

Co-authored-by: Tymoteusz Czech <tymek+gpg@getunleash.ai>
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
  • Loading branch information
3 people committed Sep 14, 2022
1 parent 3a0113d commit 51c7ea0
Show file tree
Hide file tree
Showing 85 changed files with 423 additions and 325 deletions.
2 changes: 1 addition & 1 deletion website/docs/advanced/api_access.md
Expand Up @@ -27,7 +27,7 @@ curl -X POST -H "Content-Type: application/json" \
https://app.unleash-hosted.com/demo/api/admin/features/Demo/toggle/on
```

**Great success!** We have now enabled the feature toggle. We can also verify that it was actually changed by the API user by navigating to the history (audit log) for this feature toggle.
**Great success!** We have now enabled the feature toggle. We can also verify that it was actually changed by the API user by navigating to the Event log (history) for this feature toggle.

![A feature toggle's event log showing that it was last updated by \"admin-api\".](/img/api_access_history.png)

Expand Down
25 changes: 21 additions & 4 deletions website/docs/advanced/archived-toggles.md
Expand Up @@ -7,14 +7,31 @@ You can _archive_ a feature toggle when it is not needed anymore. You do this by

![The Unleash toggle view showing a focused "archive feature toggle" button, highlighted by a red arrow.](/img/archive-toggle.png 'Archiving a Feature Toggle').

You can not "fully delete a feature toggle". This is to prevent you from creating a new feature toggle with the same name as an old one. This could potentially reactivate old functionality in code that still referenced the old toggle and result in unintended consequences.

## Viewing archived toggles

You can find archived toggles in the toggle archive. The archive is accessible from the global feature toggle list.
Archived toggles are displayed in two places:

1. The global toggle archive
2. The containing project's toggle archive

Unleash keeps a list of _all_ archived toggles across projects in the _global archive_. The global archive is accessible from the global feature list.

Additionally, each project keeps a list of all of _its_ archived toggles. That is, when you archive a toggle, Unleash adds it to the containing project's archive.

## Reviving a feature toggle {#reviving-a-feature-toggle}

If you want to re-use a feature toggle that you previously archived, you can revive in from the feature toggle archive. Click the "revive icon" to revive the toggle. Revived toggles will be in the disabled state when you re-enable them.

![A list of archived toggles. Each toggle displays its name and project it belongs to. Each toggle also has a \"revive\" button, as highlighted by a red arrow.](/img/archive-toggle-revive.png 'Reviving a Feature Toggle').
![A list of archived toggles. Each toggle displays its name and project it belongs to. Each toggle also has a "revive" button, as highlighted by a red arrow.](/img/archive-toggle-revive.png 'Reviving a Feature Toggle').

## Deleting a feature toggle

:::caution

We generally discourage deleting feature toggles. The reason is that feature toggle names in Unleash are used as identifiers, so if you were to delete a toggle and then create a new one with the same name, the new one would reactivate any code that uses the old toggle.

:::

The only way to fully _delete_ a feature toggle in Unleash is by using the archive. An archived toggle can be deleted via the API or by using the "delete feature toggle" button in the global or project-level archive.

![A list of archived toggles, each with a button to delete the toggle permanently.](/img/archive-toggle-delete.png).
18 changes: 0 additions & 18 deletions website/docs/advanced/audit-log.md

This file was deleted.

25 changes: 12 additions & 13 deletions website/docs/advanced/custom-activation-strategy.md
Expand Up @@ -4,7 +4,9 @@ title: Custom Activation Strategies
---

:::tip

This document is a reference for custom activation strategies. If you're looking for a guide on how to use them, see the [_how to use custom strategies_ guide](../how-to/how-to-use-custom-strategies.md).

:::

**Custom activation strategies** let you define your own activation strategies to use with Unleash. When the [built-in activation strategies](../user_guide/activation-strategies.md) aren't enough, custom activation strategies are there to provide you with the flexibility you need.
Expand All @@ -25,7 +27,7 @@ The strategy **name** is the only required parameter, but adding a good **descri

### Parameters

![The strategy configuration screen for the custom "TimeStamp" strategy. The "enableAfter" field says "2021-12-25 00:00".](/img/timestamp_use_strategy.png)
![A strategy with five parameters, one of each type.](/img/strategy-parameters-ui-controls.png)

Parameters let you provide arguments to your strategy that it can access for evaluation. When creating a strategy, each parameter can be either required or optional. This marking is to help the user understand what they need to fill out; they can still save the strategy without filling out a required field.

Expand All @@ -35,7 +37,6 @@ Each parameter consists of three parts:
- an optional **description**: describe the purpose or format of the parameter.
- a parameter **type**: dictates the kind of input field the user will see in the admin UI and the type of the value in the implementation code.


#### Parameter types

Each parameter has one of five different parameter types. A parameter's type impacts the kind of controls shown in the admin UI and how it's represented in code.
Expand All @@ -44,26 +45,24 @@ The below table lists the types and how they're represented in the JSON payload

All values have an **empty string (`""`) as the default value**. As such, if you don't interact with a control or otherwise set a value, the value will be an empty string.

| type name | code representation | example value | UI control |
|------------|----------------------------------------------------------------|---------------|--------------------------|
| string | `string` | `"a string"` | A standard input field |
| percentage | a `string` representing a number between 0 and 100 (inclusive) | `"99"` | A value slider |
| list | `string` (values are comma-separated) | `"one,two"` | A multi-input text field |
| number | `string` | `"123"` | A numeric text field |
| boolean | a `string`: one of `"true"` or `"false"` | `"true"` | An on/off toggle |


![A strategy with five parameters, one of each type.](/img/strategy-parameters-ui-controls.png)
| type name | code representation | example value | UI control |
| --- | --- | --- | --- |
| string | `string` | `"a string"` | A standard input field |
| percentage | a `string` representing a number between 0 and 100 (inclusive) | `"99"` | A value slider |
| list | `string` (values are comma-separated) | `"one,two"` | A multi-input text field |
| number | `string` | `"123"` | A numeric text field |
| boolean | a `string`: one of `"true"` or `"false"` | `"true"` | An on/off toggle |

## Implementation

:::note

If you have not implemented the strategy in your client SDK, the check will always return `false` because the client doesn't recognize the strategy.

:::

While custom strategies are _defined_ on the Unleash server, they must be _implemented_ on the client. All official Unleash client SDKs provide a way for you to implement custom strategies. You should refer to the individual SDK's documentation for specifics, but for an example, you can have a look at the [_Node.js client implementation_ section in the _how to use custom strategies_ guide](../how-to/how-to-use-custom-strategies.md#step-3-a).

The exact method for implementing custom strategies will vary between SDKs, but the server SDKs follow the same patterns. For front-end client SDKs ([Android](../sdks/android-proxy.md), [JavaScript](../sdks/proxy-javascript.md), [React](../sdks/proxy-react.md), [iOS](../sdks/proxy-ios.md)), the custom activation strategy must be implemented in the [Unleash Proxy](../sdks/unleash-proxy.md).


When implementing a strategy in your client, you will get access to the strategy's parameters and the Unleash Context. Again, refer to your specific SDK's documentation for more details.
33 changes: 14 additions & 19 deletions website/docs/how-to/how-to-add-strategy-constraints.md
Expand Up @@ -3,42 +3,37 @@ title: How to add strategy constraints
---

:::info Availability

Strategy constraints are available to Unleash Pro and Enterprise users.

:::

This guide shows you how to add [strategy constraints](../advanced/strategy-constraints.md) to your feature toggles via the admin UI. For information on how to interact with strategy constraints from an [Unleash client SDK](../sdks/index.md), visit the specific SDKs documentation or see [the relevant section in the strategy constraints documentation](../advanced/strategy-constraints.md#sdks "strategy constraints documentation, section on interacting with constraints from client SDKs").
This guide shows you how to add [strategy constraints](../advanced/strategy-constraints.md) to your feature toggles via the admin UI. For information on how to interact with strategy constraints from an [Unleash client SDK](../sdks/index.md), visit the specific SDKs documentation or see [the relevant section in the strategy constraints documentation](../advanced/strategy-constraints.md#sdks 'strategy constraints documentation, section on interacting with constraints from client SDKs').

## Prerequisites

You'll need to have an existing feature toggle with a defined strategy to add a constraint. The rest of this guide assumes you have a specific strategy that you're working with.

## Step 1: Open the constraints menu {#step-1}

Every strategy will have button labeled "add constraints" when viewed in the admin UI. Interact with this to open the constraints menu.

![A feature toggle strategy view showing a button labeled with add constraints.](/img/add-constraint.png)
On the strategy you're working with, find and select the "edit strategy" button.

## Step 2: Configure the constraint {#step-2}
![A feature toggle with one strategy. The "edit strategy" button is highlighted.](/img/add-constraint.png)

Refer to [the _constraint structure_ section of the strategy constraints reference](../advanced/strategy-constraints.md#constraint-structure) for a thorough explanation of the fields.
On the "edit strategy" screen, select the "add custom constraint" button to open the constraints menu.

From the "Context Field" dropdown, select the context field you would like to constrain the strategy on.

![A strategy constraint form with a constraint set to "region". The "values" input is a dropdown menu containing the options "Africa", "Asia", "Europe", and "North America", as defined in the preceding paragraph.](/img/constraints_legal_values.png)
![A feature toggle strategy view showing a button labeled with add constraints.](/img/add-constraint.png)

## Step 3: Add additional constraints {#step-3}
## Step 2: Add and configure the constraint {#step-2}

To add additional constraints:
1. Repeat [step one](#step-1 "step 1: open the constraints menu") to open the constraints menu.
2. Use the "Add constraint" button to add a new constraint.
Refer to [the _constraint structure_ section of the strategy constraints reference](../advanced/strategy-constraints.md#constraint-structure) for a thorough explanation of the constraint fields.

![The add constraint modal menu with an existing constraint. There is a button labeled "add constraint" that is being highlighted by an arrow.](/img/constraints-add-additional.png)
1. From the "Context Field" dropdown, **select the context field** you would like to constrain the strategy on and **choose the [constraint operator](../advanced/strategy-constraints.md#strategy-constraint-operators)** you want.
2. **Define the values** to use for this constraint. The operator you selected decides whether you can define one or multiple values and what format they can have.
3. **Save the constraint** first, and then **save the strategy**.

3. Follow [step two](#step-2 "step 2: configure the constraint") for the new constraint.
![A strategy constraint form with a constraint set to "region". The "values" input is a dropdown menu containing the options "Africa", "Asia", "Europe", and "North America", as defined in the preceding paragraph.](/img/constraints-add-to-strategy.png)

## How to update existing constraints

You can update any existing constraint by doing one of the following:

- Open the "add constraints" menu and modify existing constraints.
- Using the constraint's "edit" button to bring up the constraints menu.
To update an existing constraint, find the constraint in the "edit strategy" screen and use the constraint's "edit" button.
2 changes: 1 addition & 1 deletion website/docs/how-to/how-to-capture-impression-data.mdx
Expand Up @@ -43,7 +43,7 @@ To create a feature toggle with impression data enabled, set the `impressionData

### Enabling impression data for existing feature toggles {#step-1-existing-toggles}

To enable impression data for an existing toggle, use the "edit" button on the toggle's page in the admin UI. It will take you to a form that looks like the toggle creation form. Use the "impression data" toggle to enable impression data the same way you would when [enabling impression data for a new feature toggle](#step-1-new-toggles).
To enable impression data for an existing toggle, go to the "Settings" tab of that feature toggle and use the "edit" button near the Feature information title in the admin UI. It will take you to a form that looks like the toggle creation form. Use the "Enable impression data" toggle to enable it, the same way you would when [enabling impression data for a new feature toggle](#step-1-new-toggles).

![The create feature toggle form. There's a toggle at the end of the form that enables or disables impression data. It's labeled "impression data".](/img/enable-impression-data-existing-toggle.png)

Expand Down
Expand Up @@ -22,9 +22,9 @@ It takes about three steps to create custom project roles:

1. Navigate to the custom project roles page by using the admin menu (the gear symbol) and navigating to users.
![A visual representation of the current step: the Unleash Admin UI with the steps highlighted.](/img/create-cpr-step-1.png)
2. Navigate to the "project roles" tab.
2. Navigate to the "Project roles" tab.
![The admin/roles screen, with the project roles tab highlighted. The page shows a table of project roles with their descriptions.](/img/create-cpr-step-2.png)
3. Use the "new project role" button to open the role creation form.
3. Use the "New project role" button to open the role creation form.
![The visual position of the 'new project role' button on the page.](/img/create-cpr-step-3.png)
4. Give the role a name, an optional description, and the set of permissions you'd like it to have. For a full overview of all the options, consult the [custom project roles reference documentation](../user_guide/rbac.md#custom-project-roles).
![The project role creation form filled in with details for a "developer" role. To the left is the equivalent cURL command you could run if you wanted to use the API instead of the form.](/img/create-cpr-step-4.png)
Expand All @@ -36,10 +36,10 @@ Custom project role creation is a pretty straightforward process and requires ar
To assign a custom project role to a user:
1. Navigate to the project you want to assign the user a role in.
![The steps to navigate to a project: use the 'projects' navigation item and select your project.](/img/assign-cpr-step-1.png)
2. Navigate to the project's _access_ page.
2. Navigate to the project's _access_ tab.
![A project overview with the 'access' tab highlighted.](/img/assign-cpr-step-2.png)
3. This step depends on whether the user has already been added to the project or not:
- If the user has already been added to the project, select the new role you want to give them from the dropdown menu next to their name.
- If the user has already been added to the project, click on the edit icon coresponding with its line and from the overlay that will show up select the new role you want to assign it from the dropdown and save the changes.
![A list of users with access to the current project. To the right of each user is a dropdown input labeled role.](/img/assign-cpr-step-3a.png)
- If the user _hasn't_ been added to the project, add them via the 'add user' form. Select the role you want to give them from the role field.
- If the user _hasn't_ been added to the project, add them using the button 'Assing user/group'. From the overlay that will show up select the user, assign it a role and save the changes. Now you should be able to see the new user in the table.
![Adding a user to a project. The add user form is filled out with data for an "Alexis". The Role input is open and the custom "Developer" role is highlighted.](/img/assign-cpr-step-3b.png)
2 changes: 1 addition & 1 deletion website/docs/how-to/how-to-schedule-feature-releases.mdx
Expand Up @@ -35,7 +35,7 @@ This guide assumes that you've got the following:

To schedule a feature release via the UI:
1. Add the desired activation strategy to the feature
2. Open the constraint creator by using the "add constraint" button
2. Open the constraint creator by using the "Add custom constraint" button
3. Add a date-based constraint by selecting the `currentTime` context field (step 1 in the below image), choosing the `DATE_AFTER` operator (step 2), and setting the point in time where you want the feature to be available from (step 3)
![A strategy constraint specifying that the activation strategy should be enabled at 12:00 AM, November 25th 2022. There are visual call-outs pointing to the relevant settings mentioned above.](/img/strategy-constraint-date-after.png)

Expand Down
21 changes: 21 additions & 0 deletions website/docs/reference/event-log.md
@@ -0,0 +1,21 @@
---
title: The event log
---

The event log lets you track changes in Unleash. It lists _what_ changed, _when_ it changed, and _who_ performed the change.

## Feature toggle log {#event-log-per-feature-toggle}

<span id="audit-log-per-feature-toggle" data-reason="backwards-compatibility"></span>

Each feature toggle has its own event log. The event log is available under the "Event log" tab in the tab view.

![The event log for a feature toggle. The "Event log" tab is highlighted and the UI shows the most recent changes, including a JSON diff and the change details.](/img/unleash-toggle-history.png)

## Global Event Log {#global-event-log}

<span id="global-audit-log" data-reason="backwards-compatibility"></span>

Unleash also keeps an event log across all toggles and activation strategies, tracking all changes. You access the global event log via the “event log”, which you can find in the drawer menu. The global event log is only accessible by users with instance admin access.

![The global event log and how to get there. It shows a number of events and their changes as well as the navigation steps: use the admin menu and navigate to "event history".](/img/global_audit_log.png)

1 comment on commit 51c7ea0

@vercel
Copy link

@vercel vercel bot commented on 51c7ea0 Sep 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

unleash – ./website

unleash-unleash-team.vercel.app
unleash-tawny.vercel.app
unleash-git-main-unleash-team.vercel.app

Please sign in to comment.