This is a html view of the json schema please take the json schema as reference DOWNLOAD THE JSON SCHEMA

Spark features reference model Schema

Type: object

Schema describing the reference model containing the list of features available on spark


Example:

{
    "features": [
        {
            "id": "cp-dummy-feature-1",
            "description": "Dummy Feature 1",
            "type": "CORE",
            "permissions": [
                "DUMMY_PERMISSION_1"
            ],
            "capabilities": [
                "CART"
            ],
            "components": [
                "spark-api-cart"
            ]
        },
        {
            "id": "ft-dummy-feature-2",
            "description": "Dummy Feature 2",
            "type": "OPTIONAL",
            "availableForOpCos": [
                "AUTH_POC",
                "BEL-CEBEO"
            ],
            "capabilities": [
                "CART",
                "CHECKOUT"
            ],
            "components": [
                "spark-api-checkout",
                "spark-web-checkout"
            ]
        }
    ]
}

Type: array

A list of features

No Additional Items

Each item of this array must be:

Feature

Type: object

An object representing a single feature

Type: string

A unique identifier for the feature

Must match regular expression: ^(cp|st|ft|rl|kl|xp)-[a-z0-9-]{4,29}$
Example:

"cp-dummy-feature-1"

Type: string

A description for the feature

Must be at least 1 characters long


Example:

"Dummy Feature 1"

Type: enum (of string)

The feature type.
- CORE for mandatory features in the platform not needing any feature flag configuration on Unleash.
- OPTIONAL for can be activated on demand and trigger flags creation on Unleash.

Must be one of:

  • "CORE"
  • "OPTIONAL"

Example:

"CORE"

AbTesting

Type: object

Allows to start a a/b testing where you can test different versions of a feature to see which version performs better


Example:

{
    "stickiness": "DEFAULT",
    "variants": [
        {
            "name": "variant_1",
            "weight": 60
        },
        {
            "name": "variant_2",
            "weight": 20
        },
        {
            "name": "variant_3",
            "weight": 20
        }
    ]
}

Type: enum (of string)

Refers to the tendency of a user to return to a specific feature or variant after their initial interaction.
- DEFAULT to calculate stickiness based on the fields available in the context in the order of userId, sessionId.
- ACCOUNT_ID to calculate stickiness based on the accountId field available in the context.

Must be one of:

  • "DEFAULT"
  • "ACCOUNT_ID"

Example:

"DEFAULT"

Type: array

Refers to different versions of a feature that are being compared to determine which performs better. It's important to note that the total weight of all variants for a feature must be 100, as the weight determines the percentage of users that will be exposed to each variant.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

AbTestingVariant

Type: object

An object representing an a/b testing variant

Type: string

Unique identifier assigned to a feature variant in a/b testing.

Must be at least 1 characters long


Example:

"variant-1"

Type: integer

Determines how likely it is that a user will receive that variant. It is a numeric value between 0 and 100 (inclusive). It's important to note that the total weight of all variants for a feature must be 100.

Value must be greater or equal to 0 and lesser or equal to 100


Example:

60

Example:

[
    {
        "name": "variant_1",
        "weight": 60
    },
    {
        "name": "variant_2",
        "weight": 20
    },
    {
        "name": "variant_3",
        "weight": 20
    }
]

Type: array of enum (of string)

Capability list to which this feature belongs

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "ACCOUNT"
  • "ACCOUNT_KPI"
  • "ACTIVITY"
  • "ASSETS_TRANSFER"
  • "ASSOCIATE"
  • "CART"
  • "CASE"
  • "CATALOG_BROWSE"
  • "CHECKOUT"
  • "CONTACT"
  • "CONTENT_MANAGEMENT"
  • "COMMUNICATION"
  • "CUSTOMER_SERVICES"
  • "HOMEPAGE"
  • "JOURNEY"
  • "LEAD"
  • "ORDER"
  • "OPPORTUNITY"
  • "PORTFOLIO"
  • "PRICE"
  • "PROJECT"
  • "PUNCHOUT"
  • "QUEUE"
  • "QUOTE"
  • "SEARCH"
  • "SEGMENT"
  • "STORE_LOCATOR"
  • "TERRITORY"

Example:

"ACCOUNT"

Type: array of enum (of string)

Technical components in spark architecture related to this feature

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "graphql-gateway"
  • "graphql-service-product"
  • "graphql-service-account"
  • "graphql-service-checkout"
  • "graphql-service-store"
  • "graphql-service-associate"
  • "graphql-service-punchout"
  • "spark-web-content"
  • "spark-web-catalog"
  • "spark-web-checkout"
  • "spark-web-account"
  • "spark-web-associate"
  • "spark-web-punchout"
  • "opco-api-mock"
  • "spark-api-account"
  • "spark-api-agreement"
  • "spark-api-assets-export"
  • "spark-api-associate"
  • "spark-api-business-configuration"
  • "spark-api-cart"
  • "spark-api-checkout"
  • "spark-api-communication"
  • "spark-api-company"
  • "spark-api-customer-care"
  • "spark-api-document"
  • "spark-api-facility"
  • "spark-api-order"
  • "spark-api-payment"
  • "spark-api-price"
  • "spark-api-product"
  • "spark-api-product-list"
  • "spark-api-promotion"
  • "spark-api-punchout"
  • "spark-api-punchout-gateway"
  • "spark-api-user-preferences"
  • "spark-api-stock"
  • "spark-api-product-search"
  • "spark-monitoring-tool"
  • "spark-price-integration"
  • "spark-product-search-enrichment"
  • "spark-promotion-enrichment"
  • "spark-stock-integration"
  • "powerplatform-core"
  • "powerplatform-sales-automation"
  • "powerplatform-sales-automation-mda"
  • "powerplatform-customer-care"
  • "powerplatform-customer-care-mda"
  • "powerplatform-marketing-automation"
  • "powerplatform-marketing-automation-mda"
  • "powerplatform-marketing-automation-triggers"
  • "soa-portal"
  • "soa-email-ingestion"
  • "soa-portal-bff"

Example:

"spark-api-customer-care"

Type: array of string

List containing the opCos in which the feature is available and therefore the flags available on Unleash. When the field is not present, it means that the feature is available for all opCos in spark

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Example:

"AUTH_POC"

Type: array of string

A list of permissions needed for the feature

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:


Example:

"DUMMY_PERMISSION_1"

Example:

[
    {
        "id": "cp-dummy-feature-1",
        "description": "Dummy feature 1",
        "type": "CORE",
        "permissions": [
            "DUMMY_PERMISSION_1",
            "DUMMY_PERMISSION_2"
        ],
        "capabilities": [
            "CART"
        ],
        "components": [
            "spark-api-checkout"
        ]
    },
    {
        "id": "ft-dummy-feature-2",
        "description": "Dummy feature 2",
        "type": "OPTIONAL",
        "availableForOpCos": [
            "AUTH_POC",
            "BEL-CEBEO"
        ],
        "capabilities": [
            "CART",
            "CHECKOUT"
        ],
        "components": [
            "spark-api-checkout",
            "spark-web-checkout"
        ]
    },
    {
        "id": "xp-dummy-feature-3",
        "description": "Dummy feature 3",
        "type": "OPTIONAL",
        "abTesting": {
            "stickiness": "DEFAULT",
            "variants": [
                {
                    "name": "variant_1",
                    "weight": 60
                },
                {
                    "name": "variant_2",
                    "weight": 20
                },
                {
                    "name": "variant_3",
                    "weight": 20
                }
            ]
        },
        "capabilities": [
            "CART"
        ],
        "components": [
            "spark-api-checkout"
        ]
    }
]