mirror of
https://github.com/Unleash/unleash.git
synced 2025-10-27 11:02:16 +01:00
feat: improved transition condition schema to be more explicit (#10773)
This commit is contained in:
parent
d5a91a60e1
commit
0b7c141e70
@ -18,6 +18,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
|||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
import { dependentFeatureSchema } from './dependent-feature-schema.js';
|
import { dependentFeatureSchema } from './dependent-feature-schema.js';
|
||||||
import { tagSchema } from './tag-schema.js';
|
import { tagSchema } from './tag-schema.js';
|
||||||
import { featureLinksSchema } from './feature-links-schema.js';
|
import { featureLinksSchema } from './feature-links-schema.js';
|
||||||
@ -217,6 +218,7 @@ export const exportResultSchema = {
|
|||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
createFeatureStrategySchema,
|
createFeatureStrategySchema,
|
||||||
createStrategyVariantSchema,
|
createStrategyVariantSchema,
|
||||||
|
transitionConditionSchema,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
|||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
|
|
||||||
export const featureEnvironmentSchema = {
|
export const featureEnvironmentSchema = {
|
||||||
$id: '#/components/schemas/featureEnvironmentSchema',
|
$id: '#/components/schemas/featureEnvironmentSchema',
|
||||||
@ -132,6 +133,7 @@ export const featureEnvironmentSchema = {
|
|||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
createFeatureStrategySchema,
|
createFeatureStrategySchema,
|
||||||
createStrategyVariantSchema,
|
createStrategyVariantSchema,
|
||||||
|
transitionConditionSchema,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
|||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
|
|
||||||
export const featureSchema = {
|
export const featureSchema = {
|
||||||
$id: '#/components/schemas/featureSchema',
|
$id: '#/components/schemas/featureSchema',
|
||||||
@ -298,6 +299,7 @@ export const featureSchema = {
|
|||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
createFeatureStrategySchema,
|
createFeatureStrategySchema,
|
||||||
createStrategyVariantSchema,
|
createStrategyVariantSchema,
|
||||||
|
transitionConditionSchema,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
|||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
|
|
||||||
export const featureSearchEnvironmentSchema = {
|
export const featureSearchEnvironmentSchema = {
|
||||||
$id: '#/components/schemas/featureSearchEnvironmentSchema',
|
$id: '#/components/schemas/featureSearchEnvironmentSchema',
|
||||||
@ -45,6 +46,7 @@ export const featureSearchEnvironmentSchema = {
|
|||||||
releasePlanSchema,
|
releasePlanSchema,
|
||||||
releasePlanMilestoneSchema,
|
releasePlanMilestoneSchema,
|
||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
|
transitionConditionSchema,
|
||||||
createFeatureStrategySchema,
|
createFeatureStrategySchema,
|
||||||
createStrategyVariantSchema,
|
createStrategyVariantSchema,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import { projectEnvironmentSchema } from './project-environment-schema.js';
|
|||||||
import { releasePlanSchema } from './release-plan-schema.js';
|
import { releasePlanSchema } from './release-plan-schema.js';
|
||||||
import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
import { strategyVariantSchema } from './strategy-variant-schema.js';
|
import { strategyVariantSchema } from './strategy-variant-schema.js';
|
||||||
import { createFeatureNamingPatternSchema } from './create-feature-naming-pattern-schema.js';
|
import { createFeatureNamingPatternSchema } from './create-feature-naming-pattern-schema.js';
|
||||||
@ -150,6 +151,7 @@ export const healthOverviewSchema = {
|
|||||||
releasePlanSchema,
|
releasePlanSchema,
|
||||||
releasePlanMilestoneSchema,
|
releasePlanMilestoneSchema,
|
||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
|
transitionConditionSchema,
|
||||||
strategyVariantSchema,
|
strategyVariantSchema,
|
||||||
variantSchema,
|
variantSchema,
|
||||||
projectStatsSchema,
|
projectStatsSchema,
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
|||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
import { strategyVariantSchema } from './strategy-variant-schema.js';
|
import { strategyVariantSchema } from './strategy-variant-schema.js';
|
||||||
import { featureDependenciesSchema } from './feature-dependencies-schema.js';
|
import { featureDependenciesSchema } from './feature-dependencies-schema.js';
|
||||||
import { dependentFeatureSchema } from './dependent-feature-schema.js';
|
import { dependentFeatureSchema } from './dependent-feature-schema.js';
|
||||||
@ -63,6 +64,7 @@ export const importTogglesSchema = {
|
|||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
createFeatureStrategySchema,
|
createFeatureStrategySchema,
|
||||||
createStrategyVariantSchema,
|
createStrategyVariantSchema,
|
||||||
|
transitionConditionSchema,
|
||||||
variantsSchema,
|
variantsSchema,
|
||||||
variantSchema,
|
variantSchema,
|
||||||
overrideSchema,
|
overrideSchema,
|
||||||
|
|||||||
@ -205,6 +205,7 @@ export * from './telemetry-settings-schema.js';
|
|||||||
export * from './toggle-maintenance-schema.js';
|
export * from './toggle-maintenance-schema.js';
|
||||||
export * from './token-string-list-schema.js';
|
export * from './token-string-list-schema.js';
|
||||||
export * from './token-user-schema.js';
|
export * from './token-user-schema.js';
|
||||||
|
export * from './transition-condition-schema.js';
|
||||||
export * from './ui-config-schema.js';
|
export * from './ui-config-schema.js';
|
||||||
export * from './unknown-flag-schema.js';
|
export * from './unknown-flag-schema.js';
|
||||||
export * from './unknown-flags-response-schema.js';
|
export * from './unknown-flags-response-schema.js';
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import { projectLinkTemplateSchema } from './project-link-template-schema.js';
|
|||||||
import { releasePlanSchema } from './release-plan-schema.js';
|
import { releasePlanSchema } from './release-plan-schema.js';
|
||||||
import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
|
|
||||||
export const projectOverviewSchema = {
|
export const projectOverviewSchema = {
|
||||||
$id: '#/components/schemas/projectOverviewSchema',
|
$id: '#/components/schemas/projectOverviewSchema',
|
||||||
@ -208,6 +209,7 @@ export const projectOverviewSchema = {
|
|||||||
releasePlanSchema,
|
releasePlanSchema,
|
||||||
releasePlanMilestoneSchema,
|
releasePlanMilestoneSchema,
|
||||||
releasePlanMilestoneStrategySchema,
|
releasePlanMilestoneStrategySchema,
|
||||||
|
transitionConditionSchema,
|
||||||
projectStatsSchema,
|
projectStatsSchema,
|
||||||
createFeatureNamingPatternSchema,
|
createFeatureNamingPatternSchema,
|
||||||
featureTypeCountSchema,
|
featureTypeCountSchema,
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { createFeatureStrategySchema } from './create-feature-strategy-schema.js
|
|||||||
import { parametersSchema } from './parameters-schema.js';
|
import { parametersSchema } from './parameters-schema.js';
|
||||||
import { constraintSchema } from './constraint-schema.js';
|
import { constraintSchema } from './constraint-schema.js';
|
||||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||||
|
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||||
|
|
||||||
export const releasePlanMilestoneSchema = {
|
export const releasePlanMilestoneSchema = {
|
||||||
$id: '#/components/schemas/releasePlanMilestoneSchema',
|
$id: '#/components/schemas/releasePlanMilestoneSchema',
|
||||||
@ -43,11 +44,8 @@ export const releasePlanMilestoneSchema = {
|
|||||||
nullable: true,
|
nullable: true,
|
||||||
},
|
},
|
||||||
transitionCondition: {
|
transitionCondition: {
|
||||||
type: 'object',
|
description: 'The condition configuration for the transition',
|
||||||
description:
|
$ref: '#/components/schemas/transitionConditionSchema',
|
||||||
'The transition condition for the next automated milestone progression.',
|
|
||||||
additionalProperties: true,
|
|
||||||
nullable: true,
|
|
||||||
},
|
},
|
||||||
progressionExecutedAt: {
|
progressionExecutedAt: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
@ -73,6 +71,7 @@ export const releasePlanMilestoneSchema = {
|
|||||||
parametersSchema,
|
parametersSchema,
|
||||||
constraintSchema,
|
constraintSchema,
|
||||||
createStrategyVariantSchema,
|
createStrategyVariantSchema,
|
||||||
|
transitionConditionSchema,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
21
src/lib/openapi/spec/transition-condition-schema.ts
Normal file
21
src/lib/openapi/spec/transition-condition-schema.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import type { FromSchema } from 'json-schema-to-ts';
|
||||||
|
|
||||||
|
export const transitionConditionSchema = {
|
||||||
|
$id: '#/components/schemas/transitionConditionSchema',
|
||||||
|
type: 'object',
|
||||||
|
additionalProperties: false,
|
||||||
|
required: ['intervalMinutes'],
|
||||||
|
description: 'A transition condition for milestone progression',
|
||||||
|
properties: {
|
||||||
|
intervalMinutes: {
|
||||||
|
type: 'number',
|
||||||
|
description: 'The interval in minutes before transitioning',
|
||||||
|
example: 30,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
components: {},
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
export type TransitionConditionSchema = FromSchema<
|
||||||
|
typeof transitionConditionSchema
|
||||||
|
>;
|
||||||
Loading…
Reference in New Issue
Block a user