From c3700425fcc9a5f9e19bff826cec53bb34854a9f Mon Sep 17 00:00:00 2001 From: Samy Kettani Date: Thu, 27 Nov 2025 16:19:59 +0100 Subject: [PATCH 1/4] chore(abtests): Added documentation for featureFilters configuration in the estimate route --- specs/abtesting-v3/common/schemas/ABTest.yml | 16 ++++++++++++++++ specs/abtesting-v3/paths/estimate.yml | 2 ++ specs/abtesting/paths/estimate.yml | 2 ++ 3 files changed, 20 insertions(+) diff --git a/specs/abtesting-v3/common/schemas/ABTest.yml b/specs/abtesting-v3/common/schemas/ABTest.yml index 43826b372f0..dcc35ac2ab9 100644 --- a/specs/abtesting-v3/common/schemas/ABTest.yml +++ b/specs/abtesting-v3/common/schemas/ABTest.yml @@ -62,6 +62,8 @@ ABTestConfiguration: properties: minimumDetectableEffect: $ref: '#/MinimumDetectableEffect' + featureFilters: + $ref: '#/FeatureFilters' filters: $ref: '#/MetricsFilters' errorCorrection: @@ -125,6 +127,20 @@ MetricsFilter: - domain - name +FeatureFilters: + type: object + description: Configuration of feature-based filters applied to the A/B test population. + properties: + dynamicReRanking: + type: boolean + description: Whether to apply dynamic re-ranking feature filters. + aiPerso: + type: boolean + description: Whether to apply AI Personalization feature filters. + multiSignalRanking: + type: boolean + description: Whether to apply Multi-Signal Re-Ranking feature filters. + MetricsFilters: type: array description: List of metric filters applied to the test population. diff --git a/specs/abtesting-v3/paths/estimate.yml b/specs/abtesting-v3/paths/estimate.yml index fa2bbf5663b..44499aca439 100644 --- a/specs/abtesting-v3/paths/estimate.yml +++ b/specs/abtesting-v3/paths/estimate.yml @@ -20,6 +20,8 @@ post: type: object description: A/B test configuration for estimating the sample size and duration using minimum detectable effect. properties: + featureFilters: + $ref: '../common/schemas/ABTest.yml#/FeatureFilters' filters: $ref: '../common/schemas/ABTest.yml#/MetricsFilters' minimumDetectableEffect: diff --git a/specs/abtesting/paths/estimate.yml b/specs/abtesting/paths/estimate.yml index fa29a90a080..b34c19107a1 100644 --- a/specs/abtesting/paths/estimate.yml +++ b/specs/abtesting/paths/estimate.yml @@ -20,6 +20,8 @@ post: type: object description: A/B test configuration for estimating the sample size and duration using minimum detectable effect. properties: + featureFilters: + $ref: '../common/schemas/ABTest.yml#/FeatureFilters' outliers: $ref: '../common/schemas/ABTest.yml#/Outliers' emptySearch: From b2dcc2b84bc0586e67584dfb942ec546d36873a8 Mon Sep 17 00:00:00 2001 From: Samy Kettani Date: Thu, 27 Nov 2025 16:35:54 +0100 Subject: [PATCH 2/4] chore(abtests): Updated common abtest v2 schema --- specs/abtesting/common/schemas/ABTest.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/specs/abtesting/common/schemas/ABTest.yml b/specs/abtesting/common/schemas/ABTest.yml index c567cafcdb4..40f1f75118d 100644 --- a/specs/abtesting/common/schemas/ABTest.yml +++ b/specs/abtesting/common/schemas/ABTest.yml @@ -119,6 +119,8 @@ ABTestConfiguration: type: object description: A/B test configuration. properties: + featureFilters: + $ref: '#/FeatureFilters' outliers: $ref: '#/Outliers' emptySearch: @@ -169,3 +171,17 @@ EffectMetric: - clickThroughRate - conversionRate - purchaseRate + +FeatureFilters: + type: object + description: Configuration of feature-based filters applied to the A/B test population. + properties: + dynamicReRanking: + type: boolean + description: Whether to apply Dynamic Re-Ranking feature filters. + aiPerso: + type: boolean + description: Whether to apply AI Personalization feature filters. + multiSignalRanking: + type: boolean + description: Whether to apply Multi-Signal Re-Ranking feature filters. From 4bbc1f956e1ea1565bc0e7ed94c8c24e3d6a647e Mon Sep 17 00:00:00 2001 From: Samy Kettani Date: Thu, 27 Nov 2025 18:10:17 +0100 Subject: [PATCH 3/4] chore(abtests): Moved featureFilter to a common folder and added a Legacy alias to avoid duplicated exports --- specs/abtesting-v3/common/schemas/ABTest.yml | 16 +--------------- specs/abtesting-v3/paths/estimate.yml | 2 +- specs/abtesting/common/schemas/ABTest.yml | 17 +++-------------- specs/abtesting/paths/estimate.yml | 2 +- specs/common/schemas/FeatureFilters.yml | 18 ++++++++++++++++++ 5 files changed, 24 insertions(+), 31 deletions(-) create mode 100644 specs/common/schemas/FeatureFilters.yml diff --git a/specs/abtesting-v3/common/schemas/ABTest.yml b/specs/abtesting-v3/common/schemas/ABTest.yml index dcc35ac2ab9..5062aa3943f 100644 --- a/specs/abtesting-v3/common/schemas/ABTest.yml +++ b/specs/abtesting-v3/common/schemas/ABTest.yml @@ -63,7 +63,7 @@ ABTestConfiguration: minimumDetectableEffect: $ref: '#/MinimumDetectableEffect' featureFilters: - $ref: '#/FeatureFilters' + $ref: '../../../common/schemas/FeatureFilters.yml#/FeatureFilters' filters: $ref: '#/MetricsFilters' errorCorrection: @@ -127,20 +127,6 @@ MetricsFilter: - domain - name -FeatureFilters: - type: object - description: Configuration of feature-based filters applied to the A/B test population. - properties: - dynamicReRanking: - type: boolean - description: Whether to apply dynamic re-ranking feature filters. - aiPerso: - type: boolean - description: Whether to apply AI Personalization feature filters. - multiSignalRanking: - type: boolean - description: Whether to apply Multi-Signal Re-Ranking feature filters. - MetricsFilters: type: array description: List of metric filters applied to the test population. diff --git a/specs/abtesting-v3/paths/estimate.yml b/specs/abtesting-v3/paths/estimate.yml index 44499aca439..ad036363d37 100644 --- a/specs/abtesting-v3/paths/estimate.yml +++ b/specs/abtesting-v3/paths/estimate.yml @@ -21,7 +21,7 @@ post: description: A/B test configuration for estimating the sample size and duration using minimum detectable effect. properties: featureFilters: - $ref: '../common/schemas/ABTest.yml#/FeatureFilters' + $ref: '../../common/schemas/FeatureFilters.yml#/FeatureFilters' filters: $ref: '../common/schemas/ABTest.yml#/MetricsFilters' minimumDetectableEffect: diff --git a/specs/abtesting/common/schemas/ABTest.yml b/specs/abtesting/common/schemas/ABTest.yml index 40f1f75118d..f827c106944 100644 --- a/specs/abtesting/common/schemas/ABTest.yml +++ b/specs/abtesting/common/schemas/ABTest.yml @@ -120,7 +120,7 @@ ABTestConfiguration: description: A/B test configuration. properties: featureFilters: - $ref: '#/FeatureFilters' + $ref: '../../../common/schemas/FeatureFilters.yml#/LegacyFeatureFilters' outliers: $ref: '#/Outliers' emptySearch: @@ -172,16 +172,5 @@ EffectMetric: - conversionRate - purchaseRate -FeatureFilters: - type: object - description: Configuration of feature-based filters applied to the A/B test population. - properties: - dynamicReRanking: - type: boolean - description: Whether to apply Dynamic Re-Ranking feature filters. - aiPerso: - type: boolean - description: Whether to apply AI Personalization feature filters. - multiSignalRanking: - type: boolean - description: Whether to apply Multi-Signal Re-Ranking feature filters. +LegacyFeatureFilters: + $ref: '../../../common/schemas/FeatureFilters.yml#/LegacyFeatureFilters' diff --git a/specs/abtesting/paths/estimate.yml b/specs/abtesting/paths/estimate.yml index b34c19107a1..f4f2c7aead9 100644 --- a/specs/abtesting/paths/estimate.yml +++ b/specs/abtesting/paths/estimate.yml @@ -21,7 +21,7 @@ post: description: A/B test configuration for estimating the sample size and duration using minimum detectable effect. properties: featureFilters: - $ref: '../common/schemas/ABTest.yml#/FeatureFilters' + $ref: '../../common/schemas/FeatureFilters.yml#/LegacyFeatureFilters' outliers: $ref: '../common/schemas/ABTest.yml#/Outliers' emptySearch: diff --git a/specs/common/schemas/FeatureFilters.yml b/specs/common/schemas/FeatureFilters.yml new file mode 100644 index 00000000000..6d0f076eaf2 --- /dev/null +++ b/specs/common/schemas/FeatureFilters.yml @@ -0,0 +1,18 @@ +FeatureFilters: + type: object + description: Configuration of feature-based filters applied to the A/B test population. + properties: + dynamicReRanking: + type: boolean + description: Whether to apply Dynamic Re-Ranking feature filters. + aiPerso: + type: boolean + description: Whether to apply AI Personalization feature filters. + multiSignalRanking: + type: boolean + description: Whether to apply Multi-Signal Re-Ranking feature filters. + +LegacyFeatureFilters: + title: FeatureFilters + allOf: + - $ref: '#/FeatureFilters' From ae18602dedfc30b61cdf802fbcc85a6c21a3977d Mon Sep 17 00:00:00 2001 From: Samy Kettani Date: Thu, 27 Nov 2025 19:05:16 +0100 Subject: [PATCH 4/4] chore(abtests): Removed featureFilters from v3 --- specs/abtesting-v3/common/schemas/ABTest.yml | 2 -- specs/abtesting-v3/paths/estimate.yml | 2 -- specs/abtesting/common/schemas/ABTest.yml | 17 ++++++++++++++--- specs/abtesting/paths/estimate.yml | 2 +- specs/common/schemas/FeatureFilters.yml | 18 ------------------ 5 files changed, 15 insertions(+), 26 deletions(-) delete mode 100644 specs/common/schemas/FeatureFilters.yml diff --git a/specs/abtesting-v3/common/schemas/ABTest.yml b/specs/abtesting-v3/common/schemas/ABTest.yml index 5062aa3943f..43826b372f0 100644 --- a/specs/abtesting-v3/common/schemas/ABTest.yml +++ b/specs/abtesting-v3/common/schemas/ABTest.yml @@ -62,8 +62,6 @@ ABTestConfiguration: properties: minimumDetectableEffect: $ref: '#/MinimumDetectableEffect' - featureFilters: - $ref: '../../../common/schemas/FeatureFilters.yml#/FeatureFilters' filters: $ref: '#/MetricsFilters' errorCorrection: diff --git a/specs/abtesting-v3/paths/estimate.yml b/specs/abtesting-v3/paths/estimate.yml index ad036363d37..fa2bbf5663b 100644 --- a/specs/abtesting-v3/paths/estimate.yml +++ b/specs/abtesting-v3/paths/estimate.yml @@ -20,8 +20,6 @@ post: type: object description: A/B test configuration for estimating the sample size and duration using minimum detectable effect. properties: - featureFilters: - $ref: '../../common/schemas/FeatureFilters.yml#/FeatureFilters' filters: $ref: '../common/schemas/ABTest.yml#/MetricsFilters' minimumDetectableEffect: diff --git a/specs/abtesting/common/schemas/ABTest.yml b/specs/abtesting/common/schemas/ABTest.yml index f827c106944..abe832f81ac 100644 --- a/specs/abtesting/common/schemas/ABTest.yml +++ b/specs/abtesting/common/schemas/ABTest.yml @@ -120,7 +120,7 @@ ABTestConfiguration: description: A/B test configuration. properties: featureFilters: - $ref: '../../../common/schemas/FeatureFilters.yml#/LegacyFeatureFilters' + $ref: '#/FeatureFilters' outliers: $ref: '#/Outliers' emptySearch: @@ -172,5 +172,16 @@ EffectMetric: - conversionRate - purchaseRate -LegacyFeatureFilters: - $ref: '../../../common/schemas/FeatureFilters.yml#/LegacyFeatureFilters' +FeatureFilters: + type: object + description: Configuration of feature-based filters applied to the A/B test population. + properties: + dynamicReRanking: + type: boolean + description: Whether to apply Dynamic Re-Ranking feature filters. + aiPerso: + type: boolean + description: Whether to apply AI Personalization feature filters. + multiSignalRanking: + type: boolean + description: Whether to apply Multi-Signal Re-Ranking feature filters. \ No newline at end of file diff --git a/specs/abtesting/paths/estimate.yml b/specs/abtesting/paths/estimate.yml index f4f2c7aead9..b34c19107a1 100644 --- a/specs/abtesting/paths/estimate.yml +++ b/specs/abtesting/paths/estimate.yml @@ -21,7 +21,7 @@ post: description: A/B test configuration for estimating the sample size and duration using minimum detectable effect. properties: featureFilters: - $ref: '../../common/schemas/FeatureFilters.yml#/LegacyFeatureFilters' + $ref: '../common/schemas/ABTest.yml#/FeatureFilters' outliers: $ref: '../common/schemas/ABTest.yml#/Outliers' emptySearch: diff --git a/specs/common/schemas/FeatureFilters.yml b/specs/common/schemas/FeatureFilters.yml deleted file mode 100644 index 6d0f076eaf2..00000000000 --- a/specs/common/schemas/FeatureFilters.yml +++ /dev/null @@ -1,18 +0,0 @@ -FeatureFilters: - type: object - description: Configuration of feature-based filters applied to the A/B test population. - properties: - dynamicReRanking: - type: boolean - description: Whether to apply Dynamic Re-Ranking feature filters. - aiPerso: - type: boolean - description: Whether to apply AI Personalization feature filters. - multiSignalRanking: - type: boolean - description: Whether to apply Multi-Signal Re-Ranking feature filters. - -LegacyFeatureFilters: - title: FeatureFilters - allOf: - - $ref: '#/FeatureFilters'