Unity · Arazzo Workflow

Unity Remote Config Feature Rollout

Version 1.0.0

Add a config setting, create a targeted override rule for it, then confirm the rule is listed.

1 workflow 1 source API 1 provider
View Spec View on GitHub Game DevelopmentReal-Time 3DMultiplayerGame ServicesCloud GamingArazzoWorkflows

Provider

unity

Workflows

remote-config-rollout
Add a setting, create a targeted override rule, and confirm it.
Adds a default config setting, creates a percentage-rollout override rule targeting a player segment, then lists override rules to confirm the rule is present.
3 steps inputs: accessToken, condition, configId, defaultValue, environmentId, overrideValue, projectId, rolloutPercentage, ruleName, settingKey, settingType outputs: ruleId, rules, settingKey
1
addSetting
addSetting
Add the new key-value setting to the configuration as the default value.
2
createRule
createOverrideRule
Create a targeting override rule that overrides the setting for a player segment with the supplied rollout percentage.
3
listRules
listOverrideRules
List the environment's override rules to confirm the new rule is present and active.

Source API Descriptions

Arazzo Workflow Specification

unity-remote-config-rollout-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Unity Remote Config Feature Rollout
  summary: Add a config setting, create a targeted override rule for it, then confirm the rule is listed.
  description: >-
    A staged feature rollout through Unity Remote Config. The workflow adds a
    new key-value setting to a configuration as the default value, creates a
    targeting override rule that overrides that setting for a player segment
    with a percentage rollout, and lists the environment's override rules to
    confirm the new rule is active. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: remoteConfigApi
  url: ../openapi/unity-remote-config-openapi.yml
  type: openapi
workflows:
- workflowId: remote-config-rollout
  summary: Add a setting, create a targeted override rule, and confirm it.
  description: >-
    Adds a default config setting, creates a percentage-rollout override rule
    targeting a player segment, then lists override rules to confirm the rule
    is present.
  inputs:
    type: object
    required:
    - accessToken
    - projectId
    - environmentId
    - configId
    - settingKey
    - settingType
    - defaultValue
    - overrideValue
    - ruleName
    - condition
    - rolloutPercentage
    properties:
      accessToken:
        type: string
        description: Bearer JWT for the service account.
      projectId:
        type: string
        description: The Unity project identifier.
      environmentId:
        type: string
        description: The Unity environment identifier.
      configId:
        type: string
        description: The configuration id to add the setting to.
      settingKey:
        type: string
        description: The configuration key name.
      settingType:
        type: string
        description: The data type of the setting (string, int, bool, float, or json).
      defaultValue:
        description: The default value for the setting.
      overrideValue:
        description: The override value applied by the targeting rule.
      ruleName:
        type: string
        description: Display name for the override rule.
      condition:
        type: string
        description: The rule condition expression selecting the target segment.
      rolloutPercentage:
        type: integer
        description: The percentage of the targeted segment that receives the override (0-100).
  steps:
  - stepId: addSetting
    description: >-
      Add the new key-value setting to the configuration as the default value.
    operationId: addSetting
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: environmentId
      in: path
      value: $inputs.environmentId
    - name: configId
      in: path
      value: $inputs.configId
    requestBody:
      contentType: application/json
      payload:
        key: $inputs.settingKey
        type: $inputs.settingType
        value: $inputs.defaultValue
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      settingKey: $response.body#/key
  - stepId: createRule
    description: >-
      Create a targeting override rule that overrides the setting for a player
      segment with the supplied rollout percentage.
    operationId: createOverrideRule
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: environmentId
      in: path
      value: $inputs.environmentId
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.ruleName
        enabled: true
        priority: 1000
        condition: $inputs.condition
        rolloutPercentage: $inputs.rolloutPercentage
        value:
        - key: $inputs.settingKey
          type: $inputs.settingType
          value: $inputs.overrideValue
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      ruleId: $response.body#/id
  - stepId: listRules
    description: >-
      List the environment's override rules to confirm the new rule is present
      and active.
    operationId: listOverrideRules
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: environmentId
      in: path
      value: $inputs.environmentId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      rules: $response.body#/rules
  outputs:
    settingKey: $steps.addSetting.outputs.settingKey
    ruleId: $steps.createRule.outputs.ruleId
    rules: $steps.listRules.outputs.rules