From 591934207dba166e5fc6caf11c8bb4fe080a7708 Mon Sep 17 00:00:00 2001 From: Ben Kalmus Date: Thu, 27 Nov 2025 15:38:02 +0000 Subject: [PATCH 1/5] add new endpoint for updating sortingStrategy --- .../compositions/updateSortingStrategy.yml | 39 +++++++++++++++++++ specs/composition/spec.yml | 2 + .../composition/updateSortingStrategy.json | 17 ++++++++ 3 files changed, 58 insertions(+) create mode 100644 specs/composition/paths/compositions/updateSortingStrategy.yml create mode 100644 tests/CTS/requests/composition/updateSortingStrategy.json diff --git a/specs/composition/paths/compositions/updateSortingStrategy.yml b/specs/composition/paths/compositions/updateSortingStrategy.yml new file mode 100644 index 00000000000..12a6247d34b --- /dev/null +++ b/specs/composition/paths/compositions/updateSortingStrategy.yml @@ -0,0 +1,39 @@ +post: + tags: + - Compositions + operationId: updateCompositionSortingStrategy + x-acl: + - editSettings + summary: Update sortingStrategy for an existing composition + description: | + Update Update sortingStrategy for an existing composition in the current Algolia application. + parameters: + - $ref: '../urlParams.yml#/compositionID' + requestBody: + required: true + content: + application/json: + schema: + $ref: '../../common/schemas/components/Composition.yml#/sortingStrategy' + responses: + '200': + description: OK + content: + application/json: + schema: + title: taskIDResponse + type: object + additionalProperties: false + properties: + taskID: + $ref: '../../../common/responses/common.yml#/taskID' + required: + - taskID + '400': + $ref: '../../../common/responses/BadRequest.yml' + '402': + $ref: '../../../common/responses/FeatureNotEnabled.yml' + '403': + $ref: '../../../common/responses/MethodNotAllowed.yml' + '404': + $ref: '../../../common/responses/CompositionNotFound.yml' diff --git a/specs/composition/spec.yml b/specs/composition/spec.yml index 9216508ea71..c7e7ce1c504 100644 --- a/specs/composition/spec.yml +++ b/specs/composition/spec.yml @@ -136,6 +136,8 @@ paths: $ref: 'paths/compositions/composition.yml' /1/compositions/*/batch: $ref: 'paths/compositions/batch.yml' + /1/compositions/{compositionID}/sortingStrategy: + $ref: 'paths/compositions/updateSortingStrategy.yml' # ########################################## # ### Manage Composition Rules Endpoints ### diff --git a/tests/CTS/requests/composition/updateSortingStrategy.json b/tests/CTS/requests/composition/updateSortingStrategy.json new file mode 100644 index 00000000000..797ec3805a0 --- /dev/null +++ b/tests/CTS/requests/composition/updateSortingStrategy.json @@ -0,0 +1,17 @@ +[ + { + "parameters": { + "compositionID": "my-compo", + "Price-asc": "products-low-to-high", + "Price-desc": "products-high-to-low" + }, + "request": { + "path": "/1/compositions/my-compo/sortingStrategy", + "method": "POST", + "body": { + "Price-asc": "products-low-to-high", + "Price-desc": "products-high-to-low" + } + } + } +] From c5cb31f562a5bd9ddcf09f1ebf52c8a16f06beac Mon Sep 17 00:00:00 2001 From: Ben Kalmus Date: Thu, 27 Nov 2025 15:53:24 +0000 Subject: [PATCH 2/5] update description --- .../paths/compositions/updateSortingStrategy.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/specs/composition/paths/compositions/updateSortingStrategy.yml b/specs/composition/paths/compositions/updateSortingStrategy.yml index 12a6247d34b..218c90e727c 100644 --- a/specs/composition/paths/compositions/updateSortingStrategy.yml +++ b/specs/composition/paths/compositions/updateSortingStrategy.yml @@ -1,12 +1,16 @@ post: tags: - Compositions - operationId: updateCompositionSortingStrategy + operationId: updateSortingStrategyComposition x-acl: - editSettings - summary: Update sortingStrategy for an existing composition + summary: Set or update the "sortingStrategy" configuration for an existing composition description: | - Update Update sortingStrategy for an existing composition in the current Algolia application. + Updates the "sortingStrategy" field of an existing composition. + This endpoint allows you to create a new sorting strategy mapping or replace the currently configured one. + The provided sorting indices must be associated indices or replicas of the main targeted index. + + The update is applied to the specified composition within the current Algolia application and returns a taskID that can be used to track the operation’s completion. parameters: - $ref: '../urlParams.yml#/compositionID' requestBody: From 43dba8e41249ddf642126769adea7ad0547a11e0 Mon Sep 17 00:00:00 2001 From: Ben Kalmus Date: Thu, 27 Nov 2025 15:58:19 +0000 Subject: [PATCH 3/5] rename test file according to operationID --- ...SortingStrategy.json => updateSortingStrategyComposition.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/CTS/requests/composition/{updateSortingStrategy.json => updateSortingStrategyComposition.json} (100%) diff --git a/tests/CTS/requests/composition/updateSortingStrategy.json b/tests/CTS/requests/composition/updateSortingStrategyComposition.json similarity index 100% rename from tests/CTS/requests/composition/updateSortingStrategy.json rename to tests/CTS/requests/composition/updateSortingStrategyComposition.json From 138f1e5267b57c04d904ddc5f55e438bc68049ee Mon Sep 17 00:00:00 2001 From: Ben Kalmus Date: Thu, 27 Nov 2025 16:05:40 +0000 Subject: [PATCH 4/5] fix parameters --- .../composition/updateSortingStrategyComposition.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/CTS/requests/composition/updateSortingStrategyComposition.json b/tests/CTS/requests/composition/updateSortingStrategyComposition.json index 797ec3805a0..9aa759c562b 100644 --- a/tests/CTS/requests/composition/updateSortingStrategyComposition.json +++ b/tests/CTS/requests/composition/updateSortingStrategyComposition.json @@ -2,8 +2,10 @@ { "parameters": { "compositionID": "my-compo", - "Price-asc": "products-low-to-high", - "Price-desc": "products-high-to-low" + "requestBody": { + "Price-asc": "products-low-to-high", + "Price-desc": "products-high-to-low" + } }, "request": { "path": "/1/compositions/my-compo/sortingStrategy", From 2344d86eb273e809984f93721e626342ed24c57e Mon Sep 17 00:00:00 2001 From: Ben Kalmus Date: Fri, 28 Nov 2025 10:11:47 +0000 Subject: [PATCH 5/5] add warning to description --- .../composition/paths/compositions/updateSortingStrategy.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/specs/composition/paths/compositions/updateSortingStrategy.yml b/specs/composition/paths/compositions/updateSortingStrategy.yml index 218c90e727c..851a73ccd27 100644 --- a/specs/composition/paths/compositions/updateSortingStrategy.yml +++ b/specs/composition/paths/compositions/updateSortingStrategy.yml @@ -8,7 +8,10 @@ post: description: | Updates the "sortingStrategy" field of an existing composition. This endpoint allows you to create a new sorting strategy mapping or replace the currently configured one. - The provided sorting indices must be associated indices or replicas of the main targeted index. + The provided sorting indices MUST be associated indices or replicas of the main targeted index. + + WARNING: This endpoint cannot validate if the sort index is related to the composition's main index. + Validation will fail at runtime if the index you updated is not related! The update is applied to the specified composition within the current Algolia application and returns a taskID that can be used to track the operation’s completion. parameters: