arazzo: 1.0.1 info: title: Kinde Roll Out Feature Flag to Organization summary: Create an org-overridable feature flag and set its value for one organization. description: >- Defines a new feature flag at the environment level and immediately rolls it out to a single organization by setting an override value. The workflow creates the flag (configured to allow organization-level overrides), applies the override for the target organization, and reads back that organization's feature flags to confirm the override is present. Every step inlines its request so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: kindeManagementApi url: ../openapi/kinde-management-api-openapi.yml type: openapi workflows: - workflowId: rollout-feature-flag summary: Create a feature flag and override its value for one organization. description: >- Creates a feature flag that allows org-level overrides, sets the override value for a target organization, then lists that organization's flags to verify the rollout. inputs: type: object required: - name - key - type - defaultValue - orgCode - overrideValue properties: name: type: string description: The display name of the feature flag. description: type: string description: Description of the flag's purpose. key: type: string description: The flag identifier to use in code. type: type: string description: The flag variable type - one of str, int, bool. defaultValue: type: string description: Default value used by environments and organizations. orgCode: type: string description: The organization code to roll the flag out to. overrideValue: type: string description: The override value to set for the organization. steps: - stepId: createFeatureFlag description: >- Create the feature flag, allowing it to be overridden at the organization level so it can be rolled out per tenant. operationId: CreateFeatureFlag requestBody: contentType: application/json payload: name: $inputs.name description: $inputs.description key: $inputs.key type: $inputs.type allow_override_level: org default_value: $inputs.defaultValue successCriteria: - condition: $statusCode == 201 outputs: createCode: $response.body#/code - stepId: setOrganizationOverride description: >- Set the organization-level override value for the new flag, rolling it out to the target organization. operationId: UpdateOrganizationFeatureFlagOverride parameters: - name: org_code in: path value: $inputs.orgCode - name: feature_flag_key in: path value: $inputs.key - name: value in: query value: $inputs.overrideValue successCriteria: - condition: $statusCode == 200 outputs: overrideCode: $response.body#/code - stepId: verifyOrganizationFlags description: >- Read back the organization's feature flags to confirm the override is in effect. operationId: GetOrganizationFeatureFlags parameters: - name: org_code in: path value: $inputs.orgCode successCriteria: - condition: $statusCode == 200 outputs: featureFlags: $response.body#/feature_flags outputs: featureFlagKey: $inputs.key featureFlags: $steps.verifyOrganizationFlags.outputs.featureFlags