From 8fde562c725a70e5a9f462f021c1c3bb01d0f5b9 Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Tue, 15 Jul 2025 14:56:52 +0200 Subject: [PATCH 1/5] tmp: delete file to rename them --- .../common/schemas/batchCompositionAction.yml | 14 --- .../common/schemas/compositionBehavior.yml | 88 ------------------- .../common/schemas/compositionRule.yml | 83 ----------------- .../schemas/listCompositionsResponse.yml | 52 ----------- .../schemas/rulesBatchCompositionAction.yml | 14 --- 5 files changed, 251 deletions(-) delete mode 100644 specs/composition-full/common/schemas/batchCompositionAction.yml delete mode 100644 specs/composition-full/common/schemas/compositionBehavior.yml delete mode 100644 specs/composition-full/common/schemas/compositionRule.yml delete mode 100644 specs/composition-full/common/schemas/listCompositionsResponse.yml delete mode 100644 specs/composition-full/common/schemas/rulesBatchCompositionAction.yml diff --git a/specs/composition-full/common/schemas/batchCompositionAction.yml b/specs/composition-full/common/schemas/batchCompositionAction.yml deleted file mode 100644 index 5ee9a1a4717..00000000000 --- a/specs/composition-full/common/schemas/batchCompositionAction.yml +++ /dev/null @@ -1,14 +0,0 @@ -deleteCompositionAction: - type: object - description: Operation arguments when deleting. - additionalProperties: false - properties: - objectID: - $ref: '../../../common/parameters.yml#/objectID' - required: - - objectID - -batchCompositionAction: - oneOf: - - $ref: './listCompositionsResponse.yml#/composition' - - $ref: '#/deleteCompositionAction' diff --git a/specs/composition-full/common/schemas/compositionBehavior.yml b/specs/composition-full/common/schemas/compositionBehavior.yml deleted file mode 100644 index 0ed7d2bd923..00000000000 --- a/specs/composition-full/common/schemas/compositionBehavior.yml +++ /dev/null @@ -1,88 +0,0 @@ -compositionBehavior: - type: object - additionalProperties: false - properties: - injection: - title: injection - type: object - additionalProperties: false - properties: - main: - title: main - type: object - additionalProperties: false - properties: - source: - title: compositionSource - type: object - additionalProperties: false - properties: - search: - title: compositionSourceSearch - type: object - additionalProperties: false - properties: - index: - type: string - description: Composition Main Index name. - example: Products - params: - $ref: './SearchParams.yml#/mainInjectionQueryParameters' - required: - - index - required: - - search - required: - - source - injectedItems: - type: array - description: list of injected items of the current Composition. - minItems: 0 - maxItems: 2 - items: - $ref: '#/injectedItem' - required: - - main - required: - - injection - -injectedItem: - type: object - additionalProperties: false - properties: - key: - type: string - description: injected Item unique identifier. - source: - title: injectedItemSource - type: object - additionalProperties: false - properties: - search: - title: injectedItemSourceSearch - type: object - additionalProperties: false - properties: - index: - type: string - description: Composition Main Index name. - example: Products - params: - $ref: './SearchParams.yml#/injectedItemsQueryParameters' - required: - - index - required: - - search - position: - type: integer - minimum: 0 - maximum: 19 - length: - type: integer - minimum: 0 - maximum: 20 - required: - - key - - source - - position - - length diff --git a/specs/composition-full/common/schemas/compositionRule.yml b/specs/composition-full/common/schemas/compositionRule.yml deleted file mode 100644 index 66e38f7da11..00000000000 --- a/specs/composition-full/common/schemas/compositionRule.yml +++ /dev/null @@ -1,83 +0,0 @@ -compositionRule: - type: object - additionalProperties: false - properties: - objectID: - $ref: '../../../common/parameters.yml#/objectID' - conditions: - type: array - minItems: 0 - maxItems: 25 - description: Conditions that trigger a composition rule. - items: - $ref: '#/condition' - consequence: - title: compositionRuleConsequence - type: object - description: Effect of the rule. - additionalProperties: false - properties: - behavior: - $ref: './compositionBehavior.yml#/compositionBehavior' - required: - - behavior - description: - type: string - description: Description of the rule's purpose to help you distinguish between different rules. - example: Display a promotional banner - enabled: - type: boolean - default: true - description: Whether the rule is active. - validity: - type: array - description: Time periods when the rule is active. - items: - $ref: '../../../common/schemas/Rule.yml#/timeRange' - required: - - objectID - - conditions - - consequence - -condition: - type: object - additionalProperties: false - properties: - pattern: - type: string - description: | - Query pattern that triggers the rule. - - You can use either a literal string, or a special pattern `{facet:ATTRIBUTE}`, where `ATTRIBUTE` is a facet name. - The rule is triggered if the query matches the literal string or a value of the specified facet. - For example, with `pattern: {facet:genre}`, the rule is triggered when users search for a genre, such as "comedy". - example: '{facet:genre}' - anchoring: - $ref: '#/anchoring' - alternatives: - type: boolean - description: Whether the pattern should match plurals, synonyms, and typos. - default: false - context: - $ref: '../../../common/schemas/Rule.yml#/context' - filters: - type: string - description: | - Filters that trigger the rule. - - You can add add filters using the syntax `facet:value` so that the rule is triggered, when the specific filter is selected. - You can use `filters` on its own or combine it with the `pattern` parameter. - example: 'genre:comedy' - -anchoring: - type: string - description: | - Which part of the search query the pattern should match: - - - `startsWith`. The pattern must match the beginning of the query. - - `endsWith`. The pattern must match the end of the query. - - `is`. The pattern must match the query exactly. - - `contains`. The pattern must match anywhere in the query. - - Empty queries are only allowed as patterns with `anchoring: is`. - enum: [is, startsWith, endsWith, contains] diff --git a/specs/composition-full/common/schemas/listCompositionsResponse.yml b/specs/composition-full/common/schemas/listCompositionsResponse.yml deleted file mode 100644 index 270913871b1..00000000000 --- a/specs/composition-full/common/schemas/listCompositionsResponse.yml +++ /dev/null @@ -1,52 +0,0 @@ -listCompositionsResponse: - type: object - additionalProperties: false - properties: - items: - type: array - description: All compositions in your Algolia application. - items: - $ref: '#/composition' - nbPages: - type: integer - description: Number of pages. - example: 100 - page: - type: integer - description: Current page. - example: 0 - hitsPerPage: - type: integer - description: Number of items per page. - example: 20 - nbHits: - type: integer - description: Number of items. - example: 200 - required: - - hitsPerPage - - items - - nbHits - - nbPages - - page - -composition: - type: object - additionalProperties: false - properties: - objectID: - $ref: '../../../common/parameters.yml#/objectID' - name: - type: string - description: Composition name. - example: 'my lovely crafted composition' - description: - type: string - description: Composition description. - example: 'my lovely crafted composition that is used for X purpose' - behavior: - $ref: './compositionBehavior.yml#/compositionBehavior' - required: - - objectID - - behavior - - name diff --git a/specs/composition-full/common/schemas/rulesBatchCompositionAction.yml b/specs/composition-full/common/schemas/rulesBatchCompositionAction.yml deleted file mode 100644 index b9c859b5264..00000000000 --- a/specs/composition-full/common/schemas/rulesBatchCompositionAction.yml +++ /dev/null @@ -1,14 +0,0 @@ -deleteCompositionRuleAction: - type: object - description: Operation arguments when deleting. - additionalProperties: false - properties: - objectID: - $ref: '../../../common/parameters.yml#/objectID' - required: - - objectID - -rulesBatchCompositionAction: - oneOf: - - $ref: './compositionRule.yml#/compositionRule' - - $ref: '#/deleteCompositionRuleAction' From c0a565407749d22bb796bc812246a6c8421c79af Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Tue, 15 Jul 2025 14:58:58 +0200 Subject: [PATCH 2/5] refact(specs): rename files + small updates --- .../common/schemas/BatchCompositionAction.yml | 14 +++ .../common/schemas/Composition.yml | 20 +++++ .../common/schemas/CompositionBehavior.yml | 88 +++++++++++++++++++ .../common/schemas/CompositionRule.yml | 79 +++++++++++++++++ .../schemas/ListCompositionsResponse.yml | 31 +++++++ .../schemas/RulesBatchCompositionAction.yml | 14 +++ .../common/schemas/SearchParams.yml | 4 +- .../manage_compositions/listCompositions.yml | 2 +- 8 files changed, 249 insertions(+), 3 deletions(-) create mode 100644 specs/composition-full/common/schemas/BatchCompositionAction.yml create mode 100644 specs/composition-full/common/schemas/Composition.yml create mode 100644 specs/composition-full/common/schemas/CompositionBehavior.yml create mode 100644 specs/composition-full/common/schemas/CompositionRule.yml create mode 100644 specs/composition-full/common/schemas/ListCompositionsResponse.yml create mode 100644 specs/composition-full/common/schemas/RulesBatchCompositionAction.yml diff --git a/specs/composition-full/common/schemas/BatchCompositionAction.yml b/specs/composition-full/common/schemas/BatchCompositionAction.yml new file mode 100644 index 00000000000..5ee9a1a4717 --- /dev/null +++ b/specs/composition-full/common/schemas/BatchCompositionAction.yml @@ -0,0 +1,14 @@ +deleteCompositionAction: + type: object + description: Operation arguments when deleting. + additionalProperties: false + properties: + objectID: + $ref: '../../../common/parameters.yml#/objectID' + required: + - objectID + +batchCompositionAction: + oneOf: + - $ref: './listCompositionsResponse.yml#/composition' + - $ref: '#/deleteCompositionAction' diff --git a/specs/composition-full/common/schemas/Composition.yml b/specs/composition-full/common/schemas/Composition.yml new file mode 100644 index 00000000000..dde568893e3 --- /dev/null +++ b/specs/composition-full/common/schemas/Composition.yml @@ -0,0 +1,20 @@ +composition: + type: object + additionalProperties: false + properties: + objectID: + $ref: '../../../common/parameters.yml#/objectID' + name: + type: string + description: Composition name. + example: 'my lovely crafted composition' + description: + type: string + description: Composition description. + example: 'my lovely crafted composition that is used for X purpose' + behavior: + $ref: './CompositionBehavior.yml#/compositionBehavior' + required: + - objectID + - behavior + - name \ No newline at end of file diff --git a/specs/composition-full/common/schemas/CompositionBehavior.yml b/specs/composition-full/common/schemas/CompositionBehavior.yml new file mode 100644 index 00000000000..0ed7d2bd923 --- /dev/null +++ b/specs/composition-full/common/schemas/CompositionBehavior.yml @@ -0,0 +1,88 @@ +compositionBehavior: + type: object + additionalProperties: false + properties: + injection: + title: injection + type: object + additionalProperties: false + properties: + main: + title: main + type: object + additionalProperties: false + properties: + source: + title: compositionSource + type: object + additionalProperties: false + properties: + search: + title: compositionSourceSearch + type: object + additionalProperties: false + properties: + index: + type: string + description: Composition Main Index name. + example: Products + params: + $ref: './SearchParams.yml#/mainInjectionQueryParameters' + required: + - index + required: + - search + required: + - source + injectedItems: + type: array + description: list of injected items of the current Composition. + minItems: 0 + maxItems: 2 + items: + $ref: '#/injectedItem' + required: + - main + required: + - injection + +injectedItem: + type: object + additionalProperties: false + properties: + key: + type: string + description: injected Item unique identifier. + source: + title: injectedItemSource + type: object + additionalProperties: false + properties: + search: + title: injectedItemSourceSearch + type: object + additionalProperties: false + properties: + index: + type: string + description: Composition Main Index name. + example: Products + params: + $ref: './SearchParams.yml#/injectedItemsQueryParameters' + required: + - index + required: + - search + position: + type: integer + minimum: 0 + maximum: 19 + length: + type: integer + minimum: 0 + maximum: 20 + required: + - key + - source + - position + - length diff --git a/specs/composition-full/common/schemas/CompositionRule.yml b/specs/composition-full/common/schemas/CompositionRule.yml new file mode 100644 index 00000000000..39535ca734f --- /dev/null +++ b/specs/composition-full/common/schemas/CompositionRule.yml @@ -0,0 +1,79 @@ +compositionRule: + type: object + additionalProperties: false + properties: + objectID: + $ref: '../../../common/parameters.yml#/objectID' + conditions: + type: array + minItems: 0 + maxItems: 25 + description: Conditions that trigger a composition rule. + items: + $ref: '#/condition' + consequence: + title: compositionRuleConsequence + type: object + description: Effect of the rule. + additionalProperties: false + properties: + behavior: + $ref: './compositionBehavior.yml#/compositionBehavior' + required: + - behavior + description: + type: string + description: Description of the rule's purpose to help you distinguish between different rules. + example: Display a promotional banner + enabled: + type: boolean + default: true + description: Whether the rule is active. + validity: + type: array + description: Time periods when the rule is active. + items: + $ref: '../../../common/schemas/Rule.yml#/timeRange' + required: + - objectID + - conditions + - consequence + +condition: + type: object + additionalProperties: false + properties: + pattern: + type: string + description: | + Query pattern that triggers the rule. + + You can use either a literal string, or a special pattern `{facet:ATTRIBUTE}`, where `ATTRIBUTE` is a facet name. + The rule is triggered if the query matches the literal string or a value of the specified facet. + For example, with `pattern: {facet:genre}`, the rule is triggered when users search for a genre, such as "comedy". + example: '{facet:genre}' + anchoring: + $ref: '#/anchoring' + context: + $ref: '../../../common/schemas/Rule.yml#/context' + filters: + type: string + description: | + Filters that trigger the rule. + + You can add add filters using the syntax `facet:value` so that the rule is triggered, when the specific filter is selected. + You can use `filters` on its own or combine it with the `pattern` parameter. + example: 'genre:comedy' + +anchoring: + type: string + description: | + Which part of the search query the pattern should match: + + - `startsWith`. The pattern must match the beginning of the query. + - `endsWith`. The pattern must match the end of the query. + - `is`. The pattern must match the query exactly. + - `contains`. The pattern must match anywhere in the query. + + Empty queries are only allowed as patterns with `anchoring: is`. + enum: [is, startsWith, endsWith, contains] diff --git a/specs/composition-full/common/schemas/ListCompositionsResponse.yml b/specs/composition-full/common/schemas/ListCompositionsResponse.yml new file mode 100644 index 00000000000..963c095ab63 --- /dev/null +++ b/specs/composition-full/common/schemas/ListCompositionsResponse.yml @@ -0,0 +1,31 @@ +listCompositionsResponse: + type: object + additionalProperties: false + properties: + items: + type: array + description: All compositions in your Algolia application. + items: + $ref: './Composition.yml#/composition' + nbPages: + type: integer + description: Number of pages. + example: 100 + page: + type: integer + description: Current page. + example: 0 + hitsPerPage: + type: integer + description: Number of items per page. + example: 20 + nbHits: + type: integer + description: Number of items. + example: 200 + required: + - hitsPerPage + - items + - nbHits + - nbPages + - page diff --git a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml b/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml new file mode 100644 index 00000000000..b9c859b5264 --- /dev/null +++ b/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml @@ -0,0 +1,14 @@ +deleteCompositionRuleAction: + type: object + description: Operation arguments when deleting. + additionalProperties: false + properties: + objectID: + $ref: '../../../common/parameters.yml#/objectID' + required: + - objectID + +rulesBatchCompositionAction: + oneOf: + - $ref: './compositionRule.yml#/compositionRule' + - $ref: '#/deleteCompositionRuleAction' diff --git a/specs/composition-full/common/schemas/SearchParams.yml b/specs/composition-full/common/schemas/SearchParams.yml index a91acb64f5b..130fa1119b1 100644 --- a/specs/composition-full/common/schemas/SearchParams.yml +++ b/specs/composition-full/common/schemas/SearchParams.yml @@ -240,7 +240,7 @@ mainInjectionQueryParameters: type: array items: type: string - example: [author, title, conten, content] + example: [author, title, content] description: | Attributes to highlight. @@ -705,7 +705,7 @@ injectedItemsQueryParameters: type: array items: type: string - example: [author, title, conten, content] + example: [author, title, content] description: | Attributes to highlight. diff --git a/specs/composition-full/paths/manage_compositions/listCompositions.yml b/specs/composition-full/paths/manage_compositions/listCompositions.yml index 5403c25c4d2..b992f95da26 100644 --- a/specs/composition-full/paths/manage_compositions/listCompositions.yml +++ b/specs/composition-full/paths/manage_compositions/listCompositions.yml @@ -17,7 +17,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/listCompositionsResponse.yml#/listCompositionsResponse' + $ref: '../../common/schemas/listCompositionsResponse.yml#/ListCompositionsResponse' '400': $ref: '../../../common/responses/BadRequest.yml' '402': From a540f5d8129abd6ee65cce6b21d7947020832e7e Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Tue, 15 Jul 2025 15:58:43 +0200 Subject: [PATCH 3/5] fix: apply fix from linter --- .../composition-full/common/schemas/BatchCompositionAction.yml | 2 +- .../paths/manage_compositions/listCompositions.yml | 2 +- specs/composition-full/paths/objects/objects.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/specs/composition-full/common/schemas/BatchCompositionAction.yml b/specs/composition-full/common/schemas/BatchCompositionAction.yml index 5ee9a1a4717..f784e1dc2e0 100644 --- a/specs/composition-full/common/schemas/BatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/BatchCompositionAction.yml @@ -10,5 +10,5 @@ deleteCompositionAction: batchCompositionAction: oneOf: - - $ref: './listCompositionsResponse.yml#/composition' + - $ref: './Composition.yml#/composition' - $ref: '#/deleteCompositionAction' diff --git a/specs/composition-full/paths/manage_compositions/listCompositions.yml b/specs/composition-full/paths/manage_compositions/listCompositions.yml index b992f95da26..e7d897d65aa 100644 --- a/specs/composition-full/paths/manage_compositions/listCompositions.yml +++ b/specs/composition-full/paths/manage_compositions/listCompositions.yml @@ -17,7 +17,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/listCompositionsResponse.yml#/ListCompositionsResponse' + $ref: '../../common/schemas/ListCompositionsResponse.yml#/listCompositionsResponse' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/objects/objects.yml b/specs/composition-full/paths/objects/objects.yml index 5817adc75f5..c67cb3169d2 100644 --- a/specs/composition-full/paths/objects/objects.yml +++ b/specs/composition-full/paths/objects/objects.yml @@ -16,7 +16,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/listCompositionsResponse.yml#/composition' + $ref: '../../common/schemas/Composition.yml#/composition' '400': $ref: '../../../common/responses/BadRequest.yml' '402': From e0e7d6b349c1a7898ad5e3840c64b1ea74a7baa1 Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Tue, 15 Jul 2025 16:08:12 +0200 Subject: [PATCH 4/5] fix --- specs/composition-full/paths/objects/multipleBatch.yml | 2 +- specs/composition-full/paths/rules/rule.yml | 2 +- specs/composition-full/paths/rules/saveRules.yml | 2 +- specs/composition-full/paths/rules/searchRules.yml | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/specs/composition-full/paths/objects/multipleBatch.yml b/specs/composition-full/paths/objects/multipleBatch.yml index 6ad1989a1dd..525f9109892 100644 --- a/specs/composition-full/paths/objects/multipleBatch.yml +++ b/specs/composition-full/paths/objects/multipleBatch.yml @@ -27,7 +27,7 @@ post: action: $ref: '../../common/schemas/Batch.yml#/action' body: - $ref: '../../common/schemas/batchCompositionAction.yml#/batchCompositionAction' + $ref: '../../common/schemas/BatchCompositionAction.yml#/batchCompositionAction' required: - action - body diff --git a/specs/composition-full/paths/rules/rule.yml b/specs/composition-full/paths/rules/rule.yml index 6b9721e32fd..69f4d5f4b1f 100644 --- a/specs/composition-full/paths/rules/rule.yml +++ b/specs/composition-full/paths/rules/rule.yml @@ -18,7 +18,7 @@ get: content: application/json: schema: - $ref: '../../common/schemas/compositionRule.yml#/compositionRule' + $ref: '../../common/schemas/CompositionRule.yml#/compositionRule' '400': $ref: '../../../common/responses/BadRequest.yml' '402': diff --git a/specs/composition-full/paths/rules/saveRules.yml b/specs/composition-full/paths/rules/saveRules.yml index 409820f2d88..c232f698bec 100644 --- a/specs/composition-full/paths/rules/saveRules.yml +++ b/specs/composition-full/paths/rules/saveRules.yml @@ -30,7 +30,7 @@ post: action: $ref: '../../common/schemas/Batch.yml#/action' body: - $ref: '../../common/schemas/rulesBatchCompositionAction.yml#/rulesBatchCompositionAction' + $ref: '../../common/schemas/RulesBatchCompositionAction.yml#/rulesBatchCompositionAction' required: - action - body diff --git a/specs/composition-full/paths/rules/searchRules.yml b/specs/composition-full/paths/rules/searchRules.yml index f93f49f3cbc..eef139f27a6 100644 --- a/specs/composition-full/paths/rules/searchRules.yml +++ b/specs/composition-full/paths/rules/searchRules.yml @@ -20,7 +20,7 @@ post: query: $ref: './parameters.yml#/query' anchoring: - $ref: '../../common/schemas/compositionRule.yml#/anchoring' + $ref: '../../common/schemas/CompositionRule.yml#/anchoring' context: type: string description: Only return composition rules that match the context (exact match). @@ -57,7 +57,7 @@ post: type: array description: Composition rules that matched the search criteria. items: - $ref: '../../common/schemas/compositionRule.yml#/compositionRule' + $ref: '../../common/schemas/CompositionRule.yml#/compositionRule' nbHits: type: integer description: Number of composition rules that matched the search criteria. From 9d73da39cf2102f1c14ea81f5f76bba44a773baa Mon Sep 17 00:00:00 2001 From: Clara Muller <5667350+ClaraMuller@users.noreply.github.com> Date: Tue, 15 Jul 2025 16:12:16 +0200 Subject: [PATCH 5/5] fix --- specs/composition-full/common/schemas/CompositionRule.yml | 2 +- .../common/schemas/RulesBatchCompositionAction.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/specs/composition-full/common/schemas/CompositionRule.yml b/specs/composition-full/common/schemas/CompositionRule.yml index 39535ca734f..398009626b7 100644 --- a/specs/composition-full/common/schemas/CompositionRule.yml +++ b/specs/composition-full/common/schemas/CompositionRule.yml @@ -18,7 +18,7 @@ compositionRule: additionalProperties: false properties: behavior: - $ref: './compositionBehavior.yml#/compositionBehavior' + $ref: './CompositionBehavior.yml#/compositionBehavior' required: - behavior description: diff --git a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml b/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml index b9c859b5264..61e46d32008 100644 --- a/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml +++ b/specs/composition-full/common/schemas/RulesBatchCompositionAction.yml @@ -10,5 +10,5 @@ deleteCompositionRuleAction: rulesBatchCompositionAction: oneOf: - - $ref: './compositionRule.yml#/compositionRule' + - $ref: './CompositionRule.yml#/compositionRule' - $ref: '#/deleteCompositionRuleAction'