diff --git a/docs/feature-management-experimentation/40-feature-management/control-treatment.md b/docs/feature-management-experimentation/40-feature-management/control-treatment.md index dbf55e023ce..e06367ee4eb 100644 --- a/docs/feature-management-experimentation/40-feature-management/control-treatment.md +++ b/docs/feature-management-experimentation/40-feature-management/control-treatment.md @@ -24,10 +24,8 @@ The **control** treatment is a reserved treatment in FME. You cannot create a tr * **The SDK evaluated an unsupported targeting rule.** FME SDKs are distributed as versioned packages to be consumed by applications. As new targeting rules are added to feature flags in Harness FME, the FME SDKs are also updated to support the new targeting rules. If an SDK encounters a new targeting rule that it cannot evaluate, it returns the **control** treatment for that feature flag evaluation. In this case, a special FME feature flag evaluation impression is generated with a targeting rule label of "targeting rule type unsupported by sdk". This impression is sent to Harness cloud and can be seen in Live tail in Data hub. -:::info[SDK upgrade may be needed for SemVer rules support] -SemVer (Semantic Version) targeting rules are supported by FME SDKs rolled out in May 2024 or later. Refer to this [FAQ doc](/docs/feature-management-experimentation/feature-management/faqs/does-my-sdk-version-support-semver) to see minimum FME SDK versions for SemVer support. -::: +SemVer (Semantic Version) targeting rules are supported by FME SDKs and customer-deployed components. See [Target with custom attributes](/docs/feature-management-experimentation/feature-management/target-with-custom-attributes#supported-sdks-and-customer-deployed-components-for-semver-matcher) to verify the minimum FME SDK and customer-deployed component versions for SemVer support. :::tip[Tip] -When evaluating which treatment to show to a customer, we recommend handling the *control* treatment in the same way as the default treatment. +When evaluating which treatment to show to a customer, Harness recommends handling the *control* treatment in the same way as the default treatment. ::: diff --git a/docs/feature-management-experimentation/40-feature-management/faqs/can-a-feature-flags-traffic-type-be-modified.md b/docs/feature-management-experimentation/40-feature-management/faqs/can-a-feature-flags-traffic-type-be-modified.md deleted file mode 100644 index ab2b1a1b0f7..00000000000 --- a/docs/feature-management-experimentation/40-feature-management/faqs/can-a-feature-flags-traffic-type-be-modified.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Can a Traffic Type be modified? -sidebar_label: Can a Traffic Type be modified? -sidebar_position: 6 ---- - -

- -

- -### Question - -Can Traffic Type that is associated with the feature flag be modified after the flag is created? - -### Answer - -Once the feature flag is created with specific traffic type, it is not possible to change it, this is done by design so the experiment data will not be mixed from different traffic types and pollute the results. - -To change a traffic type, a new feature flag has to be created with the correct traffic type. \ No newline at end of file diff --git a/docs/feature-management-experimentation/40-feature-management/faqs/does-my-sdk-version-support-semver.md b/docs/feature-management-experimentation/40-feature-management/faqs/does-my-sdk-version-support-semver.md deleted file mode 100644 index c278c7e1377..00000000000 --- a/docs/feature-management-experimentation/40-feature-management/faqs/does-my-sdk-version-support-semver.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Does my SDK version support SemVer? -sidebar_label: Does my SDK version support SemVer? -sidebar_position: 1 ---- - -

- -

- -### Question - -In Harness FME, I noticed an info banner when adding a feature flag targeting rule that uses the **SemVer** (Semantic Version) matcher. How can I confirm that the Harness FME SDK version that I am using in my codebase will support the [SemVer matcher](/docs/feature-management-experimentation/feature-management/target-with-custom-attributes#semver-attributes)? - -![](./static/does-my-sdk-version-support-semver.png) - -### Answer - -Please refer to the following table to check that your Harness FME SDK version or optional infrastructure version supports SemVer. - -| **SDK or Infra** | **Version that supports SemVer** | -| --- | --- | -| **Client-side Suites** | | -| Android SDK Suite | 1.2.0 and later | -| Browser SDK Suite | 1.4.0 and later | -| iOS SDK Suite | 1.2.0 and later | -| **Client-side SDKs** | | -| Android SDK | 4.1.0 and later | -| Angular utilities | 3.0.0 and later | -| Browser SDK | 0.14.0 and later | -| Flutter plugin | 0.1.9 and later | -| iOS SDK | 2.25.0 and later | -| JavaScript SDK | 10.26.0 and later | -| React SDK | 1.12.0 and later | -| React Native SDK | 0.9.0 and later | -| Redux SDK | 1.12.0 and later | -| **Server-side SDKs** | | -| Go SDK | 6.6.0 and later | -| Java SDK | 4.12.0 and later | -| .NET SDK | 7.9.0 and later | -| Node.js SDK | 10.26.0 and later | -| PHP SDK | 7.3.0 and later | -| PHP Thin Client SDK | See SplitD version | -| Python SDK | 9.7.0 and later | -| Ruby SDK | 8.4.0 and later | -| **Optional infrastructure** | | -| Split Daemon | 1.4.0 and later | -| Split Evaluator | 2.6.0 and later | -| Split Synchronizer | 5.8.0 and later | -| Split Proxy | 5.8.0 and later | -| JavaScript synchronizer tools | 0.6.0 and later | \ No newline at end of file diff --git a/docs/feature-management-experimentation/40-feature-management/faqs/how-to-delete-a-segment-with-all-its-keys.md b/docs/feature-management-experimentation/40-feature-management/faqs/how-to-delete-a-segment-with-all-its-keys.md deleted file mode 100644 index e02a78459bd..00000000000 --- a/docs/feature-management-experimentation/40-feature-management/faqs/how-to-delete-a-segment-with-all-its-keys.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: How to delete a segment with all its keys? -sidebar_label: How to delete a segment with all its keys? -sidebar_position: 2 ---- - -

- -

- -### Question - -Is there a way to delete a segment with all its keys in one action, rather than deleting each key individually? - -### Answer - -It is possible to delete all keys from the segment user interface: - -1. Locate the down arrow on top of the checkboxes column. -2. Click on it to display two menu items. -3. Select all records from there, then Delete button appears. - -![](https://help.split.io/hc/article_attachments/15726171868813) - -![](https://help.split.io/hc/article_attachments/15726281778445) - -Once the keys are deleted, delete the segment definition from the lower dotted icon (...) - -![](https://help.split.io/hc/article_attachments/15726343693453) - -Then proceed to delete the segment from the upper dotted icon: - -![](https://help.split.io/hc/article_attachments/15726349353613) \ No newline at end of file diff --git a/docs/feature-management-experimentation/40-feature-management/faqs/is-the-feature-flag-impression-toggle-supported.md b/docs/feature-management-experimentation/40-feature-management/faqs/is-the-feature-flag-impression-toggle-supported.md deleted file mode 100644 index 102b5fe3038..00000000000 --- a/docs/feature-management-experimentation/40-feature-management/faqs/is-the-feature-flag-impression-toggle-supported.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Is the feature flag impression toggle supported by my SDK version? -sidebar_label: Is the feature flag impression toggle supported by my SDK version? -sidebar_position: 0 ---- - -

- -

- -### Question - -The feature flag [**Impression tracking** toggle](/docs/feature-management-experimentation/feature-management/impressions#toggle-impression-tracking-on-or-off) allows me to control my generated impressions (feature flag evaluation data) for a given feature flag definition. The toggle setting is detected by new Harness FME SDK versions, but older SDK versions will not detect the setting (impressions will be sent to Harness servers). - -How can I confirm that the FME SDK version that I am using in my codebase will not send impressions for a feature flag definition that has impression tracking turned off (as shown below)? - -![](../static/impressions-tracking-visual-cues.png) - -### Answer - -Please refer to the following table to check that your Harness FME SDK version or optional infrastructure version supports the **Impression tracking** toggle. - -| **SDK or Infra** | **Version that supports SemVer** | -| --- | --- | -| **Client-side SDKs** | | -| Android SDK | 5.1.0 and later | -| Browser SDK | 1.1.0 and later | -| iOS SDK | 3.1.0 and later | -| JavaScript SDK | 11.1.0 and later | -| React Native SDK | 1.1.0 and later | -| **Server-side SDKs** | | -| Elixir Thin Client SDK | See SplitD version | -| Go SDK | 6.7.0 and later | -| Java SDK | 4.12.0 and later | -| Node.js SDK | 11.1.0 and later | -| PHP Thin Client SDK | See SplitD version | -| Python SDK | 10.2.0 and later | -| Ruby SDK | 8.5.0 and later | -| **Optional infrastructure** | | -| Split Daemon | 1.5.0 and later | -| Split Synchronizer | 5.10.0 and later | \ No newline at end of file diff --git a/docs/feature-management-experimentation/40-feature-management/impressions.md b/docs/feature-management-experimentation/40-feature-management/impressions.md index 4457b801735..f5cfa13d8a1 100644 --- a/docs/feature-management-experimentation/40-feature-management/impressions.md +++ b/docs/feature-management-experimentation/40-feature-management/impressions.md @@ -3,12 +3,17 @@ title: Impressions sidebar_label: Impressions description: "" sidebar_position: 18 +redirect_from: +- /docs/feature-management-experimentation/feature-management/faqs/is-the-feature-flag-impression-toggle-supported ---

+import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + ## Overview Impressions occur whenever a visitor is assigned a feature flag treatment (i.e., variation). Impressions are valuable for debugging the FME SDK and for feature monitoring and experimentation. Impressions are generated by SDKs each time `getTreatment` is called. They are periodically sent back to Harness servers where they are stored and can be accessed for later use. @@ -30,9 +35,9 @@ Each impression contains these fields. | Traffic type ID and name | Traffic type associated to the feature flag evaluated. | | Treatment | Treatment that was returned. | -# Tracking impressions +## Tracking impressions -Impressions are tracked by each Harnes FME SDK and periodically sent to Harness backend servers. +Impressions are tracked by each Harness FME SDK and are periodically sent to Harness backend servers. ## Toggle impression tracking on or off @@ -70,12 +75,57 @@ To turn impression tracking on or off: When impression tracking is off, you will see "Impression tracking off" at the top right of the feature flag definition page. The arrows will also be grayed out (shown with tooltip) on the the feature flag definition card. -![](./static/impressions-tracking-visual-cues.png) +![](static/impressions-tracking-visual-cues-1.png) + +### Supported SDKs and customer-deployed components for impression tracking + +The impression tracking toggle only works with supported FME SDKs and customer-deployed components. If the SDK you are using does not support the toggle, impressions will still be sent to Harness servers—even if impression tracking is turned off for the feature flag definition. -:::info[Impression tracking toggle and SDK compatibility] -See [this page](/docs/feature-management-experimentation/feature-management/faqs/is-the-feature-flag-impression-toggle-supported) to verify compatibility of FME SDK or optional infrastructure. Older SDK versions that do not support the **Impression tracking** toggle will not detect the toggle on/off setting and will send impressions to Harness servers. +![](./static/impressions-tracking-visual-cues-1.png) + +:::info +If you are using an older SDK or customer-deployed component version that does not support the toggle, Harness recommend upgrading to a supported version to ensure that impression tracking behavior aligns with your feature flag settings. ::: +Use the following tables to verify that your SDK or customer-deployed component version supports the impression tracking toggle. + + + + + | **Client-side SDK** | **Version that supports SemVer** | + |---------------------|----------------------------------| + | Android SDK | 5.1.0 and later | + | Browser SDK | 1.1.0 and later | + | iOS SDK | 3.1.0 and later | + | JavaScript SDK | 11.1.0 and later | + | React Native SDK | 1.1.0 and later | + + + + + + | **Server-side SDK** | **Version that supports SemVer** | + |----------------------------|----------------------------------| + | Elixir Thin Client SDK | See SplitD version | + | Go SDK | 6.7.0 and later | + | Java SDK | 4.12.0 and later | + | Node.js SDK | 11.1.0 and later | + | PHP Thin Client SDK | See SplitD version | + | Python SDK | 10.2.0 and later | + | Ruby SDK | 8.5.0 and later | + + + + + + | **Component** | **Version that supports SemVer** | + |---------------------|----------------------------------| + | Split Daemon | 1.5.0 and later | + | Split Synchronizer | 5.10.0 and later | + + + + ## Viewing impressions in Harness You can view incoming impressions in [Live tail](/docs/feature-management-experimentation/feature-management/live-tail) within a feature flag's page or the Data hub, and export them based on query criteria in the Data hub's [Data export tab](/docs/feature-management-experimentation/feature-management/export-data). If you do not see impressions arriving in Harness, ensure that your SDK is installed and functioning as expected. Tips for this are included in the [Live tail](/docs/feature-management-experimentation/feature-management/live-tail) article. Contact us at [support@split.io](mailto:support@split.io) if you have any issues. diff --git a/docs/feature-management-experimentation/40-feature-management/segments.md b/docs/feature-management-experimentation/40-feature-management/segments.md index 1b99d4653d5..fe050d9b061 100644 --- a/docs/feature-management-experimentation/40-feature-management/segments.md +++ b/docs/feature-management-experimentation/40-feature-management/segments.md @@ -1,8 +1,10 @@ --- title: Create a segment sidebar_label: Create a segment -description: "" +description: "Learn how to create, delete, and manage segments in Harness FME." sidebar_position: 6 +redirect_from: +- /docs/feature-management-experimentation/feature-management/faqs/how-to-delete-a-segment-with-all-its-keys ---

@@ -154,8 +156,9 @@ Replace `filename.csv` with the name of your CSV file. ![](./static/create-a-segment-search.png) -:::info[How to append user IDs to a Large segment?] -A segment is a list of user IDs. For a Large segment you can append new user IDs to the existing list, by following these steps: +### Append user IDs to a Large segment + +A segment is a list of user IDs. To append new user IDs to an existing list for a Large segment: 1. Export the user IDs in the Large segment. @@ -164,7 +167,29 @@ A segment is a list of user IDs. For a Large segment you can append new user IDs 2. Edit the exported CSV file and insert the new user IDs. 3. Upload the edited CSV file using the **[File import for Large segments](#file-import-for-large-segments)** steps. -::: + +## Deleting a segment + +You can delete a segment with all of its keys instead of deleting each segment key individually. + +Follow these steps to delete all keys from the segment and delete the segment: + +1. Locate the down arrow on top of the checkboxes column. +1. Click on it to display two menu items. + + ![](https://help.split.io/hc/article_attachments/15726171868813) + +1. Select all records from there. The **Delete** button appears. + + ![](https://help.split.io/hc/article_attachments/15726281778445) + +1. Once the keys are deleted, delete the segment definition by clicking on the Ellipses icon in the **Definition** section and selecting **Delete definition**. + + ![](https://help.split.io/hc/article_attachments/15726343693453) + +1. Click on the Ellipses icon above **Owners** and select **Delete**. + + ![](https://help.split.io/hc/article_attachments/15726349353613) ## CSV import file format diff --git a/docs/feature-management-experimentation/40-feature-management/static/impressions-tracking-visual-cues-1.png b/docs/feature-management-experimentation/40-feature-management/static/impressions-tracking-visual-cues-1.png new file mode 100644 index 00000000000..3e6d3d0fa62 Binary files /dev/null and b/docs/feature-management-experimentation/40-feature-management/static/impressions-tracking-visual-cues-1.png differ diff --git a/docs/feature-management-experimentation/40-feature-management/static/impressions-tracking-visual-cues.png b/docs/feature-management-experimentation/40-feature-management/static/impressions-tracking-visual-cues.png deleted file mode 100644 index bf8fbd40458..00000000000 Binary files a/docs/feature-management-experimentation/40-feature-management/static/impressions-tracking-visual-cues.png and /dev/null differ diff --git a/docs/feature-management-experimentation/40-feature-management/target-with-custom-attributes.md b/docs/feature-management-experimentation/40-feature-management/target-with-custom-attributes.md index 76096994942..37156812f19 100644 --- a/docs/feature-management-experimentation/40-feature-management/target-with-custom-attributes.md +++ b/docs/feature-management-experimentation/40-feature-management/target-with-custom-attributes.md @@ -1,14 +1,19 @@ --- title: Target with custom attributes sidebar_label: Target with custom attributes -description: "" +description: "Learn how to add custom attributes to create dynamic targeted feature rollout plans in Harness FME." sidebar_position: 9 +redirect_from: +- /docs/feature-management-experimentation/feature-management/faqs/does-my-sdk-version-support-semver ---

+import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + With custom attributes, you can create dynamic targeted feature rollout plans using any end-user criteria or dimension that is known at runtime. Custom attributes can be used to represent: * Temporal or fast moving data (e.g., time since last login, customer creation date, browser type, or machine) @@ -256,10 +261,71 @@ For example, use an attribute 'os_version' of type SemVer to give users that hav The version numbers you provide must include the patch number (e.g. `2.2` is invalid, but `2.2.0` is valid) and can include pre-release identifiers and build metadata, as defined in the [Semantic Version](https://semver.org) specification. Comparisons also follow the Semantic Version specification. ::: -:::info[SemVer attributes and SDK compatibility] -See [this page](/docs/feature-management-experimentation/feature-management/faqs/does-my-sdk-version-support-semver) to verify compatibility of FME SDK or Split optional infrastructure. For older SDK versions that do not support SemVer, the `control` treatment will be returned and a special impression will be created. See the _[Control treatment](/docs/feature-management-experimentation/feature-management/control-treatment)_ help page for more information. +#### Supported SDKs and customer-deployed components for SemVer matcher + +The Semantic Version (SemVer) matcher is only supported in specific FME SDK and customer-deployed componenet versions. If you are using an older SDK version that does not support the SemVer matcher, feature flag evaluations will return the `control` treatment and a special impression will be created. + +:::info +If you are using an older SDK or customer-deployed component version that does not support the SemVer matcher, Harness recommends upgrading to a supported version to ensure your target rules function as expected. ::: +Use the following tables to verify that your SDK or customer-deployed component version supports the SemVer matcher. + + + + + | **Client-side SDK Suite** | **Version that supports SemVer** | + |-----------------------|----------------------------------| + | Android SDK Suite | 1.2.0 and later | + | Browser SDK Suite | 1.4.0 and later | + | iOS SDK Suite | 1.2.0 and later | + + + + + + | **Client-side SDK** | **Version that supports SemVer** | + |-----------------------|----------------------------------| + | Android SDK | 4.1.0 and later | + | Angular utilities | 3.0.0 and later | + | Browser SDK | 0.14.0 and later | + | Flutter plugin | 0.1.9 and later | + | iOS SDK | 2.25.0 and later | + | JavaScript SDK | 10.26.0 and later | + | React SDK | 1.12.0 and later | + | React Native SDK | 0.9.0 and later | + | Redux SDK | 1.12.0 and later | + + + + + + | **Server-side SDK** | **Version that supports SemVer** | + |-----------------------|----------------------------------| + | Go SDK | 6.6.0 and later | + | Java SDK | 4.12.0 and later | + | .NET SDK | 7.9.0 and later | + | Node.js SDK | 10.26.0 and later | + | PHP SDK | 7.3.0 and later | + | PHP Thin Client SDK | See SplitD version | + | Python SDK | 9.7.0 and later | + | Ruby SDK | 8.4.0 and later | + + + + + + | **Component** | **Version that supports SemVer** | + |------------------------------|----------------------------------| + | Split Daemon | 1.4.0 and later | + | Split Evaluator | 2.6.0 and later | + | Split Synchronizer | 5.8.0 and later | + | Split Proxy | 5.8.0 and later | + | JavaScript synchronizer tools| 0.6.0 and later | + + + + ### Set attributes Set attributes store lists of strings. The following **Set matchers** can be used with Set attributes: diff --git a/docs/feature-management-experimentation/70-management-and-administration/fme-settings/traffic-types.md b/docs/feature-management-experimentation/70-management-and-administration/fme-settings/traffic-types.md index eea2037e68c..e385b6a868a 100644 --- a/docs/feature-management-experimentation/70-management-and-administration/fme-settings/traffic-types.md +++ b/docs/feature-management-experimentation/70-management-and-administration/fme-settings/traffic-types.md @@ -1,6 +1,9 @@ --- title: Traffic types +description: "Learn about traffic types and creating feature flags with traffic types in Harness FME." sidebar_position: 10 +redirect_from: +- /docs/feature-management-experimentation/feature-management/faqs/can-a-feature-flags-traffic-type-be-modified --- When you create a feature flag, you must specify a traffic type. The traffic type denotes the nature of the keys that are passed to *getTreatment* for that feature flag. Does the key identify a known logged-in user? A device? Is the key a uuid generated for an anonymous visitor and stored in a cookie on the visitor’s browser? @@ -46,7 +49,9 @@ To create traffic types, do the following: 5. Enter a name and click **Save**. A new traffic type is created. :::note -Once a traffic type is created, it cannot be edited. +Once a feature flag is created with a specific traffic type, it cannot be edited. This is intentional to prevent your experiment data from being mixed across different traffic types, which could skew your results. + +To change a traffic type, create a feature flag with the appropriate traffic type. ::: You can delete a traffic type from this same location in the user interface with the Delete link in the Actions column but only if it is no longer in use by any feature flags or metrics.