Esquio ASP.NET Core toggles

In addition to the toggles that Esquio provides out of the box, Esquio.AspNetCore provides more toggles to work with ASP.NET Core applications.

Identity Claim Value

This toggle enables its feature if the identity claim of the current user exists and its value is in the list.

Type

  • Esquio.Toggles.ClaimValueToggle

Parameters

  • ClaimType: The claim type name.
  • ClaimValues: The claim values to activate this toggle separated by ‘;’ character.
{
    "Name": "AnimationsMatch",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.Toggles.ClaimValueToggle",
            "Parameters":
            {
                "ClaimType": "Company",
                "ClaimValues": "Contoso;ACME"
            }
        }
    ]
}

Client IP Address

This toggle enables its feature if the client IP address is in the list.

Type

  • Esquio.Toggles.ClientIpAddressToggle

Parameters

  • IpAddresses: The IP addresses to activate this toggle separated by ‘;’ character.
{
    "Name": "SecretZoneMatch",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.Toggles.ClientIpAddressToggle",
            "Parameters":
            {
                "ClaimType": "IpAddresses",
                "ClaimValues": "11.22.44.88;11.22.33.44"
            }
        }
    ]
}

Partial rollout by Identity Claim value

This toggle enables its feature The claim exists and its value falls within the percentage created by Esquio Partitioner. Stickiness is based on the claim type value. Esquio uses Jenkins hash function that guarantees to the user get the same experience across many devices and also assures that a user which is among the first 30% will also be among the first 50% of the users.

Type

  • Esquio.AspNetCore.Toggles.GradualRolloutClaimValueToggle

Parameters

  • Percentage: The percentage of users that activates this toggle. Percentage from 0 to 100.
  • ClaimType: The identity claim type used whom value is used by Esquio Partitioner.
{
    "Name": "DarkMode",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.GradualRolloutClaimValueToggle",
            "Parameters":
            {
                "Percentage": 50,
                "ClaimType": "role"
            }
        }
    ]
}

Partial rollout by Http Header value

This toggle enables its feature when the request header exists and its value falls within percentage created by Esquio Partitioner. Stickiness is based on the HTTP header value. Esquio uses Jenkins hash function that guarantees to the user get the same experience across many devices and also assures that a user which is among the first 30% will also be among the first 50% of the users.

Type

  • Esquio.AspNetCore.Toggles.GradualRolloutHeaderValueToggle

Parameters

  • Percentage: The percentage of users that activates this toggle. Percentage from 0 to 100.
  • HeaderName: The header name used whom value is used by Esquio Partitioner.
{
    "Name": "DarkMode",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.Toggles.GradualRolloutHeaderValueToggle",
            "Parameters":
            {
                "Percentage": 50,
                "HeaderName": "X-Tenant"
            }
        }
    ]
}

Partial rollout by Http Session Id

This toggle enables its feature if the session identifier falls within percentage created by Esquio Partitioner. Stickiness is based on the ASP.NET Core SessionId value.

Type

  • Esquio.AspNetCore.Toggles.GradualRolloutSessionToggle

Parameters

  • Percentage: The percentage of sessions that activates this toggle. Percentage from 0 to 100.
{
    "Name": "DarkMode",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.GradualRolloutSessionToggle",
            "Parameters":
            {
                "Percentage": 50
            }
        }
    ]
}

Partial rollout by UserName

This toggle allows the current user name falls within percentage created by Esquio Partitioner. Stickiness is based on the user name. Esquio uses Jenkins hash function which guarantees the user gets the same experience across many devices and also ensures that a user who is among the first 30% will also be among the first 50% of users.

Type

  • Esquio.AspNetCore.Toggles.GradualRolloutUserNameToggle

Parameters

  • Percentage: The percentage of users that activates this toggle. Percentage from 0 to 100.
{
    "Name": "DarkMode",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.GradualRolloutUserNameToggle",
            "Parameters":
            {
                "Percentage": 50
            }
        }
    ]
}

Http Header value

This toggle enables its feature if the request header exists and its value its in the list.

Type

  • Esquio.AspNetCore.Toggles.HeaderValueToggle

Parameters

  • HeaderName: The header name.
  • HeaderValues: The header values to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.HeaderValueToggle",
            "Parameters":
            {
                "HeaderName": "Accept-Language",
                "HeaderValues": "en-US;es-ES"
            }
        }
    ]
}

Environment

This toggle enables its feature if the host execution environment and its value is in the list.

Type

  • Esquio.AspNetCore.Toggles.HostEnvironmentToggle

Parameters

  • Environments: The ASP.NET Core host environments to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.HostEnvironmentToggle",
            "Parameters":
            {
                "Environments": "Staging;Production"
            }
        }
    ]
}

Host name

This toggle enables its feature if the hostname of the client instance is in the list.

Type

  • Esquio.AspNetCore.Toggles.HostNameToggle

Parameters

  • HostNames: The request connection hostnames values to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.HostNameToggle",
            "Parameters":
            {
                "Environments": "mycompany.org;en.domain.com"
            }
        }
    ]
}

Country

This toggle enables its feature if the request country is in the list (Ip geolocation through https://ip2c.org service).

Type

  • Esquio.AspNetCore.Toggles.Ip2CountryToggle

Parameters

  • Countries: The request country values (two letters, ISO 3166) to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.Ip2CountryToggle",
            "Parameters":
            {
                "Environments": "ES;IT"
            }
        }
    ]
}

Identity Role

This toggle enables its feature if the identity role is in the list.

Type

  • Esquio.AspNetCore.Toggles.RoleNameToggle

Parameters

  • Roles: The identity role values to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.RoleNameToggle",
            "Parameters":
            {
                "Users": "betauser;beta"
            }
        }
    ]
}

Server IP

This toggle enables its feature if the host IP address is in the list.

Type

  • Esquio.AspNetCore.Toggles.ServerIpAddressToggle

Parameters

  • IpAddresses: The host IP adddresses to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.ServerIpAddressToggle",
            "Parameters":
            {
                "Users": "11.22.44.88;11.22.33.44"
            }
        }
    ]
}

User Agent

This toggle enables its feature if the request user agent browser is in the list.

Type

  • Esquio.AspNetCore.Toggles.UserAgentToggle

Parameters

  • Browsers: The user agents to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.UserAgentToggle",
            "Parameters":
            {
                "Users": "Mozilla/5.0;Chrome/81.0.4"
            }
        }
    ]
}

Identity name

This toggle enables its feature if the identity name is in the list.

Type

  • Esquio.AspNetCore.Toggles.UserNameToggle

Parameters

  • Users: The identity names to activate this toggle separated by ‘;’ character.
{
    "Name": "MinutesProgressBar",
    "Enabled": true,
    "Toggles": [
        {
            "Type": "Esquio.AspNetCore.Toggles.UserNameToggle",
            "Parameters":
            {
                "Users": "betauser;beta"
            }
        }
    ]
}