mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-06 00:07:44 +01:00
1cd0edb11a
Adds `number` as possible payload type for variant. Adds a flag to enable the feature Updates all relevant models and schemas Adds the option to the UI Closes: # [1-1357](https://linear.app/unleash/issue/1-1357/support-number-in-variant-payload) --------- Signed-off-by: andreas-unleash <andreas@getunleash.ai>
61 lines
2.8 KiB
TypeScript
61 lines
2.8 KiB
TypeScript
import { FromSchema } from 'json-schema-to-ts';
|
|
|
|
export const createStrategyVariantSchema = {
|
|
$id: '#/components/schemas/createStrategyVariantSchema',
|
|
type: 'object',
|
|
description:
|
|
"This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.",
|
|
required: ['name', 'weight', 'weightType', 'stickiness'],
|
|
properties: {
|
|
name: {
|
|
type: 'string',
|
|
description:
|
|
'The variant name. Must be unique for this feature toggle',
|
|
example: 'blue_group',
|
|
},
|
|
weight: {
|
|
type: 'integer',
|
|
description:
|
|
'The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/reference/feature-toggle-variants#variant-weight) for more information',
|
|
minimum: 0,
|
|
maximum: 1000,
|
|
},
|
|
weightType: {
|
|
description:
|
|
'Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/reference/feature-toggle-variants#variant-weight).',
|
|
type: 'string',
|
|
example: 'fix',
|
|
enum: ['variable', 'fix'],
|
|
},
|
|
stickiness: {
|
|
type: 'string',
|
|
description:
|
|
'The [stickiness](https://docs.getunleash.io/reference/feature-toggle-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time',
|
|
example: 'custom.context.field',
|
|
},
|
|
payload: {
|
|
type: 'object',
|
|
required: ['type', 'value'],
|
|
description: 'Extra data configured for this variant',
|
|
properties: {
|
|
type: {
|
|
description:
|
|
'The type of the value. Commonly used types are string, number, json and csv.',
|
|
type: 'string',
|
|
enum: ['json', 'csv', 'string', 'number'],
|
|
},
|
|
value: {
|
|
description: 'The actual value of payload',
|
|
type: 'string',
|
|
},
|
|
},
|
|
example: { type: 'json', value: '{"color": "red"}' },
|
|
},
|
|
},
|
|
components: {},
|
|
} as const;
|
|
|
|
export type CreateStrategyVariantSchema = FromSchema<
|
|
typeof createStrategyVariantSchema
|
|
>;
|