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 { createFeatureStrategySchema } from './create-feature-strategy-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 { tagSchema } from './tag-schema.js';
|
||||
import { featureLinksSchema } from './feature-links-schema.js';
|
||||
@ -217,6 +218,7 @@ export const exportResultSchema = {
|
||||
releasePlanMilestoneStrategySchema,
|
||||
createFeatureStrategySchema,
|
||||
createStrategyVariantSchema,
|
||||
transitionConditionSchema,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
@ -9,6 +9,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||
|
||||
export const featureEnvironmentSchema = {
|
||||
$id: '#/components/schemas/featureEnvironmentSchema',
|
||||
@ -132,6 +133,7 @@ export const featureEnvironmentSchema = {
|
||||
releasePlanMilestoneStrategySchema,
|
||||
createFeatureStrategySchema,
|
||||
createStrategyVariantSchema,
|
||||
transitionConditionSchema,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
@ -12,6 +12,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||
|
||||
export const featureSchema = {
|
||||
$id: '#/components/schemas/featureSchema',
|
||||
@ -298,6 +299,7 @@ export const featureSchema = {
|
||||
releasePlanMilestoneStrategySchema,
|
||||
createFeatureStrategySchema,
|
||||
createStrategyVariantSchema,
|
||||
transitionConditionSchema,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
||||
@ -10,6 +10,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||
import { createFeatureStrategySchema } from './create-feature-strategy-schema.js';
|
||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||
|
||||
export const featureSearchEnvironmentSchema = {
|
||||
$id: '#/components/schemas/featureSearchEnvironmentSchema',
|
||||
@ -45,6 +46,7 @@ export const featureSearchEnvironmentSchema = {
|
||||
releasePlanSchema,
|
||||
releasePlanMilestoneSchema,
|
||||
releasePlanMilestoneStrategySchema,
|
||||
transitionConditionSchema,
|
||||
createFeatureStrategySchema,
|
||||
createStrategyVariantSchema,
|
||||
},
|
||||
|
||||
@ -13,6 +13,7 @@ import { projectEnvironmentSchema } from './project-environment-schema.js';
|
||||
import { releasePlanSchema } from './release-plan-schema.js';
|
||||
import { releasePlanMilestoneSchema } from './release-plan-milestone-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 { strategyVariantSchema } from './strategy-variant-schema.js';
|
||||
import { createFeatureNamingPatternSchema } from './create-feature-naming-pattern-schema.js';
|
||||
@ -150,6 +151,7 @@ export const healthOverviewSchema = {
|
||||
releasePlanSchema,
|
||||
releasePlanMilestoneSchema,
|
||||
releasePlanMilestoneStrategySchema,
|
||||
transitionConditionSchema,
|
||||
strategyVariantSchema,
|
||||
variantSchema,
|
||||
projectStatsSchema,
|
||||
|
||||
@ -18,6 +18,7 @@ import { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||
import { createFeatureStrategySchema } from './create-feature-strategy-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 { featureDependenciesSchema } from './feature-dependencies-schema.js';
|
||||
import { dependentFeatureSchema } from './dependent-feature-schema.js';
|
||||
@ -63,6 +64,7 @@ export const importTogglesSchema = {
|
||||
releasePlanMilestoneStrategySchema,
|
||||
createFeatureStrategySchema,
|
||||
createStrategyVariantSchema,
|
||||
transitionConditionSchema,
|
||||
variantsSchema,
|
||||
variantSchema,
|
||||
overrideSchema,
|
||||
|
||||
@ -205,6 +205,7 @@ export * from './telemetry-settings-schema.js';
|
||||
export * from './toggle-maintenance-schema.js';
|
||||
export * from './token-string-list-schema.js';
|
||||
export * from './token-user-schema.js';
|
||||
export * from './transition-condition-schema.js';
|
||||
export * from './ui-config-schema.js';
|
||||
export * from './unknown-flag-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 { releasePlanMilestoneSchema } from './release-plan-milestone-schema.js';
|
||||
import { releasePlanMilestoneStrategySchema } from './release-plan-milestone-strategy-schema.js';
|
||||
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||
|
||||
export const projectOverviewSchema = {
|
||||
$id: '#/components/schemas/projectOverviewSchema',
|
||||
@ -208,6 +209,7 @@ export const projectOverviewSchema = {
|
||||
releasePlanSchema,
|
||||
releasePlanMilestoneSchema,
|
||||
releasePlanMilestoneStrategySchema,
|
||||
transitionConditionSchema,
|
||||
projectStatsSchema,
|
||||
createFeatureNamingPatternSchema,
|
||||
featureTypeCountSchema,
|
||||
|
||||
@ -4,6 +4,7 @@ import { createFeatureStrategySchema } from './create-feature-strategy-schema.js
|
||||
import { parametersSchema } from './parameters-schema.js';
|
||||
import { constraintSchema } from './constraint-schema.js';
|
||||
import { createStrategyVariantSchema } from './create-strategy-variant-schema.js';
|
||||
import { transitionConditionSchema } from './transition-condition-schema.js';
|
||||
|
||||
export const releasePlanMilestoneSchema = {
|
||||
$id: '#/components/schemas/releasePlanMilestoneSchema',
|
||||
@ -43,11 +44,8 @@ export const releasePlanMilestoneSchema = {
|
||||
nullable: true,
|
||||
},
|
||||
transitionCondition: {
|
||||
type: 'object',
|
||||
description:
|
||||
'The transition condition for the next automated milestone progression.',
|
||||
additionalProperties: true,
|
||||
nullable: true,
|
||||
description: 'The condition configuration for the transition',
|
||||
$ref: '#/components/schemas/transitionConditionSchema',
|
||||
},
|
||||
progressionExecutedAt: {
|
||||
type: 'string',
|
||||
@ -73,6 +71,7 @@ export const releasePlanMilestoneSchema = {
|
||||
parametersSchema,
|
||||
constraintSchema,
|
||||
createStrategyVariantSchema,
|
||||
transitionConditionSchema,
|
||||
},
|
||||
},
|
||||
} 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