Feature Flags

>What are Feature Flags?

>Supported Feature Flag Management Platforms

>Sentinel EMS Workflow with Feature Flag Management Platforms

>Identifying Features Flags in Sentinel EMS

>Known Limitations

>Viewing Features Flag Administration Console Properties

New to Sentinel EMS?
See How to Use Sentinel EMS?

What are Feature Flags?

Feature flags (also known as feature toggles or feature switches) are a software development technique that switches certain functionality on and off at runtime, without deploying new code. This allows for better control and more experimentation over the full lifecycle of features. As a SaaS vendor, you can decouple the process of delivering software from the process of releasing features. You can deploy a feature any time you want but release it only when you are ready. You can target the delivery of certain features to a specific set of users.

Sentinel EMS supports integration with popular feature flag management platforms to allow you to deliver changes more frequently, collect feedback, and adapt to the competitive market quickly. You can use Sentinel EMS entitlements to deploy commercial features controlled with feature flags.

Integrating a feature flag management platform with Sentinel EMS enables you to automatically create features in Sentinel EMS and then switch them on or off based on the entitlement status or specific entitlement attributes. With the entitlement-driven feature flags, you can:

> Grow revenue: Allows teams to increase conversions and upsells by targeting users with entitlement-specific attributes including plan type, subscription status, and order quantity to temporarily enable premium features for lower-grade plans, enticing users to upgrade.

> Increase agility: Entitlement-driven feature flags decouple pricing, packaging, and provisioning decisions from the engineering teams. Dedicated entitlement management enables business teams to make entitlement decisions without requiring code changes.

Supported Feature Flag Management Platforms

Sentinel EMS supports the following feature flag integration platforms:

>LaunchDarkly

>Split

For more information on these platforms, refer to their respective documentation.

Sentinel EMS Workflow with Feature Flag Management Platforms

Sentinel EMS integration with feature flag management platforms allows you to control the delivery of commercial features in subscription plans. You can automatically enable feature access to targeted users based on certain events so that your users are able to use the features to which they are entitled.

The following workflow explains how events in feature flag management platforms trigger feature creation in Sentinel EMS and how the features packaged in entitlements are delivered to the client application:

1.Obtain the Sentinel EMS endpoint and API key for the feature flag management platform from the Sentinel EMS Administration Console.

2.Configure the Sentinel EMS endpoint and API key in a webhook in your feature flag management platform. This ensures that whenever a feature flag is created, an HTTP POST payload is sent to the endpoint configured in the webhook.

For LaunchDarkly, you need to configure configure both the endpoint and API key.

ClosedHow?

In the LaunchDarkly UI, go to the Integrations page, and click Add Integration. The Create a webhook page appears. Enter the Sentinel EMS endpoint in the URL field, set the desired optional parameters, accept the terms and conditions, and click Save Settings.

After creating the webhook, edit it, enter the Sentinel EMS API key in the Secret (optional) field, and click Save Settings.

For Split, you do not need the API key. Configure only the Sentinel EMS endpoint.

ClosedHow?

In the Split UI, go to Admin Settings. Click Integrations and select WebHooks from the right-side menu. Click Add next to Outgoing Webhook (Audit Log). Enter the Sentinel EMS endpoint in the URL field (where the POST should be sent). Click Save.

3.Create a feature flag in the feature flag platform.

In LaunchDarkly, set the Tags value to EntitledFeature. This tag is used to filter out commercial features that need to be created in Sentinel EMS.
Note that the Key of a feature flag in LaunchDarkly (not the Name) maps to the feature name in Sentinel EMS.

In Split, you do not need to tag feature flags. All Split feature flags are considered to be commercial features. Any tags specified in Split are ignored by Sentinel EMS.

4.The feature flag management platform generates an event, based on which a feature is created in Sentinel EMS using the pre-seeded entities (namespace, license model, etc.). Refer to the section Identifying Features Flags in Sentinel EMS for information on how to identify features created in Sentinel EMS based on features flag events.

5.Create products and entitlements in Sentinel EMS for the features created based on feature flag events.

When creating products for flagged features, use only the Default product type. When associating the products to an entitlement, you must specify a customer for the entitlement. Apart from these, the procedures of creating a products and an entitlement remain the same as for other enforcements.

6.The Create/Update/Split Entitlement actions in Sentinel EMS generate outbound events and push the specific data to the database.

7.Configure Sentinel EMS endpoint and Sentinel EMS API key, obtained from the Sentinel EMS Administration Console, in a client application.

8.The client application sends an API request to Sentinel EMS using customer identifier and API key. Sentinel EMS validates the request and sends a JSON response with details of feature, product, and entitlement to the client application. Based on whether the entitlement is enabled, the client application queries the feature flag management platform. A sample API response is shown below. For details, refer to Sentinel EMS API Reference.

{
  "entitledFlags": [
    {
      "name": "TestFeature",
      "startDate": "2022-04-21",
      "endDate": "2500-12-31",
      "product": "TestProduct",
      "quantity": 10,
      "eId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "enabled": true,
      "lastModifiedDate": "2022-05-31 06:43"
    }
  ]
}

Identifying Features Flags in Sentinel EMS

Driven by feature flags, Sentinel EMS creates features in Sentinel EMS using pre-seeded entities and attributes. For example, features are created in the Feature-Flag namespace using the Services license model of the Services enforcement.

The features created in Sentinel EMS vendor portal based on feature flags can be identified using the following values:

Entity or Attribute Value in Sentinel EMS
Feature Name

This is mapped to Key in LaunchDarkly and Name in Split.

Namespace Feature-Flag
Enforcement Services 1.0
License Model Services
Custom Attribute

isFeatureFlag set to "Yes"

NOTE   The default value is "No" for features not driven by feature flag management platforms.

Examples

To search feature flags in the Sentinel EMS vendor portal, filter by isFeatureFlag set to Yes. This lists only those features that are created based on feature flag events. An example is shown below:

You can expand the Associated License Models and Feature Attributes tabs to view details:

Known Limitations

Following is a known limitation related to feature flag support:

>The Activate button is enabled for entitlements containing products associated with the feature-flag features, regardless of the Allow Activation flag value. Since the feature flag updates are pulled based on the create-, update-, and split-entitlement events and not based on activation, so this issue does not have any impact.

Important Points

>For LaunchDarkly, the Sentinel EMS API key must be configured in a webhook to ensure that features are created in Sentinel EMS. An API key is not required for Split.

>Do not delete or rename the Feature-Flag namespace, Services license model, or isFeatureFlag custom attribute.If these are deleted or renamed, Sentinel EMS will not create features based on feature flags. However, if deleted or renamed by mistake, try to restore these entities by adding them back or renaming them to the original values.

>For creating entitlements based on feature flags, use only the Default products. Do not use versionless  products because they hold benefits only during the activation and activation is not required for feature-flag-based products. Also, note that features created based on feature flags do not have any version by default.

>When creating a feature flag in LaunchDarkly, you must tag it with EntitledFeature to indicate that the feature must be created in Sentinel EMS. The tag EntitledFeature must be spelled and written as-is. You do not need to tag feature flags in Split.

>Associating a customer is mandatory for feature flag entitlements.

>You should not combine feature-flag-integrated Sentinel EMS instance with other enforcements. Feature flag integration is supported with the Services enforcement only, so you can mix products with other Services license models, such as Training License Model and Support License Model.

Viewing Features Flag Administration Console Properties

You can view the properties related to the LaunchDarkly and Split feature flag management platforms by using the Administration Console.